基础数据回溯方式

1. Enum_DicFlag-基础数据回溯方式类型: 按Bar, 按时间有举例吗?是说按照k线的bar的时间去寻找对应基础数据的发布时间吗? 那介于两个发布时间之间, 取更旧的时间还是更新的时间? 按照时间回溯就是一行一行发布时间回溯吗?为什么他们两个的结果一模一样啊?根本没有任何区别。那区别是什么?

以上图为例

为什么他两个的结果一模一样啊?根本没有任何区别。那区别是什么?

Vars
    Dic<Array<String>> dicByTime("TB_ROLLOVER_v2", True, "rb888.SHFE");
    Dic<Array<String>> dicByBar("TB_ROLLOVER_v2", True, "rb888.SHFE");
    Integer limitCount(999);
    Global Integer id(0);

Events
    OnInit()
    {
        id = SubscribeBar("rb888.SHFE", "1d", 20200101, 20250101);
        Range[id:id]
        {
                SetDicFlag(dicByTime, Enum_DicFlag_BackTime);
                SetDicFlag(dicByBar, Enum_DicFlag_BackBar);
        }
    }

    OnBar(ArrayRef<Integer> indexs)
    {
      Range[id:id]
      {
          if(CurrentBar == limitCount - 1)
            {
                Integer i;
                For i = 0 To limitCount
                {
                    Print("dicByTime,time:" + Text(GetDicTime(dicByTime, i)) + ",value:" + TextArray(dicByTime[i]));
 
                    Print("dicByBar,time:" + Text(GetDicTime(dicByBar, i)) + ",value:" + TextArray(dicByBar[i]));
                }
            }
      }
    }
函数类型结果说明
Enum_DicFlag_BackBarInteger1(20)返回基础数据按Bar回溯类型枚举值,默认为按Bar回溯
Enum_DicFlag_BackTimeInteger2(21)返回基础数据按时间回溯类型枚举值

2. 发布时间和数据时间有什么区别?怎么都是一样的。什么时候不一样?

函数类型说明
Enum_DicFlag_VisitPubTimeInteger返回基础数据按发布时间访问类型枚举值,默认为按发布时间访问
Enum_DicFlag_VisitDataTimeInteger返回基础数据按数据时间访问类型枚举值

3.SetDicXXX,在策略研究、策略优化时不支持, 那优化怎么用发布时间回溯?

请问基础数据如何回溯?
基础数据如何按时间回溯
基础数据回溯的时间取值问题
求教关于基础数据的读取,与定义变量方式相等价的直接读取数据库的写法?
基础数据
基础数据问题
基础数据读写
基础数据问题
基础数据读取
基础数据错误太多

复权数据应该是没区别的

这个股票上,比如年报

举例年报发布可能是明年的3月,这个是发布时间

但是年报数据是去年的,这个是数据时间

老师看看我的其他问题,怎么样才能够既能方便地用[1]回溯,又可以加载主力的数据??Commentary("合约:"+TextArray(myPostionL)); //GetDicValue后的普通数组 不支持回溯, 只能通过改date+time获取之前的值,这样回溯很麻烦啊

      Commentary("合约:"+TextArray(member_long[0])); //回溯仅DIC类型才行,但是需要预定义标的

    //此处添加变量
    Dic<Array<Array<String>>> member_long("TB_MEMBER_positions_long");
    Array<Array<String>> myPostionL;
Events
    //此处实现事件函数
    
    //初始化事件函数,策略运行期间,首先运行且只有一次
    OnInit()
    {
        SetDicFlag(member_long, Enum_DicFlag_BackTime);
    }
    //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
    OnBar(ArrayRef<Integer> indexs)
    {
GetDicValue("TB_MEMBER_positions_long",RelativeSymbol(),date+time,myPostionL);
        Commentary("合约:"+TextArray(myPostionL)); //GetDicValue后的普通数组 不支持回溯, 只能通过改date+time获取之前的值
        Commentary("合约:"+TextArray(member_long[0])); //回溯仅DIC类型才行,但是需要预定义标的

那到底该怎么样才能够既能方便地用[1]回溯,又可以加载主力的数据??

       Commentary("合约:"+TextArray(myPostionL)); //GetDicValue后的普通数组 不支持回溯, 只能通过改date+time获取之前的值,这样回溯很麻烦啊

       Commentary("合约:"+TextArray(member_long[0])); //回溯仅DIC类型才行,但是需要预定义标的