Функция подсчета профита открытых позиций в пунктах. Функция для MQL5.
Глобальные переменные:
double profit_buys=0, profit_sells=0;
Функция:
//+------------------------------------------------------------------+
//| Calculate profit points positions |
//+-----------------------------------------------------------------+
void CalculateProfitPointsPositions()
{
profit_buys=0;
profit_sells=0;
double p=0;
for(int i=PositionsTotal()-1; i>=0; i--)
{
if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties
{
if(m_position.Symbol()==_Symbol && m_position.Magic()==Magic)
{
p=SymbolInfoDouble(_Symbol,SYMBOL_POINT);
if(p==0)
{
if(StringFind(_Symbol, "JPY")<0)
p=0.0001;
else
p=0.01;
}
if(m_position.PositionType()==POSITION_TYPE_BUY)
profit_buys+=(SymbolInfoDouble(_Symbol,SYMBOL_BID)-m_position.PriceOpen())/p;
if(m_position.PositionType()==POSITION_TYPE_SELL)
profit_sells+=(m_position.PriceOpen()-SymbolInfoDouble(_Symbol,SYMBOL_ASK))/p;
}
}
}
return;
}
Вызов функции:
CalculateProfitPointsPositions();
Пункты профита открытых позиций будут находиться в переменных profit_buys и profit_sells.