MetaTrader 5 Python用户组 - 如何在Metatrader中使用Python - 页 69

 
Roman:

@Almaz
第一次运行copy_xxx_xxx函数时,当终端有一段时间没有启动时,
函数立即返回缺少历史的可用结果,而不等待历史交换的同步。
这意味着第一个函数调用 返回的结果中缺少历史记录。
只有后续的调用才会返回正确的结果,当历史被交换时。
有可能解决这个问题吗?而函数copy_xxx_xxx在第一次调用时等待历史被交换。

copy_ticks还是copy_rates? 终端的构建是什么?

 
Roman:

@Almaz
第一次运行copy_xxx_xxx函数时,当终端有一段时间没有启动时,
函数立即返回缺少历史的可用结果,而不等待历史交换的同步。
这意味着第一个函数调用 返回的结果中缺少历史记录。
只有后续的调用才会返回正确的结果,当历史被交换时。
有可能解决这个问题吗?而copy_xxx_xxx函数会在第一次调用时等待历史被交换。

阅读组织数据访问,Python库与此无关。这是标准行为,你需要处理这种情况,在终端交换后重新请求历史记录。

这只是一次性的事情,所以并不关键。如果你一直从脚本中操作终端,你可以一直保持现有的历史记录是最新的。

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Прежде чем ценовые данные будут доступны в терминале MetaTrader 5, их необходимо получить и обработать. Для получения данных требуется подключение к торговому серверу MetaTrader 5. Данные поступают с сервера по запросу терминала в виде экономно упакованных блоков минутных баров. Механизм обращения к серверу за данными не зависит от того, каким...
 
Almaz:

copy_ticks还是copy_rates? 哪一个终端的构建?

使用了copy_rates,但我认为copy_ticks也会一样,但没有检查过。
建2470

 
Rashid Umarov:

阅读《组织数据访问》,它与Python库没有关系。这是标准行为,你需要处理这种情况,在终端弹出后重新请求历史记录。

这只是一次性的事情,所以并不关键。如果你一直用脚本中的终端工作,你可以一直保持现有的历史记录是最新的。

我读过这一节,它与Mql5有关。
或者你是在暗示你需要以同样的方式组织CheckLoadHistory
为什么不把这个功能作为标准引进?用于Mql和Py库。

而总的来说,你允许复制函数接收不正确的数据,而不等待历史数据被换出并给出结果,这很奇怪。
 
Roman:

我读了这一节,它指的是Mql5。
或者你是在暗示你需要以同样的方式组织CheckLoadHistory
为什么不把这个功能作为标准引进呢?用于Mql和Py库。

总的来说,你允许Copy函数中出现不正确的数据,而不等待历史交换并给出结果,这很奇怪。

如果你在MQL5中工作组织访问数据 部分的问题就没有那么特别。我们已经远远地研究了这一节。我们也在使用它。

为什么你认为对Python来说应该是不同的呢?

毕竟,主要核心是MQL5,你必须了解它。只有在这之后,你才需要应用Python。

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Прежде чем ценовые данные будут доступны в терминале MetaTrader 5, их необходимо получить и обработать. Для получения данных требуется подключение к торговому серверу MetaTrader 5. Данные поступают с сервера по запросу терминала в виде экономно упакованных блоков минутных баров. Механизм обращения к серверу за данными не зависит от того, каким...
 
Roman:

我读了这一节,它指的是Mql5。
或者你是在暗示你需要以同样的方式组织CheckLoadHistory
为什么不把这个功能作为标准引进呢?用于Mql和Py库。

总的来说,你在Copy函数中允许不正确的数据,而不等待历史数据的加载并返回结果,这很奇怪。

Python库允许从MetaTrader 5终端 请求数据,无论请求的方式是什么--手动、通过MQL5或使用Python的脚本。

MQL5程序和Python脚本的开发者负责处理数据的逻辑和组织工作。

 

下午

是否有一个选项可以通过PowerShell连接到终端?如果有人知道怎么做,我将非常感激。

没有使用python的经验,所以想用我最熟悉的东西))

 

日安!

我已经连接了库,python与Mt5进行了通信,我得到了账户信息,但报价没有以任何方式加载。你能帮助我吗?

Python 3.7.6版本


from datetime import datetime
import MetaTrader5 as mt5

# выведем информацию о версии MetaTrader 5
print(mt5.version())

# установим подключение к терминалу MetaTrader 5
if 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()


结果。

(0, 0, '')
AccountInfo(login=17245465, trade_mode=2, leverage=500, limit_orders=500, margin_so_mode=0, trade_allowed=False, trade_expert=True, margin_mode=2, currency_digits=2, fifo_close=False, balance=0.0, credit=0.0, profit=0.0, equity=0.0, margin=0.0, margin_free=0.0, margin_level=0.0, margin_so_call=50.0, margin_so_so=20.0, margin_initial=0.0, margin_maintenance=0.0, assets=0.0, liabilities=0.0, commission_blocked=0.0, name='xxxxxxxxxxxxx', server='Alpari-MT5', currency='USD', ...)
Show account_info()._asdict():
  login=17045461
  trade_mode=2
  leverage=500
  limit_orders=500
  margin_so_mode=0
  trade_allowed=False
  trade_expert=True
  margin_mode=2
  currency_digits=2
  fifo_close=False
  balance=0.0
  credit=0.0
  profit=0.0
  equity=0.0
  margin=0.0
  margin_free=0.0
  margin_level=0.0
  margin_so_call=50.0
  margin_so_so=20.0
  margin_initial=0.0
  margin_maintenance=0.0
  assets=0.0
  liabilities=0.0
  commission_blocked=0.0
  name=ххххххх
  server=Alpari-MT5
  currency=USD
  company=Alpari International
TerminalInfo(community_account=True, community_connection=True, connected=True, dlls_allowed=False, trade_allowed=False, tradeapi_disabled=False, email_enabled=False, ftp_enabled=False, notifications_enabled=False, mqid=False, build=2489, maxbars=100000000, codepage=1251, ping_last=95766, community_balance=0.0, retransmission=5.305821665438467, company='Alpari International', name='Alpari MT5', language='Russian', path='C:\\Program Files\\Alpari MT5', ...)
(500, 2489, '12 Jun 2020')

количество всех финансовых инструментов в терминале MetaTrader 5= 43
symbols= (SymbolInfo(custom=False, chart_mode=0, select=True, ....
eurusd_rates None

Process finished with exit code 0
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Признак отрисовки ценового графика. Если установлено значение false, то отключается отрисовка любых атрибутов ценового графика и устраняются все отступы по краям графика: шкалы времени и цены, строка быстрой навигации, метки событий Календаря, значки сделок, тултипы индикаторов и баров, подокна индикаторов, гистограммы объёмов и т.д. Значение...
 
rale70:

日安!

我已经连接了库,python与Mt5进行了通信,我得到了账户信息,但报价没有以任何方式加载。你能帮助我吗?

Python 3.7.6版本



结果。

请正确插入代码(使用按钮编码 )。

 
Vladimir Karputov:

请正确插入代码(使用按钮)。

谢谢你的设计,我会加以考虑的。