You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于订单备注返回MQL4中特定持仓订单的当前盈利

MQL4获取指定备注持仓订单的单个盈利

你的现有代码会累加所有备注为Testing的持仓订单盈利,因为循环里每找到一个符合条件的订单,就把盈利加到Profit变量中。如果要获取某一个符合条件的订单盈利,得调整逻辑,找到目标订单后停止遍历,直接取它的盈利即可。

修改后的代码示例:

double GetTestingOrderProfit()
{
    double targetProfit = 0.0;
    // 遍历所有持仓订单,MODE_TRADES确保只处理当前持仓
    for(int i = 0; i < OrdersTotal(); i++)
    {
        if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
            // 用StringCompare做字符串匹配,第三个参数false表示忽略大小写(按需调整)
            if(StringCompare(OrderComment(), "Testing", false) == 0)
            {
                // 计算该订单的实际盈利:盈利+隔夜利息+手续费
                targetProfit = OrderProfit() + OrderSwap() + OrderCommission();
                break; // 找到第一个符合条件的订单就退出循环
            }
        }
    }
    return targetProfit;
}

几个关键调整说明:

  • OrderSelect添加MODE_TRADES参数,避免误处理历史订单,确保只遍历当前持仓的订单
  • 用StringCompare替代直接的==比较字符串,能灵活控制是否区分大小写,比直接相等判断更可靠
  • 找到目标订单后用break终止循环,只获取第一个符合条件的订单盈利;如果需要获取最后一个,就去掉break,循环结束后返回最后一次赋值的targetProfit

内容的提问来源于stack exchange,提问作者Dr.Prog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:00:56