Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Fx-VladMih _ Тусовка программистов и их гостей _ Скрипт-переключатель ЗигЗага

Автор: Nikolas 23.7.2013, 1:27

"Задача"
Цитата(VladMih @ 21.7.2013, 22:12) *
Скрипт-переключатель ЗигЗага
Скриптов должно быть два одинаковых, вешаем их на две горячих клавиши.
При вызове скрипта Зиг-3
1. Проверяет нет ли на чарте зигзагов
2. Если нет - устанавливает зиг-3
3. Если есть зиг-3 - ничего не делает (в идеале выдает сообщение, что отработал)
4. Если есть зиг-6 - удаляет его и устанавливает зиг-3

Есть сомнения можно ли удалять скриптом индикатор, но хотелось бы.
Второй скрипт делает то же самое для установки зиг-6.
"Решение"
Индикатор ZigZag_color умеющий менять цвет и параметр "ExtDepth" соответственно переданному параметру из скрипта ZZ3 или ZZ6. смотрите вложение... положить:
Индикатор ZigZag_color в папку "МТ4\experts\indicators\"
Скрипты "ZZ3" и "ZZ6" - в папку "МТ4\experts\scripts\"
"Как"
Скрипт ZZ3 и ZZ6 при запуске на графике ищет объект с именем "ExtDepth", если не находит его - создает с датой "1970.01.01 00:00" и устанавливает значение price1 соответственно равным 3 или 6.

Индикатор ZigZag_color при обработке тика ищет объект с именем "ExtDepth", если находит - получает значение price1 и проверяет отличается ли оно с параметром индикатора ExtDepth. Если отличается - то изменяет его и удаляет объект на графике созданный скриптом ZZ3 или ZZ6.
а так же изменяет цвет индикатора на соответствующие параметрам:
colorZZ3 - для значение 3.
colorZZ6 - для значение 6.
colorZZX - для любого другого значения.
"Файлы версии 1.0"
 ZigZag_color.mq4 ( 6,85 килобайт ) : 171

 ZZ3.mq4 ( 1,04 килобайт ) : 163

 ZZ6.mq4 ( 983 байт ) : 136

Версию 2.0, рекомендованную для использования в Школе, см. в посте 3
Версию 2.3, рекомендованную для использования в Школе, см. в посте 11
2.3 полностью повторяет функционал последних версий, но намного удобней

Автор: VladMih 24.7.2013, 13:34

Николай, СПАСИБО! Сутки прошли - полет нормальный.
Очень удобно. У меня и раньше зиг был на горячей клавише, но были лишние телодвижения с удалением старого и настройкой устанавливаемого нового. Сейчас же просто добавилась одна горячая клава и пропал весь остальной геморрой. ab.gif

Когда нет тиков (в т.ч. в выходные дни) пользоваться всё равно можно - достаточно после вызова скрипта перещелкнуть туда-назад таймфреймы. Передернуть затвор. ab.gif

Набор скриптов ФР, Вика и Зигзага - это просто кайф!

Автор: Nikolas 27.7.2013, 12:37

Переключаемый ZigZag улучшенная версия.

"Параметры !ZigZagVM:"
ExtDepth=6; -изменяется текстовой меткой или скриптом.
ExtDeviation=5;
ExtBackstep=3;
Цвет = Magenta;
Стиль линии =2 (мелкий штрих).
"Что нового:"
  1. Исправлены выявленные ошибки, добавлены новый функционал и удобный интерфейс.
  2. Информация о параметре ZigZag выводится текстовой меткой правее верхнего левого угла окна графика ("zz3" или "zz6").
  3. Параметр ExtDepth может переключатся двумя спосабами:
    • перемещением текстовой метки. Сместили -> "zz3", еще раз -> "zz6", еще раз -> "zz3"
    • Скриптами ""!ZZ3" и "!ZZ6"
  4. При переключении таймфреймов из диапазона младших таймов (м1-Н4) на старший диапазон (D1-Mn), ZigZag автоматически переключается на "zz3". Соответственно из диапазона старших на младшие на "zz6". При переключении в одном диапазоне, младших или старших, параметр выбранный пользователем не меняется.
Алгоритм расчета индикатора ZigZag не менялся и соответствует стандартному индикатору в поставке МТ4.
Состав:
!ZigZagVM - сам индикатор, положить в %МТ4\experts\indicators\
!ZZ3 - скрипт для переключения !ZigZagVM параметра ExtDepth=3. положить в %МТ4\experts\scripts\
!ZZ6 - скрипт для переключения !ZigZagVM параметра ExtDepth=6. положить в %МТ4\experts\scripts\

 ZigZagVM_2.0.rar ( 3,96 килобайт ) : 370

Автор: VladMih 27.7.2013, 13:23

Цитата(Nikolas @ 27.7.2013, 12:37) *
Переключаемый ZigZag улучшенная версия.
Это рекомендованная версия. Применяем в Школе.
Я охарактеризовал бы эту версию как "вылизанная во всех смыслах" - воплощены все мои задумки в разрезе минимальной достаточности и удобства.
Николаю ОГРОМНОЕ спасибо и за то, что прислушался к моим пожеланиям, и за то, что смог их воплотить!
Пользоваться этой троицей невероятно удобно и приятно.

Маркер зигзага выглядит так:


Его можно выделить двойным кликом и сместить - это будет равносильно запуску скрипта переключения на вторую настройку (с 3 на 6 и наоборот).
При получении команды на изменение настройки маркер меняет цвет на красный -
это сигнал о том, что команда принята, но зигзаг еще не получил тика и потому на графике не перестроился.
Для использования новой настройки нужно
- либо дождаться прихода тика и "посинения" маркера
(при сдвиге маркера мышью нужно дождаться когда он вернется на место)
- либо переключить тайм туда-назад в рамках той группы таймфреймов, внутри которой вы находитесь (младшая группа от м1 до Н4, старшая - от Д1 выше).
На активном рынке это происходит само и мгновенно, а на вялом и в выходные... Всё равно даже это намного проще, чем лезть в свойства индикатора для его переключения.

Автор: Сатори 27.7.2013, 16:41

Цитата(Nikolas @ 27.7.2013, 12:37) *
Переключаемый ZigZag улучшенная версия.
Неплохо. Оригинально.
Я все думал, как ты обработку события сдвига сделал... Оказалось - все просто.
Надо бы только метаквотовские ссылки в начале скрипта заменить на свои.

Автор: КОнгломераТ 28.7.2013, 0:25

Цитата(Сатори @ 27.7.2013, 16:41) *
Цитата(Nikolas @ 27.7.2013, 12:37) *
Переключаемый ZigZag улучшенная версия.
Неплохо. Оригинально.

А я не буду скромничать. ОТЛИЧНО!
И "оригинально", и работает как часики, и даже симпатично.
Nikolas, большое спасибо! Poklorn.gif friends.gif

Автор: VladMih 29.7.2013, 23:29

Цитата(VladMih @ 27.7.2013, 13:23) *
Его можно выделить двойным кликом и сместить - это будет равносильно запуску скрипта переключения на вторую настройку (с 3 на 6 и наоборот).
При получении команды на изменение настройки (независимо - скриптом или маркером), маркер меняет цвет на красный - это сигнал о том, что команда принята, но зигзаг еще не получил тика и потому на графике не перестроился.
В посте, из которого цитировал, внёс поправку.
При сдвиге маркера цвет на красный не меняется, так как для смены цвета требуется приход тика, а как только тик пришел, маркер становится на место и показывает новое значение УЖЕ ПЕРЕСТРОЕННОГО зигзага.

Т.е. смена цвета и не требуется - в данном случае своего рода аналогом смены цвета является сдвинутое положение маркера.

Автор: Сатори 5.8.2013, 18:53

Переключаемый ZigZag - дополненная версия (!ZigZagVM_2.1).

Что нового:
1) добавлена метка "треугольник", находящаяся рядом с меткой zz3(zz6); "треугольник" сделан для возможности доработки скрипта, рисующего Вика (для переключения возможности рисовать или линии треугольников или нормальные Вики):
- "треугольник" отображается только на таймах D1 - MN1
- "треугольник" разукрашивается в зеленый (разрешающий рисовать треугольники) или красный (запрещающий рисовать треугольники) цвета
- переключение "треугольника" происходит по тому же принципу, что и у метки zz - сдвигаем "треугольник" в любую сторону: если был красный - станет зеленый, если был зеленый - станет красный
- на выходных, когда нет тиков, для активации переключения необходимо переключить туда-сюда тайм на графике
- "треугольник" реализован объектом label(текстовая метка), а само изображение треугольника - один из символов шрифта "Wingdings 3", поэтому для корректного отображения данный шрифт должен присутствовать в системе
2) логику индикатора ZigZag и zz-метки не трогал, только добавил треугольник и немного причесал код Nikolas'a для возможности быстро менять имя и координаты меток.

Собственно сам индикатор:
 _ZigZagVM_2.1.zip ( 2,6 килобайт ) : 193

Автор: Сатори 3.3.2014, 12:34

Переключаемый ZigZag - дополненная версия (!ZigZagVM_2.2).

Что нового:
1) Для желающих различать zz6 и zz3 по цветам добавлена возможность изменять цвета. Для этого во внешние параметры индикатора вынесены 2 параметра: ZZ3Color и ZZ6Color. По умолчанию оба цвета - Magenta, т.е. цветовых различий нет, но желающие могут поставить разные цвета.
2) Внесены изменения для возможности использовать индикатор при расчете зигзага в скриптах

Собственно сам индикатор:  _ZigZagVM_2.2.zip ( 3,35 килобайт ) : 405

Автор: Сатори 12.12.2016, 18:43

Переключаемый ZigZag - дополненная версия (!ZigZagVM_2.3).

Что нового:
1) Переключение зигзага не сдвигом метки (что в конечном счете не очень удобно), а простым кликом по метке. Плюс к этому - для переключения не нужны живые котировки. Переключение мгновенное и даже при полном отсутствии тиков (например на выходных). Переключение режима отрисовки треугольников на таймах от Д1 и выше по тому же принципу - просто кликом по треугольнику.
2) Цвет метки с 3-м зигзагом сделал другим, чтобы бросалось в глаза, что Зиг не 6-й.

Собственно сам индикатор:  _ZigZagVM_2.3.zip ( 3,52 килобайт ) : 308

Автор: VladMih 12.12.2016, 21:48

Цитата(Сатори @ 12.12.2016, 18:43) *
Переключаемый ZigZag - дополненная версия (!ZigZagVM_2.3).
Саша, огромное спасибо! friends.gif
Удобняшка стала еще удобней! НАМНОГО!

PS: ты наверно уже решил - следующими будут смещаемые объекты ВикАлерта? (из ВНЕплановых!) ad.gif

Автор: Сатори 13.12.2016, 10:09

Цитата(VladMih @ 12.12.2016, 21:48) *
PS: ты наверно уже решил - следующими будут смещаемые объекты ВикАлерта? (из ВНЕплановых!) ad.gif
bw.gif

Автор: КОнгломераТ 14.12.2016, 20:50

Цитата(VladMih @ 12.12.2016, 21:48) *
Цитата(Сатори @ 12.12.2016, 18:43) *
Переключаемый ZigZag - дополненная версия (!ZigZagVM_2.3).
Саша, огромное спасибо! friends.gif
Удобняшка стала еще удобней! НАМНОГО!
Капец, как клёво! ay.gif Спасибо, Александр! friends.gif


Автор: Сатори 15.12.2016, 0:49

Цитата(КОнгломераТ @ 14.12.2016, 20:50) *
Капец, как клёво! ay.gif Спасибо, Александр! friends.gif
Ну раз старшему таможеннику понравилось, значит таможня не зря работала ab.gif

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)