Skip to content

库、外部输入与Magic Number

一、加载库文件与声明库对象

在编写EA前,需加载MT5提供的内置库文件,这些库封装了交易、仓位、订单管理等高频使用到的功能,避免重复造轮子。

1. 常用库文件

cpp
#property strict
#include <Trade/Trade.mqh>
  • 库的作用:将复杂功能封装为可复用的类/函数,例如:
    • CTrade:提供Buy()/Sell()等开仓函数,自动处理订单参数。
    • CPositionInfo:获取持仓的开仓价、止损、止盈等信息。
    • COrderInfo:获取挂单的开仓价、止损、止盈等信息。

2. 声明库对象

cpp
CTrade trade;          // 交易对象  
CPositionInfo posInfo; // 仓位信息对象  
COrderInfo orderInfo;  // 订单信息对象

二、外部输入:参数配置与用户交互

通过input关键字声明可配置参数,支持用户在MT5界面动态调整,分为可优化参数固定参数

1. 参数分组(input group)

cpp
// sinput 和 input的区别  sinput是不可以做参数优化的参数
input group "设置参数";
sinput int MagicNum = 12345; // EA的唯一编号
sinput int SlType = 1; // 止损方式(1:固定金额{100}美金 2:账户{1}% 3:固定{0.1}手
                       // 4:按照子账户{10000}1%止损)
sinput int SlParam =100; // 止损依据(根据上方【止损方式】的不同,所代表的含义也不同)

三、Magic Number:

1. 核心定义

  • 本质:唯一整数(如12345),用于标识EA的专属交易,避免多策略订单混淆。
  • 作用
    • 订单区分:同一品种上运行多个EA时,通过魔术号筛选属于当前策略的订单。
    • 持仓管理:平仓/修改止损时,仅操作带有指定魔术号的持仓。