| layout | default |
|---|
论文: https://xuehongyan.oss-cn-beijing.aliyuncs.com/kdd23_alpha_mining.pdf
github:https://github.com/RL-MLDM/alphagen
大概是将因子表达式用逆波兰表示,然后将找因子变成一个找seque的问题,通过定义各种简单算子为单个动作,进行强化学习建模。方法是ppo截断。
看方法论部分应该挺好理解,代码工程量比较大,数据接口和数据处理部分比较复杂,所以决定不如直接重写,数据用蔷薇自己的。
简易版autogen大致思路:
1. data_api.py
2. env.py: 继承gym库,如果有的话,
3. ppo方法,如果有stable-baselines3的ppo就用它,没有就自己写一个ppo,(ppo截断)
4. 算子实现:这个可以直接抄autogen的
5. train.py:直接抄自己以前代码
在期货市场,尤其是大宗上因为动量存在,可以试试海龟交易法, 参考:https://www.myquant.cn/docs/python_strategyies/110
做日频的,先在聚宽上进行回测,可以盈利后可以实盘手动调仓实现,顺便练交易纪律。
- 准则1:根据计划进行交易,并严格遵守计划。
- 准则2:顺势交易,“趋势是你的朋友”。
- 准则3:在许可的范围内,尽可能采用止损单。所以,在建立一个头寸时,应该递入第二张交易指令,在止损价位上了结你的头寸。
- 准则4:一旦心存怀疑,立即出场!
- 准则5:务必要有耐心,不可过度扩张交易。任何市场每年通常都有3~5个交易良机,包括个股在内。
- 准则6:迅速认赔,让获利头寸持续发展
- 准则7:不可让获利头寸演变为亏损(或者,尽可能持有必然获利的头寸)。我建议每当风险/回报比率变成1:2时,你应该将止损点(或心理出场点)调整至成本之上,而持有必然获利的头寸。
- 准则8:在弱势中买进,在强势中卖出。
- 准则10:不可摊平亏损——亏损头寸不可加码。这个策略与摊平亏损之间的差异在于你有一套交易计划,并设定市场证明你判断错误的止损点。在计划中,你将评估每天的反弹幅度以及反弹的天数。在交易之初,你不仅已经限定了反弹的天数,而且还设定了认赔的出场价位。
- 准则11:不可仅因价格偏低而买进,不可仅因价格偏高而卖出。不可以存在这种心理:“这已经是历史低价,它不可能再跌了。”或“这已经不可能再涨了,我必须卖出!”除非你见到趋势发生变动的征兆,否则趋势持续发展的机会较高。
- 准则12:只在流动性高的市场中交易
目前已经重现了逆波兰表达式的生成和解析,以及环境的框架。
它的四个policynet写的是比较规范的,可以学一下。 正余弦位置编码, 一种绝对位置编码方法。