Любые вопросы новичков по 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 довольно сложно, постараюсь код дооформить и выложу в КБ

Причина обращения: