Método mt5.order_send() não executa, sempre retornando "Nome" usando python - página 2

 

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 ;)





ClaudioRocha:

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!