Ищите у себя. Окно данных совпадает с данными iCustom. Зрительно это может казаться не так из-за того, что некоторые индикаторы изменяют старые значения постфактум. С первых баров данные должны соответствовать истине на момент их извлечения. Дальше они могут "улучшиться", и возникнет расхождение.
Кроме того, если Вы исследуете индикатор, накинутый в тестере на визуальный график, то там происходит подсматривание в будущее и индикатору верить нельзя. А iCustom в будущее не заглядывает, надо верить ему.
Кроме того, если Вы исследуете индикатор, накинутый в тестере на визуальный график, то там происходит подсматривание в будущее и индикатору верить нельзя. А iCustom в будущее не заглядывает, надо верить ему.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пытаюсь запрограммировать советника.
Есть индикатор, который использует для расчетов свои значения из прошлого, он же некоторые соседние бары перетирает, т.е. ведет себя не адекватно, если к нему обращаться вот так:
FD1 = iCustom( Symbol(), mPeriod, "FDM Oscillator", 1, step );
Но! В окне данных (CtrlD или Вид>Окно данных) отображаются именно те данные что мне нужны. Причем данные можно посмотреть для
любого бара. При вычислении с помощью указанной функции, как я понимаю, рассчет происходит без использования истории значений самого индикатора, что значительно портит картину. Как получить данные в таком же виде, как они отображаются в "Окне данных"?
Немого примера:
Индикатор имеет 4 индекса. каждый может быть либо = 100, либо = 0. Предположим текущее значение индексов такое:
FD0 = 0;
FD1 = 0;
FD2 = 0;
FD3 = 100;
Далее происходит расчет и FD2 становится равным 100, при этом FD3 не обнуляется. На графике все видно красиво, окно данных дает:
FD0 = 0;
FD1 = 0;
FD2 = 100;
FD3 = 100;
Но
iCustom( Symbol(), mPeriod, "FDM Oscillator", 2, step ) = 100;
iCustom( Symbol(), mPeriod, "FDM Oscillator", 3, step ) = 0;
Сам индикатор значение индекса 3 не обнуляет и оно остается с предыдущего бара, а когда я использую iCustom( Symbol(), mPeriod, "FDM Oscillator", 2, step ), предыдущего бара нет и у меня FD3=0.
Возможно ли как-то получить правильные данные?