Bonjour, je suis le vent, bienvenue à l'aide de l'inventeur de la quantification, à partir d'aujourd'hui, j'ai commencé à écrire des articles pour les débutants afin de vous aider à entrer rapidement et à écrire vos propres stratégies.
Le style des articles est très minimaliste, j'essaie de faire en sorte que chaque petit article résolve un petit problème et qu'il soit accompagné d'un exemple complet et fonctionnel.
Si vous avez des questions, vous pouvez me contacter, je vais essayer de vous aider à résoudre certains problèmes, parce que je suis aussi au travail, le temps est tendu, je ne peux pas répondre à temps, je ne peux pas répondre à temps, je ne peux pas répondre à temps.
Je vous demande de comprendre.
Pour obtenir des données sur les lignes K, des amis dans le groupe me demandent souvent, et je vous donne ici un petit exemple simple pour vous faire comprendre que certaines plateformes d'échange fournissent des données sur les lignes K, (comme le bitcoin).
okcoin, pour une plateforme comme celle-ci, peut être directement obtenu, alors que la plupart des plateformes de trading ne fournissent pas de données de ligne K, dans ce cas, il faut collecter les lignes K elles-mêmes.
Remarque: dans l'environnement de test, il n'est pas nécessaire de collecter des lignes K, car l'inventeur quantifie les lignes K historiques fournies pour le test.
L'utilisation est principalement prise en compte, les inventors de la quantification des lignes K sont eux-mêmes collectés, en nombre et en précision, peut varier de façon subtile, donc dans le fonctionnement du disque dur, n'est pas fourni à l'utilisateur.
Attention: le nombre de lignes K collectées est de 1411 au maximum, puis 1441 lignes, et la suppression est la première pour éviter d'affecter les performances.
function onTick(exchange) {
var records = exchange.GetRecords();//搜集K线,最多可以搜集1411条
if (!records) {
return;
}
Log("当前搜集到的K(分钟)线数量",records.length);
}
function main() {
Log(exchange.GetName(), exchange.GetCurrency());
while (true) {//循环执行
onTick(exchange);
Sleep(10000);
}
}
- 我用这个代码在回测环境中发现收集来的K线历史数据和回测日志的图是不同的,K线数据基本上OPEN/HIGH/LOW/CLOSE有两个是相同的,而且变化明显小于日志的图。我只是在onTick的最后加了一行代码打印records的最后一个。
回测的时间选2015-08-10 17:10:24至2015-08-10 20:10:24,5分钟K线,火币BTC,实际上选其他时间段也有同样问题。请看17:55开始的3根K线,对应的打印如下:
{"Time":1439200500000,"Open":1649.44,"High":1649.443213,"Low":1649.44,"Close":1649.443213,"Volume":226.632}
{"Time":1439200800000,"Open":1645.52,"High":1645.52,"Low":1646.59212,"Close":1646.59212,"Volume":231.261}
{"Time":1439201100000,"Open":1643.88,"High":1643.884816,"Low":1643.88,"Close":1643.884816,"Volume":702.867}
有几个问题想请教一下。
2、楼主这里想说明的是,实盘环境下(无论是火币之类提供K线历史的还是其他不提供的)都要依靠我们自己的机器人收集K线数据,机器人最多会缓存1411条K线,是这样吗?
不好意思这么晚看到.. 如果交易所有提供API获取K线,托管者在实盘下面是不会自己收集的,直接获取交易所提供的K线,如果交易所不提供就自己收集, 只保存最近的1411条的, 模拟测试的话,tick级的数据是模拟的,跟实际有差别的.
- 1

