期货软件TB系统源代码:恒温器系统策略
策略说明:
1.系统将当前价格和MA之差定义为DRD
2.计算RDV: N天DRD的加和除以DRD绝对值的加和
入场条件:
1.设置ETLong为入市阈值,如果RDV>ETLong,则入场做多
2.设置ETShort为入市阈值,如果RDV<ETShort,则入场做空
出场条件:
1.如果RDV下穿0, 多头平仓
2.如果RDV上穿0, 空头平仓
做多系统代码及解读如下:
Params
Numeric ETLong(5); //声明数值参数ETLong,初值5,设置做多参数。//
Numeric RMALen(15);//声明数值参数RMALen,初值15.//
Vars
NumericSeries RDV(0); //声明数值序列变量RDV,初值0,NDV和TDV的比值(全在均值之上100,全之下-100,围绕均线趋近0)。//
NumericSeries TDV(0); //声明数值序列变量TDV,初值0,收盘价与15周期均值的差值绝对值的合计。//
NumericSeries NDV(0); //声明数值序列变量NDV,初值0,收盘价与15周期均值的差值的合计。//
NumericSeries RMA(0); //声明数值序列变量RMA,初值0,即15周期均值。//
NumericSeries DRD(0); //声明数值序列变量DRD,初值0,即收盘价与15周期均值的差值 。//
Begin
If(!CallAuctionFilter()) Return;// 集合竞价和小节休息过滤。//
//初始设置。//
RMA = Average(Close, RMALen); //15周期均值计算。//
DRD = Close - RMA; // 收盘价与15周期均值的差值 。//
NDV = Summation(DRD, RMALen); //15周期的差值求和。//
TDV = Summation(Abs(DRD), RMALen); //15周期的差值绝对值,求和。//
If(TDV > 0)//假如TDV值大于0.//
RDV = 100 * NDV/TDV; //NDV和TDV的比值。//
//多头开仓。//
If (MarketPosition==0 And RDV[1] > ETLong And Vol > 0)//当前没有持仓,且前一个RDV[1]值大于5,且成交量大于0.//
Buy(0,Open);//开盘价买入。//
//多头平仓。//
If (MarketPosition==1 And BarsSinceEntry>0 And RDV[1]<0 And Vol > 0)//当前持有多单,且建仓数位大于0,且前一个RDV[1]小于0,且成交量大于0.//
Sell(0,Open);//平仓。//
End
做空代码及结果如下:
Params
Numeric ETShort(-5);
Numeric RMALen(15);
Vars
NumericSeries RDV(0);
NumericSeries TDV(0);
NumericSeries NDV(0);
NumericSeries RMA(0);
NumericSeries DRD(0);
Begin
If(!CallAuctionFilter()) Return;
RMA = Average(Close, RMALen);
DRD = Close - RMA;
NDV = Summation(DRD, RMALen);
TDV = Summation(Abs(DRD), RMALen);
If(TDV > 0)
RDV = 100 * NDV/TDV;
If(MarketPosition==0 And RDV[1] < ETShort And Vol > 0)
SellShort(0,Open);
If (MarketPosition==-1 And RDV[1] > 0 And Vol > 0)
BuyToCover(0,Open);
End
微信扫码二维码 “零佣金”期货开户