Группа "Стол заказов MQL"

Рейтинг 2147



РЕКОМЕНДУЮ



Индикатор МТ4 на основе индикатора ZigZag

Пожалуйста, создайте индикатора на основе индикатора ZigZag. При прикреплении индикатора на график рисуются линии индикатора ZigZag отдельными короткими линиями. После удаления индикатора все линии остаются на графике для дальнейшей корректировки и работы.
  • 0
  • Просмотров: 5679
  • 27 января 2017, 12:55
  • izzatilla
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Отложки для моих уровней
Следующая запись в группе  
расчет лота
27 января 2017
27 января 2017

Брокер для ваших роботов, 15 лет на рынке

Комментарии (8)

+
0
После выходных гляну, поясните на картинках подробнее.
avatar

  35  AM2 Сообщений: 16303 - Андрей

  • 28 января 2017, 06:09
+
0

avatar

  5  izzatilla Автор Сообщений: 107 - telma

  • 28 января 2017, 15:47
+
0
Т.к. зигзаг перерисовывается, получаются такие горы :D 




//+------------------------------------------------------------------+
//|                                                         Zigi.mq4 |
//|                                              Copyright 2017, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutTrend(string name,datetime time1,double price1,datetime time2,double price2)
  {
   ObjectDelete(0,name);
   ObjectCreate(0,name,OBJ_TREND,0,time1,price1,time2,price2);
//--- установим цвет линии
   ObjectSetInteger(0,name,OBJPROP_COLOR,Blue);
//--- установим стиль отображения линии
   ObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_SOLID);
//--- установим толщину линии
   ObjectSetInteger(0,name,OBJPROP_WIDTH,2);
//--- включим (true) или отключим (false) режим продолжения отображения линии вправо
   ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,false);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double ZZPrice(int ne=0)
  {
   double zz;
   int    i,k=iBars(NULL,0),ke=0;

   for(i=1; i<k; i++)
     {
      zz=iCustom(NULL,0,"ZigZag",12,5,3,0,i);
      if(zz!=0)
        {
         ke++;
         if(ke>ne) return(zz);
        }
     }
   Print("GetExtremumZZPrice(): Экстремум ЗигЗага номер ",ne," не найден");
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int ZZBar(int ne=0)
  {
   double zz;
   int    i,k=iBars(NULL,0),ke=0;

   for(i=0; i<k; i++)
     {
      zz=iCustom(NULL,0,"ZigZag",12,5,3,0,i);
      if(zz!=0)
        {
         ke++;
         if(ke>ne) return(i);
        }
     }
   Print("GetExtremumZZBar(): Экстремум ЗигЗага номер ",ne," не найден");
   return(-1);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   PutTrend((string)time[0],time[ZZBar(0)],ZZPrice(0),time[ZZBar(1)],ZZPrice(1));
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16303 - Андрей

  • 31 января 2017, 18:54
+
0
На самом деле, возможно, это интересно, покумекать по этим горам, посопоставлять истинные сильные уровни *think* 
avatar

  11  preasto Сообщений: 445

  • 1 февраля 2017, 00:01
+
0
Кажется не совсем поняли друг-друга. Индикатор будет работать не на тестере. Сейчас при запуске индикатора появляется только последняя линия ЗигЗага, а нужно что бы он все исторические линии индикатора ЗигЗага отрисовал на графике короткими линиями. Последнюю линию можно не учитывать.
avatar

  5  izzatilla Автор Сообщений: 107 - telma

  • 1 февраля 2017, 09:16
+
0
avatar

  35  AM2 Сообщений: 16303 - Андрей

  • 1 февраля 2017, 17:14
+
0
Приветствую Вас, Андрей!
Все работает. К сожалению данный индикатор у меня не исполняется на mt4 v4. build 1280/ 24 jul 2020, поэтому проверить его не могу.

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

Вопрос: технически можно создать скрипт-копировальщик графических объектов, расположенных в окне графика?

Для чего это нужно:
Я использую индикатор Индикатор Channel Trend V1.0. Данный индикатор перерисовывается при переключение между тф. А мне необходимо опираться на трендовые линии созданные на старших тф, но в неперегруженном графическими элементами окне графика, тк лишние элементы замыливают взгляд и скрадывают внимание.

Алгоритм использования скрипта-копировальщика:
1) Открываю тф Д. Запускаю индикатор Channel Trend V1.0.
2) Запускаю скрипт-копировальщик графических объектов. Он копирует все созданные индикатором линии.
3) Удаляю индикатор из окна графика. В окне остаются линии проведенные индикатором. Удаляю лишние/мешающие графические объекты.
4) Открываю тф 15. Примагничиваю оставленные линии к хай/лой нужных свечей. Торгую по ТС.

Долго не мог найти чего-то подобного в интернете. Вот похожая идея была озвучена в настоящей теме «Индикатор МТ4 на основе индикатора ZigZag», но по названию которой точно никак нельзя было определить, что речь идет о копировальщике графических объектов, либо я подбирал не те слова для запроса <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp; 

Редактирован: 6 ноября 2020, 11:24
avatar

  9  USDPump Сообщений: 62

  • 5 ноября 2020, 00:37
+
0
Спасибо
avatar

  5  izzatilla Автор Сообщений: 107 - telma

  • 1 февраля 2017, 20:22

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий