Не хватает маржи для активации отложки

 

Советник работает на отложках и для активации отложки может не хватать маржи, маркет не пропускает, подскажите что делать.

Просто такой алгоритм работы, ни кто отложку каждые 2 пункта ставить не будет 

Отложка не одна, а может быть несколько. 

 
Что делать? Доработать советника, естественно. Зачем в  маркет сразу?
 
Совет простой - рассчитывайте текущую свободную маржу (используйте для это стандартные функции mql, как это сделать в инете много примеров).
 
Советники тестируются с параметрами по умолчанию и депозитом 5000. Самый простой способ уменьшить лот по умолчанию. Если-же уменьшать некуда, то лучше такие советники не писать.
Можно конечно и проверить на остаток средств после открытия ордера в текущий момент, а не по цене отложки.
 
Vitalie Postolache:
Что делать? Доработать советника, естественно. Зачем в  маркет сразу?
Советник, рабочий, и по тихоньку работает у меня на центовом счете, я просто не ставлю расстояние до отложки 2 пунка....
 
Anastasia Danilova:
Советник, рабочий, и по тихоньку работает у меня на центовом счете, я просто не ставлю расстояние до отложки 2 пунка....

Так вы определитесь, вам маржи не хватает, или расстояние стоплевел слишком мало?

Это всё и многое другое должно проверяться советником в торговом окружении счёта ДО отправки торгового приказа  на сервер и в случае несоответствия ордера условиям торговли на счёте - приказ не отправлять, а пытаться или скорректировать ошибочное значение, или уведомить терйдера, в чём состоит ошибка и как её исправить.

У вас, похоже, проверок нет, или если есть, то не на все случаи.
 
Да есть проверки... все согласно требованиям Маркета...наверное :(
 
Есть у меня абсолютно все проверки!!! просто создаются невыносимые условия для работы...
 
Anastasia Danilova:
Есть у меня абсолютно все проверки!!! просто создаются невыносимые условия для работы...
Никто эти условия не создаёт. Просто запускается советник в тестере, и смотрится журнал. Если есть ошибка, номер ошибки и тем-более причину никто не будет выяснять, никому это не надо. Я сталкивался с такой проблемой, написал что сделать, но это было проигнорировано. Как знаете...
 
Alexey Viktorov:
Никто эти условия не создаёт. Просто запускается советник в тестере, и смотрится журнал. Если есть ошибка, номер ошибки и тем-более причину никто не будет выяснять, никому это не надо. Я сталкивался с такой проблемой, написал что сделать, но это было проигнорировано. Как знаете...
Спасибо Вам за подсказку, уже работаю над этим..
 
Пример функции расчета лота для текущей маржи:
double calculateLotSize()
{
   double stopLoss     = ((MarketInfo(Symbol(), MODE_STOPLEVEL) + MarketInfo(Symbol(), MODE_SPREAD))*3) * MarketInfo(Symbol(), MODE_POINT);
   double takeProfit   = ((MarketInfo(Symbol(), MODE_STOPLEVEL) + MarketInfo(Symbol(), MODE_SPREAD))*2) * MarketInfo(Symbol(), MODE_POINT);
  
   double minLot       = MarketInfo(Symbol(),MODE_MINLOT);
   double maxLot       = MarketInfo(Symbol(),MODE_MAXLOT);
  
   double OneLotMargin = MarketInfo(Symbol(),MODE_MARGINREQUIRED);
   double MarginAmount = AccountBalance()/3.0;
   double lotMM        = MarginAmount/OneLotMargin;
   double LotStep      = MarketInfo(Symbol(),MODE_LOTSTEP);
   lotMM               = NormalizeDouble(lotMM/LotStep,0)*LotStep;
  
   if(lotMM < minLot) {
      lotMM = minLot;
   }
   if(lotMM > maxLot) {
      lotMM = maxLot;
   }
  
   return(lotMM);
}
Причина обращения: