Лучше взять стандартный индикатор и сохранит его под другим именем и уже этот новый индикатор изменить.
Лучше взять стандартный индикатор и сохранит его под другим именем и уже этот новый индикатор изменить.
Ок. Я представляю как открыть индикатор в метаэдиторе и как его потом скомпилировать. А вот какие переменные
и куда воткнуть? В общем виде опять же представляю примерно так :
if tick_volume=(или >)50
then print alert()
Или как-то так. Но ведь еще нужно чтобы тиковый объем сравнивался с эталоном на каждой новой свече, так?
Может тогда проще скриптом чем лезть в индикатор?
Первая переменная - это сигнальный уровень. При достижении этого уровня должен срабатывать алерт.
Новые строки выделены цветом.
//+------------------------------------------------------------------+ //| Volumes_1.mq5 | //| Copyright 2009, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "2009, MetaQuotes Software Corp." #property link "http://www.mql5.com" //---- indicator settings #property indicator_separate_window #property indicator_buffers 2 #property indicator_plots 1 #property indicator_type1 DRAW_COLOR_HISTOGRAM #property indicator_color1 Green,Red #property indicator_style1 0 #property indicator_width1 1 #property indicator_minimum 0.0 //--- input data input ENUM_APPLIED_VOLUME InpVolumeType=VOLUME_TICK; // Volumes input int level=600; // Сигнальный уровень //---- indicator buffers double ExtVolumesBuffer[]; double ExtColorsBuffer[];
Теперь в индикаторе можно задавать уровень. Но индикатор еще ни чего не делает. Нужно поставить проверку достижения уровня сигнального.
Про проверку не увидел прошу прощения.
//---проверка сигнального уровня
if(level<600)
return(0);
else
print(уровень больше 600)
Правильно?
Посмотрите справку по индикаторным буферам и по INDICATOR_DATA.
Я разобрался как прикрутить текстовое и звуковое оповещение.
В input data добавил :
input bool On_Alert = false; //making an alert input bool On_Play_Sound = false; //making a sound signal input string NameFileSound = "expert.wav"; //name of the file with sound
С условиями все равно не понимаю:
//---- if(НЕИЗВЕСТАНАЯ ПЕРЕМЕННАЯ>level ) { if(On_Play_Sound) PlaySound(NameFileSound); if(On_Alert) Alert("Alert!"); } //----
На место неизвестной переменной ставил nRatesCount, сигналит при каждом изменении счетчика Volumes.
INDICATOR_DATA тоже ставил не получается.
Не понимаю какая переменная тут нужна. Ну помогите, просветите.
//---- indicator buffers double ExtVolumesBuffer[];Это индикаторный буфер. Т.е. если в этот буфер помещается какое-то значение, то это значение отобразится на графике. А на графике этот буфер у нас отображает, что? Правильно, объемы.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
гистограму тиковых объемов в каждой новой свече(value) и соответственно показывает эту информацию в виде
баров(volumes) в своем окне. Каким образом можно реализовать алерт в виде звукового оповещения и текстового
уведомления при пересечении бара гистограмы индикатора заданного пользователем уровня, допустим 50?
Я так понимаю что тут есть два варианта подхода. Первый внести правку в сам индикатор. Или сделать скрипт
который берет значения из индикатора Volumes. Либо же вообще брать информацию с самого графика. Поскольку
тиковые объемы видны на каждой свече и без индикатора если в свойствах графика включить пункт "показывать
тиковые объемы". Интересует самый простой способ как такой алерт можно реализовать.