今天的代码是独立的工程,与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
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!