← К каталогу
Исходный код · ID 2499

Wolfewaves

wolfewaves.mq5
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Wolfewaves — пользовательский индикатор для MetaTrader 5, который отображает на графике ценовые волновые структуры, опираясь на данные внешнего индикатора DT_ZZ. Индикатор работает в окне графика и создает графические объекты: линии тренда и текстовые метки, отмечающие точки волн. При появлении новой волновой структуры индикатор может выводить уведомление через Alert.

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

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

Настройки программы

НастройкаОписание
??? ??????? DT_ZZ (ExtDepth) Глубина DT_ZZ — Глубина расчета для внешнего индикатора DT_ZZ, используемого для получения точек волн.
true - ?????????? ??????? ????????????? WW, false - ?? ???????. (Real) Реальный режим — Переключатель режима отображения: при включении используется режим с проверкой положения точки, при выключении — упрощенный режим.
true -????? ?????? ?????? ? ????????????? 5-? ???????,false - 4-??. (WW5) Построение по 5 точкам — Переключатель варианта построения волновой структуры: при включении строится по пяти точкам, при выключении — по четырем.
10%-??? ?????????? ?.5 ?? ????? 1-3(?? ??????? ???????? ?? ?.4 ?? ?.5) (dopusk) Допуск — Допуск для проверки положения точки относительно построенной линии.
Получить полный код

Поиск по коду файла

#property indicator_chart_window

extern int ExtDepth=12; // ??? ??????? DT_ZZ

extern bool Real=true; // true - ?????????? ??????? ????????????? WW, false - ?? ???????.
extern bool WW5=True; // true -????? ?????? ?????? ? ????????????? 5-? ???????,false - 4-??.
extern double dopusk=0.1; // 10%-??? ?????????? ?.5 ?? ????? 1-3(?? ??????? ???????? ?? ?.4 ?? ?.5)
int expBars=0;

int init()
  {
      // код доступен только после оплаты
   }

int deinit()
  {

   for(int i=Bars-1;i>=0;i--)
   {
    ObjectDelete("Line_1-3_"+i);
    ObjectDelete("Line_1-4_"+i);
    ObjectDelete("Line_2-4_"+i);
    ObjectDelete("1_"+i);
    ObjectDelete("2_"+i);
    ObjectDelete("3_"+i);
    ObjectDelete("4_"+i);
    ObjectDelete("5_"+i);
   }

   return(0);
  }

int start()
  {
      // код доступен только после оплаты
   }

/*---------------------------------------------------------------+
|  ??????? ???????? ???????? ??? WW, ? ??????? ????? ?? ????? 5  |
|  ?? ?????????????? ????? 6, ??????????? ????? (?? ???????)     |
+---------------------------------------------------------------*/
    void WWUp(double Z1,double Z2,double Z3,double Z4,double Z5,int shift1,int shift2,int shift3,int shift4,int shift5)
    {

    ObjectCreate("Line_1-3_"+shift5,OBJ_TREND,0,iTime(NULL,0,shift1),Z1,iTime(NULL,0,shift3-(shift1-shift3)),Z3+(Z3-Z1));

    double price_1_3=ObjectGetValueByShift("Line_1-3_"+shift5,shift5);

    if (Z5<=price_1_3+(Z4-Z5)*dopusk && Z5>=price_1_3-(Z4-Z5)*dopusk)
    {
    ObjectCreate("Line_1-4_"+shift5,OBJ_TREND,0,iTime(NULL,0,shift1),Z1,iTime(NULL,0,shift4-(shift1-shift4)),Z4+(Z4-Z1));
    ObjectCreate("Line_2-4_"+shift5,OBJ_TREND,0,iTime(NULL,0,shift2),Z2,iTime(NULL,0,shift4),Z4);
    ObjectSet("Line_1-3_"+shift5,OBJPROP_COLOR,Blue);
    ObjectSet("Line_1-4_"+shift5,OBJPROP_COLOR,Red);
    ObjectSet("Line_2-4_"+shift5,OBJPROP_COLOR,Blue);
    ObjectSet("Line_1-3_"+shift5,OBJPROP_RAY,false);
    ObjectSet("Line_1-4_"+shift5,OBJPROP_RAY,false);
    ObjectSet("Line_2-4_"+shift5,OBJPROP_RAY,false);

    if (iTime(NULL,0,shift4-(shift1-shift4))==0)
    {
    ObjectSet("Line_1-3_"+shift5,OBJPROP_TIME2,iTime(NULL,0,shift3));
    ObjectSet("Line_1-3_"+shift5,OBJPROP_PRICE2,Z3);
    ObjectSet("Line_1-3_"+shift5,OBJPROP_RAY,true);
    ObjectSet("Line_1-4_"+shift5,OBJPROP_TIME2,iTime(NULL,0,shift4));
    ObjectSet("Line_1-4_"+shift5,OBJPROP_PRICE2,Z4);
    ObjectSet("Line_1-4_"+shift5,OBJPROP_RAY,true);
    }

    ObjectCreate("1_"+shift5,OBJ_TEXT,0,iTime(NULL,0,shift1+2),Z1);
    ObjectCreate("2_"+shift5,OBJ_TEXT,0,iTime(NULL,0,shift2+2),Z2);
    ObjectCreate("3_"+shift5,OBJ_TEXT,0,iTime(NULL,0,shift3+2),Z3);
    ObjectCreate("4_"+shift5,OBJ_TEXT,0,iTime(NULL,0,shift4+2),Z4);
    ObjectCreate("5_"+shift5,OBJ_TEXT,0,iTime(NULL,0,shift5+2),Z5);
    ObjectSetText("1_"+shift5,"1",9,"Times New Roman", Red);
    ObjectSetText("2_"+shift5,"2",9,"Times New Roman", Red);
    ObjectSetText("3_"+shift5,"3",9,"Times New Roman", Red);
    ObjectSetText("4_"+shift5,"4",9,"Times New Roman", Red);
    ObjectSetText("5_"+shift5,"5",9,"Times New Roman", Red);
    }else ObjectDelete("Line_1-3_"+shift5);

  }

/*---------------------------------------------------------------+
|  ??????? ???????? ???????? ??? WW, ? ??????? ????? ?? ????? 5  |
|  ?? ?????????????? ????? 6, ??????????? ???? (?? ???????)      |
+---------------------------------------------------------------*/
    void WWDown(double Z1,double Z2,double Z3,double Z4,double Z5,int shift1,int shift2,int shift3,int shift4,int shift5)
    { 

    ObjectCreate("Line_1-3_"+shift5,OBJ_TREND,0,iTime(NULL,0,shift1),Z1,iTime(NULL,0,shift3-(shift1-shift3)),Z3+(Z3-Z1));

    double price_1_3=ObjectGetValueByShift("Line_1-3_"+shift5,shift5);

    if (Z5<=price_1_3+(Z5-Z2)*dopusk && Z5>=price_1_3-(Z5-Z2)*dopusk)
    {
    ObjectCreate("Line_1-4_"+shift5,OBJ_TREND,0,iTime(NULL,0,shift1),Z1,iTime(NULL,0,shift4-(shift1-shift4)),Z4-(Z1-Z4));
    ObjectCreate("Line_2-4_"+shift5,OBJ_TREND,0,iTime(NULL,0,shift2),Z2,iTime(NULL,0,shift4),Z4);
    ObjectSet("Line_1-3_"+shift5,OBJPROP_COLOR,Blue);
    ObjectSet("Line_1-4_"+shift5,OBJPROP_COLOR,Red);
    ObjectSet("Line_2-4_"+shift5,OBJPROP_COLOR,Blue);
    ObjectSet("3_Line_2-4_"+shift5,OBJPROP_COLOR,Blue);
    ObjectSet("Line_1-3_"+shift5,OBJPROP_RAY,false);
    ObjectSet("Line_1-4_"+shift5,OBJPROP_RAY,false);
    ObjectSet("Line_2-4_"+shift5,OBJPROP_RAY,false);
    ObjectSet("3_Line_2-4_"+shift5,OBJPROP_RAY,false);

    if (iTime(NULL,0,shift4-(shift1-shift4))==0)
    {
    ObjectSet("Line_1-3_"+shift5,OBJPROP_TIME2,iTime(NULL,0,shift3));
    ObjectSet("Line_1-3_"+shift5,OBJPROP_PRICE2,Z3);
    ObjectSet("Line_1-3_"+shift5,OBJPROP_RAY,true);
    ObjectSet("Line_1-4_"+shift5,OBJPROP_TIME2,iTime(NULL,0,shift4));
    ObjectSet("Line_1-4_"+shift5,OBJPROP_PRICE2,Z4);
    ObjectSet("Line_1-4_"+shift5,OBJPROP_RAY,true);
    } 

    ObjectCreate("1_"+shift5,OBJ_TEXT,0,iTime(NULL,0,shift1+2),Z1);
    ObjectCreate("2_"+shift5,OBJ_TEXT,0,iTime(NULL,0,shift2+2),Z2);
    ObjectCreate("3_"+shift5,OBJ_TEXT,0,iTime(NULL,0,shift3+2),Z3);
    ObjectCreate("4_"+shift5,OBJ_TEXT,0,iTime(NULL,0,shift4+2),Z4);
    ObjectCreate("5_"+shift5,OBJ_TEXT,0,iTime(NULL,0,shift5+2),Z5);
    ObjectSetText("1_"+shift5,"1",9,"Times New Roman", Red);
    ObjectSetText("2_"+shift5,"2",9,"Times New Roman", Red);
    ObjectSetText("3_"+shift5,"3",9,"Times New Roman", Red);
    ObjectSetText("4_"+shift5,"4",9,"Times New Roman", Red);
    ObjectSetText("5_"+shift5,"5",9,"Times New Roman", Red);
    }else ObjectDelete("Line_1-3_"+shift5);

  }

 /*--------------------------------------------------------------+
 |??????? ??????????

Показано первые 50% кода (символов: 11937)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 193,70₽ ≈ $14.59