Fala pessoal,
Essa função para o envio de ordem assíncrona tem alguma serventia para uma estratégia que não utiliza ordens a mercado? O meu EA utiliza apenas ordens stop para abertura de posição e limit para o fechamento no alvo, e a minha dúvida é se colocar uma operação assíncrona teria alguma vantagem.
Eu estou buscando informações sobre isso porque eu utilizo uma estratégia scalping onde a operação é muito rápida, e estou procurando uma solução para um problema que tive hoje quando o alvo de uma parcial foi atingido, o preço voltou rapidamente para o stop e ele stopou com um volume maior do que realmente eu estava, invertendo a mão.
Aparentemente não deu tempo do meta trader saber exatamente qual era o tamanho do meu lote depois que ele soltou parcialmente com a ordem limite e voltou muito rápido para o meu stop.
João
A async é sempre sobre o envio da ordem, não afeta a execução, ou seja, tu manda ele abrir o limit e sem aguardar a confirmação da corretora, tu segue no código. Isso tem vantagens principalmente pro algoritmo não ficar preso em algumas situações por até 3 minutos. A principal vantagem do async para mim é quando quero deletar uma ordem numa corretora aí se mando um delete com o modo sync porque a corretora me devolve um reject e, aparentemente, não segue o processo habitual do meta o programa ficando parado esperando até um timeout ocorrer.
Sobre esse caso, pra mim metatrader não é HFT e eu trabalho sempre com algoritmo lento entre ordens tem alguns minutos. Por exemplo, se tentei colocar uma compra num ativo especifico. Eu anoto numa variavel global a ordem e o horario que foi enviada que as vezes a corretora demora bastante ate fazer aparecer a ordem com o estado started. Assim, eu faco um timeout pessoal nessa lista e re-envio isso ai diminuiu significativamente eu comprar ou vender duas vezes.
Fala Ricardo, obrigado por responder.
Esses 3 minutos de tempo de resposta realmente são terríveis. Eu tenho redundância para fechar a posição a mercado caso a pontuação passe do stop por exemplo, mas ele fica ineficaz se entra nesse período de 3 minutos de total falta de controle. Vou considerar mudar definitivamente para a ordem assíncrona porque eu acredito inclusive que a operação de fechar a mercado a posição é que travou algumas vezes por esses 3 minutos.
Em relação ao tipo de ordem, não teria nada a mais que eu pudesse fazer para tentar evitar o que ocorreu sobre ele soltar uma parcial e stopar a posição com um volume maior do que realmente estava posicionado?
Você conhece alguma plataforma boa para HFT?
Obrigado.
João
Fala Ricardo, obrigado por responder.
Esses 3 minutos de tempo de resposta realmente são terríveis. Eu tenho redundância para fechar a posição a mercado caso a pontuação passe do stop por exemplo, mas ele fica ineficaz se entra nesse período de 3 minutos de total falta de controle. Vou considerar mudar definitivamente para a ordem assíncrona porque eu acredito inclusive que a operação de fechar a mercado a posição é que travou algumas vezes por esses 3 minutos.
Em relação ao tipo de ordem, não teria nada a mais que eu pudesse fazer para tentar evitar o que ocorreu sobre ele soltar uma parcial e stopar a posição com um volume maior do que realmente estava posicionado?
Você conhece alguma plataforma boa para HFT?
Obrigado.
João
Pode mandar a ordem fazer a execucao como SYMBOL_FILLING_IOC ao inves de SYMBOL_FILLING_RETURN e cuidar para ver o que foi aberto para evitar ter uma posicao maior. Assim, tu grava o que vai mandar em algum lugar e quando vier a informacao da execucao no OnTradeTransaction da execucao tu toma atitude que quiser.
Eu conheco de HFT so umas que tem algoritmos fechados que nao ajuda.
Vlw Ricardo! Vou testar isso.
Obrigado.
Fala Ricardo, pensei em uma questão aqui.
A ordem tipo SYMBOL_FILLING_IOC respeita offset? Por exemplo:
trade.SetTypeFilling(SYMBOL_FILLING_IOC);
trade.SetDeviationInPoints(150);
trade.SetExpertMagicNumber(12345);
trade.SetAsyncMode(true);
Ele vai raspar aceitando até 150 ticks no índice?
Obrigado.
Fala Ricardo, pensei em uma questão aqui.
A ordem tipo SYMBOL_FILLING_IOC respeita offset? Por exemplo:
trade.SetTypeFilling(SYMBOL_FILLING_IOC);
trade.SetDeviationInPoints(150);
trade.SetExpertMagicNumber(12345);
trade.SetAsyncMode(true);
Ele vai raspar aceitando até 150 ticks no índice?
Obrigado.

- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Fala pessoal,
Essa função para o envio de ordem assíncrona tem alguma serventia para uma estratégia que não utiliza ordens a mercado? O meu EA utiliza apenas ordens stop para abertura de posição e limit para o fechamento no alvo, e a minha dúvida é se colocar uma operação assíncrona teria alguma vantagem.
Eu estou buscando informações sobre isso porque eu utilizo uma estratégia scalping onde a operação é muito rápida, e estou procurando uma solução para um problema que tive hoje quando o alvo de uma parcial foi atingido, o preço voltou rapidamente para o stop e ele stopou com um volume maior do que realmente eu estava, invertendo a mão.
Aparentemente não deu tempo do meta trader saber exatamente qual era o tamanho do meu lote depois que ele soltou parcialmente com a ordem limite e voltou muito rápido para o meu stop.
João