反脆弱的投资体系:gplearn因子挖掘系列,支持3000支股票

本周重点是“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_21avg_volume_63feature_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
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 29 日
下一篇 2024 年 7 月 29 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注