Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Também tive o mesmo problema.
A solução é muito simples.
Aparentemente o seu problema está na definição do volume.
Tente usar "volume": 100.0, ao invés de "volume": 100,
Atente para o " . " decimal. Simples assim ;)
Estou tentando enviar ordens ( buy, sell e modify ), mas meu objeto que executa a rotina sempre retorna "None", segue o exemplo do código:
import MetaTrader5 as mt5
def SendBuyLimit(path, login, server):
if not mt5.initialize(path,login=login, server=server, timeout=10000, profile="Default"):
print("initialize() failed, error code =",mt5.last_error())
else:
request = {
"action": mt5.TRADE_ACTION_PENDING,
"symbol": "VALE3",
"volume": 100,
"price": 41.02,
"comment": "Teste",
"type": mt5.ORDER_TYPE_BUY_LIMIT,
"type_time": mt5.ORDER_TIME_DAY,
"type_filling": mt5.ORDER_FILLING_RETURN,
"expiration": mt5.ORDER_TIME_DAY,
}
result = mt5.order_send(request)
print(result)
print(result.retcode)
mt5.shutdown()
****************************
teste.py
None ( resultado do print(result) )
Traceback (most recent call last):
File "C:\Users\Usuário\projetos\metatrader5\teste.py", line 38, in <module>
main()
File "C:\Users\Usuário\projetos\metatrader5\teste.py", line 31, in main
SendBuyLimit(mtPath, 232015, "ModalMais-MetaTrader 5")
File "C:\Users\Usuário\projetos\metatrader5\teste.py", line 25, in SendBuyLimit
print(result.retcode)
AttributeError: 'NoneType' object has no attribute 'retcode'
*****************************
Versão: python
Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:16:59) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
*****************************
Tenho outras rotinas que funcionam normalmente, mas todas fazendo get de informações da conta, todas as rotinas que usam ( MqlTradeResult e MqlTradeRequest ), simplesmente retornam "None" .
Alguém passou por isso? ( desde já agradeço a colaboração )
Pessoal, acho que consegui resolver esse problema.
No campo "volume" coloque um valor do tipo "float".
Por exemplo, no caso de volume 100, coloque como 100.0
No meu caso deu certo!