金叉死叉策略,为什么不出现交易信号,哪里写错了吗,请帮看下,谢谢
Params //此处添加参数 Vars //此处添加变量 Series<Numeric> MID; Series<Numeric> DKX; Series<Numeric> MADKX; Series<Numeric> DKXII; Bool longCondition; Bool shortCondition; Numeric lot(1); Defs //此处添加公式函数 Events //此处实现事件函数 //初始化事件函数,策略运行期间,首先运行且只有一次 OnInit() { } //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 OnBar(ArrayRef<Integer> indexs) { // 实时计算指标 MID = (Open+High+Low+Close*3)/6; DKX = XAverage(MID,20); MADKX = XAverage(DKX,10); DKXII = XAverage(MID,55); PlotNumeric("fast",DKX,DKX,iif(DKX>MADKX,red,iif(DKX<MADKX,green,white))); PlotNumeric("slow",MADKX,MADKX,iif(DKX>MADKX,red,iif(DKX<MADKX,green,white))); PlotNumeric("long",DKXII,DKXII,iif(DKXII>DKXII[1],Magenta,white)); } OnBarClose(ArrayRef<Integer> indexs) { //实时计算指标 longCondition = DKX>MADKX AND DKX[1]<=MADKX[1]; shortCondition = DKX<MADKX AND DKX[1]>=MADKX[1]; } OnBarOpen(ArrayRef<Integer> indexs) { if(MarketPosition==0) { //开仓做多 if(longCondition==True){ Buy(lot,Open); Commentary("初始多:"+Text(Open)); } //开仓做空 if(shortCondition==True){ SellShort(lot,Open); Commentary("初始空:"+Text(Open)); } } //平仓做多 if(MarketPosition==1 And shortCondition==True) { Sell(lot,Open); SellShort(lot,Open); Commentary("多头平仓@"+Text(Open)); } //平仓做空 if(MarketPosition==-1 And longCondition==True){ BuyToCover(lot,Open); Buy(lot,Open); Commentary("空头平仓@"+Text(Open)); } }