Просто не хватает терпения отвечать на такие вопросы.
RefreshRates
Осуществляет обновление данных в предопределенных переменных и массивах-таймсериях.
А уж что такое предопределённые переменные и массивы-таймсерии найдите в документации.
- docs.mql4.com
Просто не хватает терпения отвечать на такие вопросы.
А уж что такое предопределённые переменные и массивы-таймсерии найдите в документации.
Тоесть на данные функции iClose() функция RefreshRates() ни как не влияет. Тогда как заставить функцию iClose() выдавть обновленную информацию?
Нулевого. Произвольного таймфрейма.
Честно сказать, я удивлён… и это мягко сказано. Я считал, что iClose() получает значение с сервера брокера(ДЦ), но нет… RefreshRates(); обновляет значения получаемые функцией iClose()
/********************Script program start function*******************/ void OnStart() { for(int i = 0; i < 10; i++) { Print(Bid, " *** ", iClose(_Symbol, PERIOD_CURRENT, 0)); Sleep(1000); RefreshRates();// Без RefreshRates(); значения iClose(_Symbol, PERIOD_CURRENT, 0) не меняются… // То, что без RefreshRates(); не меняются значения Bid, это понятно и нормально… } }/******************************************************************/
Вот результат выполнения скрипта
2021.02.15 11:39:35.559 00 EURUSD,M5: 1.21375 *** 1.21375 2021.02.15 11:39:34.559 00 EURUSD,M5: 1.21375 *** 1.21375 2021.02.15 11:39:33.559 00 EURUSD,M5: 1.21375 *** 1.21375 2021.02.15 11:39:32.559 00 EURUSD,M5: 1.21375 *** 1.21375 2021.02.15 11:39:31.559 00 EURUSD,M5: 1.2138 *** 1.2138 2021.02.15 11:39:30.559 00 EURUSD,M5: 1.21378 *** 1.21378 2021.02.15 11:39:29.559 00 EURUSD,M5: 1.21379 *** 1.21379 2021.02.15 11:39:28.559 00 EURUSD,M5: 1.21378 *** 1.21378 2021.02.15 11:39:27.559 00 EURUSD,M5: 1.21379 *** 1.21379 2021.02.15 11:39:26.559 00 EURUSD,M5: 1.21379 *** 1.21379
Ну, да ладно… Лично я просто буду иметь ввиду такую особенность и при необходимости буду вставлять RefreshRates();
ps; А в МТ5 значения iClose(_Symbol, PERIOD_CURRENT, 0) меняется.
Честно сказать, я удивлён… и это мягко сказано. Я считал, что iClose() получает значение с сервера брокера(ДЦ), но нет… RefreshRates(); обновляет значения получаемые функцией iClose()
Вот результат выполнения скрипта
Ну, да ладно… Лично я просто буду иметь ввиду такую особенность и при необходимости буду вставлять RefreshRates();
А если сменить таймфейм на отличный от текущего данные перестанут вовремя обновляться даже с RefreshRates(). Выходит фундаментальные функции iClose и тп. в MT4 выдают неактуальную туфту. Уверен что 80% инфопродуктов не учитывают эти уникальные особенности MT4. Как жить дальше?)))
Честно сказать, я удивлён… и это мягко сказано. Я считал, что iClose() получает значение с сервера брокера(ДЦ), но нет… RefreshRates(); обновляет значения получаемые функцией iClose()
Вот результат выполнения скрипта
Ну, да ладно… Лично я просто буду иметь ввиду такую особенность и при необходимости буду вставлять RefreshRates();
ps; А в МТ5 значения iClose(_Symbol, PERIOD_CURRENT, 0) меняется.
Какой выход? Опять костыли? Типа, вести историю тиков и пересчитывать все таймфреймы в советниках самостоятельно. Это же за гранью добра и зла.)))
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования