Сделал так
Ну кстати на некоторых парах более ли менее работает последний код...
#====================================================================================================== def get_price_data(symbol, max_bars=1000): """Получаем данные о ценах для последних MAX_BARS баров с использованием get_last_close для закрытия на 0-ом баре""" rates = mt5.copy_rates_from_pos(symbol, TIMEFRAME, 0, max_bars) # Получаем последние MAX_BARS баров if rates is None or len(rates) == 0: print("Ошибка загрузки данных") return None # Получаем последнее значение Close через get_last_close last_close = get_last_close(symbol) if last_close is None: return None # Переворачиваем массив, чтобы 0-й бар был первым rates = rates[::-1] # Создаем копию данных, чтобы обновить Close на 0-ом баре updated_rates = rates.copy() # Обновляем Close на 0-ом баре с помощью get_last_close updated_rates[0] = updated_rates[0].copy() # Создаем новый словарь для первого элемента updated_rates[0]['close'] = last_close return updated_rates #====================================================================================================== def get_last_close(symbol): """Получает последнее значение Close (аналог iClose(0) в MT5)""" now = time.time() ticks = mt5.copy_ticks_from(symbol, now, 10, mt5.COPY_TICKS_ALL) # Берем последние 10 тиков if ticks is None or len(ticks) == 0: print("Ошибка получения тиков") return None last_close = ticks[-1]['last'] # Цена последней сделки (именно она влияет на Close!) return last_close #======================================================================================================И в пайтоне на 0.5 пип ниже Закрытие 0 бара чем в мт5 ... жесть какая то . Неужели нельзя было iClose хотя бы норм сделать в модуле ??? Ушел с мт5 в пайтон что бы исключит баги и тут косяки и костыли везде
Ну кстати на некоторых парах более ли менее работает последний код...

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
На всех других закрытых барах от 1 и выше по истории все ок при использовании
rates = mt5.copy_rates_from_pos(PAIR, TIMEFRAME, 0, MAX_BARS)
А вот на 0 баре котрый не закрыт данная функция не получает цену, которая должна обновляться - я обновляю ее каждую сек
Как видно из принтов Пайтона - закрытия не обновляется для 0 бара но в реальности она обновляется если использовать copy_rates_from_pos
Мне так же не понятно что тогда в мт5 iClose ? это БИД при закрытии бара? Последний БИД на баре на тиковой истории бара??
Ок пробую в пайтоне прочитать так же последний бид на баре если номер бара =0 используя:
:
и тут подвох - в мт5 iClose отличается от бида получаемого в пайтоне - что самое интересное он обновляется кадую сек как мне нужно но он совершенно не такой как в мт5 iClose на нулевом баре.