Как получить цену символа, при которой нет ни убытка, ни прибыли?

 

Привет

Я хотел бы знать, как найти цену, при которой нет прибыли. Я хочу знать, как рассчитать позицию или уровень цен.

Я не люблю фиксированных лотов. У меня есть переменные лоты по Мартингейлу. Не появляется на фиксированном расстоянии. Это может быть сделка на покупку, сделка на продажу или и то, и другое.

Я использовал следующий метод, но, похоже, у него есть недостаток.

Пожалуйста, помогите мне написать правильную формулу для определения уровня цен, при котором не происходит ни прибыли, ни убытка.


 double lots=0;
      double sum=0;

      for(int i = PositionsTotal() - 1; i >= 0; i--)
        {
         if(handle_position.SelectByIndex(i))
           {
            if(handle_position.Symbol() == EA_Symbol &&
               handle_position.Magic() == MagicNumber
              )
              {
               if(handle_position.PositionType() == POSITION_TYPE_BUY)
                 {
                  lots = lots + handle_position.Volume();
                  sum = sum + handle_position.Volume() * handle_position.PriceOpen();
                 }
               else
                  if(handle_position.PositionType() == POSITION_TYPE_SELL)
                    {
                     lots = lots + handle_position.Volume();
                     sum = sum + handle_position.Volume() * handle_position.PriceOpen();
                    }
              }
           }
        }
        double price = 0;
      if(lots!=0)
         price=NormalizeDouble(sum/lots, DIGIT);
      HLineCreate(0, "noprofitnoloss", 0, price, clrWhite, STYLE_DASH, 2);
      Print(price);
 
jaffer wilson:

Привет

Пожалуйста, помогите мне написать правильную формулу для определения уровня цен, при котором не происходит ни прибыли, ни убытка.


Я как то писал функцию для локирования позиций. Возможно это похоже на то, что вам надо.

bool IsPositionLocking()
  {
   double PriceBuy = 0, PriceSell = 0;
   double AverageBuy = 0, AverageSell = 0;
   double VolumeBuy = 0, VolumeSell = 0;
   for(int i = PositionsTotal() - 1; i >= 0; i--)
      if(m_position.SelectByIndex(i))
         if(m_position.Symbol() == m_symbol.Name() && m_position.Magic() == Magic)
            if(m_position.PositionType() == POSITION_TYPE_BUY)
              {
               PriceBuy += m_position.PriceOpen() * m_position.Volume();
               VolumeBuy += m_position.Volume();
              }
            else
               if(m_position.PositionType() == POSITION_TYPE_SELL)
                 {
                  PriceSell += m_position.PriceOpen() * m_position.Volume();
                  VolumeSell += m_position.Volume();
                 }

   if(VolumeBuy != 0 || VolumeSell != 0)
     {
      if(VolumeBuy != 0)
        {
         AverageBuy = PriceBuy / VolumeBuy;
         if(AverageBuy > m_symbol.Bid())
            if(IsPositionOpenLoc(1))
               return(true);
        }
      if(VolumeSell != 0)
        {
         AverageSell = PriceSell / VolumeSell;
         if(AverageSell < m_symbol.Ask())
            if(IsPositionOpenLoc(0))
               return(true);
        }
     }
   return(false);
  }
 
Aleksandr Slavskii # :

Я как то писал функцию для локирования позиций. Возможно это похоже на то, что вам надо.

Спасибо, что поделились этим кодом со мной, брат. Но я не мог понять, как локирование может помочь мне закрыть 50% от общей прибыли активной сделки? Пожалуйста, не могли бы вы помочь мне понять?

Я не могу написать код, потому что было бы проще, если бы в MQL5 была функция закрытия сделки по прибыли, а не по размеру лота. Вот что меня беспокоит.

Пожалуйста, помогите мне в этом запросе. Прошу всех хотя бы раз заглянуть в эту ветку.

 
jaffer wilson #:

Спасибо, что поделились этим кодом со мной, брат. Но я не мог понять, как локирование может помочь мне закрыть 50% от общей прибыли активной сделки? Пожалуйста, не могли бы вы помочь мне понять?

Я не могу написать код, потому что было бы проще, если бы в MQL5 была функция закрытия сделки по прибыли, а не по размеру лота. Вот что меня беспокоит.

Пожалуйста, помогите мне в этом запросе. Прошу всех хотя бы раз заглянуть в эту ветку.

Вы перепутали тему. Вопрос о закрытии части позиции здесь.

Как точно закрыть 50% прибыльных сделок?
Как точно закрыть 50% прибыльных сделок?
  • 2022.03.14
  • www.mql5.com
Пожалуйста, помогите мне написать функцию, которая будет закрывать только 50% прибыльной сделки, когда вся сделка будет прибыльной...
 
Alexey Viktorov # :

Вы перепутали тему. Вопрос о закрытии части позиции здесь .

Извиняюсь. моя ошибка. Я вообще был в другой петле. Спасибо за напоминание.

Причина обращения: