avatar of Han_nuo_ta Han_nuo_ta
关注 私信
33
关注
57
关注者

回测中,GetTicker耗时问题

创建于: 2025-01-29 16:23:35, 更新于:
comments   3
hits   320
    var time1 = new Date().getTime()

    for (var i = 0; i < trade_symbols.length; i++) {
        exchanges[i].IO("currency", trade_symbols[i].slice(10) + '_USDT');        // 设置交易对         
        exchanges[i].SetContractType("swap");
        var ticker = exchanges[i].GetTicker()
    }
    var time2 = new Date().getTime()

    Log('耗时2-1', time2 - time1);


    我设置了100个exchange,每个exchange匹配一个币种,币种信息储存在trade_symbols里面
    以上代码回测时,我已经将【延迟】设置为0,但是, time2 - time1耗时会根据底层k线的不同而不同,且没有规律,有随机性,有时候耗时长达十几分钟。但是我将第6行更换为:

    var account = exchanges[i].GetAccount();
     var pos = exchanges[i].GetPositions();

     逐个获取账户信息或者仓位,就不需要耗时,无论用什么底层k线都是0.

     发明者底层的逻辑上,GetTicker 函数 是不是存在什么偶然性设置?
相关推荐
全部留言
avatar of 发明者量化-小小梦
发明者量化-小小梦
您好,在模拟级别Tick模式下回测,行情数据是基于底层K线的价格框架生成的每个tick价格。当调用和行情有关的接口时,会推动当前时间在时间轴上移动(行情也随之变动),账户资产接口,持仓接口调用时,不会推动当前时间点在时间轴移动。
2025-02-01 12:55:20
avatar of Han_nuo_ta
Han_nuo_ta
现在回测系统的逻辑是,两个品种在同一个时刻调取tick,相单于第一个品种调取完后,时间走一点,再获取第二个品种。对于多品种策略,品种越多,这种误差越大。我的理解对不对?
2025-02-11 12:20:39
avatar of Han_nuo_ta
Han_nuo_ta
你说的,我理解。在回测时,如果同一个币种,前后两次调取,会耗时,这是没错的。 但是我现在不理解的是,现在是不同的币种,在同一个时刻调取,为什么要耗时呢? 我已经将延迟设置为0,那么这就是相当于是并发获取ticker,不应该耗时啊。
2025-02-11 12:15:35