Hello, I'm cold wind, welcome to Inventor Quantify, bermula hari ini, saya akan terus menulis artikel untuk pemula supaya anda boleh cepat masuk dan menulis strategi anda sendiri.
Gaya artikel adalah gaya yang sangat ringkas, saya cuba untuk membuat setiap artikel kecil yang dapat menyelesaikan masalah kecil dan disertakan dengan contoh yang lengkap dan boleh dilaksanakan.
Saya akan cuba untuk membantu anda menyelesaikan beberapa masalah anda, kerana saya juga bekerja, dan saya mempunyai masa yang agak tertekan, saya tidak dapat membalas anda tepat pada masanya, dan saya juga tidak mempunyai masa untuk menjawab soalan-soalan anda.
Tolong fahami.
Untuk mendapatkan data K-line, rakan-rakan di dalam kumpulan sering bertanya kepada saya, dan di sini saya memberikan contoh kecil yang mudah untuk menunjukkan kepada anda bahawa beberapa platform pertukaran menyediakan data K-line, (seperti token)
Okcoin, untuk platform seperti itu, boleh diperoleh secara langsung, dan kebanyakan platform perdagangan tidak menyediakan data K-line, dalam hal ini mereka harus mengumpulkan K-line mereka sendiri.
Nota: Dalam persekitaran ujian tidak perlu untuk mengumpul K-line, kerana, pencipta kuantiti menyediakan ujian sejarah K-line, mengapa pencipta kuantiti sejarah K-line, tidak membenarkan pengguna untuk berdagang dalam talian
Penggunaan utama adalah dengan mempertimbangkan bahawa pencipta kuantiti K baris yang dikumpulkan sendiri, dalam kuantiti dan ketepatan, mungkin berbeza-beza dengan sedikit, jadi dalam operasi cakera, tidak disediakan kepada pengguna.
Yang perlu diperhatikan ialah exchange.GetRecords ((); jumlah baris K yang dikumpulkan, maksimum 1411, ditambah dengan 1441 baris, akan dihapuskan terlebih dahulu, ini untuk mengelakkan kesan prestasi.
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

