在程序化交易策略中,有一类策略是始终都是持仓状态的,不是持有多单、就是持有空单。该类策略的特点是,可以通过不断地试错,在趋势行情的早期就入场,在趋势行情发展的过程中始终持有正确的仓位,但是在震荡行情中,容易出现两头不断止损的情况。控制好策略在震荡行情中的亏损,并让策略在趋势行情中的利润尽情奔跑,是程序化交易策略设计的主要思想之一。
笔者在本文中和大家分享一个趋势型的非多即空策略,策略的主体思路是,计算出当前价格和N周期前的价格差值,根据差值的变化判断当前的多空方向,非多即空,策略实时在市。
为了测试结果尽量地接近实盘交易,我们把手续费设置为交易所手续费的1.5倍,开仓和平仓各加1个最小变动价位的滑点,测试的品种是所有活跃的国内商品期货指数合约,每个品种分配初始30万本金,每次开仓的手数按照10万资金的3倍杠杆计算,以下是在日线级别的初步测试结果。


从初步测试的资金曲线和数据来看,表现良好,在全品种测试中,除了2009年略有亏损以外,其余每年都是盈利的。胜率为45.64%,盈亏比为1.79,是比较典型的趋势跟踪策略。
以下是该策略近期在部分品种指数合约日线上的开仓信号图,红色部分代表持有多单,绿色部分代表持有空单。

该策略从5月19日至11月29日在螺纹钢上,较好地抓住了1波较大的上涨行情,经过一次做空被小幅止损后,最近一次是在11月13日开多,目前持有多单。

该策略从4月12日至11月29日在焦炭上,较好地抓住了2波较大的下跌行情,和1波较大的上涨行情,最近一次是在11月20日开多,目前持有多单。

该策略从7月5日至11月29日在玻璃上,较好地抓住了1波较大的上涨行情,和1波较大的下跌行情,最近一次是在11月6日开多,目前持有多单。

该策略从2月16日至11月29日在甲醇上,较好地抓住了1波较大的下跌行情,和1波较大的上涨行情,最近一次是在11月17日开多,目前持有多单。

该策略从5月15日至11月29日在PVC上,较好地抓住了1波较大的上涨行情,和1波较大的下跌行情,最近一次是在11月22日开多,目前持有多单。

该策略从2月6日至11月29日在橡胶上,较好地抓住了2波较大的下跌行情,和1波较大的上涨行情,最近一次是在11月20日开多,目前持有多单。
总结:非多即空的策略,可以通过不断地试错,在趋势行情的早期就入场,在趋势行情发展的过程中始终持有正确的仓位,但是在震荡行情中,容易出现两头不断止损的情况。该策略和依据经典指标来判断趋势的策略相比,有一定的差异和互补性,通常能在行情启动的早期入场,并且能在行情发生大幅反转的早期,及早止盈平仓,从而较少出现利润大幅度回吐的现象。
笔者水平有限,本文仅供程序化初学者或想学习程序化的交易者参考,部分观念可能带有一定的主观性和局限性,如果有不同意见或其他疑问,或者想要了解程序化的哪一块内容,欢迎大家在文章下方留言,笔者会尽可能地为大家解答。
感兴趣的读者,请扫描下方二维码,关注“策略源码”微信公众号,在公众号中直接文字回复“领取源码”,根据提示添加“七禾源码”小编微信,即可免费领取文章中金字塔版本的策略源码,以及领取更多其他策略源码和加入程序化学习交流群。

七禾网www.7hcn.com研究中心研究员 傅旭鹏
风险提示:投资有风险,本报告仅是个人观点,仅供参考,不构成投资建议。
七禾网研究中心合作、咨询电话:0571-88212938