今天是第17篇,关于“AI智能量化,财富与成长感悟”。
01 成长感悟
路上读摩西奶奶《人生随时可以重来》。
一个农妇,出生贫寒,58岁从零开始学绘画,没有科班培训,没有名师指导,只因自己爱好。坚持40年,80岁开画展,受当时的美国总统接见,享誉全球。
她还激励日本作家渡边淳一成为全球知名作家。
这不是“坚持”,“勇气”这样的词可以简单概括的。
纯粹的热情,甚至不计较利益得失,这就是初心。
董宇辉,高晓松读书,发自内心的想读罢了,只是习惯,并不需要坚持,只是“偶尔”某一天被人家看到,随后“顺便”实现了商业诉求。
AI算法,代码之于我,是热情。
初心是AI, 用AI技术从数据中发现规律,指导决策 ;而量化恰好是AI的用武之地。
缩小预期,梦想不是用来标榜的,而是用来实现的。
做好眼前可达的一件件小事情。
发现你的热情,就是你在做这件事不需要刻意去坚持,时光会流逝得很快,不觉得苦与累。
当然热衷代码,不代表就喜欢写商业代码,按产品经理的意愿去对齐一两个像素,或者需要按照原有团队的惯性去迁就一个过时的技术,就很没有意思。
之于我,代码更意味着创造。
顺应初心的“功利心”。
如果说做任何事都没有功利心,可能也不实现。
李笑来2005年就开始写博客,有意识的去教作文课(他认为这样的课更有需求),然后业余时间写了单词书和写作书,成为畅销书,进而实现人生小财务自由后创业,搞比特币等。
这份功利心,应该是阶段的“产品化”,李笑来的书就是他的产品,摩西奶奶的画就是她的产品。
产品是技能的外化表现,是与外界的有效连接点。
这是一个“超级个体”崛起的时代。
普通人可以享受这个红利。
深耕一专多能,建立你自己的品牌,打造自己的产品(作品)。
02 qlib的封装
类似bigquant的可视化(可视化背后其实是一个个模块化的函数),
从数据准备的角度,一开始我们可以简化并统一默认值:
默认使用A股沪深300指数的成份股,它们是A股市值最大的300支股票,代表了中国经济的基本盘,市值较大,也不太会受到 *** 纵。
另外时间段就是2010年开始,把数据划分成三段:
2010-2014作为数据集,2015-2016作为校验集,2017-2022用来回测。
我们需要的唯一输入变量就是因子集:
参考如下bigquant用的示例:
一个有意思的教训(这里多一个“,”,会把features由list变成tuple:一定要注意)
总体封装之后,我们大部分需要定制的是feature部分,也就是传说中的“特征工程”,这里有太多方法和变数了,其实多数策略在研究的就是因子挖掘,因为机器学习中的重中之重:
from core.exp_mgr import ExpMgr from core.qlib_mgr import QlibMgr from core.data_mgr import DataMgr if __name__ == '__main__': mgr = QlibMgr() model = DataMgr().init_model() print(model) features = ['Ref($close, 5)', 'Ref($close, 10)', 'Ref($close, 20)', ] names = ['return_5', # 5日动量 'return_10', # 10日动量 'return_20'] # 20日动量 ds = mgr.prepare_dataset(features=features, names=names) print(ds.prepare('train')) print(ds.prepare('valid')) print(ds.prepare('test')) ExpMgr().run(model, ds)
模型就比较简单了:
来几个先看看:
线性模型:
def load_linear_model(): from qlib.contrib.model.linear import LinearModel model = LinearModel() return model
xgboost:
def load_xgboost(): from qlib.contrib.model.xgboost import XGBModel config = { 'eval_metric': 'rmse', 'colsample_bytree': 0.8879, 'eta': 0.0421, 'max_depth': 8, 'n_estimators': 647, 'subsample': 0.8789, 'nthread': 20 } model = XGBModel(**config)
return model
用数据集简单看了下结果,回测的效果在因子集一样的情况下,差别不大。
当前有一个原因是现在因子过于简单,所以模型之间能力差距显示不出来。
这属于机器学习的范畴,需要我们进一步展开探讨。
小结:
下一步深入:
表达式的使用,与因子构建;
多种模型选择使用,模型参数的优化;
回测结果分析与可视化。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)