Ordem a mercado com sl e tp definidos (mt5 + python)

 

Pessoal, boa tarde,

Estou testando a integração do MT5 com o python, e me surgiu a dúvida de como colocar um stop-loss (sl) e take profit (tp) atrelados ao preço de compra de uma ordem a mercado.

Por exemplo, fazer algo do tipo:


request = {
            "action": mt5.TRADE_ACTION_DEAL,
            "symbol": XPTO3,
            "sl": preco_de_compra - stoploss,
            "tp": preco_de_compra + takeprofit,
            "volume": lote,
            "type": type_trade,
            "magic": 123,
            "comment": "python script order",
            "type_time": mt5.ORDER_TIME_DAY,
            "type_filling": mt5.ORDER_FILLING_RETURN,
            }


Mas a questão é: como especificar esse preço de negociação como sendo o preço que negociei na compra/venda a  mercado?

(eu pensei em enviar uma ordem a mercado e depois modificar o sl e tp com base no preço de negociação, mas espero uma solução mais simples....)


obrigado

 
Renato Critelli:



Renato,

nas operações a mercado o preço final da transação você não sabe, pois será o ASK/BID a partir do momento que ordem começar a ser executada na B3. 

No MT5 você emite a ordem com preço 0(zero), mas para calc. do SL/TP convém usar o ASK/BID.  Quando a ordem for totalmente executada na B3, você vai saber o preço médio da operação,  aí então você ajusta o SL/TP para este preço.

Conclusão. Para ordem a mercado, não tem a tal solução mais simples como você deseja.  

 
Rogerio Giannetti Torres #:

 


Muito obrigado pela resposta, Rogerio!

 
entra a mercado sem sl tp, e o loss e tp adiciona como ordem oco limite, assim na hora de adicionar a ordem oco vc faz um request do numero do bilhete, ooouuu tambem mais facil poderia fazer uma função que delete todas as ordens oco, assim vc calcula seu novo setup e adiciona nova ordem oco. tenho uma função basiquinha que utilizo para deletar todas ordens oco do grafico.
Razão: