输入/搜索内容
欢迎使用发明者量化交易平台
编程语言
JavaScript
TypeScript
Python
C++
My语言(麦语言)
PINE语言
Blockly可视化
Workflow工作流
密钥安全性
实盘
策略库
托管者
部署托管者
一键租用托管者
手动部署托管者
托管者操作注意事项
全局指定IP地址
命令行版本托管者程序的参数
实盘数据迁移
托管者监控
交易所
策略编辑器
回测系统
策略入口函数
策略框架与API函数
模板类库
策略参数
交互控件
期权交易
C++策略编写说明
JavaScript策略编写说明
Web3
内置库
扩展API接口
MCP 服务
交易终端
数据探索
Alpha因子分析工具
通用协议
调试工具
远程编辑
完整策略的导入与导出
多语言支持
实盘、策略分组
实盘展示
策略分享与出租
实盘消息推送
实盘报错、异常退出的常见原因
交易所特殊说明

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

  • JavaScript
    exchange.GetTicker()调用成功时返回一个对象,如果调用失败(如交易所服务器问题、网络问题等)返回null

    javascript
    function main() { var ticker = exchange.GetTicker() // 判断exchange.GetTicker函数是否调用失败,返回null if (ticker){ Log(ticker) } }
  • C++
    exchange.GetTicker()调用成功时返回一个对象,调用失败时返回的仍然是一个对象。成功调用与失败调用返回的对象通过Valid属性来区分。

    c++
    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类型。

c++
void main() { // 使用Test函数测试 if (!Test("c++")) { // 抛出异常,终止程序运行 Panic("请下载最新版本托管者"); } // 所有返回的对象使用Valid属性判断是否有效 LogProfitReset(); LogReset(); Log(_N(9.12345, 2)); Log("use _C", _C(exchange.GetTicker), _C(exchange.GetAccount)); }