Вопросы (Yerkin Sagandykov) - страница 11

 
Ihor Herasko #:

MTF-индикатор - это не пятиминутное дело. Поэтому готовый пример вряд ли получится. Я показал непосредственно подход, причем наиболее скользкий момент - преобразование индекса бара между ТФ.

Для МQL5 кода будет немного больше. Сначала потребуется создать Handle для МА (в OnInit(), смотрите документацию по iCustom, там хороший пример), а только потом получить расчетное значение через CopyBuffer(). С iTime() и iBarShift() в МQL5 все то же самое. Также не забудьте, что по умолчанию нумерация баров в МТ5 обратна нумерации, используемой в МТ4.

Спасибо !

 

Всем привет !

хотел создать график пользовательского символа ( NAS100/GER40 ). Возможно средствами МТ5 сделать это ?

 
Yerkin Sagandykov #:

Всем привет !

хотел создать график пользовательского символа ( NAS100/GER40 ). Возможно средствами МТ5 сделать это ?


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

почему избегаете запрашивать разъяснения  в тематических для этого ветках форума?

хотя бы в этой!!!


или этой!!!!!

Как начать работу с MQL5 - Пример работы с терминалом Metatrader 5.
Как начать работу с MQL5 - Пример работы с терминалом Metatrader 5.
  • 2018.12.24
  • Vladimir Karputov
  • www.mql5.com
Примечание индикатор создается ОДИН раз в OnInit мы получаем данные из индикатора. Как получать данные от индикаторов из нескольких символов. Осталось создать хэндлы индикаторов на этих символах. Создание хендлов совмещено с проверкой символа если символ существует
 
Roman Shiredchenko #:

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

почему избегаете запрашивать разъяснения  в тематических для этого ветках форума?

хотя бы в этой!!!


или этой!!!!!

))

Принято.  Не в курсях был.  

 

Привет всем ! Нахождение ГЭП  в понедельник  при отктии торгов. По все мажорам считает    верно а по йене дает  цену отктыи понедельника =  цена  понедельника предыдущей недели 

void CalculateGap(string symbol)
  {
   double fridayClose = 0, mondayOpen = 0;

// === Находим закрытие пятницы ===
   for(int i = 1; i < 100; i++)
     {
      datetime barTime = iTime(symbol, PERIOD_D1, i);
      MqlDateTime barStruct;
      TimeToStruct(barTime, barStruct);

      if(barStruct.day_of_week == 5)
        {
         double closePrices[1];
         if(CopyClose(symbol, PERIOD_D1, i, 1, closePrices) > 0)
           {
            fridayClose = closePrices[0];
           }
         else
           {
            Print(symbol, ": Ошибка загрузки закрытия пятницы");
            return;
           }
         break;
        }
     }

// === Находим открытие понедельника ===


   for(int i = 0; i < 10; i++)
     {
      datetime barTime = iTime(symbol, PERIOD_D1, i);
      MqlDateTime barStruct;
      TimeToStruct(barTime, barStruct);
Print("barTime ", barTime, " ", symbol );
      if(barStruct.day_of_week == 1)  // Проверяем, что день понедельник
        {
         double openPrices[1];
         if(CopyOpen(symbol, PERIOD_D1, i, 1, openPrices) > 0)
           {
            mondayOpen = openPrices[0];

            // Проверяем, что бар действительно следующий после воскресенья
            datetime prevBarTime = iTime(symbol, PERIOD_D1, i+1);
            MqlDateTime prevStruct;
            TimeToStruct(prevBarTime, prevStruct);

            if(prevStruct.day_of_week == 0)  // Предыдущий бар воскресенье
              {
               //Print("Открытие понедельника для ", symbol, ": ", mondayOpen);
               break;
              }
           }
        }
     }

// === Вычисляем гэп ===
   double point = SymbolInfoDouble(symbol, SYMBOL_POINT);
   double gapSize = MathAbs(mondayOpen - fridayClose) / point;

   PrintFormat("%s → ГЭП: %.1f пунктов (Закрытие пятницы: %.5f, Открытие понедельника: %.5f)",
               symbol, gapSize, fridayClose, mondayOpen);
  }
 

Вот здесь логическая ошибка:

// Проверяем, что бар действительно следующий после воскресенья
            datetime prevBarTime = iTime(symbol, PERIOD_D1, i+1);
            MqlDateTime prevStruct;
            TimeToStruct(prevBarTime, prevStruct);

            if(prevStruct.day_of_week == 0)  // Предыдущий бар воскресенье
              {
               //Print("Открытие понедельника для ", symbol, ": ", mondayOpen);
               break;
              }

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

Да и в принципе непонятно, для чего нужна такая проверка? Нашли же понедельник. Зачем убеждаться, что перед ним есть воскресенье? Главное, чтобы этот понедельник был позже найденной пятницы. А вот такой проверки в коде нет.

 
Yerkin Sagandykov #:

))

Принято.  Не в курсях был.  

таким вариком можно попробовать сделать - сам индексы так парные по сути спреды свои пишу - получается на двух символах тоже ок работает

https://www.mql5.com/ru/articles/15684

Графики индекса доллара и индекса евро — пример сервиса в MetaTrader 5
Графики индекса доллара и индекса евро — пример сервиса в MetaTrader 5
  • www.mql5.com
На примере программы-сервиса рассмотрим создание и обновление графиков индекса доллара (USDX) и индекса евро (EURX). При запуске сервиса будем проверять наличие нужного синтетического инструмента, создавать его при его отсутствии и размещать в окне Обзор рынка. Далее будет создана история синтетического инструмента — минутная и тиковая, и будет открыт график созданного инструмента.
 

Привет всем !

на  тестре стратегий прогоняю с использованием  знанчий индикатора Lagguarre. Часовки, дневки верно показывает, а недельные знанчия намного меньше фактических н соответствующую дату. Это баг тестера МТ5 ? на скрипте запускаю -  все норм. 

 
Roman Shiredchenko #:

таким вариком можно попробовать сделать - сам индексы так парные по сути спреды свои пишу - получается на двух символах тоже ок работает

https://www.mql5.com/ru/articles/15684

Спасибо , посмотрю! 

 
Yerkin Sagandykov #:

Спасибо , посмотрю! 

там если устраивает не пользовательский символ - то можно индикатором сделать....

Сам в теме - потому что сам занимаюсь этим

вот индик по типу этого на МТ 5 

можно сделать - эквити будет ок рисовать - там также можно как вы запрашиваете через деление сделать или можно через разность...

https://www.mql5.com/ru/forum/8666

Индикаторы: Ind_2 Line+1
Индикаторы: Ind_2 Line+1
  • 2012.11.07
  • Automated-Trading
  • www.mql5.com
Индикатор арбитражной ситуации для спреда, состоящего из двух инструментов.