MetaTrader 5 - Grupo de usuários de Python - página 2

 
Trader_Patinhas:

Não vejo sentido em se comparar mérito entre Python e MQL5, nem em se pensar que haja algum tipo de "disputa" entre essas linguagens. 

São linguagens que têm características e objetivos completamente diferentes (vale lembrar que uma é interpretada e a outra é compilada!).

Cada uma tem o seu nicho de aplicação.

É como perguntar qual tipo de veículo é melhor: um ônibus ou uma motocicleta?

Se o objetivo for transportar 40 passageiros com suas bagagens, a resposta é uma.

Se o objetivo for transportar 1 pessoa chegando no destino o mais rápido possível e com mínimo consumo de combustível, a resposta é outra.

O que me parece fazer sentido é INTEGRAR as duas linguagens, aplicando cada uma naquilo que faz melhor.

Para quem trabalha com Machine Learning, faz bastante sentido treinar, validar e testar os modelos preditivos usando Python ou R e usar MQL5 para construir um robô de negociação que toma decisões com base no modelo preditivo treinado (pelo menos é assim que eu faço).

Olá @Trader_Patinhas, obrigado por compartilhar, concordo com você em gênero, número e grau!
Sds.,
Rogério Figurelli

 
Eu dei uma olhada na documentação, mas pelo que eu entendi só é possível conseguir os valores, mas não é possível, ao menos por enquanto, dar ordens de compra e venda usado o python.
 
Trader_Patinhas:

Não vejo sentido em se comparar mérito entre Python e MQL5, nem em se pensar que haja algum tipo de "disputa" entre essas duas linguagens. 

São linguagens que têm características e objetivos completamente diferentes (vale lembrar que uma é interpretada e a outra é compilada!).

Cada uma tem o seu nicho de aplicação.

É como perguntar qual tipo de veículo é melhor: um ônibus ou uma motocicleta?

Se o objetivo for transportar 40 passageiros com suas bagagens, a resposta é uma.

Se o objetivo for transportar 1 pessoa chegando no destino o mais rápido possível e com mínimo consumo de combustível, a resposta é outra.

O que me parece fazer sentido é INTEGRAR as duas linguagens, aplicando cada uma naquilo que faz melhor.

Para quem trabalha com Machine Learning, faz bastante sentido treinar, validar e testar os modelos preditivos usando Python ou R e usar MQL5 para construir um robô de negociação que toma decisões com base no modelo preditivo treinado (pelo menos é assim que eu faço).

Muito bom!

Ótima análise!

Na minha opinião o Python complementa (e muito bem!!!) o MT5!

 

Boa tarde a todos. Tenho aqui uma estrategia com ações, que a tenho testado por mais de 50 dias manualmente(Iniciei os trades dela em março/19).

Por ser tudo feito manualmente me toma o dia todo, sendo bastante demorado as vezes de fazer todos os calculos.

Tenho uma ideia pra isso virar robo, porem por falta de condições no momento, nao tenho como contratar alguem.

O sistema usará python e mql5.

Anexei um gráfico dos trades feito pra ilustrar a performance da mesma, salientando que todos os trades foram feitos manualmente

Se alguem se habilitar a dar esse voto de confiança e montar pra mim, podemos tratar da estrategia em conjunto.

Forte abço a todos e parabens pelo topico.

Arquivos anexados:
 

Olá, Tentei fazer uma conexão do Python com o MQL5 usando o exemplo do próprio site da MQL5 e ele está dando Falha ... aconteceu com alguém aqui também ?

Alguém sabe o que poderia ser ?

Mensagem de erro:

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-12-2140b5219570> in <module>
     18 utc_from = datetime(2019, 4, 1, tzinfo=timezone)
     19 # request 100 000 EURUSD ticks from 01.04.2019 in UTC time zone
---> 20 ticks = MT5CopyTicksFrom("EURUSD", utc_from,1 , MT5_COPY_TICKS_ALL)
     21 print("Ticks received:",len(ticks))
     22 

RuntimeError: IPC call failed

Programação do Site do MQL5.

from datetime import datetime 
from MetaTrader5 import * 
# importamos o módulo pandas para exibir os dados recebidos na forma de uma tabela 
import pandas as pd 
pd.set_option('display.max_columns', 500) # número de colunas 
pd.set_option('display.width', 1500)      # largura máxima da tabela 
# importamos o módulo pytz para trabalhar com o fuso horário 
import pytz 
 
# estabelecemos conexão ao terminal MetaTrader 5
MT5Initialize()
# esperamos que o MetaTrader 5 se conecte ao servidor de negociação
MT5WaitForTerminal()
 
# definimos o fuso horário como UTC
timezone = pytz.timezone("Etc/UTC")
# criamos o objeto datetime no fuso horário UTC para que não seja aplicado o deslocamento do fuso horário local
utc_from = datetime(2019, 4, 1, tzinfo=timezone)
# solicitamos 100 000 ticks de EURUSD a partir de 04/01/2019 no fuso horário UTC
ticks = MT5CopyTicksFrom("EURUSD", utc_from, 100000, MT5_COPY_TICKS_ALL)
print("Ticks recebidos:",len(ticks))
 
# concluímos a conexão ao terminal MetaTrader 5
MT5Shutdown()
# exibimos cada tick numa nova linha
print("Exibimos os ticks recebidos como são") 
count = 0
for tick in ticks:
    print(tick)
    if(count >= 10):
        break
 
# a partir dos dados recebidos criamos o DataFrame
ticks_frame = pd.DataFrame(list(ticks), 
                           columns=['time', 'bid', 'ask', 'last', 'volume', 'flags'])
# exibimos dados
print("\nExibimos o dataframe com ticks")
print(ticks_frame.head(10))  # notamos que Python mostra o tempo dos ticks no fuso horário local com deslocamento
 
# para o computador local, obtemos o deslocamento da hora UTC
UTC_OFFSET_TIMEDELTA = datetime.utcnow() - datetime.now()
 
# criamos uma função simples que diretamente corrija o deslocamento
def local_to_utc(dt):
    return dt + UTC_OFFSET_TIMEDELTA
 
# implementamos o deslocamento para a coluna time no dataframe ticks_frame
ticks_frame['time'] = ticks_frame.apply(lambda tick: local_to_utc(tick['time']), axis=1)
 
# mais uma vez imprimimos os dados e conferimos que agora o tempo dos ticks tenha mudado
print("\nExibimos o dataframe com ticks depois de ajustar o tempo")
print(ticks_frame.head(10)) 

Segue o Link da onde encontrei o Código ... 

https://www.mql5.com/pt/docs/integration/python_metatrader5/mt5copyticksfrom_py

Documentação sobre MQL5: Integração / MetaTrader para Python / MT5CopyTicksFrom
Documentação sobre MQL5: Integração / MetaTrader para Python / MT5CopyTicksFrom
  • www.mql5.com
# importamos o módulo pandas para exibir os dados recebidos na forma de uma tabela # criamos o objeto datetime no fuso horário UTC para que não seja aplicado o deslocamento do fuso horário local # solicitamos 100 000 ticks de EURUSD a partir de 04/01/2019 no fuso horário UTC...
 
Olá estou fazendo um projeto da faculdade que consiste em pegar os dados do candle no mt5 (Abert,max,min,fecha do DOLQ19) , jogar em uma IA treinada em python, e retornar -1,0 ou 1 para vender , não fazer nada, ou comprar respectivamente, e jogar no EA para ele fazer a operação. Mas não consegui fazer essa função dos 2, usei este tutorial  https://www.mql5.com/en/articles/5691  mas toda vez da erro 4014. Estou meio perdido se alguém puder me ajudar eu agradeceria muito!
MetaTrader 5 and Python integration: receiving and sending data
MetaTrader 5 and Python integration: receiving and sending data
  • www.mql5.com
A network socket is the endpoint of interprocess communication over a computer network. The MQL5 Standard Library includes a group of Socket functions, which provide a low-level interface for working on the Internet. This is a common interface for different programming languages, as it uses system calls at the operating system level. Data...
 
BrenoToledo:

Olá, Tentei fazer uma conexão do Python com o MQL5 usando o exemplo do próprio site da MQL5 e ele está dando Falha ... aconteceu com alguém aqui também ?

Alguém sabe o que poderia ser ?

Programação do Site do MQL5.

Segue o Link da onde encontrei o Código ... 

https://www.mql5.com/pt/docs/integration/python_metatrader5/mt5copyticksfrom_py

Olá  BrenoToledo, seu problema parece simples, você provavelmente está conectado, por default, em um servidor nacional utilizando um código que tenta acessar um ativo FX (EUR/USD).
Dessa forma, recomendo executar manualmente os seguintes comandos diretamente no ambiente Python, esperando o MT5 abrir, e ajustando o servidor:

from MetaTrader5 import *
MT5Initialize()

Fiz um teste forçando um ambiente com erro de servidor e o problema e mensagem de erro foi exatamente essa, portanto se esse é realmente seu caso, por favor refaça o teste logando em MetaQuotes-Demo, e se for isso mesmo, você deve conseguir rodar todo código e obter uma imagem como abaixo.


Sds.,
Rogério Figurelli

 
jvanjos:
Olá estou fazendo um projeto da faculdade que consiste em pegar os dados do candle no mt5 (Abert,max,min,fecha do DOLQ19) , jogar em uma IA treinada em python, e retornar -1,0 ou 1 para vender , não fazer nada, ou comprar respectivamente, e jogar no EA para ele fazer a operação. Mas não consegui fazer essa função dos 2, usei este tutorial  https://www.mql5.com/en/articles/5691  mas toda vez da erro 4014. Estou meio perdido se alguém puder me ajudar eu agradeceria muito!

Olá  jvanjos, recomendo analisares a resposta anterior para o colega de fórum Breno, pois seu problema parece similar.
Se não for, basta informar aqui mais detalhes, ou ainda, outras questões mais genéricas de Machine Learning que não envolvam apenas Python, o que também pode ser feito no tópico abaixo, que recomendo caso tenhas interesse em explorar mais essa área no seu trabalho.
https://www.mql5.com/pt/forum/318498
Sds.,
Rogério Figurelli

Tudo sobre Linguagens de Programação para Machine Learning e integração com o MetaTrader
Tudo sobre Linguagens de Programação para Machine Learning e integração com o MetaTrader
  • 2019.07.23
  • www.mql5.com
Decidi criar esse tópico para concentrar tudo (perguntas, respostas, cases, informações, etc...
 
Olá pessoal. Estou com um problema e não consegui encontrar um caminho para resolvê-lo. É simples: se eu crio um script em Python com um modelo preditivo treinado em um determinado ativo com determinado timeframe, sempre que eu mudar de ativo ou de timeframe devo criar outro script Python para esse fim? Não consegui encontrar uma forma de automatizar isso. Eu estou usando socket para a comunicação entre o EA e o script. Pensei em enviar para o script via socket o symbol e timeframe, mas é preciso passar para a função  SocketConnect() a porta e isso restringe o uso a apenas um EA por script ou estou falando besteira?
Documentação sobre MQL5: Funções de rede / SocketConnect
Documentação sobre MQL5: Funções de rede / SocketConnect
  • www.mql5.com
//|                                                SocketExample.mq5 | //|                        Copyright 2018, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | "Para o exemplo funcionar, adicione Address à lista de permitidos nas configurações do terminal...
 
Boa noite pessoal, esse GP tira duvidas em codigos ?
Razão: