MetaTrader 5 Python User Group - как использовать Python в Метатрейдере - страница 21

 

https://www.mql5.com/ru/docs/integration/python_metatrader5/mt5copyratesrange_py

В примере используется другая ф-я, ошибочка:

# получим бары с USDJPY M5 начиная с 01.04.2019 в таймзоне UTC
rates = MT5CopyRatesFrom("USDJPY"MT5_TIMEFRAME_M5utc_from, utc_to)

ожидалось: MT5CopyRatesRange()

Документация по MQL5: Интеграция / MetaTrader для Python / MT5CopyRatesRange
Документация по MQL5: Интеграция / MetaTrader для Python / MT5CopyRatesRange
  • www.mql5.com
# создадим объекты datetime в таймзоне UTC, чтобы не применялось смещение локальной таймзоны                             MT5Rate(time=datetime.datetime(2019, 4, 1, 0, 0),  open=110.994, low=110.994, high=110.966, close=110.966, tick_volume=12, spread=22, real_volume=0...
 

Для приведения datetime к определенной тайм-зоне, в справке предложено использовать datetime UTC

Однако, это ни на что не влияет. При установке любой тайм-зоны, берется терминальное время (в моем случае это GMT+2)

 
Rashid Umarov:
Номер билда?

pip install --upgrade MetaTrader5

Requirement already up-to-date: MetaTrader5 in c:\works\mt_websocket_server\.env\lib\site-packages (5.0.8)



 
а можно перенести все в одно место?
MetaTrader 5 Python User Group - как использовать Python в Метатрейдере
MetaTrader 5 Python User Group - как использовать Python в Метатрейдере
  • 2019.11.25
  • www.mql5.com
Мы готовим модуль MetaTrader 5 для Python, аналогичную R...
 
Maxim Dmitrievsky:
а можно перенести все в одно место?

Что именно? Всю ветку обсуждения?

 
Дмитрий Прокопьев:

Что именно? Всю ветку обсуждения?

ну да, чтоб в одном месте было про питон все

модеры перенесут мб

 
Maxim Dmitrievsky:

ну да, чтоб в одном месте было про питон все

модеры перенесут мб

Норм, если можно перенести, пусть перекинут. Пересоздать, как-то не то ...
 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

MetaTrader5 python lib и MT5CopyRatesFrom - странности или баг?

Дмитрий Прокопьев, 2019.11.30 10:59

Всем привет.

Натолкнулся на вот такую странность в данных которые возвращает MT5CopyRatesRange и другие ф-ции.

from datetime import datetime
from MetaTrader5 import *
import pandas as pd
import json

from pytz import timezone
utc_tz = timezone('Etc/UTC')
 
MT5Initialize()
MT5WaitForTerminal()

# rates = MT5CopyRatesRange("EURUSD", MT5_TIMEFRAME_H1, datetime(2018,4,3), datetime(2018,4,4))
rates = MT5CopyRatesFrom("EURUSD", MT5_TIMEFRAME_H1, datetime(2018,4,3,17, tzinfo=utc_tz), 5)

MT5Shutdown()
rates_frame = pd.DataFrame(rates, columns=['time', 'open', 'low', 'high', 'close', 'tick_volume', 'spread', 'real_volume'])
print(rates_frame)
print(rates)

Все тривиально, но на выходе имеем:

                 time     open      low     high    close  tick_volume  spread  real_volume
0 2018-04-03 13:00:00  1.23073  1.23154  1.22861  1.22882         5090       1            0
1 2018-04-03 14:00:00  1.22882  1.23057  1.22863  1.23018         6112       1            0
2 2018-04-03 15:00:00  1.23018  1.23149  1.22919  1.22957         6691       1            0
3 2018-04-03 16:00:00  1.22957  1.22989  1.22557  1.22580        11956       1            0
4 2018-04-03 17:00:00  1.22580  1.22746  1.22536  1.22730        10275       1            0
(MT5Rate(time=datetime.datetime(2018, 4, 3, 13, 0), open=1.2307299999999999, low=1.23154, high=1.22861, close=1.22882, tick_volume=5090, spread=1, real_volume=0), 
MT5Rate(time=datetime.datetime(2018, 4, 3, 14, 0), open=1.22882, low=1.23057, high=1.2286299999999999, close=1.23018, tick_volume=6112, spread=1, real_volume=0), 
MT5Rate(time=datetime.datetime(2018, 4, 3, 15, 0), open=1.23018, low=1.23149, high=1.22919, close=1.22957, tick_volume=6691, spread=1, real_volume=0), 
MT5Rate(time=datetime.datetime(2018,4, 3, 16, 0), open=1.22957, low=1.22989, high=1.22557, close=1.2258, tick_volume=11956, spread=1, real_volume=0), 
MT5Rate(time=datetime.datetime(2018, 4, 3, 17, 0), open=1.2258, low=1.22746, high=1.22536, close=1.2273, tick_volume=10275, spread=1, real_volume=0))

Хочу обратить внимание на:

MT5Rate(time=datetime.datetime(2018,4, 3, 16, 0), open=1.22957, low=1.22989, high=1.22557, close=1.2258, tick_volume=11956, spread=1, real_volume=0)

идем в терминал, смотрим low/hight для этого фрейма:

Видим, что  low=1.22557, high=1.22989

Вопрос это бага, или keys для MT5Rate как-то настраиваются?


MetaTrader 5 Python User Group - как использовать Python в Метатрейдере
MetaTrader 5 Python User Group - как использовать Python в Метатрейдере
  • 2019.11.25
  • www.mql5.com
Мы готовим модуль MetaTrader 5 для Python, аналогичную R...
 
Перенесено теперь в эту ветку.