跨周期引用空头无效

请教,我下面这段代码哪里出错了???引用1图层的日周期,在5分钟0图层中,DayDIF<DayDEA,对多头有用,但对空头不起作用。在DayDIF>DayDEA时,依然开空信号。 Params //此处添加参数 Vars //此处添加变量 Series<Numeric> ATR; Series<Numeric> DIF; Series<Numeric> DEA; Series<Numeric> MACD; Series<Numeric> DMa1; Series<Numeric> DMa2; Series<Numeric> Ma1; Series<Numeric> Ma2; Series<Numeric> Ma3; Series<Numeric> Ma4; // Series<Numeric> DayDIF; Series<Numeric> DayDEA; // Series<Bool> TimePingCang1; Series<Bool> buy1; Series<Bool> Sell1; Series<Bool> Sell2; Series<Bool> SellShort1; Series<Bool> SellShort2; Series<Bool> SellShort3; Series<Bool> BuyToCover1; Series<Bool> BuyToCover2; Series<Bool> BuyToCover3; //Series<Bool> Defs //此处添加公式函数 Events //此处实现事件函数 //初始化事件函数,策略运行期间,首先运行且只有一次 OnInit() { } //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 OnBar(ArrayRef<Integer> indexs) { //0图层,计算及调用图层。 Range[0:DataCount-1] { //计算副图MACD和ATR数据。 ATR=AvgTrueRange(26); //真实波幅ATR DIF = XAverage(Close,12) - XAverage(Close,26) ; //快线 DIFF DEA = XAverage(DIF,9); //慢线 DEA MA1 = AverageFC(Close,5); MA2 = AverageFC(Close,10); MA3 = AverageFC(Close,20); DMA1 = AverageFC(Close,10); DMA2 = AverageFC(Close,30); //引用定义 DayDIF = data1.DIF; DayDEA = data1.DEA; PlotNumeric("DayDIF",DayDIF); PlotNumeric("DayDEA",DayDEA); } //引用主体 Range[1:DataCount-1] { DayDIF = DIF; DayDEA = DEA; } //交易部分 TimePingCang1 = (Time == 0.145000||Time == 0.225000); buy1 = DIF[1]>DEA[1]&&DayDIF[1]>DayDEA[1]; If((Time>=0.090500 And Time<=0.144500) || (Time>=0.210500 And Time<=0.224500)) { If(MarketPosition == 0 && (Buy1) && High[1] <> Low[1]) { Buy(0,Open); } } Sell1 = TimePingCang1[1]; Sell2 = CrossUnder(DayDIF[1],DayDEA[1]); If(Ma

全文如下: Params //此处添加参数 Vars //此处添加变量 Series<Numeric> ATR; Series<Numeric> DIF; Series<Numeric> DEA; Series<Numeric> MACD; Series<Numeric> DMa1; Series<Numeric> DMa2; Series<Numeric> Ma1; Series<Numeric> Ma2; Series<Numeric> Ma3; Series<Numeric> Ma4; // Series<Numeric> DayDIF; Series<Numeric> DayDEA; // Series<Bool> TimePingCang1; Series<Bool> buy1; Series<Bool> Sell1; Series<Bool> Sell2; Series<Bool> SellShort1; Series<Bool> SellShort2; Series<Bool> SellShort3; Series<Bool> BuyToCover1; Series<Bool> BuyToCover2; Series<Bool> BuyToCover3; //Series<Bool> Defs //此处添加公式函数 Events //此处实现事件函数 //初始化事件函数,策略运行期间,首先运行且只有一次 OnInit() { } //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 OnBar(ArrayRef<Integer> indexs) { //0图层,计算及调用图层。 Range[0:DataCount-1] { //计算副图MACD和ATR数据。 ATR=AvgTrueRange(26); //真实波幅ATR DIF = XAverage(Close,12) - XAverage(Close,26) ; //快线 DIFF DEA = XAverage(DIF,9); //慢线 DEA MA1 = AverageFC(Close,5); MA2 = AverageFC(Close,10); MA3 = AverageFC(Close,20); DMA1 = AverageFC(Close,10); DMA2 = AverageFC(Close,30); //引用定义 DayDIF = data1.DIF; DayDEA = data1.DEA; } //引用主体 Range[1:DataCount-1] { DayDIF = DIF; DayDEA = DEA; } Commentary("DayDIF=" + Text(DayDIF)); Commentary("DayDEA=" + Text(DayDEA)); /*PlotNumeric("DayDIF",DayDIF); PlotNumeric("DayDEA",DayDEA); PlotNumeric("DIF",DIF); PlotNumeric("DEA",DEA); */ //交易部分 TimePingCang1 = (Time == 0.145000||Time == 0.225000); buy1 = DIF[1]>DEA[1]&& DayDIF[1]>DayDEA[1]; If((Time>=0.090500 And Time<=0.144500) || (Time>=0.210500 And Time<=0.224500)) { If(MarketPosition == 0 && (Buy1) && High[1] <> Low[1]) { Buy(0,Open); } } Sell1 = TimePingCang1[1]; Sell2 = CrossUnder(DayDIF[1],DayDEA[1]); If(MarketPosition != 0 And ( Sell1 || Sell1) || High[1] == Low[1]) { Sell(0,Open); } //空头策略 SellShort1 = DIF[1]<DEA[1] && DayDIF[1]<DayDEA[1]; If((Time>=0.090500 And Time<=0.144500) || (Time>=0.210500 And Time<=0.224500)) { If(MarketPosition == 0 && (SellShort1 || High[1] <> Low[1])) { SellShort(0,Open); } } BuyToCover1 = TimePingCang1[1]; If(MarketPosition != 0 And (BuyToCover1 || High[1] == Low[1])) { BuyToCover(0,Open); } }

代码没贴全 建议单一变量一个个逐一输出观察