Индикатор mql4.
Если прокручивать по истории назад, то стрелки собираются в кучу (рис.1),
а если по переключать ТФ то стрелки на своём месте (рис.2)
Как бы исправить это недоразумение?
Код будет?
Индикатор mql4.
Если прокручивать по истории назад, то стрелки собираются в кучу (рис.1),
а если по переключать ТФ то стрелки на своём месте (рис.2)
Как бы исправить это недоразумение?
Период расчета индикатора как высчитывается?
Подозреваю, что с каждым новым баром период уменьшается на единицу. Слева - направо получится уменьшение на два бара, а не на один.
Такое уже проходили.
Исправьте ошибку в коде.
А можно поинтересоваться, почему в индикаторе стрелки объектами рисуете, а не через индикаторные буферы, что было бы логичнее и проблемы такой не возникло бы в принципе?
Без всякого конкретного умысла. Всегда в таком варианте обозначал сигнал стрелками.
Вы можете поправить, а то чего-то не соображаю как правильно?
Добавлю себе в коллекцию опытности.
Без всякого конкретного умысла. Всегда в таком варианте обозначал сигнал стрелками.
Вы можете поправить, а то чего-то не соображаю как правильно?
Добавлю себе в коллекцию опытности.
Ну так стрелками можно через буфер обозначать, как вы с линией индикатора делаете. Объявляете ещё два индикаторных буфера с типом отрисовки DRAW_ARROW и нужным стилем, и вперёд.
Буферам присваиваете вычисленные значения UpSignal и DnSignal соответственно, только вычислять их надо в главном цикле, а не поле него. Как устроен индикатор вы же знаете?
Хауз получается
Ну так там порядок буферов-то (по крайней мере, массива ATRBuffer) в обратном направлении с ценовыми данными, по картинке видно, даже в код смотреть не надо.
Рекомендую массив ATRBuffer тоже индикаторным буфером заделать и вычислять в том же цикле, что и остальные, тогда все эти выкрутасы не нужны будут
buff_size = ArraySize(TrStopLevel); if (ArraySize(ATRBuffer) != buff_size) { ArraySetAsSeries(ATRBuffer, false); ArrayResize(ATRBuffer, buff_size); ArraySetAsSeries(ATRBuffer, true); ArraySetAsSeries(SmoothBuffer, false); ArrayResize(SmoothBuffer, buff_size); ArraySetAsSeries(SmoothBuffer, true); } if (UseATRMode) { // Во-первых вычислить ATR for (xctr = 0; xctr < limit; xctr++) { ATRBuffer[xctr] = iATR(NULL, 0, 6, xctr); }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Индикатор mql4.
Если прокручивать по истории назад, то стрелки собираются в кучу (рис.1),
а если по переключать ТФ то стрелки на своём месте (рис.2)
Как бы исправить это недоразумение?