MetaTrader 5 Python User Group - como usar o Python no Metatrader - página 69

 
Roman:

@Almaz
A primeira vez que as funções copy_xxx_xxx são executadas, quando o terminal não arranca há algum tempo,
funções devolvem imediatamente o resultado disponível com histórico em falta, sem esperar pela sincronização da troca de histórico.
Isto significa que a primeira chamada de função devolve o resultado com o histórico em falta.
Apenas chamadas subsequentes devolverão o resultado correcto, quando o histórico for trocado.
É possível resolver esta questão? E as funções copy_xxx_xxx esperam que a história seja trocada na primeira chamada.

copy_ticks ou copy_rates? Qual é a construção do terminal?

 
Roman:

@Almaz
A primeira vez que as funções copy_xxx_xxx são executadas, quando o terminal não arranca há algum tempo,
funções devolvem imediatamente o resultado disponível com histórico em falta, sem esperar pela sincronização da troca de histórico.
Isto significa que a primeira chamada de função devolve o resultado com o histórico em falta.
Apenas chamadas subsequentes devolverão o resultado correcto, quando o histórico for trocado.
É possível resolver esta questão? E as funções copy_xxx_xxx aguardarão que a história seja trocada na primeira chamada.

Leia Organizar o acesso aos dados, a biblioteca Python não tem nada a ver com isso. Este é um comportamento padrão, é necessário lidar com tais situações e solicitar novamente o histórico após a troca do terminal.

Isto é uma coisa pontual, por isso não é crítico. Pode sempre manter o histórico existente actualizado se trabalhar com o terminal a partir de um guião o tempo todo.

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

copy_ticks ou copy_rates? Qual a construção do terminal?

Taxas de cópia_utilizadas, mas penso que os copy_ticks serão os mesmos, mas ainda não foram verificados.
Construir 2470

 
Rashid Umarov:

Leia Organize o Acesso aos Dados, não tem nada a ver com a biblioteca Python. Este é um comportamento padrão, é necessário lidar com tais situações e solicitar novamente a história depois de o terminal a fazer ricochetear.

Isto é uma coisa pontual, por isso não é crítico. Pode sempre manter o histórico existente actualizado se trabalhar com o terminal a partir do guião o tempo todo.

Li esta secção, está relacionada com Mql5.
Ou está a insinuar que precisa de organizar aCheckLoadHistory da mesma forma?
Porque não introduzir esta função como padrão? Para a biblioteca Mql e Py.

E em geral é estranho que permita que a função Copiar receba dados incorrectos, sem esperar que o histórico seja trocado e dando o resultado.
 
Roman:

Li esta secção, refere-se ao Mql5.
Ou está a insinuar que precisa de organizara CheckLoadHistory da mesma forma?
Porque não introduzir esta função como padrão? Para a biblioteca Mql e Py.

E, em geral, é estranho que permita dados incorrectos na função de cópia, sem esperar pela troca do histórico e dando o resultado.

Se trabalha na MQL5, as perguntas na secção deOrganização de Acesso a Dados não são tão especiais. Temos estudado esta secção em todo o lado. E nós usamo-lo.

Porque acha que deveria ser diferente para Python?

Afinal, o núcleo principal é o MQL5 e é preciso conhecê-lo. E só depois disso é necessário aplicar o Python.

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

Li esta secção, refere-se ao Mql5.
Ou está a insinuar que precisa de organizara CheckLoadHistory da mesma forma?
Porque não introduzir esta função como padrão? Para a biblioteca Mql e Py.

E, em geral, é estranho que permita dados incorrectos na função de cópia e não espere que o histórico seja carregado e devolva o resultado.

A biblioteca Python permite solicitar dados do terminal MetaTrader 5 em geral, independentemente da forma como foi solicitado - manualmente, via MQL5 ou utilizando o script do Python.

O desenvolvedor de programas MQL5 e scripts Python é responsável pela lógica e organização do trabalho com dados.

 

Tarde

Existe uma opção de ligação ao terminal através do PowerShell? se alguém souber como, ficaria grato por informações

Nenhuma experiência com python, por isso gostaria de usar o que eu conheço melhor))

 

Bom dia!

Liguei bibliotecas, python está a comunicar com Mt5, estou a receber informação de conta mas as citações não estão a carregar de forma alguma. Pode ajudar-me?

Python versão 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()


Resultado:

(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:

Bom dia!

Liguei bibliotecas, python está a comunicar com Mt5, estou a receber informação de conta, mas as citações não estão a carregar de forma alguma. Pode ajudar-me?

Python versão 3.7.6



Resultado:

Por favor insira o código correctamente (use o botão Código)

 
Vladimir Karputov:

Por favor insira o código correctamente (utilize o botão)

Obrigado pelo desenho, tê-lo-ei em conta.

Razão: