Discussão do artigo "Integração da MetaTrader 5 e Python: recebendo e enviando dados" - página 10

[Excluído]  
Maxim Dmitrievsky:
Confira o exemplo do meu último artigo. Aqui foi usada uma versão antiga do pacote. E ela precisa ser instalada primeiro por meio do pip install, é claro

Obrigado, Maxim. Dei uma olhada no exemplo antes mesmo da pergunta ))) Mas minha experiência não me permite perceber as diferenças imediatamente. Mas vou aprender )))

 
Senhores, é estranho perguntar (sinto que a pergunta é estúpida), mas essa coisa - SocketCreate() sabe como Strategies Tester?
[Excluído]  
immediacy:
Senhores, é estranho perguntar (sinto que a pergunta é estúpida), mas essa coisa - SocketCreate() sabe como Strategies Tester?

Não

 

Boa tarde! Ao iniciar o socketserver, recebo o seguinte erro: help me please "dummy")

Traceback (última chamada mais recente):

Arquivo "C:C:{python\Socket_client-server\Socket client-server\socketserver\socketserver.py", linha 48, em <module>
serv = socketserver('127.0.0.1', 9090)
Arquivo "C:C:\python\Socket_client-server\Socket client-server\socketserver.py", linha 15, em __init__
self.sock.bind((self.adress, self.port)))
AttributeError: o objeto 'socketserver' não tem o atributo 'adress'
>>>
 

Olá, artigo interessante. Obrigado por isso.


Gostaria de saber. Por que você decidiu implementar o servidor em Python e o EA como cliente no MT5?


Não seria mais natural ter o servidor como um EA no MT5, fornecendo dados e executando traders, e o(s) cliente(s) em python, processando os dados e tomando as decisões de negociação que são enviadas ao servidor?


Existe alguma vantagem óbvia em usar o cliente como um EA e o servidor em python, que eu não esteja percebendo?



Se bem me lembro, em minha experiência anterior com o ZeroMQ, o servidor era um EA no MT5 e o cliente em python.

 
yogibass:

@Maxim Dmitrievsky

Eu só queria agradecer por disponibilizar esse recurso. Eu sempre quis poder codificar meus indicadores em Python e, desde que você iniciou este tópico, pude acessar dados de futuros em tempo real e usá-los para desenvolver e executar meus indicadores. Uso meu Python para plotar e analisar o feed ao vivo e faço negociações por meio da plataforma MT5 - funciona muito bem. Por favor, continue com o bom trabalho e eu realmente espero que o Python seja totalmente adotado pela comunidade MT.

Muito obrigado e cumprimentos!

Olá, quero conectar o MT5 com dados ao vivo usando uma API. Porque em meu país não há nenhum corretor autorizado ou fornecedor de dados que ofereça suporte ao MT5. Por favor, me ajude.
 
Maxim Dmitrievsky #:

Hi, sockets don't work in tester at this time. Also, you mus add localhost to allowed webrequests in mt5 settings



Depois de adicionar o localhost, o erro "4014" continua a aparecer

 

Obrigado pela descrição completa.

Tenho uma pergunta:

é possível executar um script do tipo .ex5 por meio de um comando no ambiente python?

Quero executá-lo por meio do python, e o script salvará os resultados em um arquivo do Excel, para que eu possa usar os dados do Excel novamente em meu site ou programa Android.

Muito obrigado.

 
Olá, Maxim.
Seu artigo sobre a integração do Python e do mt5 me incentivou a me aprofundar no assunto. Escrevi muitas coisas em Python usando quase todas as funções da biblioteca.
Surgiu a necessidade de desenhar algo em um gráfico no mt5, calculado em Python. Tomando como base seu código sobre comunicação via socket, escrevi o seguinte cenário: ao clicar no canto do gráfico, o mt5 envia uma solicitação de dados para desenhar fibs e canais. Em seu exemplo, o Python retorna dois valores, mas eu preciso retornar dados para até 12 estruturas diferentes com três pontos de coordenadas cada.
No início, fiquei preso ao fato de que o mt5 não retornava uma longa cadeia de caracteres descrevendo todas as estruturas de uma só vez. Fiz a troca por meio de várias consultas mais curtas. Tudo parece funcionar, mas de vez em quando.
Algo me diz que o problema está na configuração do tempo limite. Você poderia sugerir uma direção para encontrar uma solução?
Agradeço antecipadamente
 

Olá - Alguém pode me ajudar?


Estou tentando executar este código em Python e continuo recebendo um erro:


Abaixo está meu código e o resultado é o erro:


>>> # Copiando dados para o dataframe

>>> d = pd.DataFrame()

>>> for i in sym:

... rates = mt.copy_rates_from_pos(i, mt.TIMEFRAME_M1, 0, 1000)

Arquivo "<stdin>", linha 2

rates = mt.copy_rates_from_pos(i, mt.TIMEFRAME_M1, 0, 1000)

^

IndentationError: esperava um bloco recuado

>>> d[i] = [y.close for y in rates]

Traceback (última chamada mais recente):

Arquivo "<stdin>", linha 1, em <module>

Arquivo "<stdin>", linha 1, em <listcomp>

AttributeError: o objeto 'numpy.void' não possui o atributo 'close'


# sbcapitalfx Heat Map - version 1.0



import MetaTrader5 as mt

import pandas as pd

from datetime import datetime

import matplotlib.pyplot as plt



# Initializing MT5 connection 



mt.initialize()



login = ************

password = ' ************ '

server = 'MetaQuotes-Demo'



mt.login(login,password,server)



# Create currency watchlist for which correlation matrix is to be plotted

sym = ['EURUSD','USDJPY','USDCHF','USDNZD']



# Copying data to dataframe

d = pd.DataFrame()

for i in sym:

        rates = mt.copy_rates_from_pos(i, mt.TIMEFRAME_M1, 0, 1000)

        d[i] = [y.close for y in rates]