Скачать MetaTrader 5

Библиотеки: Код вычисления прибыли в предполагаемом уровне цены

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
MetaQuotes Software Corp.
Модератор
186100
MetaQuotes Software Corp.  

Код вычисления прибыли в предполагаемом уровне цены:

Слишком мало, чтобы быть достойным статьи, и слишком мало, чтобы быть достойным отдельной библиотеки, однако важность данной темы слишком высока, чтобы не быть затронутой.

Author: Mepkypuu

Mislaid
600
Mislaid  

Нужно чуть подправить код. Используется неявное предположение, что все ордера открыты по одной валютной паре. Можно заменить на отбор ордеров по символу, на котором висит советник.

Потом, расчет стоимости применим только к парам с USD в знаменателе.

Не учтен спред. Это можно исправить, считая результат от текущей цены.

В первом приближении, код мог бы выглядеть так:

double getLots(double newSL)
{
   double TickValue, delta;
   double lotSum;
   string SymbolName;
   
   SymbolName = Symbol();
   TickValue = MarketInfo( SymbolName, MODE_TICKVALUE) / Point;
   delta = ( newSL - Bid ) * TickValue;
   lotSum = 0.0; 
   for (int i = 0; i <= OrdersTotal()-1; i++)
   {
      OrderSelect(i, SELECT_BY_POS);     
      if ( OrderSymbol() == SymbolName )
      { 
         if (OrderType() == OP_BUY)    { lotSum += OrderProfit() + OrderLots() * delta; }
         if (OrderType() == OP_SELL)   { lotSum += OrderProfit() - OrderLots() * delta; }
      }
   }   
   return(lotSum);
}
Mepkypuu
69
Mepkypuu  
Mislaid:

Потом, расчет стоимости применим только к парам с USD в знаменателе.

Не учтен спред. Это можно исправить, считая результат от текущей цены.

Учесть спред и не получится, если он динамический. Когда появилась надобность в подобной функции я не ставил себе цели точно узнать какова будет прибыль в валюте депозита. Может быть это и будет критично, если в стратегии используется скальпинг. Цель была иная - стоп лосс в безубытке, но позже оказалось что можно пойти и дальше - считать не только будет ли безубыток по этому уровню SL, но и прибыль, поэтому расчет исключительно для примера, иначе зачем мне было так подробно его расписывать. Вы правы, об этом стоило упомянуть по тексту, но я надеялся на то, что у читателей хватит внимания это заметить и адаптировать код под свой инструмент.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий