Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2599

 
K1mn10 #:
Здравствуйте! Подскажите, пожалуйста, начинающему))) Нашел индикатор на маркете МА3 настроил под себя, индикатор показывает неплохие результаты. Пишу советника и зашел в тупик с тем как мне добавить этот индикатор для принятия решений, никаких сведений о коде индикатора и какие он использует буферы не могу найти. Есть только настраиваемы параметры и оповещение от индикатора. В каком направлении двигаться, дайте совет? 

По моему всё просто - если заранее не указан индекс массива значения которого вас интересуют, то надо просто его "нащупать" методом ручного подбора

 
K1mn10 #:
Здравствуйте! Подскажите, пожалуйста, начинающему))) Нашел индикатор на маркете МА3 настроил под себя, индикатор показывает неплохие результаты. Пишу советника и зашел в тупик с тем как мне добавить этот индикатор для принятия решений, никаких сведений о коде индикатора и какие он использует буферы не могу найти. Есть только настраиваемы параметры и оповещение от индикатора. В каком направлении двигаться, дайте совет? ... 

... если что я имею ввиду параметр buffer_num в этой функции

https://www.mql5.com/ru/docs/series/copybuffer

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
  • www.mql5.com
Получает в массив buffer данные указанного буфера указанного индикатора в указанном количестве. Отсчет элементов копируемых данных (индикаторный...
 
Alexandr Sokolov #:

По моему всё просто - если заранее не указан индекс массива значения которого вас интересуют, то надо просто его "нащупать" методом ручного подбора

Спасибо)
 
Aleksandr Slavskii #:

Я же говорю, не работает это. Цвет хоть какой ставь, хоть невидимый, хоть цвет графика, всё равно кнопку видно.

Да, Вы правы. Чтобы скрыть полностью надо сверху на кнопку наложить объект в цвет фона.
 
Подскажите, пожалуйста, код, который закрывает процент плавающего убытка. 

Например, баланс 1000, эквити 900.
Процент убытка установлен 10%.

900 от 1000 - это 10% - все позиции закрываются. 

И можно ли сделать так, чтобы закрывалось ровно -100, или ровно закрывать невозможно? (проскальзывания всякие и тд) 


У меня простой код

   double currentBalance    = AccountInfoDouble(ACCOUNT_BALANCE);
    double currentEquity     = AccountInfoDouble(ACCOUNT_EQUITY);
    double drawdownThreshold = currentBalance * (1 - MaxDrawdownPercent / 100.0);

    // Проверка просадки
    if (currentEquity <= drawdownThreshold) 
      {
          Close_pos(""); // Закрыть все позиции
          Print("Просадка " + DoubleToString(MaxDrawdownPercent, 2) + "% от текущего эквити достигнута! Позиции закрыты.");
      }
 
Ivan Butko #:
Подскажите, пожалуйста, код, который закрывает процент плавающего убытка. 

Например, баланс 1000, эквити 900.
Процент убытка установлен 10%.

900 от 1000 - это 10% - все позиции закрываются. 

И можно ли сделать так, чтобы закрывалось ровно -100, или ровно закрывать невозможно? (проскальзывания всякие и тд) 


У меня простой код

Это не возможно и не только из-за проскальзывания, если несколько позиций или 1 пункт не дает кратное значение, то этот 1 пункт может уже перескочить порог 100, т.е. при 135 пунктах убыток 99, а при 136 уже 101
 
Tretyakov Rostyslav #:
Это не возможно и не только из-за проскальзывания, если несколько позиций или 1 пункт не дает кратное значение, то этот 1 пункт может уже перескочить порог 100, т.е. при 135 пунктах убыток 99, а при 136 уже 101
Благодарю. Тоже так думал, но решил удостовериться
 

Приветствую. Из учебника:

string Greeting()
{
  static int counter = 0;
  static string messages[3] =
  {
    "Good morning", "Good day", "Good evening"
  };
  return messages[counter++ % 3];
}

Подскажите, пожалста: почему при первом вызове возвращает "Good morning" ? Когда индекс берется из counter++, что равно 1.

 
Andrei Sokolov #:
counter++

Плюсики после переменной означаею, что после применения (вызова) этой переменной увеличиваем её на единицу, если плюсики перед переменной, то до применения её увеличиваем на единицу.

 
Aleksey Vyazmikin #:

Плюсики после переменной означаею, что после применения (вызова) этой переменной увеличиваем её на единицу, если плюсики перед переменной, то до применения её увеличиваем на единицу.

Спасиб