商品为rb2110,数据源0为5分钟周期,数据源1为1小时周期,在5分钟周期交易;1小时周期金叉开多、死叉开空。开空所在的1小时周期内如果出场则依旧以1小时周期的死叉条件进场,实测发现死叉若13:55出场,下一个1小时周期正好金叉,会发生闪烁;下面附图和策略代码
//------------------------------------------------------------------------
//1.5分钟周期
//2.60分钟周期
Params
Numeric fast_window(5);// 快速均线
Numeric slow_window(20);// 慢速均线
Vars
Natural Series<Numeric> fast_ma;
Natural Series<Numeric> slow_ma;
Events
OnBarOpen(ArrayRef<Integer> indexs){
Range[1:1]{
fast_ma=AverageFC(Close[1],fast_window);
slow_ma=AverageFC(Close[1],slow_window);
}
}
OnBar(ArrayRef<Integer> indexs){
Range[0:0]{
If(Data[1].CurrentBar>slow_window){
PlotNumeric("快线",Data[1].fast_ma,0,Yellow,0);
PlotNumeric("慢线",Data[1].slow_ma,0,Cyan,0);
If(MarketPosition==0){
If(Data[1].fast_ma>Data[1].slow_ma&&Data[1].fast_ma[1]<Data[1].slow_ma[1]){
Buy(1,Open);
}
If(Data[1].fast_ma<Data[1].slow_ma&&Data[1].fast_ma[1]>Data[1].slow_ma[1]){
SellShort(1,Open);
}
}Else If(MarketPosition==1&&BarsSinceEntry>4){
Sell(0,Open);
}Else If(MarketPosition==-1&&BarsSinceEntry>4){
BuyToCover(0,Open);
}
}
}
}
看代码好像看不出来哪里闪烁了 麻烦提供一下日志 如果自动运行发生闪烁了 日志里会提示的
在消息中心里,程序化交易的消息类型中有记录,没别的日志了,就是图里那根bar出的问题,感觉是1小时的指标没计算出来,5分钟的就开仓了,是不是的每个小时开始的5分钟只计算不交易,等下一个5分钟再交易