Закрывашка для сетки

 

Как правильно написать функцию закрытия всех ордеров по реальному проценту прибыли с начала цикла?

Имеем рост баланса и средств

Имеем просадку

Как исправить функцию?

double lot(string type,double i)
  {
   double OutLot=((AccountFreeMargin()/100.0)*rate)/MarketInfo(Symbol(),MODE_MARGINREQUIRED);
   /*if(type=="lock")
     {
      if(lockmult>0.0) OutLot*=lockmult;
      if(lockmult<0.0) OutLot/=MathAbs(lockmult);
     }*/
   if(type=="net")
     {
      if(locknet>0.0) OutLot*=locknet+(i-1)*lockstep;
      if(locknet<0.0) OutLot/=MathAbs(locknet)+MathAbs((i-1)*lockstep);
     }

   double LotMin=MarketInfo(Symbol(),MODE_MINLOT);
   double LotStep=MarketInfo(Symbol(),MODE_LOTSTEP);

   OutLot=MathFloor(OutLot/LotStep)*LotStep;
   if(OutLot<LotMin)
     {
      OutLot=LotMin;
     }
   return NormalizeDouble((double)OutLot,(int)MarketInfo(Symbol(),MODE_DIGITS));
  }


1

 
serbrussya:  Как правильно написать функцию закрытия всех ордеров по реальному проценту прибыли с начала цикла?


Зачем же все в кучу - надо структурно, модульно, поэтапно или даже с классами...  Сначала напишите функцию чтоб выводила Comment % по деньгам. Проверьте на демо. Потом добавьте звуковой сигнал при достижении 50%. Потом вместо звукового сигнала вызов функции закрытия ....

 
закрывать при росте средств на заданный процент прироста