端到端因子挖掘框架:DeepAlphaGen:已经可以挖掘因子

原理比较简单,使用强化学习来生成“因子表达式”——逆波兰表达式。然后把因子组合在一起做优化,评价标准仍然是传统的IC/IR这一套。

我们的基准是gplearn遗传算法挖因子。

Qlib加载数据,这里没有看出groupby(‘symbol’)

class Feature(Expression):
def __init__(self, feature: FeatureType) -> None:
self._feature = feature

def evaluate(self, data: StockData, period: slice = slice(0, 1)) -> Tensor:
assert period.step == 1 or period.step is None
if (period.start < -data.max_backtrack_days or
period.stop - 1 > data.max_future_days):
raise OutOfDataRangeError()
start = period.start + data.max_backtrack_days
stop = period.stop + data.max_backtrack_days + data.n_days - 1
return data.data[start:stop, int(self._feature), :]

def __str__(self) -> str: return '

无论是基于深度强化学习,还是gplearn遗传算法,只要是多标的,多个symbols同时计算,那么在进行表达式运算时,肯定要groupby symbol或者甚至groupby date。

否则rolling是有问题的。

目前的依赖包:torch的cuda版本是需要根据你本机的显卡的版本来确定的,我电脑上的驱动版本比较老,是10.2,因此只能安装较低版本的pytorch。

baostock==0.8.8
gym==0.26.2
matplotlib==3.3.4
numpy
pandas==1.2.4
pyqlib
#qlib==0.0.2.dev20
sb3_contrib==2.0.0
stable_baselines3==2.0.0
torch==1.10.2+cu102 --extra-index-url https://download.pytorch.org/whl/cu102
shimmy==1.1.0
fire
tqdm
loguru
requests
joblib
scipy
scikit-learn

经过一番折腾:

已经开始端对端挖因子了:

图片

吾日三省吾身

做一件事情,意义很重要。

工作也好,创业也罢。

有时候做一件事,就是纯粹为赚钱,比如年轻时候想赚快钱,合理合法,也没有什么问题。

比如当年那么多年靠SEO做外贸,其实主体工作就是满世界发垃圾链接,做排名。

只不过长期主义的事情,需要一个更大更持久的意义。

先辈们是有信仰,甚至不惜牺牲个人生命为代价,在追求一些东西。

意义,可以是利益,更多不是。

意义是个人赋予的。

达芬奇创造的意义,爱迪生发明的意义,对于未知的渴求,对世界的好奇心。

+ self._feature.name.lower()

@property
def is_featured(self): return True

无论是基于深度强化学习,还是gplearn遗传算法,只要是多标的,多个symbols同时计算,那么在进行表达式运算时,肯定要groupby symbol或者甚至groupby date。

否则rolling是有问题的。

目前的依赖包:torch的cuda版本是需要根据你本机的显卡的版本来确定的,我电脑上的驱动版本比较老,是10.2,因此只能安装较低版本的pytorch。


经过一番折腾:

已经开始端对端挖因子了:

图片

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/103639
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

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

相关推荐

发表回复

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