继续“AI优化”的量化投资。
下面是Autogluon训练金融数据的基本流程:
from autogluon.core import TabularDataset
import numpy as np
from autogluon.tabular import TabularPredictor
from config import DATA_DIR
from engine.engine_utils import load_data
fields = ['shift(close,-1)/close -1', 'roc(close,20)', 'corr(close/shift(close,1), log(volume/shift(volume, 1)+1), 30)']
names = ['label_c', 'roc_20', 'CORR30']
symbols = ['510300.SH']
df = load_data(fields, names, symbols, columns=None, start_date='20100101',
path=DATA_DIR.joinpath('etfs').resolve())
df['label'] = np.where(df['label_c'] > 0.0, 1, 0)
print(df['label'].value_counts())
del df['label_c']
split = int(len(df) * 0.8)
train = df.iloc[:split].copy()
test = df.iloc[split:].copy()
print('测试集日期', test.index[0])
label = 'label'
train_data = TabularDataset(train)
test_data = TabularDataset(test)
predictor = TabularPredictor(label=label, path='mymodel').fit(train_data)
print(predictor.leaderboard(test_data, silent=True)) y_pred = predictor.predict(test.drop(columns=[label])) print(y_pred) y_pred.to_csv('y_pred.csv')
训练集的准确率是:55.8%,目前我们仅引入了几个因子:
测试集上最好的模型是:LightGBMLarge,准确率是52.1%。
大家会觉得准确率不高,当然这里我们仅使用原始的价量数据是一方面,另外,胜率是一方面,还得看赔率。
我们使用期货——螺纹钢的历史日线数据来回测看下效果。
name = '机器择时' [data] start_date = '20100101' test_start_date = '20210611' end_date = '' symbols = [ # '510300.SH', # 沪深300ETF 'RB0', # 螺纹钢 ] fields = ['shift(close,-1)/close -1','std(close, 20)/close','roc(close,20)','corr(close/shift(close,1), log(volume/shift(volume, 1)+1), 30)','corr(close/shift(close,1), log(volume/shift(volume, 1)+1), 30)'] names = ['label_c','std_20','roc_20','CORR30','CORR60'] data_folder = 'futures' # 数据在data下的目录 benchmark='RB0' [model] model_path='mymodel' label='' override=false [[algos]] name = 'SelectByModel' model_path='mymodel' [[algos]] name = 'SelectBySignal' rules=['buy'] [[algos]] name = 'SelectBySignal' rules=['sell'] exclude= true [[algos]] name = 'WeightEqually' [[algos]] name = 'Rebalance'
只做多,暂不考虑做空的情况:
市场大跌的时候,策略没有发出信号:
单向做多,年化26.8%,夏普1.28
后续改进方向:
1、更高频的数据,比如期货或者加密货币均可。
2、更大的因子集,以及自动化的因子挖掘。
3、多周期、多标的
4、时间序列模型。
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/103873
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!