При импорте данных в python задержка в отображении свечей в два часа - страница 2

 
Maxim Dmitrievsky #:
А там же можно получать котир не по времени, а позиционно, начиная с нулевого бара. Через апи. Сейчас не могу проверить (апи на маке не работает)

Чудеса на виражах. Наконец-то получилось:

ratesM15 = mt5.copy_rates_from_pos(

   symbol,       # имя символа
   timeframe,    # таймфрейм
   start_pos,    # номер начального бара
   count         # количество баров

   )

Вот эта функция возвращает корректно!

current_date:  2024-01-31 12:05:04.229984

                        open     high      low    close  tick_volume  spread  real_volume
time

2024-01-31 11:45:00  0.65871  0.65888  0.65822  0.65828          899       3            0

Проверил в Метатрейдере - совпадает! Ура!

Спасибо всем за подсказки!

 
Дмитрий Ковалевский:

Здравствуйте!

У меня такой код (начало):

А пример для функции copy_ticks_range  запускали?

Там же явно сказано про таймзону.

Примечание

Для дополнительной информации смотрите функцию CopyTicks.

Python при создании объекта datetime использует таймзону локального времени, в то время как терминал MetaTrader 5 хранит время тиков и открытия баров в UTC таймзоне (без смещения). Поэтому, для выполнения функций, использующих время, необходимо создавать datetime в UTC-времени. Данные, полученные из терминала MetaTrader 5, имеют UTC-время, но при попытке вывести их на печать, Python опять применит смещение для локального времени. Поэтому, полученные данные также необходимо корректировать для визуального представления.

Документация по MQL5: Python интеграция / copy_ticks_range
Документация по MQL5: Python интеграция / copy_ticks_range
  • www.mql5.com
copy_ticks_range - Python интеграция - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5