Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 768

 

весь форум перерыл, не смог найти способ автоматического расчета смещения стрелок/значков в индикаторе (при переключении ТФ нужно подстраивать смещение), но точно знаю, что  несколько месяцев назад кто то выкладывал готовую функцию

ПОМОГИТЕ!   )))

 
Igor Makanu:

весь форум перерыл, не смог найти способ автоматического расчета смещения стрелок/значков в индикаторе (при переключении ТФ нужно подстраивать смещение), но точно знаю, что  несколько месяцев назад кто то выкладывал готовую функцию

ПОМОГИТЕ!   )))

Это?

Как увеличить размер Wingdings-символа?
Как увеличить размер Wingdings-символа?
  • 2018.09.09
  • www.mql5.com
Смотрю я на свойства. Нет там, вроде бы, нужного...
 
Artyom Trishkin:

Это?

круто!

ЗЫ: вот одно не пойму, почему я поиском минут 20 искал и вроде точно помнил, что Виталий это выкладывал (искал поиском и по его сообщениям), но ты нашел, а я нет (((((

 
Igor Makanu:

круто!

ЗЫ: вот одно не пойму, почему я поиском минут 20 искал и вроде точно помнил, что Виталий это выкладывал (искал поиском и по его сообщениям), но ты нашел, а я нет (((((

Ларчик просто открывается: блокнот и файл под именем "Полезности". Что вижу, что может где-то кому-то пригодиться, и это не банальщина - вписываю ссылку на пост и краткое описание. Уже так много лет... Мы ж тут для помощи людям, а не только в виде "смотрящих" за порядком

 
Ghabo:

Спасибо. Моих мышцаф не хватает) Зафиксировать момент изменение цвета красного на синий не сложно, но как узнать, что в это время, синяя линия накрыта чёрной, не представляю. Какое условие нужно добавить к этому:-

чтобы исключить сигнал при пересечении баром чёрной линии? На вашем скриншоте считать последнее пересечение вверх, а пересечение предыдущих трёх баров не считать.

Всё проще, пока бары закрываются выше линии EMA(21) пишется в один буфер (синий), ниже - в другой(красный). Что бы исключить сигнал переходов этой линии, нужно что бы не менее двух баров подряд были закрыты или выше или ниже.
Для кода это будет так:

        bool
        b = false,
        s = false; //обе эти переменные должны быть объявлены за пределами всех блоков программы

        BUY_1=NormalizeDouble(iCustom(NULL,0,"4X Pip Snager Trend",1,1),Digits);
        
        if(BUY_1 != EMPTY_VALUE)
          {
                // первичный вход в этот блок означает, что 1 бар закрыт выше линии, но действие при этом не выполняется т. к. b == false (либо изначально, либо было сброшено в блоке else)
                // вторичный и все последующие подряд входы в этот блок означают, что, как минимум 2 бара подряд закрыто выше линии и действие будет выполнятся т. к. в предыдущем входе b присвоено значение true
                if(b)
                  {
                // ДЕЙСТВИЕ ДЛЯ СИНЕЙ ЛИНИИ
                  }     
                b = true;
                s = false;
          }
        elae
          {
                // аналогично, как и в блоке выше
                if(s)
                  {
                // ДЕЙСТВИЕ ДЛЯ КРАСНОЙ ЛИНИИ
                  }
                b = false;
                s = true;
          }
[Удален]  
Igor Makanu:

круто!

ЗЫ: вот одно не пойму, почему я поиском минут 20 искал и вроде точно помнил, что Виталий это выкладывал (искал поиском и по его сообщениям), но ты нашел, а я нет (((((

Но этот метод не учитывает прокрутку графика пользователем, в этом вся соль. Поставьте индикатор на волатильный период, а затем прокрутите в флетовый, или наоборот.
В этом смысле отталкиваться от данных какого нибудь ATR для рассчета расстояния разумней.
Если не хочется отслеживать прокрутку графика пользователем для перестановки всех стрелок исходя из новых крайних цен графика. 

[Удален]  
Вот пример на базе фрактала. Сделал 2 дополнительных буфера. Для фрактала это лишнее, так как можно просто отталкиваться от цены свечи. Но для вашей задачи возможно такой вариант будет нужен.
Файлы:
 
Nikolay Khrushchev:
Вот пример на базе фрактала. Сделал 2 дополнительных буфера. Для фрактала это лишнее, так как можно просто отталкиваться от цены свечи. Но для вашей задачи возможно такой вариант будет нужен.

спасибо!

да действительно у меня задача намного проще - подписываю около 30 вершин ЗигЗага номерами вершин, дальше  в истории не будет текстовых меток


Artyom Trishkin:

Ларчик просто открывается: блокнот и файл под именем "Полезности". Что вижу, что может где-то кому-то пригодиться, и это не банальщина - вписываю ссылку на пост и краткое описание. Уже так много лет... Мы ж тут для помощи людям, а не только в виде "смотрящих" за порядком

уговорил, в КБ полезностей залью, не скажу что мне жалко вот и не делюсь, просто сопровождать свои коды я не уверен, что буду, а обсуждать, что и как уже устал

ЗЫ: из интересного и готового, примерно на 98%:

1 . доступ к вершинам ЗигЗага как к массиву структур (динамический список и перегрузка оператора [] ), все вроде летает и очень удобно, что пишешь ZZ[2].price... ZZ[i]. up = true 

2. секундный график средствами МТ4

из этого (1-2), что то есть интересное для форума?  - или тут как и везде, дайте нам на 100% готовый код, мы делать ничего н будем самостоятельно ((((

 
Igor Makanu:

спасибо!

да действительно у меня задача намного проще - подписываю около 30 вершин ЗигЗага номерами вершин, дальше  в истории не будет текстовых меток


уговорил, в КБ полезностей залью, не скажу что мне жалко вот и не делюсь, просто сопровождать свои коды я не уверен, что буду, а обсуждать, что и как уже устал

ЗЫ: из интересного и готового, примерно на 98%:

1 . доступ к вершинам ЗигЗага как к массиву структур (динамический список и перегрузка оператора [] ), все вроде летает и очень удобно, что пишешь ZZ[2].price... ZZ[i]. up = true 

2. секундный график средствами МТ4

из этого (1-2), что то есть интересное для форума?  - или тут как и везде, дайте нам на 100% готовый код, мы делать ничего н будем самостоятельно ((((

Ну с каждого кода можно извлечь что-то полезноеи, а иногда даже неординарное.

Кодобаза именно для этих целей и создана, а не для тех, что с ней вытворяют 2 человека.

P.S. Натолкнули на хорошую мысль, нужно будет и мне переписать на массив структур, как-то об этом даже не подумал ранее.
 
Vitaly Muzichenko:
P.S. Натолкнули на хорошую мысль, нужно будет и мне переписать на массив структур, как-то об этом даже не подумал ранее.

массив структур немного проще, но функциональность ниже, я делал через динамические списки CList - реализация довольно простая, но привыкнуть к работе с указателями в MQL довольно сложно, постараюсь код дооформить и выложу в КБ