C++策略编写说明

1、使用C++编写策略与JavaScript编写策略的主要区别在于发明者量化交易平台的API函数返回数据的差异,例如exchange.GetTicker()函数: - JavaScript


  ```js
  function main() {
      var ticker = exchange.GetTicker()
      // 判断exchange.GetTicker函数是否调用失败,返回null
      if (ticker){
          Log(ticker)
      }
  }
  • C++ 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));
}