18.2 GEV策略与回测的MATLAB实现
基于以上分析,构建GEV策略, 然后进行基于策略的MATLAB回测。
18.2.1 策略准则
1. 入仓准则
入仓准则基于HittingProbability函数,假定概率P*作为信号概率,如果多头突破概率hitProbHigh≥P*且空头突破概率hitProbLow<P*,则在基期多头入市:如果多头突破概率hitProbHigh<P*且空头突破概率hitProbLow≥P*,则在基期空头入市;如果多头突破概率hitProbHigh≥P*且空头突破概率hitProbLow ≥P*,若hitProbHigb<hitProbLow则在基期空头入市,若hitProbHigb≥hitProbLow则基期多头入市;如果多头突破概率hitProbHigh<P*且空头突破概率hitProbLow<P*,则基期不入市。
2. 平仓准则
平仓基于两类准则:无止损准则与有止损准则。
1) 无止损准则
如果在基期多头入市,固定未来序列区间[2,T+l],随着时间的推移2,3,4,…,T+ l,如果某价格S1(2≤t≤T+l)率先突破目标价格KH(KH≤SI)区间[2,T+l] 内没有任何价格大于目标价格KH,则在末尾时刻T+l平仓,并计算单次回测回报。具体的MATLAB代码如下:

同理,如果在基期空头入市,固定未来序列区间[2,T+ l],随着时间的推移2,3,4,…,T+l,如果某价格S1(2≤t≤T+l) 率先突破目标价格KL(Sl≤KL),则立即在t期平仓;如果区间[2,T+ l]内没有任何价格小于目标价格KL,则在末尾时刻T+l平仓。具体的MATLAB代码如下:

2) 有止损准则
该准则需要设置止损价格,如果在基期多头入市且设基期价格为Sl,固定未来序列区间[2,T+l ],假设多头止损率Cstop<l,则多头止损价格为SIXCstop。
随着时间的推移2,3,4,… ,T+l,如果某价格S1(2≤t≤T+l)率先小于止损价格(且t期前没有突破目标价格KH) SlxCstop (St<S1xCStop),则在t期止损平仓; 如果某价格St(2≤t≤T+l )率先大于目标价格KH且并无止损( KH<St),则在t期平仓; 如果区间[2,T+l]内没有任何价格大于目标价格KH,且没有任何价格小于止损价格为S1 X CStop,则在末尾时刻T+l平仓。具体的MATLAB代码如下:


同理,如果在基期空头入市且设基期价格为S1,固定未来序列区间[2,T+1],假设空头止损率Pstop>1,则空头止损价格为S1 xPstop。
随着时间的推移2,3,4,… ,T+l,如果某价格St(2≤t≤T+ l)率先大于止损价格(且t期前没有突破目标价格KL) Sl xCstop(SlxPstop≤St)',则在t期止损平仓:如果某价格St(2≤t≤T+l) 率先小于目标价格KL且并无止损(St≤KL),则在t期平仓:如果区间[2,T+l] 内没有任何价格小于目标价格KL,且没有任何价格大于止损价格SlXPstop,则在末尾时刻T+l平仓。具体的MATLAB代码如下:


18.2.2 GEV策略构建
具体参数:历史区间MI,未来区间M2,多头目标价格率HitCall>l(则KH=SlxHitCall),空头目标价格率HitPut<l(则KL=SI xHitCall),信号概率HitP,多头止损率StopRatioCall<l和空头止损率StopRatioPut>1。
策略回测步骤如下。
(1) 入场:给定资产价格序列,从T=M1处开始,基于历史序列[(T-M1+1),T,将末尾价格ST作为基期价格,则多头目标价格和空头目标价格分别为KH=STxHitCall 与KL=STxHitCall,进而利用HittingProbability函数可得突破概率。将信号概率与突破概率的比较作为入仓准则,进而判断时刻T是否入仓。如果不满足入场条件,则历史序列向前推一步[(T-M1+2),T+l] ,进而判断T+l 时刻是否入仓,以此类推。如果在T期入场,则进入以下的平仓步骤。
(2) 平仓:如果在T期入场,则未来序列区间为[T十1,T+M2],无止损策略依赖CallNoStop和PutNoStop函数判断是否平仓,有止损策略依赖CallYesStop和PutYesStop函数判断是否平仓;如果在TOUT处平仓,则可以重新以历史序列[(Tour-Ml+1),TOUT] 来判断入场条件,进而返回以上的入场步骤,以此类推。当序列数最后不足M2时, 停止回测。
具体的MATLAB回测代码实现(见GEVTrading.m) 如下:








下面列举一些回测的例子。
18.2.3 HS300回测



无止损的GEV策略HS300回测效果如图18-3和图18-4所示。
18.2.4 股指期货5分钟连续主力合约回测
基于股指期货5分钟连续主力收盘价进行回测,具体代码实现(见Main_IF5.m)如下:




无止损的GEV策略股指5分钟连续主力回测效果如图18-7和图18-8所示。





