MQL4 持仓均价计算代码示例
在 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()函数检查了订单号的匹配。您可以在使用此函数之前添加适当的错误检查和验证。
原文地址: https://www.cveoy.top/t/topic/plbx 著作权归作者所有。请勿转载和采集!