一个交易策略的诞生(二):消失的艺术

本文讲述行情不好时从市场中消失的重要性, 所以 “消失的艺术” 意思是 the art of "be gone"(教你如何消失), 不是lost art(不复存在的艺术)。

接上一期研究《一个交易策略的诞生》

回顾上一期的研究:

✅ 使用个股自身的均线过滤
⬜️ 使用大盘指数的均线过滤
⬜️ 使用个股自身的MACD指标过滤
⬜️ 使用大盘指数的MACD指标过滤
⬜️ 使用个股自身的ADX指标过滤
⬜️ 使用大盘指数的ADX指标过滤

发现关于探测大趋势的指标选择上的研究才完成了1/6 。 没关系,这并不是重点,也不影响我们这一期的研究。

在上一期中 new-image---

发现胜率小于50%, 也就是说超过50%的交易是亏损的, 利润是由少数交易创造的。 如果我们能找到亏损的交易都集中在哪里并且在未来的交易中放弃它们,理应能提高整体收益。将交易分类:

✅ 牛市中追涨买入
✅ 牛市中低吸买入
✅ 熊市中追涨买入
✅ 熊市中低吸买入--预计失败
⬜️ 震荡市场中追涨买入
⬜️ 震荡市场低吸买入

研究看看它们的获利效果如何。

为什么是如此分类? 这是基于笔者的assumption,并没有什么经典的理论指引我们这么做。我们也可以做基于其它维度的分类分析,前提是得有足够时间。

使用沪深300指成分股研究

本次研究使用沪深300指成分股。

为什么选择沪深300指成分股?

因为沪深300前面有更权重的上证50,后面后更小市值的中证500, 甚至更更小的,不在知名指数中的小盘股。沪深300在安全的中间。

就像古人类或者其它生物族群迁徒时,如果你在队伍的中间,你的安全性会更高,因为如果前方是险路,在前头的人会先... ; 如果后面有猛兽尾随,后面的人会首先... 。 而你在中间,从中间开始遇袭的可能性小很多。

2018年中国A股遭到重创,中小创尤为严重,如果当时使用本策略交易,中证500的验证会首先失利并发出预警;如果未来出于什么原因权重首先失利...。 总之我们在中间。

牛市中追涨买入

代码省略,直接上jupyter notebook:

在新的窗口中打开

查看中证500版本

看! 获利颇丰,资金占用时间短。资产曲线横向延申就是从市场中消失的时间。

ps: jupyter notebook中使用的回测引擎叫做abupy,关于 abupy研究的环境的搭建,请参阅《以量化金融研究工具为例: Docker到底给开发人员/测试工程师/数据科学家带来了什么?》

牛市中低吸买入

代码省略,直接上jupyter notebook

在新的窗口中打开

查看中证500版本

和上面相比,留在市场的时间多一点,避免错过小型行情。从市场中消失的时间还是不少的。

熊市中追涨买入

在新的窗口中打开

要冒一定的风险, 但获利极少。 获利出现在牛市前夕。也许可以使用cci底背离抓住行情,但又避开长熊风险 <- 这点我们放到下一期研究。

熊市中低吸买入--预计失败

在新的窗口中打开

在熊市根据支撑位/支撑线右侧交易抄底就这个样了(如果是左侧交易可能更悲惨), 最终虽然也能小额获利,但是最大回撤太大了,很可能让人死在黎明前的黑暗。

震荡市场追涨买入

-- 未完成 --

震荡市场低吸买入

-- 未完成 --

将上面成果组合成一个策略

明白了吗? 在熊市中无论怎么努力都... 。 这时我们最好的选择是从市场中消失。

我们只保留牛市中的追涨和低买。 但是从上面的研究中看追涨和低买所使用的卖策参数又不一样:


 # 低吸时的卖策参数:
 'sell_thresholds_bear': 'post=1.0@72&post=1.0@-75&post=1.0@-116',
 'sell_thresholds_bull': 'post=0.3@115&post=0.3@72&post=1.0@-75&post=1.0@-116' 
 
 # 追涨时的卖策参数:
 'sell_thresholds_bear': 'post=0.6@115&post=1.0@72&post=1.0@-75&post=1.0@-116',
'sell_thresholds_bull':'post=0.3@150&post=0.3@115&post=1.0@72&post=1.0@-75&post=1.0@-116'

组合两个策略,最终结果:

在新的窗口中打开

你没看错,为沪深300指打造的交易策略在中证500指的获利居然比沪深300本身还要好,这是可以理解的,因为中证500成分股更多,策略更容易遇到适合交易的标的, 同时中证500小盘股居多,波动更大,获利更容易。

那么再进一步扩大到 中证500指 以外交易是否获利再进一步提升呢? 留意上面notebook中的 测试专用样本 这一部分,看起来不能。

如果本策略用于交易 沪深300指+中证500指 呢? 这个值得研究。 <- 可能是下期内容

补充:
认真看一下任意一个jupyter notebook的配置:

# 开启针对非集合竞价阶段的涨停,滑点买入价格以高概率在接近涨停的价格买入 
slippage.sbb.g_enable_limit_up = True 
# 将集合竞价阶段的涨停买入成功概率设置为0,如果设置为0.2即20%概率成功买入 
slippage.sbb.g_pre_limit_up_rate = 0 
# 开启针对非集合竞价阶段的跌停,滑点卖出价格以高概率在接近跌停的价格卖出 
slippage.ssb.g_enable_limit_down = True 
# 将集合竞价阶段的跌停卖出成功概率设置为0, 如果设置为0.2即20%概率成功卖出 
slippage.ssb.g_pre_limit_down_rate = 0

你就不会提醒我考虑开盘涨停无法买入,开盘跌停无法卖出的情况了。

总结

  • 熊市中怎么努力都很难获利。
  • 不要小视仓位管理,满仓带来的不可预测性: 可以收益很高,也可以破坏资产曲线。 <- 虽然这不是本次研究的主题。
  • 顶背离时逃顶和底背离时抄底值得研究。 <- 可能是下期内容。
  • 量化交易研究像是无境止探索,我们在做研究的过程中往往又会发现有更多的东西需要研究。
  • ps:谁知道当前行情是牛市还是熊市? 判断方法在jupyter notebook里面的策略参数说明中, 而且这个参数是公开的。

下下一期《一个交易策略的诞生(三)》预告:使用大盘走势(而不是个股自身)判别熊市/牛市

⬜️仅使用大盘走势
⬜️大盘走势和个股走势需要互相验证
⬜️大盘走势和个股走势需要互相验证, 除非历史显示它们总是负相关
⬜️主板、创业板走势需要互相验证(类似道氏理论的工业指数和铁路指数互相验证)

最后:
May the fortune be with you:
愿财富与你同在:
new-image---c3ct5