Прежде чем ценовые данные будут доступны в терминале MetaTrader 5, их необходимо получить и обработать. Для получения данных требуется подключение к торговому серверу MetaTrader 5. Данные поступают с сервера по запросу терминала в виде экономно упакованных блоков минутных баров. Механизм обращения к серверу за данными не зависит от того, каким...
Прежде чем ценовые данные будут доступны в терминале MetaTrader 5, их необходимо получить и обработать. Для получения данных требуется подключение к торговому серверу MetaTrader 5. Данные поступают с сервера по запросу терминала в виде экономно упакованных блоков минутных баров. Механизм обращения к серверу за данными не зависит от того, каким...
from datetime import datetime
import MetaTrader5 as mt5
# выведем информацию о версии MetaTrader 5
print(mt5.version())
# установим подключение к терминалу MetaTrader 5if not mt5.initialize():
print("initialize() failed, error code =",mt5.last_error())
quit()
# подключимся к торговому счету без указания пароля и сервера
account=17245465
authorized=mt5.login(account) # пароль будет взят из базы терминала, если указано помнить данные для подключения
if authorized:
# выведем данные о торговом счете как есть
print(mt5.account_info())
# выведем данные о торговом счете в виде списка
print("Show account_info()._asdict():")
account_info_dict = mt5.account_info()._asdict()
for prop in account_info_dict:
print(" {}={}".format(prop, account_info_dict[prop]))
else:
print("failed to connect at account #{}, error code: {}".format(account, mt5.last_error()))
# запросим статус и параметры подключения
print(mt5.terminal_info())
# получим информацию о версии MetaTrader 5
print(mt5.version())
x= mt5.symbols_total()
print('количество всех финансовых инструментов в терминале MetaTrader 5=', x)
# получим все символы
symbols=mt5.symbols_get()
print('symbols=', symbols)
# получим бары с разных инструментов разными способами
eurusd_rates = mt5.copy_rates_from("EURUSD", mt5.TIMEFRAME_M30, datetime(2020, 1, 28, 13), 1000)
# DATA
print('eurusd_rates', eurusd_rates )
# завершим подключение к MetaTrader 5
mt5.shutdown()
Признак отрисовки ценового графика. Если установлено значение false, то отключается отрисовка любых атрибутов ценового графика и устраняются все отступы по краям графика: шкалы времени и цены, строка быстрой навигации, метки событий Календаря, значки сделок, тултипы индикаторов и баров, подокна индикаторов, гистограммы объёмов и т.д. Значение...
@Almaz
第一次运行copy_xxx_xxx函数时,当终端有一段时间没有启动时,
函数立即返回缺少历史的可用结果,而不等待历史交换的同步。
这意味着第一个函数调用 返回的结果中缺少历史记录。
只有后续的调用才会返回正确的结果,当历史被交换时。
有可能解决这个问题吗?而函数copy_xxx_xxx在第一次调用时等待历史被交换。
copy_ticks还是copy_rates? 终端的构建是什么?
@Almaz
第一次运行copy_xxx_xxx函数时,当终端有一段时间没有启动时,
函数立即返回缺少历史的可用结果,而不等待历史交换的同步。
这意味着第一个函数调用 返回的结果中缺少历史记录。
只有后续的调用才会返回正确的结果,当历史被交换时。
有可能解决这个问题吗?而copy_xxx_xxx函数会在第一次调用时等待历史被交换。
阅读组织数据访问,Python库与此无关。这是标准行为,你需要处理这种情况,在终端交换后重新请求历史记录。
这只是一次性的事情,所以并不关键。如果你一直从脚本中操作终端,你可以一直保持现有的历史记录是最新的。
copy_ticks还是copy_rates? 哪一个终端的构建?
使用了copy_rates,但我认为copy_ticks也会一样,但没有检查过。
建2470
阅读《组织数据访问》,它与Python库没有关系。这是标准行为,你需要处理这种情况,在终端弹出后重新请求历史记录。
这只是一次性的事情,所以并不关键。如果你一直用脚本中的终端工作,你可以一直保持现有的历史记录是最新的。
我读过这一节,它与Mql5有关。
而总的来说,你允许复制函数接收不正确的数据,而不等待历史数据被换出并给出结果,这很奇怪。或者你是在暗示你需要以同样的方式组织CheckLoadHistory?
为什么不把这个功能作为标准引进?用于Mql和Py库。
我读了这一节,它指的是Mql5。
总的来说,你允许Copy函数中出现不正确的数据,而不等待历史交换并给出结果,这很奇怪。或者你是在暗示你需要以同样的方式组织CheckLoadHistory?
为什么不把这个功能作为标准引进呢?用于Mql和Py库。
如果你在MQL5中工作, 组织访问数据 部分的问题就没有那么特别。我们已经远远地研究了这一节。我们也在使用它。
为什么你认为对Python来说应该是不同的呢?
毕竟,主要核心是MQL5,你必须了解它。只有在这之后,你才需要应用Python。
我读了这一节,它指的是Mql5。
总的来说,你在Copy函数中允许不正确的数据,而不等待历史数据的加载并返回结果,这很奇怪。或者你是在暗示你需要以同样的方式组织CheckLoadHistory?
为什么不把这个功能作为标准引进呢?用于Mql和Py库。
Python库允许从MetaTrader 5终端 请求数据,无论请求的方式是什么--手动、通过MQL5或使用Python的脚本。
MQL5程序和Python脚本的开发者负责处理数据的逻辑和组织工作。
下午
是否有一个选项可以通过PowerShell连接到终端?如果有人知道怎么做,我将非常感激。
没有使用python的经验,所以想用我最熟悉的东西))
日安!
我已经连接了库,python与Mt5进行了通信,我得到了账户信息,但报价没有以任何方式加载。你能帮助我吗?
Python 3.7.6版本
结果。
日安!
我已经连接了库,python与Mt5进行了通信,我得到了账户信息,但报价没有以任何方式加载。你能帮助我吗?
Python 3.7.6版本
结果。
请正确插入代码(使用按钮 )。
请正确插入代码(使用按钮)。
谢谢你的设计,我会加以考虑的。