发明者量化,也就是botvs平台,常常用JavaScript编写。
它一些内置的函数 代码风格竟然是大驼峰,难受啊!
不过这些都是小细节,C++也有to_string这样风格的函数,忽略之。
回测的时候,现货应该是很好的,这个方面我很喜欢
但是看到期货没有币本位,感觉不是很好。。
再加上自己也肯定要学Python,多用pandas,那就干脆不用这个平台了。
主程序·轮询结构
function onTick(){
// 策略逻辑
}
function main(){
while(true){
onTick();
Sleep(1000); // 休眠时间,单位为毫秒(1秒=1000毫秒)
}
}
function onexit(){
Log("exit!退出! @"); // 如果在字符串后面加上@字符,则消息会进入推送队列,推送到使用绑定的微信账号上
}
function onerror(){
// 比如数组访问越界,后面就不执行了,程序就停止了
Log("error!异常错误!");
}
function init(){
Log("init!开始初始化程序!");
}
交易所exchang对象
function main() {
for(var i = 0; i < exchanges.length; i++) {
Log("添加的交易所对象索引(第一个为0):", i, "名称:", exchanges[i].GetName(), "标签:", exchanges[i].GetLabel())
// 标签就是okex1号,okex2号
}
}
获取行情
市场行情由exchange.GetTicker()
函数返回。
function main(){
var ticker = exchange.GetTicker()
/*
可能由于网络原因,访问不到交易所接口(即使托管者程序所在设备能打开交易所网站,但是可能API接口访问不通)
此时ticker为null,当访问ticker.High时,会导致错误,所以测试时,确保可以访问到交易所接口
*/
Log("High:", ticker.High, "Low:", ticker.Low, "Sell:", ticker.Sell, "Buy:", ticker.Buy, "Last:", ticker.Last, "Volume:", ticker.Volume)
}
{
Info : {...}, // 请求交易所接口后,交易所接口应答的原始数据,回测时无此属性
High : 1000, // 最高价
Low : 500, // 最低价
Sell : 900, // 卖一价
Buy : 899, // 买一价
Last : 900, // 最后成交价
Volume : 10000000, // 最近成交量
Time : 1567736576000 // 毫秒级别时间戳
}