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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.