Что такое в этом коде значит DecreaseFactor>0 - страница 3

 
Movlat Baghiyev:
//+----------------------------------------------------------------------------+
void OpenPosition(string sy, int op, double ll, double sl, double tp, int mn, string lsComm) {
  color    clOpen;
  datetime ot;
  double   pp, pa, pb;
  int      dg, err, it, ticket=0;
  string   lsComm=WindowExpertName()+" "+GetNameTF(Period());

  if (sy=="" || sy=="0") sy=Symbol();
  if (op==OP_BUY) clOpen=clOpenBuy; else clOpen=clOpenSell;
  for (it=1; it<=NumberOfTry; it++) {
    if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) {
      Print("OpenPosition(): Остановка работы функции");
      break;
    }
    while (!IsTradeAllowed()) Sleep(5000);
    RefreshRates();
    dg=(int)MarketInfo(sy, MODE_DIGITS);
    pa=MarketInfo(sy, MODE_ASK);
    pb=MarketInfo(sy, MODE_BID);
    if (op==OP_BUY) pp=pa; else pp=pb;
    pp=NormalizeDouble(pp, dg);
    ot=TimeCurrent();
    if (MarketWatch)
      ticket=OrderSend(sy, op, ll, pp, Slippage, 0, 0, lsComm, mn, 0, clOpen);
    else
      ticket=OrderSend(sy, op, ll, pp, Slippage, sl, tp, lsComm, mn, 0, clOpen);
    if (ticket>0) {
      if (UseSound) PlaySound(NameFileSound); break;
    } else {
      err=GetLastError();
      if (pa==0 && pb==0) Message("Проверьте в Обзоре рынка наличие символа "+sy);
      // Вывод сообщения об ошибке
      Print("Error(",err,") opening position: ",0,", try ",it);
      Print("Ask=",pa," Bid=",pb," sy=",sy," ll=",ll," op=",GetNameOP(op),
            " pp=",pp," sl=",sl," tp=",tp," mn=",mn);
      // Блокировка работы советника
      if (err==2 || err==64 || err==65 || err==133) {
        gbDisabled=True; break;
      }
      // Длительная пауза
      if (err==4 || err==131 || err==132) {
        Sleep(1000*300); break;
      }
      if (err==128 || err==142 || err==143) {
        Sleep(1000*66.666);
        if (ExistPositions(sy, op, mn, ot)) {
          if (UseSound) PlaySound(NameFileSound); break;
        }
      }
      if (err==140 || err==148 || err==4110 || err==4111) break;
      if (err==141) Sleep(1000*100);
      if (err==145) Sleep(1000*17);
      if (err==146) while (IsTradeContextBusy()) Sleep(1000*11);
      if (err!=135) Sleep(1000*7.7);
    }
  }
  if (MarketWatch && ticket>0 && (sl>0 || tp>0)) {
    if (OrderSelect(ticket, SELECT_BY_TICKET)) ModifyOrder(-1, sl, tp);
  }
}
 
Movlat Baghiyev:
 lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);  какую цифру прописать в MaximumRisk  чтобы с учетом плеча окрывал максимально возможный лот  с десятичным значением ? скажем не 1 стандартный а вплоть до 1.1скажем..Экпериментировал прописыла максимум 1 : 2 или 3  на 1000 лоты разумеется увеличивались ..Но хотел чтобы макс лот вычислял сам  при определнном значении MaximumRisk

Да у Вас с расчетом лота вообще там шихта какая то.

Поройтесь по форуму.

 
Movlat Baghiyev:
redefinition of formal parameter 'lsComm' 3ma_system.mq4 221 12

задайте комментарий в функцию после магика
 
Renat Akhtyamov:

Да у Вас с расчетом лота вообще там шихта какая то.

Поройтесь по форуму.

Шихты нет  с помощью максриска  прописывая цифру берет определенный % 
 
Renat Akhtyamov:
в коде где то уже есть string lsComm
убрал его ..разобрался
 
Movlat Baghiyev:
Шихты нет  с помощью максриска  прописывая цифру берет определенный % 

где маржа на 1 лот по символу и т.д.?

делите Эквити на маржу на 1 лот это и будет максимально возможный лот с учетом плеча. Если потом умножить на риск и поделить на 100, то можно задавать риск в процентах. И Ваше искомое число будет равно 100%

 
Renat Akhtyamov:
где маржа на 1 лот по символу и т.д.?
Оно же как то просчитывает лот таким образом ..))
 
Renat Akhtyamov:

где маржа на 1 лот по символу и т.д.?

делите Эквити на маржу на 1 лот это и будет максимально возможный лот с учетом плеча. Если потом умножить на риск и поделить на 100, то можно задавать риск в процентах. И Ваше искомое число будет равно 100%

Плиз ..Только с учетом баланса,потому как сделка всегда будет только одна 
 
Movlat Baghiyev:
Плиз ..Только с учетом баланса,потому как сделка всегда будет только одна 

чуток почитайте документацию, а то уже слишком халявно.

Ну может кто и ответит....

Кстати на МА-шках я не советовал бы 100%-ю загрузку депо, т.е не надо на всю котлету................................!!!

"риск-менеджер" задайте в поиск

 
NormalizeDouble(AccountBalance()*MaximumRisk/AccountLeverage()/100.0/Bid,1);
Причина обращения: