Hola, soy el viento frío, bienvenido a la Cuantificación de Inventores, y a partir de hoy, voy a empezar a escribir artículos para principiantes, para que puedan entrar rápidamente y escribir sus propias estrategias.
El estilo de los artículos es muy sencillo, me esfuerzo en que cada pequeño artículo resuelva un pequeño problema, y acompañe un ejemplo completo y funcional.
Si tienes algún problema, puedes contactar conmigo, y haré lo posible para resolverlo, porque también estoy trabajando, y el tiempo es muy apretado, no puedo responder a tiempo, y no tengo tiempo para hablar contigo.
Por favor, entiendan.
Obtener datos de la línea K, es algo que me preguntan a menudo mis amigos en el grupo, así que aquí les doy un pequeño ejemplo para que sepan que algunas plataformas de intercambio ofrecen datos de la línea K, (por ejemplo, Bitcoin).
Okcoin, para esta plataforma, puede obtener datos directamente, mientras que la mayoría de las plataformas de intercambio no proporcionan datos de la línea K, en cuyo caso se recolectan las líneas K.
Nota: En el entorno de prueba no se recolectan las líneas K, ya que el inventor proporciona la historia de las líneas K de prueba, por lo que el inventor cuantifica la historia de las líneas K para que el usuario no pueda realizar transacciones en el disco.
El uso de la K-line se debe principalmente a que los inventores cuantifican las K-lines que han recopilado y pueden variar en cantidad y precisión, por lo que no se les ofrece a los usuarios para operar en disco duro.
Tenga en cuenta que exchange.GetRecords ((); el número máximo de líneas K recogidas es 1411, más 1441, y se eliminará el primero, para evitar que afecte el rendimiento.
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

