как сделать фиксированный лот?

 

Есть код:

double Lots()

  {

   double Lots;

   Lots=AccountFreeMargin()/10000*5;

   Lots=MathMin(15,MathMax(0.1,Lots));

   if(Lots<0.1) 

     Lots=NormalizeDouble(Lots,2);

   else

     {

     if(Lots<1) Lots=NormalizeDouble(Lots,1);

     else       Lots=NormalizeDouble(Lots,0);

     }

     return(Lots);

  }

Нужно, чтоб советник открывал только лотом 0.03. Как исправить этот код? 

 
Nikolay Elin:

Есть код:

Нужно, чтоб советник открывал только лотом 0.03. Как исправить этот код? 


Во внешние параметры вынести Lot и заменить везде где OrderSend

extern double Lot = 0.03; 

OrderSend (Symbol(),OP_BUY,Lot,Ask,-,-,-,-,-,-)
 
Nikolay Elin:

Нужно, чтоб советник открывал только лотом 0.03. Как исправить этот код? 

Вот так:

double Lots()

  {

  /* double Lots;

   Lots=AccountFreeMargin()/10000*5;

   Lots=MathMin(15,MathMax(0.1,Lots));

   if(Lots<0.1) 

     Lots=NormalizeDouble(Lots,2);

   else

     {

     if(Lots<1) Lots=NormalizeDouble(Lots,1);

     else       Lots=NormalizeDouble(Lots,0);

     }*/

     return(0.03);

  }
 

double Lots()

  {

       return(0.03);

  }

 
SidorOFF:

double Lots()

  {

       return(0.03);

  }


Ну тогда уж так:

extern double Lot = 0.03; 

void start()
{
OrderSend (Symbol(),OP_BUY,Lots(Lot),Ask,-,-,-,-,-,-)
}//EndStart

double Lots(double lots)
  {
  return(lots);
  }
После компиляции по строчкам где ошибка подставить в скобках Lot
 
Natalya Dzerzhinskaya:


Ну тогда уж так:

Наталья, выше предложенные коды хороши тем, что не нужно лезть в основной код, и правиться очень быстро
 
Vitaly Muzichenko:
Наталья, выше предложенные коды хороши тем, что не нужно лезть в основной код, и правиться очень быстро

Исправить то пару строк, добавить Lot в скобках и удобнее же когда Lot во внешних параметрах, а не принудительно.
 
Vitaly Muzichenko:

Вот так:


Спасибо Виталий. Работает.
 
Nikolay Elin:

Спасибо Виталий. Работает.

Все варианты правильные, надо бы всем спасибо сказать))
Причина обращения: