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

今天的代码是独立的工程,与quantlab暂时未整合,下一步会考虑。

由于qlib最高仅支持python3.8,所以环境上与quantlab的3.9有区别。

另外,本次需要pytorch(cuda版本),stable-baseline3等重量级的框架,安装需要一点耐心加细心。

DeepAlphaGen是一个独立工程,环境是python3.8。

pytorch的cuda版本,需要根据你自己机器的环境而定。

1、代码复用了原作者的大量内容。

2、升级了版本,修复了跑不通的bug等。

3、数据我已经处理好了。——文件太大,通过群发给大家。

图片

图片

 

吾日三省吾身

什么是热爱?

在兴趣的基础上,意义很重要。热爱= 兴趣+热情+意义。

我们的好奇心,让我们对很多未知的事情,都有兴趣。比如科幻,比如历史,心理。

但光凭一腔热血,还不足以做出事情。

一个事情要“坚持”,是走不远的。

意义指什么呢?作用和价值?或者说经济学上的“效用”。——人的一生都在追求效用的最大化。——未必全是经济效用,心理的,精神层面的。

找到意义,就是找到某件事情对你而言的效用。这个说不清楚,事情就很难坚持。

比如学吉他,你的热情来自看了同学在台上的表演,特别好。一腔热血买了一把好琴,但学习的过程,爬格子,无聊,乏味且痛苦。

学习本身挺累的,但想到未来美好生活,对未知的渴求。这就是意义所在。

有一点特别重要,你期望一件事能给你带来名声,财富。也就是经济效用,但在执行过程中,没有反馈的时候,可能你就放弃了。

财富和吉他表演一样,都是一种结果状态。很多时候,我们是渴求结果,但不想付出过程,这怎么可能。

而且在过程之中,没有经济效用正反馈的条件下,你如何往前走,这需要意义来支撑。——阅读,我就是想了解这个主题。

董宇辉读书就是为了求知,但读书帮他成名,赚了很多钱。

一件事,如果你找到经济效用之外的意义,你仍然特别想去做,那你一定能做好,反过来,往往能带来财富和成功。

无论蔡磊是看论文,与科研团队沟通,还是直播带货,本身也是意义在支撑。——生命的意义,攻坚克难的意义。

DeepAlphaGen系列:

端到端因子挖掘框架:DeepAlphaGen:因子生成的强化学习Env Wrapper包装器实现细节

端到端因子挖掘框架:DeepAlphaGen:因子生成的强化学习Env搭建

原理比较简单,使用强化学习来生成“因子表达式”——逆波兰表达式。然后把因子组合在一起做优化,评价标准仍然是传统的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/103638
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

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

相关推荐

发表回复

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