Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 806

 
User_mt5:

Виталий, Виталий!))
Вы не представляете как я Вам признателен! 

Этого с головой. Конечно, нужно всё теперь опробовать, но это уже мелочи.

Я и не знал, что счастье может быть так близко!)) Спасибо!  Как это.. Я за тебя, за тебя, затебее не бывает!

F1 часто решает многие проблемы быстрее форума.
 
Artyom Trishkin:
F1 часто решает многие проблемы быстрее форума.
Я с помощью F1 не могу найти ответ на свой вопрос.
 
DCodec:
Я с помощью F1 не могу найти ответ на свой вопрос.

Ну потому, что это один индикатор, который имеет две линии. Используйте Moving Average с теми же параметрами, что и Envelopes, для отрисовки только одной линии МА. Только к значению МА нужно прибавить значение Deviation*Point() для верхней линии, и отнять значение Deviation*Point() - для нижней линии

 
Artyom Trishkin:
F1 часто решает многие проблемы быстрее форума.

Понимаете какое дело.. Умных к умным послали..
А меня носит по необъятным просторам форекса.. Сейчас вот на этот форум занесло.

F1 - это вообще что, кнопка такая, да? Спасибо за совет. Я попробую понажимать.

 
IgorM М:

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

подскажите, что как в последних билдах mql5 в части обнаружения нового бара для индикатора работающего на одном таймфрейме, какой код сейчас кто использует?

ЗЫ: поиском нашел TimeframesFlags .. громоздкое решение, но универсальное

за ранее благодарен!


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

Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Для создателей индикаторов и экспертов всегда был актуален вопрос написания экономичного кода с точки зрения времени выполнения. Можно подойти к решению этой задачи с разных сторон. Из этой обширной темы в данной статье будет затронут, казалось бы уже решенный вопрос: проверка появления нового бара. Это достаточно популярный способ ограничения...
 
Artyom Trishkin:

Ну потому, что это один индикатор, который имеет две линии. Используйте Moving Average с теми же параметрами, что и Envelopes, для отрисовки только одной линии МА. Только к значению МА нужно прибавить значение Deviation*Point() для верхней линии, и отнять значение Deviation*Point() - для нижней линии

Интересное решение, спасибо!

Но вот если это не Envelopes, а Bollinger Bands - тогда формулу с расчетом стандартного отклонения прописывать? Можно конечно, но неужели нет простого решения как в MQL4?

iEnvelopes

Возвращает значение технического индикатора Envelopes.

double  iEnvelopes(
   string       symbol,           // имя символа
   int          timeframe,        // таймфрейм
   int          ma_period,        // период
   int          ma_method,        // метод усреднения
   int          ma_shift,         // сдвиг средней
   int          applied_price,    // тип цены
   double       deviation,        // отклонение (в процентах)
   int          mode,             // индекс линии
   int          shift             // сдвиг
   );

Т.е. параметр

int          mode,             // индекс линии
задаёт номер линии.


 
DCodec:

...



А вот такой индикатор Вам не подойдёт Custom Moving Average Levels ?

Индикатор Moving Average, у которого можно из MQL5-кода задавать значения двух уровней:

Custom Moving Average Levels

 
Vladimir Karputov:

А вот такой индикатор Вам не подойдёт Custom Moving Average Levels ?

Индикатор Moving Average, у которого можно из MQL5-кода задавать значения двух уровней:

Большое спасибо за помощь, но я в процессе изучения MQL5. И поэтому пытаюсь из уже встроенных индикаторов, которые имеют несколько индикаторных линий, "вытащить" нужные значения значения с помощью iCustom.

Пока не могу сделать, но наверное это как то просто.

 
DCodec:

Большое спасибо за помощь, но я в процессе изучения MQL5. И поэтому пытаюсь из уже встроенных индикаторов, которые имеют несколько индикаторных линий, "вытащить" нужные значения значения с помощью iCustom.

Пока не могу сделать, но наверное это как то просто.


С iCustom все очень просто. Сразу пример: в коде Custom Moving Average Levels есть

Пример создания этого индикатора (он расположен в папке "каталог данных терминала"\MQL5\Indicators\MyInd\):

...
int            handle_iMA_Custom;            // variable for storing the handle of the iMA indicator 
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
...
//--- create handle of the Custom indicator "Custom Moving Average Levels"
   handle_iMA_Custom=iCustom(Symbol(),Period(),"MyInd\\Custom Moving Average Levels",
                             ma_period,
                             ma_shift,
                             ma_method,
                             100,
                             -100);
//--- if the handle is not created 
   if(handle_iMA_Custom==INVALID_HANDLE)
     {
      //--- tell about the failure and output the error code 
      PrintFormat("Failed to create handle of the iMA indicator for the symbol %s/%s, error code %d",
                  Symbol(),
                  EnumToString(Period()),
                  GetLastError());
      //--- the indicator is stopped early 
      return(INIT_FAILED);
     }
   ChartIndicatorAdd(0,0,handle_iMA_Custom);
//---
   return(INIT_SUCCEEDED);
  }
И так с любым индикатором вызываемом через iCustom - сначала создаём хендл индикатора (не забываем, что хендл создаём ОДИН раз в OnInit()) через iCustom: Символ, Период, Путь, возможно Параметры -
 
Vladimir Karputov:

С iCustom все очень просто. Сразу пример: в коде Custom Moving Average Levels есть

Пример создания этого индикатора (он расположен в папке "каталог данных терминала"\MQL5\Indicators\MyInd\):

И так с любым индикатором вызываемом через iCustom - сначала создаём хендл индикатора (не забываем, что хендл создаём ОДИН раз в OnInit()) через iCustom: Символ, Период, Путь, возможно Параметры -

Честно, ничего не понял. Мне нужны значения верхней линии индикатора на Close[2], Close[1] и всё.

Как эти значения вытянуть из ЛЮБОГО индикатора чтобы только "не влазить" в код индикатора.