MT5 e Python

 

Bom dia a todos!


Eu uso a integração do MT5 com o python.

Já faz alguns meses que tenho utilizado sem problemas a função 'mt5.Buy(symbol,volume)'

Desde uns dias atrás. (O MT5 atualizou recentemente. Talvez seja por isso.) A função não surte efeito.


Python 3.7.7

MT5 5.00, 2470, '29 May 2020'

Segue o código


symbol = 'WINM20'

import MetaTrader5 as mt5


mt5.initialize()

mt5.Buy(symbol ,1)


A função é executada mas não surte efeito o MT5 e nem retorna. Tentei printar o retorno com print(mt5.Buy(symbol ,1)) e ela retorna 'None'

 
Django_Vortz:

Bom dia a todos!


Eu uso a integração do MT5 com o python.

Já faz alguns meses que tenho utilizado sem problemas a função 'mt5.Buy(symbol,volume)'

Desde uns dias atrás. (O MT5 atualizou recentemente. Talvez seja por isso.) A função não surte efeito.


Python 3.7.7

MT5 5.00, 2470, '29 May 2020'

Segue o código


symbol = 'WINM20'

import MetaTrader5 as mt5


mt5.initialize()

mt5.Buy(symbol ,1)


A função é executada mas não surte efeito o MT5 e nem retorna. Tentei printar o retorno com print(mt5.Buy(symbol ,1)) e ela retorna 'None'

Junto a atualização do metatrader foi lançado uma atualização na biblioteca do Python, se não atualizou sugiro fazer.
 
Jonathan Pereira:
Junto a atualização do metatrader foi lançado uma atualização na biblioteca do Python, se não atualizou sugiro fazer.

A minha é a 5.0.33, a versão mais recente.

Você está conseguindo mandar ordens como a do código? mt5.Buy(symbol ,1)

Eu também não tenho resultado com a mt5.order_send(request) -- contudo se eu abro uma operação manualmente eu consigo fechar ela com mt5.Close(symbol).
 

Consegui resolver o problema!

Através da função mt5.last_error()

Ela me retornou 'invalid "volume" arguments' -- Na versão antiga eu conseguia chamar a função de compra com o volume 1 (tipo inteiro). Passei o argumento para floar (1.0) e funcionou.