1、使用C++
编写策略和JavaScript
编写策略区别主要为优宽量化交易平台的API函数返回数据的差别,例如exchange.GetTicker()
函数:
JavaScript
exchange.GetTicker()
调用成功时返回一个对象,如果调用失败(交易所服务器问题、网络问题等等)返回null
。
function main() {
// 鉴于测试代码,不使用商品期货策略一般架构,这里仅仅判断exchange.IO("status")函数,判断连接期货公司前置机成功后立即执行测试代码。股票证券无需使用exchange.IO("status")判断连接状态
while(!exchange.IO("status")) {
Sleep(1000)
}
// 设置合约为rb888即螺纹钢主力连续合约,或者设置股票代码
exchange.SetContractType("rb888")
var ticker = exchange.GetTicker()
// 判断exchange.GetTicker函数是否调用失败,返回null
if (ticker){
Log(ticker)
}
}
C++
exchange.GetTicker()
调用成功时返回一个对象,如果调用失败返回的还是一个对象。和成功调用时返回的对象是通过一个属性Valid
来区别。
void main() {
while(exchange.IO("status") == 0) {
Sleep(1000);
}
exchange.SetContractType("rb888");
auto ticker = exchange.GetTicker();
// 判断exchange.GetTicker()函数是否调用失败,返回的对象中Valid属性是否是false
if (ticker.Valid) {
Log(ticker);
}
}
2、C++
策略中的main()
函数与标准C11中main()
函数的区别:
C11中的C++程序入口函数main()
返回值为int
类型,在优宽量化的C++策略中,策略的启动函数也是main()
函数。
不过这两者并非是同一个函数,只是同名而已。并且优宽量化的C++策略中main()
函数的返回值是void
类型。
void main() {
while(exchange.IO("status") == 0) {
Sleep(1000);
}
exchange.SetContractType("rb888");
// 使用Test函数测试
if (!Test("c++")) {
// 抛出异常,让程序停止
Panic("请下载最新版本托管者");
}
// 所有的对像返回用Valid来判断是否有效
LogProfitReset();
LogReset();
Log(_N(9.12345, 2));
Log("use _C", _C(exchange.GetTicker), _C(exchange.GetAccount));
}
股票证券
JavaScript策略编写说明