33
Follow
63
Followers
Vấn đề tốn thời gian của GetTicker trong quá trình kiểm tra ngược
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
Inventor Quant Workflow FAQ (Continuously Updated)Financial Magic Zone Global KOL RecruitmentFAQ Summary (Updating...)PINE Language Introductory Tutorial of FMZ QuantPrimary Tutorial of Strategy Writing with FMZ Quant Trading Platform (Must Read)Getting Started with FMZ Quant Trading Platform (Must Read)
Comment
All comments (3)
您好,在模拟级别Tick模式下回测,行情数据是基于底层K线的价格框架生成的每个tick价格。当调用和行情有关的接口时,会推动当前时间在时间轴上移动(行情也随之变动),账户资产接口,持仓接口调用时,不会推动当前时间点在时间轴移动。
2 years ago
现在回测系统的逻辑是,两个品种在同一个时刻调取tick,相单于第一个品种调取完后,时间走一点,再获取第二个品种。对于多品种策略,品种越多,这种误差越大。我的理解对不对?
2 years ago
你说的,我理解。在回测时,如果同一个币种,前后两次调取,会耗时,这是没错的。 但是我现在不理解的是,现在是不同的币种,在同一个时刻调取,为什么要耗时呢? 我已经将延迟设置为0,那么这就是相当于是并发获取ticker,不应该耗时啊。
2 years ago
- 1

