原说明书对MQL5交易函数的翻译采用机器翻译,翻译结果糟糕透顶,语句不通,晦涩难懂。
糟糕的翻译对新手的学习误导严重,耽误大量时间成本,让学习难度倍增。
现重新翻译并整理所有MQL5语言下交易函数如下,功能说明通俗易懂。
功能:计算订单所需要保证金
bool OrderCalcMargin(
ENUM_ORDER_TYPE action, // 订单类型
string symbol, // 交易品种名称
double volume, // 交易量
double price, // 入场价
double& margin // 为获取保证金值的值
);
功能:根据输入的订单类型、产品、成交量、入场价、出场价来计算订单的利润,并返回是否计算成功。
bool OrderCalcProfit(
ENUM_ORDER_TYPE action, // 订单类型 (ORDER_TYPE_BUY 或者 ORDER_TYPE_SELL)
string symbol, // 交易品种名称
double volume, // 交易量
double price_open, // 入场价
double price_close, // 出场价
double& profit // 为获得利润值的变量
);
功能:检测是否有足够的钱执行本次交易操作,检测结果保存在 MqlTradeCheckResult 结构体中。
bool OrderCheck(
MqlTradeRequest& request, // 交易请求参数结构体
MqlTradeCheckResult& result // 返回检测结果结构体
);
向服务器发送交易请求,执行交易操作。
bool OrderSend(
MqlTradeRequest& request, // 交易请求参数结构体
MqlTradeResult& result // 返回交易结果结构体
);
向服务器发送异步交易请求,无需浪费时间等待服务器对请求的回应,专为高频交易设计。
bool OrderSendAsync(
MqlTradeRequest& request, // 交易请求参数结构体
MqlTradeResult& result // 返回交易结果结构体
);
返回持仓的数量。
int PositionsTotal();
根据仓位的索引,返回仓位的交易品种名称。
string PositionGetSymbol(int index /* 仓位索引 */);
根据产品符号选择仓位,成功返回true,如果失败返回false。
bool PositionSelect(string symbol /* 交易品种名称 */);
根据持仓ID选择仓位,成功返回true,失败返回false。
bool PositionSelectByTicket(ulong ticket /* 持仓价格 */);
成功选择仓位后,返回持仓的双精度浮点型属性值
// 立即返回属性值。
double PositionGetDouble(ENUM_POSITION_PROPERTY_DOUBLE property_id /* 属性标识符 */ );
// 执行成功返回true,否则false,属性值保存在变量double_var中。
bool PositionGetDouble(
ENUM_POSITION_PROPERTY_DOUBLE property_id, // 属性标识符
double& double_var // 这里接受属性值
);
成功选择仓位后,返回仓位的整型属性值
// 立即返回属性值
long PositionGetInteger(
ENUM_POSITION_PROPERTY_INTEGER property_id // 属性标识符
);
// 执行成功返回true,否则false,属性值保存在变量long_var中。
bool PositionGetInteger(
ENUM_POSITION_PROPERTY_INTEGER property_id, // 属性标识符
long& long_var // 这里接受属性值
);
成功选择仓位后,返回仓位的字符串型属性值
// 立即返回属性值
string PositionGetString(
ENUM_POSITION_PROPERTY_STRING property_id // 属性标识符
);
// 执行成功返回true,否则false,属性值保存在变量string_var中。
bool PositionGetString(
ENUM_POSITION_PROPERTY_STRING property_id, // 属性标识符
string& string_var // 这里接受属性值
);
根据订单的索引,计算并返回仓位的ID,失败返回0。
ulong PositionGetTicket(
int index // 列表中的持仓编号
);
返回挂单的个数,挂单就是未成交订单。
int OrdersTotal();
根据挂单的索引,计算并返回挂单的ID。
ulong OrderGetTicket(int index /* 订单列表中的数量 */);
根据挂单ID,选择挂单。成功返回true,失败返回false,读取挂单属性值首先要选择挂单。
bool OrderSelect(ulong ticket /* 订单号 */);
成功选择挂单后,返回挂单的双精度浮点型属性值
//立即返回属性值。
double OrderGetDouble(ENUM_ORDER_PROPERTY_DOUBLE property_id /* 属性标识符 */ );
// 执行成功返回true,否则false,属性值保存在变量double_var中。
bool OrderGetDouble(
ENUM_ORDER_PROPERTY_DOUBLE property_id, // 属性标识符
double& double_var // 这里接受属性值
);
成功选择挂单后,返回挂单的整型属性值
// 立即返回属性值。
long OrderGetInteger(
ENUM_ORDER_PROPERTY_INTEGER property_id // 属性标识符
);
// 执行成功返回true,否则false,属性值保存在变量long_var中。
bool OrderGetInteger(
ENUM_ORDER_PROPERTY_INTEGER property_id, // 属性标识符
long& long_var // 这里接受属性值
);
成功选择挂单后,返回挂单的字符串型属性值
// 立即返回属性值。
string OrderGetString(
ENUM_ORDER_PROPERTY_STRING property_id // 属性标识符
);
// 执行成功返回true,否则false,属性值保存在变量string_var中。
bool OrderGetString(
ENUM_ORDER_PROPERTY_STRING property_id, // 属性标识符
string& string_var // 这里接受属性值
);
根据开始和结束时间选择历史订单
bool HistorySelect(
datetime from_date, // 开始日期
datetime to_date // 结束日期
);
根据仓位ID 选择历史仓位
bool HistorySelectByPosition(
long position_id // 仓位标识符 - POSITION_IDENTIFIER
);
根据挂单ID 选择历史挂单
bool HistoryOrderSelect(ulong ticket /* 订单号 */);
统计历史挂单的总个数。
int HistoryOrdersTotal();
根据历史挂单的索引选择历史挂单。
ulong HistoryOrderGetTicket(int index /* 订单列表中的数量 */);
成功选择历史挂单后,返回历史挂单的字符串型属性值
// 立即返回属性值。
string HistoryOrderGetString(
ulong ticket_number, // 订单号
ENUM_ORDER_PROPERTY_STRING property_id // 属性标识符
);
// 执行成功返回true,否则false,属性值保存在变量string_var中。
bool HistoryOrderGetString(
ulong ticket_number, // 订单号
ENUM_ORDER_PROPERTY_STRING property_id, // 属性标识符
string& string_var // 这里接受属性值
);
成功选择历史挂单后,返回历史挂单的双精度浮点型属性值
// 立即返回属性值。
double HistoryOrderGetDouble(
ulong ticket_number, // 订单号
ENUM_ORDER_PROPERTY_DOUBLE property_id // 属性标识符
);
// 执行成功返回true,否则false,属性值保存在变量double_var中。
bool HistoryOrderGetDouble(
ulong ticket_number, // 订单号
ENUM_ORDER_PROPERTY_DOUBLE property_id, // 属性标识符
double& double_var // 这里接受属性值
);
成功选择历史挂单后,返回历史挂单的整型属性值
// 立即返回属性值。
long HistoryOrderGetInteger(
ulong ticket_number, // 订单号
ENUM_ORDER_PROPERTY_INTEGER property_id // 属性标识符
);
// 执行成功返回true,否则false,属性值保存在变量long_var中。
bool HistoryOrderGetInteger(
ulong ticket_number, // 订单号
ENUM_ORDER_PROPERTY_INTEGER property_id, // 属性标识符
long& long_var // 这里接受属性值
);
根据历史持仓ID选择历史仓位,成功返回true,失败返回false。
bool HistoryDealSelect(ulong ticket /* 交易订单号 */
);
返回历史持仓的数量。
int HistoryDealsTotal();
根据历史仓位的索引,计算并返回历史仓位的ID,失败返回0。
ulong HistoryDealGetTicket(int index /* 订单号交易 */ );
成功选择历史仓位后,返回历史持仓的双精度浮点型属性值
// 立即返回属性值。
double HistoryDealGetDouble(
ulong ticket_number, // 订单号
ENUM_DEAL_PROPERTY_DOUBLE property_id // 属性标识符
);
// 执行成功返回true,否则false,属性值保存在变量double_var中。
bool HistoryDealGetDouble(
ulong ticket_number, // 订单号
ENUM_DEAL_PROPERTY_DOUBLE property_id, // 属性标识符
double& double_var // 这里接受属性值
);
成功选择历史仓位后,返回历史仓位的整型属性值
// 立即返回属性值。
long HistoryDealGetInteger(
ulong ticket_number, // 订单号
ENUM_DEAL_PROPERTY_INTEGER property_id // 属性标识符
);
// 执行成功返回true,否则false,属性值保存在变量long_var中。
bool HistoryDealGetInteger(
ulong ticket_number, // 订单号
ENUM_DEAL_PROPERTY_INTEGER property_id, // 属性标识符
long& long_var // 这里接受属性值
);
成功选择历史仓位后,返回历史仓位的字符串型属性值
// 立即返回属性值。
string HistoryDealGetString(
ulong ticket_number, // 订单号
ENUM_DEAL_PROPERTY_STRING property_id // 属性标识符
);
// 执行成功返回true,否则false,属性值保存在变量string_var中。
bool HistoryDealGetString(
ulong ticket_number, //订单号
ENUM_DEAL_PROPERTY_STRING property_id, // 属性标识符
string& string_var // 这里接受属性值
);