基于信号思路实现常见策略系列。
参考前文的backtrader信号交易机制,各个技术必须转化为[1,0,-1]的表达方式后(这里用1代表正数,-1代表负数),才能利用backtrader信号交易机制。
公式代码
由于其产生的信号,本身就是非正即负(或0),所以不需要特别处理。
信号策略研发
实例,抽象化,交易信号,bt代码
实例

交易思路:
点1:快均线由下至上穿过慢均线,说明行情由跌转涨,应该平空仓,开多仓
点2:快均线由上至下穿过慢均线,说明行情由涨转跌,应该平多仓,开空仓
双均线金叉买入(快线从下至上穿过慢线),死叉卖出(快线从上至下穿过慢线)。
抽象化和信号表达式

图中红色为多(1),蓝色为空(-1),采用蓝色代替绿色,考虑到部分人红绿色盲。
交易信号表达式
1 | open_singal=fast_ma-close_ma |
bt代码
1 | class DoubleMA(bt.Indicator): |
可视化和正确性验证

主图蓝线就是signal线(做了平移和缩放,否则主图上显示不明显(由于是diff,取值较小))
可见和2均线的交叉点对应,所以信号计算没问题。
回测
多头模式(longonly)
股票模式,只允许做多,不允许做空
1 | python ./signal_template.py --plot --main_signal_type longonly --main_signal DoubleMA --fromdate 2022-01-10 --todate 2023-01-01 |
回测结果:从5w到7.5w,收益率约50%
多空模式(longshort)
期货模式,既允许做多,也允许做空
1 | python ./signal_template.py --plot --main_signal_type longonly --main_signal DoubleMA --fromdate 2022-01-10 --todate 2023-01-01 |
回测结果:初始资金5w,期末资金9w,收益率约80%
总结
整个区间,趋势性较强,没有反复震荡导致频繁的亏损清仓+反向加仓等操作。