Type/to search
33
Follow
63
Followers
多品种回测存在的一个小问题,以及解决方案
FAQ
Created 2025-03-16 14:45:25  Updated 2025-03-16 21:06:36
 5
 895

发明者的回测系统存在一个问题,我曾经发帖咨询过,
https://www.fmz.com/bbs-topic/10581 ,作为一个付费老用户,说实话,并没还有从实质上解决问题。
涉及到多品种的回测,特别是配对交易,夸品种套利时,这个问题会被放大。
因为在回测系统中,getticker这个函数需要耗时,那么意味着,品种超过几十个时,一个轮询获取多个品种的价格,
会消耗大量的时间,有时候长达十几分钟甚至几十分钟,跟实际情况会完全脱节。我看了论坛和文档,几乎没有人提出这个
问题,我很奇怪。

我研究getrecords这个函数,它在回测系统中是不耗时的,所以,如果我们用re[re.length-1].Close来代替ticker.Last,反而
能同时获取多个品种的实时报价,没有耗时,没有误差。希望对大家有所帮助。

Related Recommendations
Comment
All comments (5)

    对于套利,高频类的策略,尽量用实盘级别。高频策略,对冲套利策略在模拟级别回测,可以用于参考宏观上的验证。

    a year ago
    javascript
    function main() { while (true) { var begin = new Date().getTime() exchanges[0].GetTicker("LTC_USDT") exchanges[0].GetTicker("BTC_USDT") exchanges[0].GetTicker("ETH_USDT") exchanges[1].GetTicker("LTC_USDT") exchanges[1].GetTicker("BTC_USDT") exchanges[1].GetTicker("ETH_USDT") var end = new Date().getTime() Log(end - begin) Sleep(1000) } }

    您好,现在回测系统支持直接指定品种信息。
    img

    实盘级别回测,耗时很短。模拟级别回测因为tick是模拟生成的,不同品种可能一个周期内生成的tick数量并不同,所以一轮时间间隔可能会有增大的情况。

    a year ago

    mt4或者聚宽等平台,不存在这个耗时问题,按道理说,发明者跟他们的原理是一样的。问题,在于GetRecords不耗时,但是GetTicker耗时,实在是有点难理解。我现在只要是品种多了,就不用GetTicker了,而用Records代替,误差反而小。在这里分享给大家,避免回测错误。

    a year ago

    谢谢你的回答。我的确只是做了模拟级别的回测,没有做实盘级别的。实盘级别,数据太大了,对于几十个品种的策略而言,别说ticker级别的数据,就是1分钟甚至5分钟的k线数据,都无法获取,根本无法回测,会提示内存错误,之前我有发帖求助,尚未解决。

    a year ago

    好的,感谢您提出建议和问题,回测系统这边会持续优化升级。

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