用后复权获取到的涨跌停价格不对
用文档模板代码封装涨跌停函数,主连后复权的IM888,获取到的涨跌停价格不对啊。是我哪里复权操作错误了?Vars Dic<Array<Numeric>> mysettleprice("TB_SettlePrice"); //结算价 Dic<Array<Numeric>> mypricelimit("TB_PriceLimit"); //停板比例 Numeric MyUpLimit; Numeric MyDnLimit;Defs //计算当日涨跌停价格 Numeric _DayPriceLimit(NumericRef UpLimit , NumericRef DnLimit) { Numeric MP=MinMove*pricescale; If(ExchangeCode=="CZCE") { UpLimit=RoundUp(mysettleprice[0][0]*(1+0.01*mypricelimit[0][0])/MP,0)*MP; DnLimit=RoundDown(mysettleprice[0][0]*(1-0.01*mypricelimit[0][0])/MP,0)*MP; }Else If(ExchangeCode=="DCE") { UpLimit=RoundDown(mysettleprice[0][0]*(1+0.01*mypricelimit[0][0])/MP,0)*MP; DnLimit=RoundUp(mysettleprice[0][0]*(1-0.01*mypricelimit[0][0])/MP,0)*MP; }Else If(ExchangeCode=="SHFE") { UpLimit=RoundDown(mysettleprice[0][0]*(1+0.01*mypricelimit[0][0])/MP,0)*MP; DnLimit=RoundDown(mysettleprice[0][0]*(1-0.01*mypricelimit[0][0])/MP,0)*MP; }Else If(ExchangeCode=="CFFEX") { UpLimit=RoundDown(mysettleprice[0][0]*(1+0.01*mypricelimit[0][0])/MP,0)*MP; DnLimit=RoundUp(mysettleprice[0][0]*(1-0.01*mypricelimit[0][0])/MP,0)*MP; } If(UpLimit<=DnLimit) Return 0; Return 1; }Events //此处实现事件函数 //初始化事件函数,策略运行期间,首先运行且只有一次 OnInit() { //=========数据源相关设置============== AddDataFlag(Enum_Data_RolloverBackWard()); //设置后复权 AddDataFlag(Enum_Data_RolloverRealPrice()); //设置映射真实价格 AddDataFlag(Enum_Data_AutoSwapPosition()); //设置自动换仓 AddDataFlag(Enum_Data_IgnoreSwapSignalCalc()); //设置忽略换仓信号计算 SetSwapPosVolType(2); //设置自动换仓量类:1=等市值; 2=等持仓 SetOrderMap2MainSymbol(); //设置委托映射到主力 } 调试输出的值不对啊,2024年10月8号,IM888 后复权涨停是 7528.8,但是如上代码调试显示的MyUpLimit是 6381.2 ,老师我哪里理解错误了,应该还原复权嘛?