Вот например, в MT сейчас 16й час идет, а уменя уже есть Тики до самого конца... как так?
2019-10-18 16:59:52.322000 1.28457 1.28467 2019-10-18 16:59:53.018000 1.28458 1.28467 2019-10-18 16:59:53.826000 1.28453 1.28461 2019-10-18 16:59:53.919000 1.2845 1.28461 2019-10-18 16:59:54.521000 1.28451 1.28461 2019-10-18 16:59:54.726000 1.28452 1.28461 2019-10-18 16:59:55.122000 1.28453 1.28461 2019-10-18 16:59:55.331000 1.2845 1.28461 2019-10-18 16:59:56.122000 1.28451 1.28461 2019-10-18 16:59:56.425000 1.28452 1.28461 2019-10-18 16:59:57.425000 1.28451 1.28461 2019-10-18 16:59:57.629000 1.28452 1.28461 2019-10-18 16:59:57.925000 1.28453 1.28461 2019-10-18 16:59:58.328000 1.2845 1.2846
Добавил как в примере timezone ... Теперь у меня тики есть даже за мое будущее время. То есть у меня сейчас почти час ночи, а тики уже за полчетвертого есть =( Хочется понять что это же за хренатень то такая ... timezone = pytz.timezone("Etc/UTC") соответственно его на обе даты параметром как в примерах ...
2019-10-19 03:40:18.464000 1.28721 1.28732 2019-10-19 03:40:18.555000 1.28719 1.28729 2019-10-19 03:40:19.177000 1.2872 1.2873 2019-10-19 03:40:19.357000 1.28721 1.2873 2019-10-19 03:40:19.755000 1.28722 1.28731 2019-10-19 03:40:21.262000 1.28722 1.28732 2019-10-19 03:40:31.892000 1.28721 1.28731 2019-10-19 03:40:32.284000 1.28722 1.28732 2019-10-19 03:40:37.593000 1.28722 1.2873 2019-10-19 03:40:39.114000 1.28721 1.28729 2019-10-19 03:40:39.298000 1.28718 1.28726 2019-10-19 03:40:39.796000 1.28717 1.28726
Оказалось кодировка всему виной ... Надо было использовать примерно так для всех файлов ...
CSVFileForWrite = open(CSVFileForWrite, 'a', encoding='utf-8')
Без этого utf-8 в какой то момент даты превращались в полную чушь ...
Кодировка здесь ни при чем. Вы не привели вашего кода, который делает запросы истории.
Для получения таймсерии в заданном интервале необходимо выставлять время в таймзоне UTC+0 , смотрите пример https://www.mql5.com/ru/docs/integration/python_metatrader5/mt5copyratesrange_py
from datetime import datetime from MetaTrader5 import * # импортируем модуль pandas для вывода полученных данных в табличной форме import pandas as pd pd.set_option('display.max_columns', 500) # сколько столбцов показываем pd.set_option('display.width', 1500) # макс. ширина таблицы для показа # установим подключение к терминалу MetaTrader 5 MT5Initialize() # подождем пока MetaTrader 5 подключится к торговому серверу MT5WaitForTerminal() # установим таймзону в UTC timezone = pytz.timezone("Etc/UTC") # создадим объекты datetime в таймзоне UTC, чтобы не применялось смещение локальной таймзоны utc_from = datetime(2019, 4, 1, tzinfo=timezone) utc_to = datetime(2019, 4, 5, hour = 13, tzinfo=timezone) # получим бары с USDJPY M5 начиная с 01.04.2019 в таймзоне UTC rates = MT5CopyRatesFrom("USDJPY", MT5_TIMEFRAME_M5, utc_from, utc_to)
Рекомендуем обновить пакет MetaTrader для Python - уже вышла версия 5.0.8
- www.mql5.com
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В общем случается чудо ... Делал запрос вот прямо до 17:00 18.10.2019 как пример, но делал я его часов шесть назад. При этом у меня по моему GMT уже было 18:00 ... А он мне взял и отдал все Тики, как будто бы на сервере уже все есть, это при том что открывая MT я прекрасно вижу что у них там всего навсего 12:00 18.10.2019 ...
Как так выходит? Почему он отдает такое время то мне? После обрезал мой запрос и не с 3:00 а с 11:00 отдал ... В общем работает сверх непонятно и странно =(