[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 52

 

 Вот моя функция модификация отложенного ордера. При модификации я задаю новую цену и новый стоплосс. Функция частично работает, но почему-то в тестере сыпяться ошибки 1.

 Верно ли моя функция написана?

void MovingPendingOrders(/*int ticket, double newPrice*/)
{
  double priceS = NormalizeDouble((Low[1] - i_thresholdFromInput*pt),Digits);           // Новая цена открытия для OP_SELLSTOP
  double priceB = NormalizeDouble((High[1] + i_thresholdFromBasedSL*pt),Digits);        // Новая цена открытия для OP_BUYSTOP
  bool b_mod, s_mod;
  
  int total = OrdersTotal() - 1;
  int s_ticket, b_ticket;

  for(int i=total; i>=0; i--)
  {
    if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if(OrderMagicNumber() != i_myMagic) continue;
      {
        if(OrderType() == OP_BUYSTOP)
        {
          b_ticket = OrderTicket();
          b_mod = true;
        }
        if(OrderType() == OP_SELLSTOP)
        {
          s_ticket = OrderTicket();
          s_mod = true;
        }
      }
  }
  
  if(IsTradeAllowed())
  {
    if((b_mod) && (priceB > Ask)) OrderModify(b_ticket,priceB,priceS,0,0,Brown);
    if((s_mod) && (priceS < Bid)) OrderModify(s_ticket,priceS,priceB,0,0,Brown);
  }
  Print("MovingPendingOrders переоткрыл ордер по новой цене");
}
 
hoz:

Верно ли моя функция написана?

 bool b_mod = false; 
 bool s_mod = false;
 
hoz:

 Вот моя функция модификация отложенного ордера. При модификации я задаю новую цену и новый стоплосс. Функция частично работает, но почему-то в тестере сыпяться ошибки 1.

 Верно ли моя функция написана?

 

...и на каждом тике модифицируетесь снова и снова. ?!
 
BeerGod:

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

Сейчас так:

Надо по типу такого:

Шрифтом каким-нибудь воспользоваться надо. Может даже свой создать.
 
silatyt:
...и на каждом тике модифицируетесь снова и снова. ?!

 Да я не знал куда её впихнуть, логику эксперта запутал совсем по неопытности. Чтобы проверить работу ф-ции, закинул её в старт.. Да было на каждом тике, потому и ошибка. Потом после ф-ции определения нового бара вставил, и поправил код как подсказал TheXpert и всё пошло как нужно.
 

Добрый день. Подскажите, пожалуйста, как примерно должен выглядеть кусок кода советника, который отвечает за следующее:

1.  Перебирает по очереди параметры (в заданном диапазоне, н-р от 10 до 20) индикатора, на котором основан советник пока условие на открытие сделки не будет выполнено. 

2. Если условие после перебора так и не выполнено - ждем 5 минут. 

 
Добрый день. Не подскажете возможно ли стандартными средствами mql4 отправить выполнение кода например с 35 строки на 18(строки ради примера). Своего рода прыжки в коде.
 
tpg_k156:
Добрый день. Не подскажете возможно ли стандартными средствами mql4 отправить выполнение кода например с 35 строки на 18(строки ради примера). Своего рода прыжки в коде.

операторы switch / if - else

и функции

 
sergeev:

операторы switch / if - else

и функции



тоесть из тела функции возможно повторно заставить выполнить себя же? типа
int Gipo()                   // Пользовательская функция  
{
всякая фигня
if(получили-что-надо)
 {
 return(что-надо);
 }
else
 {
 Gipo();
 }
}
???
 
tpg_k156:

тоесть из тела функции возможно повторно заставить выполнить себя же? типа


да. это называется рекурсия.



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