por
Joabe Barbosa
02 de janeiro de 2025
2 min
A MetaTrader 5 (MT5) é uma das plataformas mais populares para negociação em mercados financeiros, como Forex, Ações e Futuros. Embora a linguagem MQL5 seja a principal usada na plataforma, o MetaTrader 5 oferece suporte para integrações com Python, permitindo que traders automatizem suas operações usando essa linguagem amplamente adotada.
Neste artigo, vamos explorar como enviar ordens para a bolsa através da plataforma MetaTrader 5 usando Python.
LEIA MAIS: Como Programar Robôs no MetaTrader 5
pip install MetaTrader5
Para enviar ordens, precisamos primeiro nos conectar ao terminal MetaTrader 5. Veja como:
import MetaTrader5 as mt5
# Inicialização do terminal MT5
if not mt5.initialize():
print("Falha ao inicializar o MetaTrader 5")
print(mt5.last_error())
quit()
print("MetaTrader 5 inicializado com sucesso")
# Conecte-se à conta
account_number = 12345678 # Substitua pelo seu número de conta
password = "sua_senha" # Substitua pela sua senha
server = "seu_servidor" # Substitua pelo servidor fornecido pelo broker
if not mt5.login(account_number, password, server):
print("Erro ao conectar-se à conta:", mt5.last_error())
quit()
print("Conexão bem-sucedida com a conta")
Antes de enviar uma ordem, é importante verificar se o símbolo que você deseja negociar está disponível:
symbol = “EURUSD” # Substitua pelo símbolo desejado
if not mt5.symbol_select(symbol, True):
print(f”Erro ao selecionar o símbolo {symbol}”)
quit()
print(f”Símbolo {symbol} selecionado com sucesso”)
A função mt5.order_send()
é usada para enviar ordens ao mercado. Abaixo está um exemplo de uma ordem de compra:
# Obtenha as posições abertas
positions = mt5.positions_get(symbol=symbol)
if positions:
for position in positions:
if position.type == mt5.ORDER_TYPE_BUY:
close_request = {
“action”: mt5.TRADE_ACTION_DEAL,
“symbol”: symbol,
“volume”: position.volume,
“type”: mt5.ORDER_TYPE_SELL,
“price”: mt5.symbol_info_tick(symbol).bid,
“deviation”: 20,
“magic”: 123456,
“comment”: “Fechando posição via Python”,
}
close_result = mt5.order_send(close_request)
if close_result.retcode != mt5.TRADE_RETCODE_DONE:
print(f”Erro ao fechar a ordem: {close_result.retcode}”)
else:
print(“Ordem fechada com sucesso”)
else:
print(“Nenhuma posição encontrada para o símbolo”, symbol)
Para fechar uma posição, envie uma ordem oposta (venda, se a posição aberta for de compra):
# Obtenha as posições abertas
positions = mt5.positions_get(symbol=symbol)
if positions:
for position in positions:
if position.type == mt5.ORDER_TYPE_BUY:
close_request = {
"action": mt5.TRADE_ACTION_DEAL,
"symbol": symbol,
"volume": position.volume,
"type": mt5.ORDER_TYPE_SELL,
"price": mt5.symbol_info_tick(symbol).bid,
"deviation": 20,
"magic": 123456,
"comment": "Fechando posição via Python",
}
close_result = mt5.order_send(close_request)
if close_result.retcode != mt5.TRADE_RETCODE_DONE:
print(f"Erro ao fechar a ordem:{close_result.retcode}")
else:
print("Ordem fechada com sucesso")
else:
print("Nenhuma posição encontrada para o símbolo", symbol)
Usar Python para enviar ordens através da plataforma MetaTrader 5 oferece flexibilidade e poder de integração com outras bibliotecas e sistemas. Este guia mostrou como configurar o ambiente, conectar-se ao terminal, selecionar símbolos, enviar ordens e gerenciar posições.
No entanto, lembre-se de sempre testar suas estratégias em uma conta demo antes de operar com dinheiro real. Além disso, estude os riscos envolvidos nos mercados financeiros para garantir uma experiência de trading responsável.
Boa sorte e bons trades!
*Ao clicar em “Inscreva-se” você estará concordando com a Política de Privacidade.
A newsletter com insights do mundo dos investimentos, direto no seu e-mail
*Ao clicar em “Inscreva-se” você estará concordando com a Política de Privacidade.
© 2025 QUANTCODE. Todos os direitos reservados.