1. 期货交易很多人选择日内交易策略。这类交易策略最大的优势是“日结”。笔者也是比较喜欢这种交易方式,原因是期货商品不像是股票及其他连续性交易的品种,存在合约和主力之间的关系;有了解期货的朋友知道,期货是一张一张的合同(合约/契约)具有存续期,不像是股票基本上不摘牌的情况下,从股票上市第一天到现在都是连续的交易轨迹。正是由于这种特性,很多的CTA交易测试运用主力连续(TB代码888类,MC代码Hot类)和指数(TB代码000类,MC代码000类),但这是认为的一种(强而为之)的方式,其这类连续性的数据表示方式在实际分析当中会大打折扣。比如用000指数类分析商品得到一个比较好的曲线,但是存在换月时间节点的问题,新合约入场,旧合约退场,这是可能存在巨大的价格偏差,因此在很多CTA策略绩效当中这点是反应不出来的,这就形成了“看上去很美的”情况。量化分析切记一点:分析的数据、得到的绩效、下单的模式等等一定要结合实际情况分析,一定要严谨和缜密。
2. 日内交易的优势就是没有换约的烦恼(当日也有其他的劣势),从这一点上来说具有实际交易情况和数据分析结果及其得到的绩效比较贴近的结果。也就是一句话:比较省心。但是比CTA策略的设计更难,需要更加的精细。
3. 日内交易的策略很多,比如R-Breaker,dual thrust等到经典策略。比如R-Breaker策略的示意图如下:
策略的交易规则如下:
反转子策略表述如下:当日内最高价 High(today)超过观察卖出价 Ssetup 后, 盘中价格出现回落,且进一步跌破反转卖出价 Senter 构成的支撑线时,采取反转 策略,即在该点位开仓或反手(先平仓再反向开仓)做空,如图绿色箭头 S1 所示;
当日内最低价 Low(today)低于观察买入价 Bsetup 后,盘中价格出现反弹, 且进一步超过反转买入价 Benter 构成的阻力线时,采取反转策略,即在该点位反 开仓或反手做多,如图 绿色箭头 S2 所示。
趋势子策略表述如下:在空仓的情况下,如果盘中价格超过突破买入价 Bbreak,则采取趋势策略,即在该点位开仓做多,如图紫色箭头 B1 所示; 在空仓的情况下,如果盘中价格跌破突破卖出价 Sbreak,则采取趋势策略,即在 该点位开仓做空,如图紫色箭头 B2 所示。
3.1 进行样本内外的测试如下:
3.2 为什么在样本外会出现塌陷的问题?
我们单独拿出一幅最能反应这个问题的图来看一下
如图一所示,价格来回穿越价位导致当日不断开仓平仓的亏损状态。
4. 分析特征,笔者斗胆提出了一个假设:交易不光是交易的趋势或者反转,其实是交易的波动。波动分为:振幅(大小)、状态、波动值(正如信号学当中所表示的一个正弦波,有波长、波幅和频率等),可能下面的解释不太严谨,试着表示波动的特性:
A:同样一个波动:非常小的连续性波动也叫波动,大幅度的波动也叫波动,他们的不同也是振幅的不同。
B:具有大幅波动的是一种状态类别,具有小幅度波动的也是一种类别。
C:波动是有值的,有的值大,有的值小。
5. 引入波动的概念再去解释3.2这幅图的情况。这幅图正是由于波动过小导致的频繁开仓,也就是波动的状态属于小波动的状态、波动值过小、波动的振幅也过小。因此试着定义如下几个概念:
A:在一波趋势当中:
A1:第一种趋势是振幅很小,状态属于小波动,值也小(这类属于加速上涨的类型)
A2:第二种趋势是振幅很大,状态属于大波动,值也大(这类属于大震荡上涨的类型,很多局部高点回撤很大,很容易被震出来)
B:在一波盘整当中:
B1:第一种震荡振幅很小,状态属于小波动,值也较小(小盘整)
B2:第二种振幅很大,状态属于大波动,值也较大(大盘整,适用于回归操作)
6. 波动过滤
根据异方差有关研究可知,日收盘价的对数收益率时间序列可以用GARCH(1,1)模型来模拟,其方差方程是ARMA模型的形式,所以日波动率的平方有自回归项,也就是波动率具有聚集效应。根据这条已被证实的结论,猜测大的波动与大的波动聚集在一起,而小的波动与小的波动聚集在一起。
7.振幅过滤:
振幅定义:每个交易日的最高价-最低价 = 振幅。
8. 波动率过滤:
波动率 = 标准差。
9. 还是根据上一个交易日的振幅设置阈值,振幅低于阈值不交易,波动率小于阈值不交易。在观察两种状态的样本内外交易情况。
10. 因此用这样一个简单的波动率和振幅过滤后,过滤掉小的波动情况,从这里看具有一定的合理性。
11. 在设定止盈止损策略和最大亏损停止当日交易的策略,更加会提升交易的绩效。