1、使用C++编写策略与JavaScript编写策略的主要区别在于发明者量化交易平台的API函数返回数据的差异,例如exchange.GetTicker()函数:
- JavaScript
```js
function main() {
var ticker = exchange.GetTicker()
// 判断exchange.GetTicker函数是否调用失败,返回null
if (ticker){
Log(ticker)
}
}
exchange.GetTicker()调用成功时返回一个对象,调用失败时返回的仍然是一个对象。成功调用与失败调用返回的对象通过Valid属性来区分。 void main() {
auto ticker = exchange.GetTicker();
// 判断exchange.GetTicker()函数是否调用失败,检查返回对象中Valid属性是否为false
if (ticker.Valid) {
Log(ticker);
}
}
2、C++策略中的main()函数与标准C11中main()函数的区别:
C11中的C++程序入口函数main()返回值为int类型,而在FMZ量化的C++策略中,策略的启动函数也是main()函数。但这两者并非同一个函数,仅是同名而已。FMZ量化的C++策略中main()函数的返回值为void类型。
void main() {
// 使用Test函数测试
if (!Test("c++")) {
// 抛出异常,终止程序运行
Panic("请下载最新版本托管者");
}
// 所有返回的对象使用Valid属性判断是否有效
LogProfitReset();
LogReset();
Log(_N(9.12345, 2));
Log("use _C", _C(exchange.GetTicker), _C(exchange.GetAccount));
}