Mt45ApiNet
Mt45ApiNet
简介
Mt45ApiNet 提供了与 MetaTrader4/5 Terminal 连接的桥梁,通过它你可以在 .NET 应用中获取 MetaTrader 4/5 Terminal 信息,或调用内置的绝大多数 MQL 命令。这样你可以在保留 Mql 内置方法使用经验的同时,使用 .Net 更强大的特性以及生态。
对比 MtApi 的改进和优化
本项目基于 MtApi 的基础上开发,并进行了优化。
- ✅ 大量使用了 async/await,提高了异步操作的效率和响应速度
- ✅ 取消了第三方库的 Dll 依赖,现在只依赖于操作系统内置的 dll 库,更简单的构建和更稳定的运行,告别了 c++ 的环境依赖安装和莫名其妙的内存错误问题
- ✅ 重写了 socket 通讯库,减少了文本传输过程中的一些问题
- ✅ 对 Mql 命令进行了分组和命名的修改,现在的 Mql 命令作为各种 Enum 进行分类,理解和使用都更加容易
- ✅ 新增了 MetaTrader 4 的事件触发,在交易、报价等事件发生时,也可以像在 MetaTrader 5 中一样触发事件
- ✅ 新增了 MetaTrader 5 的 Include/Trade 扩展库命令
- ✅ 新增了 Custom Commands 类型,用于添加 MQL 以外的方法,更容易地实现一些复杂功能
- ✅ 重写了日志库,提供了内置日志组件和日志类接口,方便开发人员自定义日志输出
测试使用
加载 EA 到 MetaTrader 4/5 Terminal
- 将
/MqlExpert/Mt4api.ex4或Mt5api.ex5在 MetaTrader 4/5 Terminal 中加载,确保可以正常启动 - 编译并运行
Mt45ApiNet.Demo项目,设置相同端口后,点击"连接"按钮 - 测试各命令是否正常工作
开发使用
- 在开发项目中引用
Mt45ApiNet源码或 Dll 文件 - 创建 MT4Client、MT5Client 实例,并连接到 MetaTrader 4/5 Terminal EA
- 像在 MetaEditor 中调用 MQL 命令一样,调用 Mt45ApiNet 的方法
示例代码
MT4 客户端示例
MT4 = new MT4Client(host, intport);
MT4.OnOrderOpen += MT4_OnOrderOpen;
MT4.OnOrderClose += MT4_OnOrderClose;
MT4.OnOrderModify += MT4_OnOrderModify;
MT4.OnOrderDelete += MT4_OnOrderDelete;
MT4.QuoteUpdate += MT4_QuoteUpdate;
MT4.Loger.IsLog(true);
MT4.Loger.LogLevel(MTLoglevel.Debug);
MT4.SocketClient.Loger.IsLog(true);
MT4.SocketClient.Loger.LogLevel(MTLoglevel.Debug);
await MT4.Connect();
var price = await MT4.MarketInfo("EURUSD", MarketInfoModeType.MODE_ASK);MT5 客户端示例
MT5 = new MT5Client(host, intport);
MT5.OnOrderOpen += MT5_OnOrderOpen;
MT5.OnPendingOrderOpen += MT5_OnPendingOrderOpen;
MT5.OnPendingOrderFill += MT5_OnPendingOrderFill;
MT5.OnOrderClose += MT5_OnOrderClose;
MT5.OnOrderModify += MT5_OnOrderModify;
MT5.OnOrderDelete += MT5_OnOrderDelete;
MT5.OnNewBar += MT5_OnNewBar;
MT5.QuoteUpdate += MT5_QuoteUpdate;
MT5.Loger.IsLog(true);
MT5.Loger.LogLevel(MTLoglevel.Debug);
MT5.SocketClient.Loger.IsLog(true);
MT5.SocketClient.Loger.LogLevel(MTLoglevel.Debug);
await MT5.Connect();
var account = await MT5.AccountInfoInteger(ENUM_ACCOUNT_INFO_INTEGER.ACCOUNT_LOGIN);许可证
MIT License
联系方式
商务合作:zhao0876@163.com
最后更新于