Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 534
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В MetaEditore добавить точку останова и запустить отладку. Когда на точке останова будет остановка, добавьте в наблюдение time[0]:
МТ4 2016.03.08 18:37:04.710 mvt_Vlt EURUSD,H1: time[0] = 2016.03.08 17:00:00 time[rates_total-1] = 1971.01.04 00:00:00
МТ5 2016.03.08 18:36:23.565 mvt_Vlt (EURUSD,H1) time[0] = 2010.01.04 00:00:00 time[rates_total-1] = 2016.03.08 17:00:00
Вставил в код МТ5 ArraySetAsSeries(time,true);
Теперь вывод:
МТ5 2016.03.08 18:45:05.402 mvt_Vlt (EURUSD,H1) time[0] = 2016.03.08 17:00:00 time[rates_total-1] = 2010.01.04 00:00:00
А массивы цен тоже также делать ?
Я уже в коде вставил вывод
МТ4 2016.03.08 18:37:04.710 mvt_Vlt EURUSD,H1: time[0] = 2016.03.08 17:00:00 time[rates_total-1] = 1971.01.04 00:00:00
А что делать теперь ?
В обе версии индикатора добавить ArraySetAsSeries - для тех массивов, которые Вы используете для своих расчётов: high[], low[] и временно для массива time[] - это поможет понять, где же "нулевой" бар. Таким образом "нулевой" бар в обоих версиях будет с одинаковой стороны графика (справа или слева - в зависимости от того, что вы выставите в ArraySetAsSeries) и Вы получите одинаковую расчётную часть индикатора.
Добавлено: пока я печатал, Вы нащупали верный путь :)
Добавлено: пока я печатал, Вы нащупали верный путь :)
Вставил в код МТ5:
Выводит:
Это только ExtCalcVlBuffer выводит, а среднюю и отклонение не считает...
И все равно на текущем баре выводит,хотя и не должно.
...
И все равно на текущем баре выводит,хотя и не должно.
Это ещё почему не должно?
Я же его отключал i<rates_total-1
ЗАЧЕМ?!
А не надо на текущем считать, только зря процессор загружать, да и просто не нужно это значение.
Так нужно такую хотелку сразу оговаривать :) .
Ситуация такая - если на графике есть бар, то ему соответствует ячейка в индикаторном буфере. Пока Вы в эту ячейку чего-нибудь не запишите, в этой ячейке будет храниться мусор.
Так нужно такую хотелку сразу оговаривать :) .
Ситуация такая - если на графике есть бар, то ему соответствует ячейка в индикаторном буфере. Пока Вы в эту ячейку чего-нибудь не запишите, в этой ячейке будет храниться мусор.
При делении целых чисел(int,long,datetime и т.п.) результат целое число, т.е. остаток отбрасывается. 00:00 сегодня и 23:59:59 вчера, разность будет равна 1дню.
Во-первых это не так - доказано экспериментально в индикаторе.
Во-вторых каким образом получится 1 - покажите математически, с учетом того, что изначально у нас расчет в секундах.