Saya pernah menulis di blog saya bahawa terdapat masalah dengan sistem maklum balas pencipta, dan saya ingin tahu apa yang boleh dilakukan untuk mengatasi masalah ini.
https://www.fmz.com/bbs-topic/10581, sebagai pengguna lama yang membayar, jujurnya, tiada apa yang perlu diselesaikan.
Masalah ini akan menjadi lebih besar apabila ia melibatkan pengembalian pelbagai jenis, terutamanya apabila ia melibatkan perdagangan pasangan, dan mempertingkatkan arbitraj jenis.
Oleh kerana dalam sistem pengesanan, fungsi getticker memerlukan masa, ia bermakna bahawa jika terdapat lebih daripada beberapa puluh varieti, satu tinjauan akan mendapatkan harga untuk beberapa varieti, tetapi tidak untuk semua varieti.
Saya melihat forum dan dokumen, hampir tidak ada yang mengemukakan soalan ini.
Soalan, saya pelik.
Saya sedang mengkaji fungsi getrecords, ia tidak akan memakan masa dalam sistem pengesanan, jadi jika kita menggunakan re[re.length-1].Close untuk menggantikan ticker.Last, sebaliknya
Anda boleh mendapatkan harga dalam masa nyata untuk pelbagai jenis, tanpa kehilangan masa dan tanpa kesilapan.
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)
}
}
实盘级别回测,耗时很短。模拟级别回测因为tick是模拟生成的,不同品种可能一个周期内生成的tick数量并不同,所以一轮时间间隔可能会有增大的情况。
mt4或者聚宽等平台,不存在这个耗时问题,按道理说,发明者跟他们的原理是一样的。问题,在于GetRecords不耗时,但是GetTicker耗时,实在是有点难理解。我现在只要是品种多了,就不用GetTicker了,而用Records代替,误差反而小。在这里分享给大家,避免回测错误。
谢谢你的回答。我的确只是做了模拟级别的回测,没有做实盘级别的。实盘级别,数据太大了,对于几十个品种的策略而言,别说ticker级别的数据,就是1分钟甚至5分钟的k线数据,都无法获取,根本无法回测,会提示内存错误,之前我有发帖求助,尚未解决。
- 1


