Type/to search
33
Follow
63
Followers
GetTicker 백테스팅에서 시간 소모적인 문제
Help
Created 2025-01-29 16:23:35  
 3
 785
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 函数 是不是存在什么偶然性设置?
Related Recommendations
Comment
All comments (3)

    您好,在模拟级别Tick模式下回测,行情数据是基于底层K线的价格框架生成的每个tick价格。当调用和行情有关的接口时,会推动当前时间在时间轴上移动(行情也随之变动),账户资产接口,持仓接口调用时,不会推动当前时间点在时间轴移动。

    2 years ago

    现在回测系统的逻辑是,两个品种在同一个时刻调取tick,相单于第一个品种调取完后,时间走一点,再获取第二个品种。对于多品种策略,品种越多,这种误差越大。我的理解对不对?

    2 years ago

    你说的,我理解。在回测时,如果同一个币种,前后两次调取,会耗时,这是没错的。 但是我现在不理解的是,现在是不同的币种,在同一个时刻调取,为什么要耗时呢? 我已经将延迟设置为0,那么这就是相当于是并发获取ticker,不应该耗时啊。

    2 years ago
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)