回测程序的第一件事:让它跑起来。因此我们需要一个死循环,一个时间,和一个执行函数。它类似于一个setInteval
,只不过是通过死循环来实现的。
那么为什么不用setInteval
呢?因为我们在模拟,而setInteval
需要我们真正等那么久。这里的Sleep在模拟的时候会直接略过。(难道我Sleep一天,就需要等一天之后再去看下一条Log嘛?)
因此我们需要使用它封装好的接口来让时间轴动起来。
js
let day = 0;
function main() {
while (1) {
OnDay();
Sleep(1000 * 60 * 60 * 24);
}
}
function OnDay() {
day++;
Log("新的一天!", day);
}
运行结果
在这里K线周期可以选1天,因为我们1天才运行一次。当我们真正需要计算的时候,这里应该设为分钟,按照分钟去获取K线,然后判断是否要买卖。
注意这里的模拟级:所有的买卖都必将成交------在这里你甚至可以调用以1元的价格买入1个比特币,再以2000元的价格卖掉这1个比特币,这些都将会成交。
但这种自欺欺人的行为是无意义的,因此你还是需要根据K线来判断自己的单是否会成交。