SetBasePeriod() 影响 复权设置

SetBasePeriod() 设置的基础运行周期和订阅周期一致的时候

对图层单独设置的复权就失效了



以下是测试代码

    OnInit()
    {
    
    //        SubscribeBar(Symbol, "1d", BeginDateTime);
        SubscribeBar(Symbol, "1h", BeginDateTime);

        data0.AddDataFlag(Enum_Data_RolloverForWard());
        SetBasePeriod("1h");
    
        Range[0:DataCount - 1]
        {
    //            AddDataFlag(Enum_Data_AutoSwapPosition());    //设置自动换仓
    
        }
    }
    
    OnBar(ArrayRef<Integer> indexes)
    {
        range[0:DataSourceSize - 1]
        {
            Commentary("Rollover=" + text(Rollover));
    
        }
    
    }


后复权对日内交易的影响
公式里设置前复权
关于周期设置的影响
什么语句对应自动设置“不复权”??
SubscribeBar 后 如何设置复权 、分割方式?
关于setbaseperiod的几个疑问
关于1分钟回测数据的长度,和复权设置
关于SetBasePeriod(\\\"5m\\\")
股票,如何设置成“向前复权”
AddDataFlag设置后复权 是否对所有图层都有效?

失效是怎么个失效法啊

这个东西是设置基础运行颗粒度的

这个设置 有图层区分的

一般是每个图层都设置一样的颗粒度

如果不设置,需要多个图层除了周期参数不一样,其他参数,包括开始结束日期,是否复权,切割方式等全部一致才行

用了SetBasePeriod() 后,且set的基础运行周期和数据源小周期一致时

对图层单独设置的复权就失效了,

失效的体现:commentary出来的rollover数据变成了一致的

但他们不应该是一致的,因为同样的标的,不同的复权设置,rollover不应该一样


比如:data0——1d,复权

data1——15m,不复权

SetBasePeriod() 无论是“1h”还是“1m”,commentary出来的rollover都是正确值

只有在SetBasePeriod() 是“15m”时,才会不正确


如果说,SetBasePeriod() 会让数据源的复权方式强制一致

那么,又无法解释set的基础运行周期 与任意数据源不一致的时候,rollover又不受影响。

哦 您说 “这个设置 有图层区分的” ,我又忘了这茬了

试试这个代码:

Events
    
    OnInit()
    {
    
        SubscribeBar(Symbol, "1d", BeginDateTime);

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


        Range[0:DataCount - 1]
        {

                    SetBasePeriod("15m");

        }
    }
    
    OnBar(ArrayRef<Integer> indexes)
    {

        range[0:DataSourceSize - 1]
        {
            Commentary("Rollover=" + text(Rollover));
    
            if(BitHas(DataFlag, Enum_Data_RolloverForWard()))
                Commentary("行情标志:前复权" );
            else if(BitHas(DataFlag, Enum_Data_RolloverBackWard))
                Commentary("行情标志:后复权" );
            Else
                Commentary("行情标志:不复权" );   
            
           Commentary("最高价=" + text(high));
        }
    
    }

data0 加载 i9888,上下图层的合约和周期一致

基础运行周期均为 “15m”

出现的问题:

commentay出来的 上面复权,下面不复权

也就是说,如果我需要用到rollover的话,上面取rollover,下面直接取1

但是

您看价格

不复权的铁怎么会有四位数

我都是自己重构

这个怎么重构...

嘶 我还只能照着帮助文档画瓢  

自己写框架什么的 也遥远了....