Il y a un problème avec le système de rétroaction de l'inventeur, j'ai posé une question, mais il n'y a pas de réponse.
Pour être honnête, en tant qu'ancien utilisateur payant, il n'y a rien de plus à faire pour résoudre le problème.
Ce problème est amplifié par la multiplication des arbitrages de variétés, en particulier dans les transactions de couplage.
Parce que dans le système de suivi, la fonction getticker prend du temps, cela signifie qu'une enquête peut obtenir le prix de plusieurs variétés, mais pas de toutes les variétés.
Je n'ai pas vu de documentation sur le sujet, mais j'ai regardé des forums et j'ai vu que presque personne n'a proposé de faire une telle chose.
Question: Je suis étrange.
J'ai travaillé sur cette fonction getrecords, qui ne prend pas de temps dans le système de suivi, donc, si nous utilisons re[re.length-1].Close est utilisé à la place de ticker.Last.
Vous pouvez obtenir des offres en temps réel sur plusieurs variétés, sans perdre de temps et sans erreur.
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


