注意:本模型源码用于文华财经赢智WH8软件。
|
M1:=10; M2:=20; N1:=20; N2:=30; N3:=50; N:=26; TR :=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); ATR :=MA(TR,N); //ATR指标 TC..INTPART((MONEYTOT*0.02/(UNIT*ATR))); //根据权益的2%计算下单手数,本人回测用的50资金,4个滑点。 MA1:MA(C,M1);//定义M1周期均线 MA2:MA(C,M2);//定义M2周期均线 TMP1:=CROSS(MA1,MA2);//两条均线金叉 TMP2:=CROSS(MA2,MA1);//两条均线死叉 L1:IFELSE(BARSSK>0,MIN(SKPRICE,REF(LLV(L,BARSSK),1)),SKPRICE);//如果是卖开仓后的K线那么L1取卖开信号价和卖开后的最低价的最小者卖开当根直接取卖开价 H1:IFELSE(BARSBK>0,MAX(BKPRICE,REF(HHV(H,BARSBK),1)),BKPRICE);//如果是买开仓后K线那么H1取买开信号价和买开后的最高价的最小者买开当根直接取买开价 SKP1:VALUEWHEN(CROSS(SKVOL,0.5),REF(SKPRICE,1)),COLORYELLOW;//当首次卖开仓时,SKP1取一个周期前的卖开信号价,黄色显示 BKP1:VALUEWHEN(CROSS(BKVOL,0.5),REF(BKPRICE,1)),COLORYELLOW;//当首次买开仓时,BKP1取一个周期前的买开信号价,黄色显示 S1:SKP1*(1+N1/1000); S2:SKP1*(1-N2/1000); S3:L1*(1+N3/1000); SS1:BKP1*(1-N1/1000); SS2:BKP1*(1+N2/1000); SS3:H1*(1-N3/1000);//以上6句只是加减乘除运算 SS:IFELSE(L1<=S2&&S3>SKP1,SKP1,IFELSE(SKP1>=S3,S3,S1));//如果L1小于等于S2并且S3大于等于SKP1那么就取SKP1如果SKP1大于等于S3那么就取S3,否则取S1 SSS:IFELSE(H1>=SS2&&SS3<BKP1,BKP1,IFELSE(BKP1<=SS3,SS3,SS1));//原理同上,只是用最高点H1做判断的 REF(TMP1,1)&&BKVOL=0,BK(TC);//一个周期前满足TMP1条件并且当前多头模组持仓为0,那么买开LOT手多单 REF(MA2<MA1,1)&&BKVOL>0&&H>H1,BK(TC);//一个周期前满足MA2小于MA1并且多头持仓大于0并且H大于H1,买开LOT手多单 REF(TMP2,1)&&SKVOL=0,SK(TC);//一个周期前满足TMP2条件并且当前空头模组持仓为0,那么卖开LOT手多单 REF(MA2>MA1,1)&&SKVOL>0&&L<L1,SK(TC);//一个周期前满足MA2大于MA1并且空头持仓大于0并且L小于L1,卖开LOT手空单 BARSSK>0&&H>=SS&&SKVOL>0,BP(SKVOL);//卖开后满足H大于等于SS并且有空头持仓情况下,全平 BARSBK>0&&L<=SSS&&BKVOL>0,SP(BKVOL);//卖开后满足L小于等于SSS并且有多头持仓情况下,全平 |



| 友情提示:本策略仅作为知识分享,供交流学习使用,不构成任何投资建议,不作为投资依据。 |

评论(0)