То, что у бара с индексом i на графике EURUSD время 20:57, не означает, что и на других инструментах у бара с индексом i такое же время.
Выведете еще iTime( Instrument1, 0, i )
Было что-то подобное, только в МТ5, даже тему заводил. На чем душа успокоилась, уже не помню, да и ДЦ прекратил обслуживание граждан РФ. Так что, пока не актуально.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Об отличиях значений индикаторов на графике от значение их буферов.
Yuriy Asaulenko, 2018.03.01 11:34
Сейчас нас интересует только последнее значение. Пишем код:
Определяем хэндл int hFBat2S; hFBat2S=iCustom(NULL,0,"MyInd\\FBat\\FBat2S"); Функция считывания буферов. Возвращает последнее значение указанного буфера double cQuoteData::IndValue(int buffnum) { double out[1]; CopyBuffer(hFBat2S,buffnum,0,1,out); return out[0]; } В OnTick распечатываем последние значения всех буферов индикатора void OnTick() { Print("OnTick, 0: "+ (string)cQuoteData::IndValue(0) + ", 1: " + (string)cQuoteData::IndValue(1)+ ", 2: " + (string)cQuoteData::IndValue(2)); };
Смотрим распечатку
2018.03.01 13:12:23.733 SigmaExpert (EURUSD,M1) OnTick, 0: 1.218771922983449, 1: 1.218960029262306, 2: 1.218583816704593
Для буфера 0 - на графике - 1.218529, в буфере -1.218771922983449
Для буфера 1 - на графике - 1.218763, в буфере -1.218960029262306,
для буфера 2 - на графике - 1.218240, в буфере -1.218583816704593.
На других ТФ все тоже самое.
Как видим, разница в несколько единиц 4-го знака, что существенно превышает спрэд.
Для больших ТФ м.б. это и сойдет, а для малых это уже никуда не годится.
То, что у бара с индексом i на графике EURUSD время 20:57, не означает, что и на других инструментах у бара с индексом i такое же время.
Выведете еще iTime( Instrument1, 0, i )
Да, вы правы. Дело в этом. Подскажете, с чем может быть связано и как с этим бороться? В MT5 такая же проблема есть или там решили?
Это не является ошибкой или проблемой. Поэтому бороться с этим не получится. )))
Такое положение дел является нормальным и его лишь нужно учитывать при разработке. Нужно принять как аксиому, что индексация баров на графиках с разными символами и/или таймфреймами в общем случае не совпадает. Совпадение - это частный случай. Исходя из этой аксиомы, приходим к следующему алгоритму установления соответствия между барами разных символов/ТФ:
- Определить время открытия бара на текущем символе/ТФ по его индексу (функция iTime).
- Найти бар с временем открытия, которое совпадает с временем из п. 1 или находится внутри бара другого символа ТФ (функция iBarShift).
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день,
1. Вставил такой код для проверки в индикатор:
2. Код вывел такие данные:
3. Смотрю на графике - вижу совсем другие данные закрытия:
С чем это может быть связано?