新手入门之一 实盘中K线搜集

Author: lengfeng, Created: 2015-07-21 13:15:05, Updated: 2019-08-01 11:01:03

大家好,我是冷风,欢迎大家使用 发明者量化,从今天起,我开陆续写新手入门的文章,以方便大家快速入门,写出自己的策略。

文章风格是极简风格,我尽量做到每篇小文章可以解决一个小问题,并附带一个完整,可运行的例子。在网站QQ群里有我的

联系方式,有问题的话也可以与我联系,我会尽量帮大家解决一些问题,因为也在上班,时间会比较紧张,不能及时回复,也

请大家谅解。

获取K线,在群里有朋友经常问到,这里我提供一个简单的小例子让大家了解,有些交易平台是提供了K线数据的,(比如火币)

okcoin,针对这样的平台,可以直接获取,而大多数交易平台,是没有提供K线数据的,这种情况下要自己搜集K线。

注:在测试环境中是不用搜集K线,因为,发明者量化 提供了测试的历史K线,为什么 发明者量化 的历史K线,不让用户在实盘交易时

使用呢?主要是考虑, 发明者量化 的K线是自己收集的,在数量与精准性上,可能会由细微差异,所以在实盘操作时,没有提供给用户。

要注意的是 exchange.GetRecords();收集的K线数量,最大是 1411,加到1441条以后,就会删除最早的,这是为了避免影响性能。

img

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);
}

}


More

卖大 大家好,我是冷风,欢迎大家使用BOTVS,从今天起,我开陆续写新手入门的文章,以方便大家快速入门,写出自己的策略。 关于这个很期待,但是好像没有或者很少!!!

feng_yq 有几个问题想请教一下。 1. 我用这个代码在回测环境中发现收集来的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线,是这样吗?

Zero 不好意思这么晚看到.. 如果交易所有提供API获取K线,托管者在实盘下面是不会自己收集的,直接获取交易所提供的K线,如果交易所不提供就自己收集, 只保存最近的1411条的, 模拟测试的话,tick级的数据是模拟的,跟实际有差别的.