Помощь в кодировании - страница 192

 

Привет, Младен,

Я долго пытался включить, применить и сделать некоторые коды к этому индикатору, у него есть проблемы с отображением, без обновления и перерисовки, но я не знаю, почему это не так, не могли бы вы сказать мне причину? Но у него также есть большая слабость, что он только рассчитывает сигнал или значение после закрытия свечи, когда свеча все еще работает, она не будет менять никаких сигналов или значений, но я просто использую точно такую же формулу расчета, как раньше CCI пробные индикаторы, отправленные вам раньше, почему такой разный результат? что код внутри сделал, чтобы сделать такие различия? Но я надеюсь, что он может вычислять как вы, может вычислять значения и сигналы мгновенно, когда свеча еще работает (не только после закрытия), иначе сигналы будут запаздывать по крайней мере на одну свечу. как улучшить этот индикатор, если я хочу, чтобы он мгновенно менял значения и сигналы, спасибо большое за помощь.

 

Здравствуйте кодеры,

Здравствуйте, mladen,

Я нашел на своем HDD индикатор, который выводит оповещение, когда цена касается горизонтальной линии. Я немного модифицировал его и он работает нормально. Но теперь я хотел бы кое-что добавить. Часто бывает так, что точная линия не касается цены, и цена разворачивается на несколько пунктов раньше. Теперь я могу нарисовать еще много линий на графике или попытаться модифицировать этот индикатор, чтобы он показывал предупреждение не только тогда, когда линия на графике касается линии, но и на несколько пунктов выше или ниже. То есть индикатор должен показывать оповещение, когда цены касаются линии на графике +5 пунктов или -5 пунктов.

Моя идея состоит в том, чтобы изменить эту линию:

if (High[0]>=line && line>=Low[0]) на что-то вроде этого:

if ((High[0]>=line+0.0005 && line+0.0005>=Low[0]) || (if (High[0]>=line-0.0005 && line-0.0005>=Low[0])).

Очевидно, что это не работает... Я понятия не имею почему... :-/

И еще одна проблема в том, что это будет работать только для цен 1.XXXX. Я не могу использовать 0.0005 для йеновых пар или Index-CFD.

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

Спасибо!!!

Вот код:

//+------------------------------------------------------------------+

//| LINE_ALERT.mq4 |

//+------------------------------------------------------------------+

extern bool Notification=true;

extern bool displayAlert=true;

string Text;

#property indicator_chart_window

//+------------------------------------------------------------------+

//| Пользовательская функция инициализации индикатора |

//+------------------------------------------------------------------+

int init()

{

//---- индикаторы

//----

return(0);

}

//+------------------------------------------------------------------+

//| Пользовательская функция деинициализации индикатора | |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Пользовательская функция итерации индикатора |

//+------------------------------------------------------------------+

int start()

{

//----

if (displayAlert==false) return;

static datetime Time0;

if (Time0 == Time[0]) return; //Одно оповещение на бар.

for(int iObj = ObjectsTotal() - 1; iObj >= 0; iObj--)

{

string name = ObjectName(iObj);

if (ObjectType(name) == OBJ_HLINE)

{

double line = ObjectGet(name, OBJPROP_PRICE1);

}

else continue; // Не HLINE

if (High[0]>=line && line>=Low[0])

{

Text = Symbol()+" M "+Period()+" touched S/R @ "+Close[0];

Alert(Text);

Time0 = Time[0]; // Больше никаких оповещений.

if (Notification) SendNotification(Text);

}

}

//----

return(0);

}

//+------------------------------------------------------------------+

 
Marbo:
Здравствуйте кодеры,

Здравствуйте, Младен,

Я нашел на своем HDD индикатор, который выводит оповещение, когда цена касается горизонтальной линии. Я немного модифицировал его и он работает нормально. Но теперь я хотел бы кое-что добавить. Часто бывает так, что точная линия не касается цены, и цена разворачивается на несколько пунктов раньше. Теперь я могу нарисовать еще много линий на графике или попытаться модифицировать этот индикатор, чтобы он показывал предупреждение не только тогда, когда линия на графике касается линии, но и на несколько пунктов выше или ниже. То есть индикатор должен показывать оповещение, когда цены касаются линии на графике +5 пунктов или -5 пунктов.

Моя идея состоит в том, чтобы изменить эту линию:

if (High[0]>=line && line>=Low[0]) на что-то вроде этого:

if ((High[0]>=line+0.0005 && line+0.0005>=Low[0]) || (if (High[0]>=line-0.0005 && line-0.0005>=Low[0])).

Очевидно, что это не работает... Я понятия не имею почему... :-/

И еще одна проблема в том, что это будет работать только для цен 1.XXXX. Я не могу использовать 0.0005 для йеновых пар или Index-CFD.

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

Спасибо!!!

Вот код:

//+------------------------------------------------------------------+

//| LINE_ALERT.mq4 |

//+------------------------------------------------------------------+

extern bool Notification=true;

extern bool displayAlert=true;

string Text;

#property indicator_chart_window

//+------------------------------------------------------------------+

//| Пользовательская функция инициализации индикатора |

//+------------------------------------------------------------------+

int init()

{

//---- индикаторы

//----

return(0);

}

//+------------------------------------------------------------------+

//| Пользовательская функция деинициализации индикатора | |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Пользовательская функция итерации индикатора |

//+------------------------------------------------------------------+

int start()

{

//----

if (displayAlert==false) return;

static datetime Time0;

if (Time0 == Time[0]) return; //Одно оповещение на бар.

for(int iObj = ObjectsTotal() - 1; iObj >= 0; iObj--)

{

string name = ObjectName(iObj);

if (ObjectType(name) == OBJ_HLINE)

{

double line = ObjectGet(name, OBJPROP_PRICE1);

}

else continue; // Не HLINE

if (High[0]>=line && line>=Low[0])

{

Text = Symbol()+" M "+Period()+" touched S/R @ "+Close[0];

Alert(Text);

Time0 = Time[0]; // Больше никаких оповещений.

if (Notification) SendNotification(Text);

}

}

//----

return(0);

}

//+------------------------------------------------------------------+

Marbo

Вы можете сделать что-то вроде того, что показано в прикрепленном файле. Единственное, что вы должны пересмотреть, что именно должно означать расстояние в пунктах от линии (+ или - в случае high или low).

Файлы:
 

Супер! Спасибо!!!

 
zilliq:
Привет Mrtool и Mladen,

Может ли кто-нибудь из вас объяснить, как строится индикатор TSV Bullish & Bearish? Я не нашел никакой информации об этом?

Спасибо

Zilliq

Zilliq есть версия здесь https://www.forex-tsd.com/forum/debates-discussions/116-something-interesting-please-post-here/page299#comment_679505 с исходным кодом.

 
cwu:
Если я ввожу 0, значит ли это, что нет SL или TP? Еще раз спасибо.

Кву,

Да, так и должно быть.

 

Ребята

Я проверял, что TSV Bullish & Bearish и самое старое, что я нашел, датируется 2007 годом. Если это та самая формула, то это не что иное, как активатор Ганна high low в немного другой форме (суть - расчет - та же самая)

 

Спасибо, ребята,

Я проверю это на выходных и выложу TSV Bearish/bullish, которые у меня есть.

Я Vet во Франции и работаю завтра, так что я проверю в воскресенье.

У меня уже есть код Ганна для максимумов и минимумов, в частности, с гладкой версией, так что это должно быть просто.

Хороших выходных и спасибо за все.

Zilliq

 

Младен,

У меня есть еще один вопрос по поводу индикатора line alert. На данный момент он работает с горизонтальными линиями. Я также пытался реализовать линии тренда с помощью OBJ_TREND, но есть один вопрос, который я не понимаю. На другом форуме много месяцев назад я прочитал, что необходимо определить начальную и конечную точку линии тренда. Не могли бы вы дать мне информацию о том, как это сделать? Или это намного сложнее, чем я себе представляю?

С наилучшими пожеланиями,

Марбо

 
Marbo:
Младен,

У меня есть еще один вопрос по поводу индикатора line alert. На данный момент он работает с горизонтальными линиями. Я также пытался реализовать линии тренда с помощью OBJ_TREND, но есть один вопрос, который я не понимаю. На другом форуме много месяцев назад я прочитал, что необходимо определить начальную и конечную точку линии тренда. Не могли бы вы дать мне информацию о том, как это сделать? Или это намного сложнее, чем я себе представляю?

С наилучшими пожеланиями,

Марбо

Марбо

На самом деле вам не нужно знать начало и конец. Вы можете получить значения другим способом (используя функцию ObjectGetValueByShift(), которая вернет цену 0, если ищет цену вне линии тренда). Один пример того, как это можно сделать, вы можете найти в этом посте: https: //www.mql5.com/en/forum/177603/page3.