策略回测报告——动量策略

策略全称:简单动量策略
策略简称:动量策略
策略函数:signal_simple_mtm

一、 策略背景
动量指标(MTM)也称为动力指标(Momentum Index)。
在证券市场上有类似于物理学上的恒速原理的现象:如果股价的上涨(下跌)趋势在继续,则股价的上涨(下跌)速度会大体保持一致。
动量指标(MTM)正是从股票的恒速原理出发,考察股价的涨跌速度,以股价涨跌速度的变化分析股价趋势的指标。
信号构建方法1:
  1.MTM=当日收盘价-N日前收盘价
  2.MTMMA=MTM的M日移动平均
  3.参数N一般设置为12日参数M一般设置为6
应用法则
  1.MTM从下向上突破MTMMA,为短期买入信号。
  2.MTM从上向下跌破MTMMA,为短期卖出信号。
  3.股价在上涨行情中创出新高点,而MTM未能配合上升,出现背离,为卖出信号;股价在下跌行情中走出新低点,而MTM未能配合下降,出现背离,为买入信号。
  4.若股价与MTM在低位同步上升,显示短期将有反弹行情;若股价与MTM在高位同步下降,则显示短期可能出现股价回落。
  缺点:震荡趋势中,MTMMA附近开平仓太频繁

信号构建方法2:
1、MTM=(当日收盘价-N日前收盘价)/ N日前收盘价
2、上轨:p/100 , 下轨:-p/100
3、MTM突破上下轨开仓
信号构建方法3:
构建方法2基础上加个MTMMA作为中轨,平仓
缺点:多一个参数
信号构建方法4:
基于MTMMA构建子布林
1、MTM=(当日收盘价-N日前收盘价)/ N日前收盘价(注意:和构建方法1不同,这里是比例)
1.1 J神对MTM进行一次平滑得到mtm_mean,然后再计算median
2.MTMMA=MTM的M日移动平均(median)
3.计算std mtm到mtmma标准差
4、设置倍数(常数,或者自适应)
本质就是上涨速度(n天价格变动)大于一个值,认为可以开仓

二、 策略的逻辑和本质
1、策略为什么赚钱?
基础假设:速度会延续(趋势)
2、策略赚的是什么钱?
开仓信号出现后,close同向趋势延续的钱
3、在什么情况下会失效?
开仓信号出现后,持仓状态(MTM没有降到平仓位置),close持平或下降

N日前处于盘整(close差不多),近日处于突破后盘整(当日附近close差不多),也能保持一段时间开仓,但不盈利
N日前处于下跌(close下降),近日处于反转后盘整或小幅下跌,mtm也保持为正
N日前处于小幅上涨,近日处于盘整,会更快平仓
总之,动量策略适合突破后有延续性趋势的行情,震荡行情是失效的

3.1个别参数有限期失效
简单自适应动量策略(非布林上下轨)(伪自适应版)
注意:df.loc[df[‘mtm’] > df[‘up_p’]/100, ‘signal_long’] = 1
生成信号时,有个/100,这里相当于一个参数,没有完全自适应
但/100的效果还相当不错,对应简单动量策略的p值,是要比较小的,在比较小的p值上就开仓
与0做分界线比较,0做分界,无效开仓太多

spot:2017-08-17 04:00:00 至2021-08-31 23:55:00(全部)
para equity_curve test_buy_long_times test_sell_short_times 累计交易次数 年化收益 最大回撤 sharpe 最大回撤开始时间 最大回撤结束时间
37 [760] 798.652080 40.0 40.0 80.0 4.258945 -0.740367 5.752476 0.0 2021-07-16 08:00:00
8 [180] 416.679496 157.0 155.0 312.0 3.474211 -0.796166 4.363679 0.0 2021-06-03 20:00:00
38 [780] 330.673038 27.0 24.0 51.0 3.224525 -0.811912 3.971520 0.0 2021-07-22 08:00:00
spot:2017-08-17 04:00:00 至2020-08-31 23:55:00(魔2期标准)
para equity_curve test_buy_long_times test_sell_short_times 累计交易次数 年化收益 最大回撤 sharpe 最大回撤开始时间 最大回撤结束时间
37 [760] 72.090135 36.0 36.0 72.0 3.132348 -0.650742 4.813499 0.0 2019-08-28 20:00:00
4 [100] 72.195490 197.0 199.0 396.0 3.134350 -0.785001 3.992795 0.0 2018-01-29 00:00:00
38 [780] 44.879141 21.0 19.0 40.0 2.531257 -0.655567 3.861171 0.0 2019-08-28 20:00:00
8 [180] 20.382184 118.0 116.0 234.0 1.717915 -0.703183 2.443056 0.0 2017-11-14 04:00:00
2020-03-13 03:00:00 至 2021-09-04 23:55:00 (312后,近期)
para equity_curve test_buy_long_times test_sell_short_times 累计交易次数 年化收益 最大回撤 sharpe 最大回撤开始时间 最大回撤结束时间
8 [180] 36.612703 51.0 50.0 101.0 10.898383 -0.796166 13.688590 0.0 2021-06-03 20:00:00
16 [340] 23.956646 16.0 18.0 34.0 7.887684 -0.767430 10.278053 0.0 2021-08-01 16:00:00
14 [300] 22.028770 23.0 22.0 45.0 7.389336 -0.722400 10.228873 0.0 2021-05-23 20:00:00
三个时间段,180是穿越牛熊的参数

简单自适应动量策略(非布林上下轨)(真自适应版)
如果要自适应,就是一组样本里,比较贴近0值的数,这个数值
回测过程中发现用max描述,值太大,出信号太少
用min描述有负数,只能用在下轨
想把p自适应掉,选取mtm动量正值里最小的作为开多条件(反之负值里最大的为开空条件)
严格意义上来说,这里还不算完全自适应,还有个与0的比较,如果与1比较呢?


                
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

779醒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值