Индикаторы: STARC bands

 

STARC bands:

Вариация хорошо известного индикатора STARC bands (каналы среднего диапазона Столлера).

Автор: Mladen Rakic

 
Обновленная версия STARC band с добавлением простого критерия для отображения цветных свечей вместе с диапазонами - версия 1.1

Критерий для цветных свечей очень прост: полосы STARC рассчитываются по одной средней - вместе с ней рассчитывается "быстрая" средняя того же типа и цены, и если быстрая средняя пересекает медленную среднюю вверх, цвет свечи меняется на цвет вверх, и на цвет вниз, если быстрая средняя пересекает медленную среднюю вниз. Если установить быстрый период <= 1, то он будет равен выбранному значению основной средней, пересекающей полосы STARC.


 

Здравствуйте, есть ошибка в режиме MTF. Обе версии.

M1 Chart => H1 таймфрейм, H1 Chart => D1 таймфрейм.

2016.11.09 11:59:26.956 starc_bands (EURUSD,M1) cannot load custom indicator 'starc_bands' [4802]
2016.11.09 12:06:15.427 starc_bands_1.1 (EURUSD,H1) cannot load custom indicator 'starc_bands_1.1' [4802]

 
Alain Verleyen:

Здравствуйте, есть ошибка в режиме MTF. Обе версии.

M1 Chart => H1 таймфрейм, H1 Chart => D1 таймфрейм.

2016.11.09 11:59:26.956 starc_bands (EURUSD,M1) cannot load custom indicator 'starc_bands' [4802]
2016.11.09 12:06:15.427 starc_bands_1.1 (EURUSD,H1) cannot load custom indicator 'starc_bands_1.1' [4802]

Ошибка 4802 - это ошибка, которая происходит с любым из индикаторов, вызывающих другой индикатор (или себя), особенно в выходные дни, когда нет новых тиков или когда старший таймфрейм вызывается впервые после инициализации.

Поэтому хэндл проверяется и перепроверяется, и когда эта ошибка устраняется, он продолжает нормальную работу. Это проблема mt, а не кода. Индикатор работает так, как и должен работать, один раз, когда он получает "пропуск" по этой ошибке 4802 (его нельзя заставить ждать от индикатора, так как мы не можем заставить индикатор "спать", чтобы принудить его к какому-то действию, пока он не очистится - следовательно, мы должны ждать следующего случая, чтобы пройти через "ворота" 4802). Вы также заметили, что при использовании на живых графиках он продолжает работать так, как и должен работать, когда после этой ошибки он получает новый тик.

Все сказанное выше относится к использованию в реальном времени на живых графиках - обратное тестирование не может быть проведено в этом режиме мультитаймфрейминга

Поиск возможного обхода проблем с бэк-тестированием (ошибка, которую вы получили, была вызвана бэк-тестированием) не был целью данного типа кода. Цель заключалась в том, чтобы заставить его работать так, как он должен работать в режиме "как можно проще" при обычном использовании.
 

Не вдаваясь в "тяжелые объяснения", почему эта проблема возникала в бэк-тесте и не возникала в реальном времени, добавлена версия (версия 1.2), которая решает и проблему бэк-тестирования.

Чтобы сделать эту версию совместимой с обеими предыдущими версиями, добавлена возможность показывать свечи (как в версии 1.1) или скрывать их (как в версии 1.2), так что оба режима могут быть эмулированы с помощью версии 1.2.

 
Спасибо за индикатор. Кто-нибудь может изменить mtf-версию: убрать заливку, только с линейными границами?
 

Может ли кто-нибудь помочь понять причину ошибки и как ее исправить. Иногда происходит следующее. Все экземпляры индикатора в окне ломаются вместе.

> array out of range in 'STARC_bands_1.2.mq5' (192,111)

192,111 is "if (currTime[0]==nextTime[0]) continue;" .

если точно, то его currTime.