MT5 到 MT4 的交易类 - MetaTrader 4 库
在开发用于在账户之间复制头寸的程序的过程中,有必要为 MT5 和 MT4 开发基本相同的代码。差异仅在于执行交易操作的功能。因此,MT5 标准库中的几个类被重写以在 MT4 中工作。
使用此库时,理想情况下可以使用 MT4 中的编译器从 MT5 编译程序,以便它可以在 MT4 中运行。
但有两个重要的限制:
在这个版本中,可能有一些类方法找不到 测试时因为需要修正。
该文件 TradeLibraryMT5Example.mq4是在 MT5 和 MT4 上编译和运行的简单 EA 示例。
以下代码用于打开挂单:
CTrade m_trade; ... 分辨率=m_trade.OrderOpen(m_符号,ORDER_TYPE_BUY_LIMIT, m_lot, lowPrice, lowPrice,0,0,ORDER_TIME_GTC,0); 分辨率=m_trade.OrderOpen(m_符号,ORDER_TYPE_SELL_LIMIT, m_lot, 高价, 高价,0,0,ORDER_TIME_GTC,0);
计算所有公开市场持仓总利润的功能可以实现如下:
//+------------------------------------------------------------------+ //|计算所有市价订单的总利润 | //+------------------------------------------------------------------+ 双倍的获取利润(){ 整数总计 =持仓总数(); 双倍的利润=0; C位置信息; 为了(整数我 = 总计 -1;我 >=0;我 - ) { 如果(p.按索引选择(i)){ 乌龙魔法=p.Magic(); 细绳符号=p。象征(); 如果(魔法!= m_magicN || 符号!= m_symbol){ 继续; } 利润+=p.Profit()+p.Commission()+p.Swap(); } } 返回利润; }
平掉所有未平仓合约和挂单的功能可以如下实现:
//+------------------------------------------------------------------+ //|尝试关闭所有挂单和市价订单 | //+------------------------------------------------------------------+ 布尔值尝试关闭全部() { 布尔值分辨率=真的; 整数全部的; 双倍的利润=0; 乌龙票; 乌龙魔法; 细绳象征; 总计 =订单总数(); 订单信息; 为了(整数我 = 总计 -1;我 >=0;我 - ) { 如果(o.按索引选择(一)){ 魔法=o.Magic(); 符号=o。象征(); 如果(魔法!= m_magicN || 符号!= m_symbol){ 继续; } 票=o.机票(); 解析度&=m_trade.OrderDelete(o.Ticket()); } } 总计 =持仓总数(); C位置信息; 为了(整数我 = 总计 -1;我 >=0;我 - ) { 如果(p.按索引选择(一)){ 魔法=魔术师(); 符号=p。象征(); 如果(魔法!= m_magicN || 符号!= m_symbol){ 继续; } 票=p.门票(); 解析度&=m_trade.PositionClose(订单); } } 返回资源; }
附件下载
📎 orderinfo.mqh (43.87 KB)
📎 positioninfo.mqh (15.92 KB)
📎 symbolinfo.mqh (71.44 KB)
📎 trade.mqh (163.76 KB)
📎 tradelibrarymt5example.mq4 (19.6 KB)
Source: MQL5 #39161
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录
