为什么基础换月后数据和K线完全不一样?至少差了两个点。但是换月前就能对上。

after=7707=!=7705?  这个7707是哪来的?如果是在这个K线中途换月的话,为什么换月前的价格又是上一根收盘价?


//------------------------------------------------------------------------
// 简称: Trading_Range_Breakout_S
// 名称: 基于初始交易范围突破的思想来建立系统 做空
// 类别: 公式应用
// 类型: 内建应用
// 输出:
//------------------------------------------------------------------------
//------------------------------------------------------------------------
// 策略说明:
//			  用特定时间周期内的最高价位和最低价位计算交易范围,然后计算真实的波动范围和周期内的ATR对比,如果
//			  当前k线的波动范围比n*交易范围的值小,并且真实波动范围比ATR小,这就满足了前两个系统挂单的条件
//			 
// 入场条件:
//			1.7周期区间“空隙”之和 >7周期区间高度的2倍
//			  当前的k线比交易范围的最高值大, 而且如果当前k线的中间价格高于之前一根k线的最高值
//			  做多
//			2.7周期区间“空隙”之和 >7周期区间高度的2倍
//			  当前的k线比交易范围的最低值小, 而且如果当前k线的中间价格低于之前一根k线的最低值
//			  做空
// 出场条件: 
//			 1.初始止损
//			 2.跟踪止损(盈利峰值价回落ATR的一定倍数)	
//			 3.收盘价创7周期高点,且K线中点高于前K线最高价空头出场
//
//		 注: 当前策略仅为做空系统, 如需做多, 请参见CL_Trading_Range_Breakout_L
//----------------------------------------------------------------------//
Params
	Numeric RangeLen(7); //高低点周期
	Numeric RngPcnt(200); //周期区间高度倍数*100
	Numeric ATRs(8); //盈利峰值价回落ATR
	Numeric ATRLen(2);//盈利峰值价回落周期
Vars
	Dic<Array<String>> FeData("TB_ROLLOVER_v2");  Series<String>  roe;
	Series<Numeric> RangeH(0); 	//7周期高点
	Series<Numeric> RangeL(0); 	//7周期低点
	Series<Numeric> TRange(0); 	//7周期区间
	Series<Numeric> NoTrades(0); 	//记录7周期高低点分别与7周期内各K线最高最低值的距离之和
	Series<Numeric> ShortRisk(0); //初始止损价
	Series<Numeric> ShortLow(0);	//跟踪止盈价
	Series<Numeric> ATR;			//2周期ATR均值
	Series<Numeric> ATRMA;		//7周期ATR均值 
	Numeric value1;
	Series<Bool> Condition1;
	Series<Bool> Condition2;
	Series<Bool> Condition3;
	Series<Bool> Condition4;	
	
Events
	OnInit()
	{
		Range[0:DataCount-1]
		{
			//=========数据源相关设置==============
			//AddDataFlag(Enum_Data_RolloverBackWard());	//设置后复权

			AddDataFlag(Enum_Data_RolloverRealPrice());	//设置映射真实价格

			AddDataFlag(Enum_Data_AutoSwapPosition());	//设置自动换仓

			AddDataFlag(Enum_Data_IgnoreSwapSignalCalc());	//设置忽略换仓信号计算
		}
	}
	OnBar(ArrayRef<Integer> indexs)
	{
		
		Range[0:DataCount-1]
		{		
		//if(FeData[0][1]<>InvalidNumeric)    
        roe=FeData[0][1];     //ROE在当前BAR的序列数组的第13个元素    
		Commentary("roe="+(roe));//Text
		Commentary("after="+(FeData[0][2]));//Text
		//初始设置
		RangeH = Highest(High[1], RangeLen); PlotNumeric("RangeH", RangeH);
		RangeL = Lowest(Low[1], RangeLen);   PlotNumeric("RangeL", RangeL);
		TRange = RangeH - RangeL;           
		ATR = AvgTrueRange(ATRLen);         
		NoTrades = 0;           
		ATRMA=AvgTrueRange(RangeLen);        //7周期ATR均值 
		For value1 = 1 To RangeLen        //1-7循环
		{
			//If (High[value1] <= RangeH )  废话  
			NoTrades = NoTrades + (RangeH - High[value1]); //7周期高点与7周期内各K线最高值的距离之和
			//If (Low[value1] >= RangeL  ) 废话
			NoTrades = NoTrades + (Low[value1] - RangeL); //7周期低点与7周期内各K线最低值的距离之和
					}
		
		Condition1 = NoTrades>= TRange*(RngPcnt*0.01);//7周期区间“空隙”之和 >7周期区间高度的2倍
		Condition2 = TrueRange >ATRMA[1] ;                //当根K线ATR>前根7周期均值
		Condition3 = Close > Highest(High[1], RangeLen) And (High+Low)*0.5 >High[1];//收盘价创7周期高点,且K线中点高于前K线最高价
		Condition4 = Close < Lowest(Low[1], RangeLen) And (High+Low)*0.5 < Low[1]; //收盘价创7周期低点,且K线中点低于前K线最低价
		
		
		//空头入场
		If (Condition1[1] And Condition2[1] ) 
		{
			If (Condition4[1] And MarketPosition==0 And vol > 0)
			{
				SellShort(0,Open);
				ShortRisk = RangeH;		//记录初始止损价
				ShortLow = Low;			//记录跟踪止盈价
			}
		}
		
		
		
		//更新盈利峰值价
		If(MarketPosition == -1 And BarsSinceEntry > 0) ShortLow = Min(ShortLow,Low);
		//空头出场
		If(MarketPosition == -1 And BarsSinceEntry > 0 And Vol > 0) 
		{
			//收盘价创7周期高点且K线中点高于前K线最高价空头出场
			If(Condition3[1])
			{
				BuyToCover(0,Open);
			}
			//突破初始止损价空头出场
			If(High>=ShortRisk) 
			{
				BuyToCover(0,Max(Open,ShortRisk));
			}
			
			
			//盈利峰值价回落ATR一定倍数空头出场
			If(High>=ShortLow[1]+(ATRs*ATR[1]))
			{
				BuyToCover(0,Max(Open,ShortLow[1]+(ATRs*ATR[1])));
			}
		}
	}
}
//------------------------------------------------------------------------
// 编译版本	GS2014.10.25
// 版权所有	TradeBlazer Software 2003-2025
// 更改声明	TradeBlazer Software保留对TradeBlazer平
//			台每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------


请问老师换月前一日如何设置自动平仓,且换月后不再自动移仓,新合约满足条件再自动开仓
建仓次数CurrentEntries在换月后变为1
设置除权换月后当日换月,当日不能平仓,如何规避
基础数据
关于自动换月信号,换月后新开仓手数问题
换月换仓信号问题
除权换月影响函数
昨晚升级后策略研究读不到换月的基础数据
为什么换电脑安装系统后,回测的盈利就不一样了?
换月未生效问题

换月当然是按日的,不存在盘中换月

这个数据中心不是有说明吗?


所以7707是日线收盘价,这个数据中心可没说是日线