设置除权换月后当日换月,当日不能平仓,如何规避

//=========除权换月相关设置============== AddDataFlag(Enum_Data_RolloverBackWard()); //设置后复权 AddDataFlag(Enum_Data_RolloverRealPrice()); //设置映射真实价格 AddDataFlag(Enum_Data_AutoSwapPosition()); //设置自动换仓 AddDataFlag(Enum_Data_IgnoreSwapSignalCalc()); //设置忽略换仓信号计算同时又设置了当日如果有交易了,不能平仓, if( Date>LastEntryDate) //当日不能平仓那么除权换月当天,早上开盘就自动进行了换月,但当天又出现了交易信号,因为早盘有过交易了,不能再平仓操作,这个如何规避?

说的有道理,自己水平还没有到达,搞不定。这是简单四周交易策略,如何修改?Params Numeric length1(45); Numeric length2(45); Numeric lots(3); Vars Numeric highline; Numeric lowline;EventsOnInit(){ //=========除权换月相关设置============== AddDataFlag(Enum_Data_RolloverBackWard()); //设置后复权 AddDataFlag(Enum_Data_RolloverRealPrice()); //设置映射真实价格 AddDataFlag(Enum_Data_AutoSwapPosition()); //设置自动换仓 AddDataFlag(Enum_Data_IgnoreSwapSignalCalc()); //设置忽略换仓信号计算 } onBar(ArrayRef<Integer> indexs) { highline=Highest(High[1],length1); lowline=Lowest(Low[1],length2); PlotNumeric(\"highline\",highline); PlotNumeric(\"lowline\",lowline); If(CurrentBar >=0)// { If(MarketPosition<>1 And High>=highline) if( Date>LastEntryDate) //当日不能平仓 { Buy(lots,Max(Open,highline));//开多单 Return; } If(MarketPosition<>-1 And Low<=lowline) if( Date>LastEntryDate) //当日不能平仓 { SellShort(lots,Min(Open,lowline));//买入空单 Return; } } }

如果用了自动换月信号,那么开仓价格开仓日期开仓bar等相关数据就只能自己定义一个状态容器来记录了,系统函数不要用