本周重点是“gplearn因子挖掘”。
昨天年化167%,夏普比大于7:基于gplearn的股指期货的高频因子挖掘开了头,我们继续
因子挖掘为何重要?
量化最重要的东西是什么?——策略。
能实盘的策略,而策略里,容量最大,且适用于前沿AI技术的——多因子策略。
这个背后最重要的就是因子。
传统方法是通过人工经验构造因子,优缺点都明显,但在AI潮流面前显得落伍。
投资是高度不确定的事情,准确地讲,没有人可以预测未来。
那我们可以做什么呢?设计一种反脆弱的投资体系。
比如,输,输得少;赢,赢得多。——止损,让利润奔跑就是基础逻辑。
比如可转债,市场下行,债性兜底;市场走牛,股性发挥作用。
gplearn可以自定义函数集:
function_set = ['add', 'sub', 'mul', 'div', 'sqrt', 'log', # 用于构建和进化公式使用的函数集
'abs', 'neg', 'inv', 'sin', 'cos', 'tan', 'max', 'min',
#'if', 'gtpn', 'andpn', 'orpn', 'ltpn', 'gtp', 'andp', 'orp', 'ltp', 'gtn', 'andn', 'orn', 'ltn', 'delayy', 'delta', 'signedpower', 'decayl', 'stdd', 'rankk'
]
生成适应度最好的因子:
# 生成因子 factor_num = 1 # 因子编号 my_cmodel_gp = my_gplearn(function_set, score_func_basic, random_state=0, feature_names=feature_names) # 可以通过换random_state来生成不同因子 my_cmodel_gp.fit(train_data.loc[:, :'rank_num'].values, train_data.loc[:, 'y'].values) print(my_cmodel_gp)
在测试集测试效果:
# 策略结果 factor = my_cmodel_gp.predict(test_data.values) bt_test = SymbolicTestor(test_data, transact_base='Open', commissions=(comm[0], comm[1])) # 加载数据,根据Close成交,comm是买-卖 bt_test.run_(factor=factor) md = bt_test.summary() md.out_stats.to_clipboard() print(md.out_stats) md.plot_(comm=comm, show_bool=True) bt.fees_factor out_stats, holding_infos, trading_details = md.get_results() md.save_results(file_name=comm)
多支股票等三维数据也可以处理:
with open(f'./data/factor_data.pickle', 'rb') as f: x_dict = dill.load(f) x_dict.keys() # 就只要turnover_21和avg_volume_63吧 feature_names = list(x_dict.keys()) x_array = np.array(list(x_dict.values())) x_array = np.transpose(x_array, axes=(1, 2, 0)) # 生成因子 factor_num = 2 # 因子编号 my_cmodel_gp = my_gplearn(function_set, score_func_basic, feature_names=feature_names, pop_num=50, gen_num=3, random_state=0) # 可以通过换random_state来生成不同因子 my_cmodel_gp.fit(x_array, np.array(y_ret)) print(my_cmodel_gp)
昨天很多同学说,这么高的收益是不是有未来函数,可以确定的说,没有,但没有加交易手续费,日内交易不考虑手续费,影响还是比较大的。
但证明这条路是通的,这个很关键。
后续工作:
说清楚gplearn的原理,因子挖掘与咱们的quantlab框架整合。
1、因子生成,可以生成多个;
2、单因子回测,组合因子回测
3、扩展函数列表。
逻辑上讲,没这么容易。
本质上讲,这也是一种穷举,遍历找fitness最大的表达式。
明天继续。
吾日三省吾身
产品本身紧跟市场,这个大家都明白。
但营销本身也要与时俱进。
我们这些传统互联网出身的人,总有一些搜索引擎,SEO的执念。
移动互联网原生的人,可能关心ASO。
但现在是推荐时代,短视频,各种自媒体平台才是关键。
在高度不确定的时代,追求确定性本身就是一种“脆弱”。
我们应该为“不确定性”建立一种“反脆弱”的生活、工作、事业的经营方式。反脆弱的投资体系。
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/103631
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!