Envio de ordem - Python

 

Estou montando um algoritmo para fazer long short automaticamente via Python. Já criei o sistema para capturar os dados em tempo real de duas ações diferentes e estimar uma razão entre elas. A ideia é usar um condicional para que sempre que atingir determinado valor de razão, seja feita a venda de uma empresa e a compra de outra automaticamente.

Vi o tópico "https://www.mql5.com/pt/docs/python_metatrader5/mt5ordersend_py" e fiquei na dúvida sobre os campos.

1 - Sobre Stop Loss e e Stop Gain, preciso colocar? Quero que seja comprado a mercado.

2 - Deviation é necessário preencher para a minha aplicação?

3 - O magic eu uso um número aleatório?

4 - Deve criar dois requests? Um para compra e outro para venda?

5 - Preciso enviar ordem de fechamento? Quero manter a substituição.

6 - Como posso fazer para que seja feita a inversão para comprar e vender voltando para condição inicial? Uso novos requests para envio de ordem ou o fechamento serve para isso?

Documentação sobre MQL5: MetaTrader para Python / order_send
Documentação sobre MQL5: MetaTrader para Python / order_send
  • www.mql5.com
order_send - MetaTrader para Python - Referência MQL5 - Referência sobre algorítimo/automatização de negociação na linguagem para MetaTrader 5
 
tiagottf:

Estou montando um algoritmo para fazer long short automaticamente via Python. Já criei o sistema para capturar os dados em tempo real de duas ações diferentes e estimar uma razão entre elas. A ideia é usar um condicional para que sempre que atingir determinado valor de razão, seja feita a venda de uma empresa e a compra de outra automaticamente.

Vi o tópico "https://www.mql5.com/pt/docs/python_metatrader5/mt5ordersend_py" e fiquei na dúvida sobre os campos.

1 - Sobre Stop Loss e e Stop Gain, preciso colocar? Quero que seja comprado a mercado.

2 - Deviation é necessário preencher para a minha aplicação?

3 - O magic eu uso um número aleatório?

4 - Deve criar dois requests? Um para compra e outro para venda?

5 - Preciso enviar ordem de fechamento? Quero manter a substituição.

6 - Como posso fazer para que seja feita a inversão para comprar e vender voltando para condição inicial? Uso novos requests para envio de ordem ou o fechamento serve para isso?

Eu olharia como a ctrade faz no mql, mas muitos dados dependem do que tu diz no action. Por isso se zera a estrutura primeiro.

1 - não.
2 - pra bolsa não se aplica, no forex sim.
3 - não é obrigatório, mas é livre escolha.
4 - sim, são duas requisições diferentes.
5 - não entendi o que seria a substituição.
6 - se vai fechar precisa mandar duas ordens novas.
 

Desde já eu agradeço a ajuda.

Sobre o item 5, considerando por exemplo que tenho ITSA3. Digamos que eu quero vender X ações de ITSA3 para comprar X ações de ITSA4 de acordo com um sinal do indicador. Para automaticamente eu vender X ações de ITSA4 para comprar X ações de ITSA3 eu preciso usar como um novo sistema de requests ou a função de fechamento serve para isso?

"Eu olharia como a ctrade faz no mql, mas muitos dados dependem do que tu diz no action. Por isso se zera a estrutura primeiro."

Não entendi bem o que quer dizer com isso. Se puder falar um pouco mais, ajudaria muito.

 
tiagottf #:

Desde já eu agradeço a ajuda.

Sobre o item 5, considerando por exemplo que tenho ITSA3. Digamos que eu quero vender X ações de ITSA3 para comprar X ações de ITSA4 de acordo com um sinal do indicador. Para automaticamente eu vender X ações de ITSA4 para comprar X ações de ITSA3 eu preciso usar como um novo sistema de requests ou a função de fechamento serve para isso?

"Eu olharia como a ctrade faz no mql, mas muitos dados dependem do que tu diz no action. Por isso se zera a estrutura primeiro."

Não entendi bem o que quer dizer com isso. Se puder falar um pouco mais, ajudaria muito.

A parte de zerar acho que no python nao eh problema, a parte da CTrade é uma classe que tem no mql5 (Include/Trade/Trade.mqh) pra simplificar o processo de preencher essas estruturas. Como a forma de preencher não deve ter mudado, se tu copiar o comportamento de preencher que tem ali deve dar tudo certo.

Não sei que função de fechamento se refere já que pra mim tudo se resume a order_send, mesmo o fechamento é só uma ordem com o tipo de ordem inversa e o id da posição informada. Isso seria necessario se for conta hedge, se não sem informar já encerra também.

Toda alteração de ordem ou posição vai fazer tu ter que fazer novo request seja pra vender ou comprar ou encerrar ou modificar stops.

Razão: