rollover 被 自动换仓代码干扰

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

这行代码会影响正常的 rollover数据


需求:订阅多周期,一个复权,一个不复权,为了都得到真实价格,所以需要用到rollover

但加入自动换仓这行代码后,不复权的rollover数据就不对了

这个算bug吗,能修吗?

或者我的用法不对,该如何正确使用


自动换仓
自动换仓
自动换仓 AddDataFlag(Enum_Data_AutoSwapPosition());//设置自动换仓
主力合约自动换仓
程序中有自动移仓换 月
设置自动换仓及忽略换仓信号计算后 胜率不太对
请问老师换月前一日如何设置自动平仓,且换月后不再自动移仓,新合约满足条件再自动开仓
建议TB老师做一期系统讲解实盘自动移仓换月的视频或文档
关于自动换月信号,换月后新开仓手数问题
移仓换月

不是,这个东西本来是给后复权用的,你这里前复权......我也不知道会发生什么

你既然是自动化模型为什么要用前复权呢

改成后复权也是不对的

测试代码:

Events
    
    OnInit()
    {

        SubscribeBar(Symbol, "1h", BeginDateTime);

//        data0.AddDataFlag(Enum_Data_RolloverForWard());
        data0.AddDataFlag(Enum_Data_RolloverBackWard()); //改成后复权


        Range[0:DataCount - 1]
        {
                AddDataFlag(Enum_Data_AutoSwapPosition());    //设置自动换仓

        }
    }
    
    OnBar(ArrayRef<Integer> indexes)
    {
        range[0:DataSourceSize - 1]
        {
            Commentary("Rollover=" + text(Rollover));

        }
    
    }
    

订阅888

只对data0做了复权,data1没动,且系统没有专门设置不复权的代码

那不设置就是默认不复权

加载公式后,在K上打开策略单元设置,也能看到两个数据源的复权是不一样的

那么rollover在两个数据源上是不一样的


但实际执行结果就是,有了“自动换仓”后,rollover就变成一样的了...

明白了你的意思了,恭喜你发现了华点

研发的反馈是,判断是否自动换仓,是需要引用rollover数据的,换句话说,系统判断是否出现自动换仓也是依靠rollover是否变化来判断的。

引用这个数据前可以先判断一下本图层是否后复权

难道是我对“自动换仓”这个代码的使用理解有误

我理解的“Enum_Data_AutoSwapPosition()”是用来给系统回测做标识

即:在这里自动切换但盈亏比例前后一起算,不是分开算。

额,不确定这个表述是否准确,但我理解他只是影响策略报告的盈亏次数统计数,不影响实际交易的数据。


而如果加了这行代码 ,影响了rollover,那么在写策略的时候,我要计算出准确的价格写到buy sell,就成了一个薛定谔的事情。这只是其一

还会在复权的数据源上用rollover算真实的数据算出一些指标和阈值,又不对了


不是,你引用了自动换仓后,图上会额外标记出平仓和开仓信号的。为了标记这个信号,需要确认是哪根bar,这里的逻辑就需要rollover判断了

你可以用dataflag查询行情标志,查查里面是否有复权标记

我要被绕晕了

研发这个意思 是围绕,“自动换仓”信号,是由rollover决定的

我反馈的是意思,“自动换仓”信号把rollover数据破坏了 ,导致代码用到rollover数值时计算的结果是错的


那有一种可能导致的分歧:不是“自动换仓”信号破坏的rollover数据

但我只测出这个


所以我重新问,如果我既要用““自动换仓”信号”,又要用rollover获得正确的数值,该怎么弄

又学会新东西了 ,原来bithas是这么用的呀

您看我用这个BitHas判断后commentary的东西,是不是离谱了

判断出不复权,但是rollover却不等于1

晕了?判断一下是不是复权,如果复权就用rollover,不复权就用1不就行了么


哦 您是给的实用方案哦 我以为是在解释这个没问题...

好的 先这么用

我刚刚想到一个问题

如果是自动换仓必须要用rollover ,那么不复权会不会不自动换仓

加载公式看看,也还是会换仓

然后我好像理解您在说什么了


您是说:

研发的意思是,自动换仓必须依赖rollover这个值

所以,一旦设置了自动换仓,无论是否复权,rollover就必须随换合约变化

所以,这不是bug,是底层依赖关系,不能改


我理解对吧

理论上

必然影响

啊 为什么呀