English Русский 中文 Español Deutsch 日本語
preview
Integração MQL5: Python

Integração MQL5: Python

MetaTrader 5Sistemas de negociação |
357 4
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Introdução

Neste novo artigo, vou lhe dar uma introdução definitiva a uma ferramenta importante que agregará valor às suas habilidades de programação. Vamos abordar a Integração Python. Quando se trata de como isso pode ser útil para nós como desenvolvedores, dependerá dos seus objetivos de software, pois o Python é uma linguagem de programação de alto nível que é fácil de ler e também simples. Python é uma linguagem de programação que oferece bibliotecas extensivas para áreas como análise de dados, computação estatística e aprendizado de máquina. Portanto, a integração do Python com o MQL5 pode fornecer melhores insights que podem ser úteis para participantes do mercado financeiro, a fim de melhorar seus resultados por meio de processamento de dados e análises preditivas.

Neste artigo, vou explicar como usar o Python com MQL5, dando-lhe noções básicas de Python e alguns exemplos simples após configurarmos nosso ambiente. Abordarei isso nos seguintes tópicos:

Vamos explorar profundamente este tópico interessante para entender como podemos melhorar nossos resultados de trading utilizando o Python com o MQL5.


Visão geral do Python

Python foi desenvolvido por Guido van Rossum e lançado em 1991. É uma linguagem de programação de alto nível conhecida pela sua legibilidade e simplicidade, tornando-a ideal tanto para iniciantes quanto para desenvolvedores experientes. Ela é adequada para uma ampla gama de aplicações, desde scripts simples até sistemas complexos, e sua sintaxe concisa permite um código limpo e fácil de manter.

As principais características do Python incluem:

  • Legibilidade: Tornando o código mais fácil de ler e escrever, a sintaxe do Python é intuitiva e espelha a linguagem natural.
  • Linguagem interpretada: O Python executa o código linha por linha, tornando o processo de depuração e desenvolvimento mais fácil.
  • Tipagem dinâmica: Os tipos das variáveis são determinados em tempo de execução, proporcionando flexibilidade na codificação.
  • Biblioteca padrão extensa: A biblioteca abrangente do Python oferece suporte para tarefas comuns, como I/O de arquivos, chamadas de sistema e manipulação de dados.
  • Versatilidade: O Python oferece suporte para uma ampla gama de paradigmas de programação, incluindo programação orientada a objetos, procedural e funcional.
  • Compatibilidade entre plataformas: O Python funciona em vários sistemas operacionais, como Windows, MacOS e Linux, sem necessidade de alterações no código.
  • Comunidade forte e ecossistema: A grande comunidade e o ecossistema do Python oferecem várias bibliotecas e ferramentas que expandem as possibilidades do Python.

Áreas de aplicação do Python incluem:

  • Ciência de dados: Bibliotecas de análise e visualização de dados, como Pandas e Matplotlib.
  • Inteligência Artificial: Ferramentas de aprendizado de máquina como scikit-learn, TensorFlow e Keras.
  • Automação: Selenium e Beautiful Soup para automação de tarefas repetitivas.
  • Desenvolvimento web: Frameworks para desenvolvimento de aplicativos web como Django e Flask.
  • Pesquisa científica: Ideal para simulação, análise estatística e construção de modelos.

Pandas, NumPy, SciPy, scikit-learn, TensorFlow, Matplotlib, Selenium, Django e Flask são algumas das bibliotecas e frameworks Python mais populares. Em resumo, a popularidade contínua do Python no mundo da programação deve-se à sua combinação de legibilidade, simplicidade e bibliotecas poderosas.


Benefícios da integração com Python

Como mencionado anteriormente, a integração do Python com o MQL5 oferece uma variedade de recursos vantajosos, tornando-se uma adição valiosa ao sistema. Esta seção tenta apresentar as vantagens mais significativas associadas à integração do Python em um sistema MQL5.

Portanto, a integração desses dois sistemas oferece as seguintes vantagens:

  • Facilita a manipulação e análise sofisticada de dados por meio do uso de técnicas avançadas de análise de dados, utilizando as extensas bibliotecas disponíveis no Python, incluindo Pandas e NumPy.
  • A incorporação de bibliotecas de aprendizado de máquina, como scikit-learn, TensorFlow e Keras, permite o desenvolvimento e a implementação de modelos de aprendizado de máquina para análises preditivas.
  • Automatiza estratégias de trading complexas e as otimiza utilizando o robusto ecossistema do Python, o que ajuda a aplicar automação e eficiência.
  • Aprimora seus algoritmos de trading utilizando a vasta coleção de bibliotecas e frameworks do Python.

Para mais detalhes:

Análise de Dados:

É possível utilizar as bibliotecas do Python de forma eficaz. O Python oferece uma infinidade de bibliotecas voltadas para análise de dados, incluindo Pandas e NumPy. Essas bibliotecas facilitam a manipulação sofisticada de dados e a análise estatística, melhorando assim a qualidade e profundidade da análise nas estratégias de trading.

  • A biblioteca Pandas fornece estruturas de dados e métodos de alto nível que facilitam uma análise de dados rápida e direta. A biblioteca Pandas permite que os usuários lidem de forma eficiente com grandes conjuntos de dados e realizem operações como filtragem, agrupamento e agregação de dados com pouco esforço.
  • O NumPy é uma biblioteca computacional que oferece suporte para cálculos numéricos eficientes, tornando-a bem adequada para manipulação de grandes matrizes e arrays de dados numéricos. Ele oferece uma gama abrangente de operações matemáticas e é frequentemente utilizado como a biblioteca fundamental sobre a qual outras bibliotecas, como Pandas e scikit-learn, são construídas.

Aprendizado de Máquina:

Na área de aprendizado de máquina, a linguagem Python é a escolha preferida devido à sua simplicidade e à disponibilidade de bibliotecas robustas, incluindo scikit-learn, TensorFlow e Keras. Quando integrada ao MQL5, os traders podem utilizar essas bibliotecas para construir, desenvolver e implantar modelos preditivos que empregam dados históricos para prever movimentos de mercado.

  • Scikit-learn: Esta biblioteca oferece aos usuários ferramentas simples, mas eficazes, para aprendizado de máquina, permitindo-lhes realizar uma análise e mineração de dados detalhada. Ela possui uma gama diversificada de algoritmos, atendendo a várias necessidades, incluindo classificação, agrupamento, regressão e muito mais.
  • TensorFlow e Keras: São ferramentas altamente populares e amplamente utilizadas entre desenvolvedores para fins de aprendizado profundo, oferecendo um conjunto abrangente de ferramentas para construir e treinar redes neurais para criar modelos sofisticados.

Automação e Eficiência:

No contexto de tarefas repetitivas e estratégias de trading sofisticadas, a automação pode ser uma solução eficaz. Ao automatizar processos, os traders podem agilizar suas operações e reduzir a possibilidade de erro humano. Isso é particularmente benéfico ao trabalhar com estratégias complexas, pois ter um código claro e preciso para a estratégia em questão pode ajudar a mitigar riscos.

  • Essa automação pode ser aplicada a uma variedade de tarefas relacionadas a dados, como coleta, processamento e análise, liberando o tempo dos traders, permitindo-lhes focar no desenvolvimento e execução das estratégias.
  • Além disso, essa abordagem pode ser aplicada a backtesting e otimização, utilizando dados históricos para avaliar o desempenho da estratégia e identificar áreas para melhoria por meio da otimização de parâmetros, levando, em última instância, a resultados aprimorados.

Acesso a uma gama abrangente de bibliotecas e frameworks:

A funcionalidade do MQL5 pode ser aprimorada por meio do uso de um ecossistema abrangente de bibliotecas e frameworks. Esses incluem ferramentas estatísticas avançadas, APIs para fontes externas de dados e visualizações complexas, que podem ser aproveitadas para expandir as capacidades das suas aplicações MQL5.

  • Esses incluem ferramentas estatísticas avançadas, APIs para fontes externas de dados e visualizações complexas, que podem ser aproveitadas para expandir as capacidades das suas aplicações MQL5.
  • APIs e Fontes de Dados: Bibliotecas Python oferecem uma solução conveniente para obter dados financeiros, realizar web scraping e acessar fontes de dados. Essas bibliotecas podem interagir com várias APIs, o que é vantajoso para quem deseja aprimorar suas estratégias de trading.

Existem muitos outros benefícios a serem considerados ao falar sobre este tópico, mas acredito que mencionamos os benefícios mais importantes de integrar o Python em nossos sistemas.

Forneceremos aplicações diretas para áreas relacionadas ao trading que podem ser aplicadas na prática. Isso ajudará a ilustrar como usamos conceitos de trading ao integrar Python ao MQL5. Vamos examinar como esses conceitos e técnicas podem ser usados em diferentes áreas, demonstrando como eles podem ser integrados aos processos de trading.


Configurando o Ambiente

Nesta seção, vamos configurar o software necessário para usar o Python com o MQL5, e os seguintes são os passos a serem seguidos.

  • Baixe e instale o MetaTrader 5 visitando https://www.metatrader5.com/pt e depois instale-o no seu dispositivo.
  • Baixe a versão mais recente do Python de https://www.python.org/downloads/windows
  • Ao instalar o Python, marque "Add Python to PATH%" para poder rodar scripts Python a partir da linha de comando.
  • É de extrema importância criar um ambiente distinto para cada projeto, para manter uma configuração limpa, isolada e reproduzível. Os passos a seguir ilustram como isso pode ser feito através da linha de comando:
    • Navegue até o diretório do projeto
cd /path/to/your/project
    • Use o venv para criar o ambiente mytestenv (Ferramenta de Ambiente Virtual incorporada)
python -m venv mytestenv
    • Agora é necessário ativar o ambiente que foi criado
mytestenv\Scripts\activate
pip install MetaTrader5
    • Mostre os detalhes da instalação do MetaTrader
pip show MetaTrader5
    • Para facilitar a utilização das funções mencionadas, é necessário adicionar os pacotes matplotlib e pandas
pip install matplotlib
pip install pandas
    • Em caso de desativação, podemos usar o seguinte comando na linha de comando
deactivate

Neste ponto do processo, o software necessário, ou seja, MetaTrader5, Python e as bibliotecas exigidas, foi instalado no dispositivo, permitindo o início do trabalho.


Aplicações simples

Como mencionado anteriormente, o Python e o MQL5 são ferramentas valiosas que podem ser usadas em uma variedade de tarefas e domínios, incluindo análise de dados, aprendizado de máquina e automação. Esta seção tem como objetivo apresentar aplicações simples relacionadas ao trading, que ilustram a utilização de scripts Python com o MetaTrader 5 para obter uma visão geral de algumas das tarefas fundamentais que podem ser realizadas.

Aplicação um: Abrir o MT5 usando um script Python:

Nesta aplicação, o objetivo é criar um script Python que abrirá o terminal MetaTrader 5 e imprimirá uma mensagem indicando se o terminal foi inicializado ou não. O código a seguir representa o script completo. É necessário substituir o (xxxxx) pelos detalhes relevantes da sua conta, incluindo número de conta, login, senha e servidor do corretor.

import MetaTrader5 as mt5
print ("MetaTrader5 PKG version: ",mt5.__version__)
if mt5.initialize(login=xxxxx, server="xxxxx",password="xxxxx"):
    print ("MT5 initialized Successfully")  
else: print ("MT5 initialization Failed, Error code ",mt5.last_error())
 

Após rodar este código, você verá que o terminal MetaTrader 5 foi inicializado da mesma forma que ao clicar no arquivo executável, e então poderá usá-lo normalmente para suas operações de trading. Além disso, você verá o seguinte resultado no seu console:

  • Versão do MetaTrader5 PKG: 5.0.4424
  • Autor do MetaTrader5 PKG: MetaQuotes Ltd.
  • MT5 inicializado com sucesso

Aplicação dois: Abrir posições usando um script Python:

Nesta aplicação, o objetivo é criar um script Python que permita abrir uma posição de compra no terminal MetaTrader 5. Os seguintes passos serão realizados para alcançar isso: será criado um script para abrir uma posição de compra de 0,01 no XAUUSD no preço Ask, com um nível de stop loss e take profit.

O modelo MetaTrader5 deve ser importado como mt5.

import MetaTrader5 as mt5

Imprimindo a versão do MetaTrader5 como uma informação do pacote.

print ("MetaTrader5 PKG version: ",mt5.__version__)

Imprimindo o autor do MetaTrader5 como uma informação do pacote.

print ("MetaTrader5 PKG author: ",mt5.__author__)

A conexão com o MetaTrader5 é inicializada com uma mensagem indicando se a inicialização foi bem-sucedida ou não. Se não for bem-sucedida, a mensagem fornecerá o código de erro. Os detalhes da conta, incluindo login, servidor do corretor e senha, devem ser substituídos pelos detalhes reais da conta.

if mt5.initialize(login=xxxxx, server="xxxxx",password="xxxxx"):
    print ("MT5 initialized Successfully")
else: print ("MT5 initialization Failed, Error code ",mt5.last_error())

As seguintes variáveis são declaradas: símbolo, lote, ponto, tipo_ordem, preço, sl, tp, desvio, mágico, comentário, tipo_tempo e tipo_preenchimento.

symbol="XAUUSD"
lot=0.01
point=mt5.symbol_info(symbol).point
order_type=mt5.ORDER_TYPE_BUY
price=mt5.symbol_info_tick(symbol).ask
sl=mt5.symbol_info_tick(symbol).ask-100
tp=mt5.symbol_info_tick(symbol).ask+150
deviation=10
magic=2222222
comment="python order"
type_time=mt5.ORDER_TIME_GTC
type_filling=mt5.ORDER_FILLING_IOC

Enviando a ordem ao declarar a solicitação para ser equivalente aos detalhes da ordem conforme declarado anteriormente.

request={
    "action":mt5.TRADE_ACTION_DEAL,
    "symbol":symbol,
    "volume":lot,
    "type":order_type,
    "price":price,
    "sl":sl,
    "tp":tp,
    "deviation":deviation,
    "magic":magic,
    "comment":comment,
    "type_time":type_time,
    "type_filling":type_filling,
    } 

Verifique se há fundos suficientes para realizar a operação de trading solicitada usando (order_check) para ser equivalente ao valor do resultado. O resultado da verificação é retornado como uma estrutura MqlTradeCheckResult.

result=mt5.order_check(request)

A execução das operações de trading é realizada transmitindo uma solicitação via a função "order_send", que serve como equivalente ao valor do resultado, atualizando-o.

result=mt5.order_send(request)

Agora é necessário encerrar a conexão com o terminal MetaTrader 5 que foi previamente estabelecida usando a função shutdown().

mt5.shutdown()

Consequentemente, o código completo pode ser encontrado da mesma maneira demonstrada pelo seguinte bloco de código.

import MetaTrader5 as mt5
print ("MetaTrader5 PKG version: ",mt5.__version__)
print ("MetaTrader5 PKG author: ",mt5.__author__)
if mt5.initialize(login=xxxxx, server="xxxxx",password="xxxxx"):
    print ("MT5 initialized Successfully")
else: print ("MT5 initialization Failed, Error code ",mt5.last_error())
symbol="XAUUSD"
lot=0.01
point=mt5.symbol_info(symbol).point
order_type=mt5.ORDER_TYPE_BUY
price=mt5.symbol_info_tick(symbol).ask
sl=mt5.symbol_info_tick(symbol).ask-100
tp=mt5.symbol_info_tick(symbol).ask+150
deviation=10
magic=2222222
comment="python order"
type_time=mt5.ORDER_TIME_GTC
type_filling=mt5.ORDER_FILLING_IOC
request={
    "action":mt5.TRADE_ACTION_DEAL,
    "symbol":symbol,
    "volume":lot,
    "type":order_type,
    "price":price,
    "sl":sl,
    "tp":tp,
    "deviation":deviation,
    "magic":magic,
    "comment":comment,
    "type_time":type_time,
    "type_filling":type_filling,
    }    
result=mt5.order_check(request)
result=mt5.order_send(request)
mt5.shutdown()

O resultado obtido ao executar o código será idêntico ao seguinte:

  • Versão do MetaTrader5 PKG: 5.0.4424
  • Autor do MetaTrader5 PKG: MetaQuotes Ltd.
  • MT5 inicializado com sucesso
  • Uma operação de compra no ouro (XAUUSD) foi iniciada no preço Ask com um tamanho de lote de 0,01, uma ordem de stop-loss no preço Ask menos 100, e um take-profit no preço Ask mais 150.

buyTrade

Aplicação três: Usando a API do MT5 Python para obter dados:

Uma infinidade de tarefas pode ser realizada utilizando o MQL5 e Python no contexto de gerenciamento de dados. Esta seção apresentará um exemplo simples relacionado ao trading, no qual dados financeiros são obtidos usando a API do MT5 Python. Além de plotar os dados em um gráfico para fins de visualização, o preço do ouro (XAUUSD) de 1º de agosto de 2023 até o momento (A data de redação do artigo era 12 de agosto de 2024) será obtido, impresso e visualizado como um gráfico de linha. Os seguintes passos serão apresentados para esse processo.

As bibliotecas necessárias devem ser importadas:

O módulo MetaTrader5, designado como "mt5", deve ser importado para uso futuro como um objeto de interação com o terminal de trading MetaTrader 5, conforme determinado anteriormente.

import MetaTrader5 as mt5

A biblioteca do Pandas é importada como pd para fins de manipulação e análise de dados.

import pandas as pd

Importando o plotly.express como px para ser usado na visualização de dados e apresentar os dados do XAUUSD.

import plotly.express as px

Importando plot do plotly.offline para facilitar a geração de gráficos sem a necessidade de uma conexão com a internet.

from plotly.offline import plot

Para facilitar a manipulação de datas e horas, é necessário importar o módulo datetime de datetime.

from datetime import datetime

Imprimindo as informações do pacote MetaTrader5 (versão e autor).

print ("MetaTrader5 PKG version: ",mt5.__version__)
print ("MetaTrader5 PKG author: ",mt5.__author__)

O terminal MetaTrader 5 é inicializado, e uma mensagem é impressa no console para indicar se a inicialização foi bem-sucedida. Se a inicialização for bem-sucedida, a mensagem "MT5 inicializado com sucesso" será exibida. Por outro lado, se a inicialização falhar, a mensagem "Falha na inicialização do MT5, código de erro" será exibida, juntamente com o código de erro e a última mensagem de erro.

if mt5.initialize(login=xxxxx, server="xxxxx",password="xxxxx"):
    print ("MT5 initialized Successfully")
else: print ("MT5 initialization Failed, Error code ",mt5.last_error())

Os dados históricos (abertura, máxima, mínima, fechamento, volume, spread e volume real) do XAUUSD foram obtidos na plataforma MetaTrader 5. O seguinte comando foi utilizado para esse fim:

  • pd.DataFrame: Um pd.dataFrame pode ser criado com critérios específicos, resultando em uma estrutura de dados bidimensional e rotulada.
  • mt5.copy_rates_range: é utilizado para determinar o tipo de dado em termos de símbolo (XAUUSD), intervalo de tempo (mt5.TIMEFRAME_D1), data de início (datetime(2023,8,1)) e data de término (datetime.now()).
xauusd_data=pd.DataFrame(mt5.copy_rates_range("XAUUSD", mt5.TIMEFRAME_D1, datetime(2023,8,1), datetime.now()))

A coluna de tempo é convertida de carimbos de data/hora Unix para um formato de data legível usando a função pandas.to_datetime.

xauusd_data['time'] = pd.to_datetime(xauusd_data['time'],unit='s')

Os dados recuperados para o XAUUSD devem ser impressos conforme a seguinte linha de código.

print(xauusd_data)

Os dados recuperados foram plotados usando a função px.line, que permite a criação de um gráfico de linha utilizando o Plotly Express. Este gráfico representa o preço do XAUUSD ao longo do tempo, desde o primeiro de agosto de 2023 até o momento.

fig = px.line(xauusd_data, x=xauusd_data['time'], y=xauusd_data['close'])
plot(fig)

O código completo é o mesmo que este bloco de código.

import MetaTrader5 as mt5
import pandas as pd
import plotly.express as px
from plotly.offline import plot
from datetime import datetime
print ("MetaTrader5 PKG version: ",mt5.__version__)
print ("MetaTrader5 PKG author: ",mt5.__author__)
if mt5.initialize(login=xxxxx, server="xxxxx",password="xxxxx"):
    print ("MT5 initialized Successfully")
else: print ("MT5 initialization Failed, Error code ",mt5.last_error())
xauusd_data=pd.DataFrame(mt5.copy_rates_range("XAUUSD", mt5.TIMEFRAME_D1, datetime(2023,8,1), datetime.now()))
xauusd_data['time'] = pd.to_datetime(xauusd_data['time'],unit='s')
print(xauusd_data)
fig = px.line(xauusd_data, x=xauusd_data['time'], y=xauusd_data['close'])
plot(fig)

Ao executar o código, os seguintes resultados são obtidos.

  • A mensagem de (MetaTrader5 PKG versão: 5.0.4424) foi impressa no console
  • A mensagem de (MetaTrader5 PKG autor: MetaQuotes Ltd.) foi impressa no console
  • A mensagem de (MT5 inicializado com sucesso) foi impressa no console
  • Os dados do XAUUSD impressos no console são os mesmos que a seguinte figura

XAUUSD_data

  • Abrindo o gráfico do XAUUSD em um navegador como resultado do gráfico plotado, conforme o seguinte

XAUUSD_plot

Como ilustrado na figura anterior, um gráfico de linha representa os preços de fechamento do ouro (XAUUSD) ao longo do tempo, abrangendo de agosto de 2023 até o presente. As aplicações simples mencionadas demonstram o potencial do uso do Python com o MQL5 em diversos aspectos do comércio automatizado, análise de dados e outras tarefas relacionadas.


Conclusão

Python é uma linguagem de programação altamente versátil e poderosa, que pode ser utilizada em diversas áreas, incluindo comércio e mercados financeiros. O uso do Python permite a automação, análise de dados e execução de estratégias, o que facilita decisões de negociação mais informadas. A combinação de Python e MQL5 permite a criação de sistemas de negociação sofisticados que utilizam dados e aprendizado de máquina. Ela representa um avanço significativo no campo do comércio algorítmico. Permite a criação de sistemas de negociação mais adaptáveis e baseados em dados. Essa combinação tem o potencial de aprimorar os resultados de negociação nos mercados financeiros.

Este artigo demonstrou o uso do Python em conjunto com o MQL5. Além disso, o artigo descreveu os passos necessários para configurar um ambiente Python para o MetaTrader 5. Ao estabelecer um fluxo de trabalho eficaz, os desenvolvedores podem gerenciar dependências de forma mais eficiente e melhorar a escalabilidade de seus sistemas de negociação. Python é capaz de automatizar tarefas e analisar tendências do mercado. Isso é demonstrado por aplicações práticas, incluindo a abertura do MetaTrader 5, execução de negociações, recuperação de dados de ativos e visualização deles.

Espero que este artigo o ajude a começar a usar o Python com o MQL5. Experimentar com várias aplicações pode ser muito benéfico para traders e desenvolvedores. Para mais informações, consulte recursos como:

  • Python for Dummies por Stef Maruch
  • Python Crash Course por Eric Matthes
  • Python All-In-One por John Shovic e Alan Simpson

Além disso, você pode acessar mais documentação no site do MQL5 através do link https://www.mql5.com/pt/docs/python_metatrader5.

Traduzido do Inglês pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/en/articles/14135

Arquivos anexados |
openMT5.py (0.39 KB)
openPosition.py (1.22 KB)
getData.py (0.84 KB)
Últimos Comentários | Ir para discussão (4)
Dibea Koffi Badjo
Dibea Koffi Badjo | 31 ago. 2024 em 21:44

Muito interessante, infelizmente a biblioteca python do MetaTrader ainda não está disponível para MacOs.

Omar Saghir
Omar Saghir | 30 nov. 2024 em 14:31

Obrigado,

encontrei apenas um erro no terceiro aplicativo

import plotly.express as px não pôde ser resolvido

from plotly.offline import plot could not be resolved


Resolvi isso reinstalando: pandas e matplotlib

c:\pip install MetaTrader5 pandas matplotlib


e, em seguida, modifiquei o código da seguinte forma:


import MetaTrader5 as mt5
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime

# Inicialização do MetaTrader 5
if not mt5.initialize():
    print("Erreur d'initialisation :", mt5.last_error())
    quit()
print("MT5 initialized Successfully")

# Definição dos parâmetros
symbol = "XAUUSD"
start_date = datetime(2023, 8, 1)
end_date = datetime(2024, 8, 12)

# Verificar se o símbolo está disponível
if not mt5.symbol_select(symbol, True):
    print(f"Le symbole {symbol} n'est pas disponible.")
    mt5.shutdown()
    quit()

# Recupérer les données historiques
rates = mt5.copy_rates_range(symbol, mt5.TIMEFRAME_D1, start_date, end_date)
if rates is None:
    print("Erro durante a recuperação de dados:", mt5.last_error())
    mt5.shutdown()
    quit()

# Converta os dados em um DataFrame pandas
data = pd.DataFrame(rates)
data['time'] = pd.to_datetime(data['time'], unit='s')  # Converter os registros de data e hora em datetime

# Exibir as primeiras linhas dos dados
print(data.head())

# Visualize os dados em forma de gráfico
plt.figure(figsize=(10, 6))
plt.plot(data['time'], data['close'], label=f "Prix de clôture {symbol}", color="blue")
plt.title(f"Prix de l'or ({symbol}) du {start_date.date()} au {end_date.date()}")
plt.xlabel("Date")
plt.ylabel("Prix")
plt.legend()
plt.grid()
plt.show()

# Conexão com o MetaTrader 5
mt5.shutdown()



Espero que ajude

Gustavo Hennemann
Gustavo Hennemann | 13 jan. 2025 em 06:15
Omar Saghir #:

Obrigado,

apenas encontrei um erro no terceiro aplicativo

import plotly.express as px não pôde ser resolvido

from plotly.offline import plot não pôde ser resolvido

Resolvi isso reinstalando: pandas e matplotlib

c:\pip install MetaTrader5 pandas matplotlib

...


Também é possível instalar a biblioteca Plotly:

pip install plotly

Mais informações:

https://plotly.com/python/getting-started/

Alexey Volchanskiy
Alexey Volchanskiy | 22 fev. 2025 em 09:37
Obrigado ao autor, bom exemplo. Seria interessante ler um artigo sobre o uso de ferramentas de aprendizado de máquina, como scikit-learn, TensorFlow e Keras, por meio de MQL5+Python.
Reconhecimento de Padrões Usando Dynamic Time Warping em MQL5 Reconhecimento de Padrões Usando Dynamic Time Warping em MQL5
Neste artigo, discutimos o conceito de dynamic time warping como uma forma de identificar padrões preditivos em séries temporais financeiras. Veremos como ele funciona e também apresentaremos sua implementação em MQL5 puro.
Construindo um Modelo de Restrição de Tendência com Candlestick (Parte 8): Desenvolvimento de Expert Advisor (I) Construindo um Modelo de Restrição de Tendência com Candlestick (Parte 8): Desenvolvimento de Expert Advisor (I)
Nesta discussão, vamos criar nosso primeiro Expert Advisor em MQL5 com base no indicador que fizemos no artigo anterior. Vamos cobrir todas as funcionalidades necessárias para tornar o processo automático, incluindo o gerenciamento de riscos. Isso beneficiará extensivamente os usuários ao avançarem da execução manual de negociações para sistemas automatizados.
Ciência de dados e aprendizado de máquina (Parte 29): Como selecionar os melhores dados de Forex para treinar IA Ciência de dados e aprendizado de máquina (Parte 29): Como selecionar os melhores dados de Forex para treinar IA
Neste artigo, analisamos em detalhes os aspectos importantes para a escolha dos dados mais relevantes e de qualidade do mercado Forex e para melhorar o desempenho dos modelos de inteligência artificial.
Implementação do EA Deus: Negociação automatizada com RSI e médias móveis em MQL5 Implementação do EA Deus: Negociação automatizada com RSI e médias móveis em MQL5
O artigo descreve as etapas para a implementação do EA Deus baseado nos indicadores RSI e média móvel para gerenciar a negociação automatizada.