指数与期货价格共同联动的问题

先说一下策略的思路:在现货指数突破某个价位时,对应的期货实时发单,下面是核心代码:

    var

              Global Numeric BuyLine; //全局变量,触发的临界值,用现货指数计算

    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:0]  //现货指数图层

        {

         ...........................此处省略代码

             BuyLine = Open[0] + Ks_temp*R

        }

        Range[2:2] //期货指数图层

        {

           If(data0.High > BuyLine and MarketPosition==0) 

            {

                    Buy(lot,max(open,buyline));//我在此处假设期货的价格与现货不会有太大的升贴水,让期货以buyline的价格买入。

                    //Commentary(\"RealOpen=\" + Text(RealOpen) + \"  Buyline=\" + Text(BuyLine));

                    data1.PlotString(\"Buy\",\"多\",low,red);

            }

        }

回到策略的思路:在现货指数突破某个价位时,对应的期货实时发单。

我假设期货的价格与现货不会有太大的升贴水,当现货价格突破buyline时,因为期货价格无法确定,所以让期货以buyline的价格买入进行回测。

但回测时发现,由于后复权的原因,导致期货的open价格总是大于buyline,这样max(open,buyline)执行的结果就是总是以期货K线的open价格买入,而不是突破价,这就导致了偷价情况的发生,回测结果严重偏高!

该怎么实现较真实的回测效果呢,求各位老师指导!

联动的问题
光标联动
如何实现与本地程序联动?紧急!
指数合约与连续合约的定义?
分类指数数据的问题
指数编制规则与传统不一致
如何获取实时成交量或成交额对应的期货价格
TB3能否在真实账户持仓与K线图表联动时画出实时持仓价格线以便于做风控?
指数与连续合约回测比对
策略联动

现货指数是什么东西?TB里没有提供这个东西吧?后复权也只是针对888,主力连续指数才有的,现货指数跟后复权又有什么关系?

现货指数,比如说沪深300指数000300,对应的期货主连是if888。

如果你是看沪深300作为条件 然后交易期货主连映射 那为什么期货主连要复权?

“如果你是看沪深300作为条件 然后交易期货主连映射”这正是我想实现的效果,图层0、1是指数,图层2是期货主连。

“为什么期货主连要复权?”老师的意思是说“ AddDataFlag(Enum_Data_RolloverBackWard());    //设置后复权”这个代码只需要在range[0:1]图层设置即可?