在 MQL4 中,可以使用以下代码计算持仓均价:

double GetPositionAveragePrice(int ticket)
{
    double averagePrice = 0.0;
    double totalVolume = 0.0;
    double totalValue = 0.0;

    int totalOrders = OrdersTotal();
    for (int i = totalOrders - 1; i >= 0; i--)
    {
        if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
            if (OrderTicket() == ticket)
            {
                totalVolume += OrderLots();
                totalValue += OrderLots() * OrderOpenPrice();
            }
        }
    }

    if (totalVolume > 0)
    {
        averagePrice = totalValue / totalVolume;
    }

    return averagePrice;
}

这个函数接受一个订单号作为参数,并返回该订单的持仓均价。它遍历所有的交易订单,找到与给定订单号相匹配的订单,并计算总成交量和总价值,然后用总价值除以总成交量得到持仓均价。

请注意,这个函数假设已经执行了OrderSelect()函数来选择正确的订单,以及已经通过OrderTicket()函数检查了订单号的匹配。您可以在使用此函数之前添加适当的错误检查和验证。

MQL4 持仓均价计算代码示例

原文地址: https://www.cveoy.top/t/topic/plbx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录