Fechar operação no TP - página 2

 
Rogerio Giannetti Torres:

Bom dia,

quem já sofreu uma chamada de margem, sabe o quanto dói! Eu tenho um robô monitor rodando em casa, cuja a única função é fechar todas posições e cancelar todas ordens pendentes as 17:35hr a partir de uma lista de ativos digitados como parâmetro. Os robôs que rodam no AWS fazem o mesmo procedimento as 17:30 hs.  Você confia no VPS até  que numa manhã do dia seguinte a corretora te liga cobrando margem e você tem que se virar para depositar o dinheiro ou executar as garantias.

Incrementar esse programa monitor para excluir as sobras de ordens LIMIT que ficaram na pedra e encerrar a posições com os saldos seria uma alternativa para os "StopLoss furado" !


Hoje eu uso o AWS o fato que relatei foi em outro provedor.

PS: Pneu step só é um, portanto furar dois pneus ao mesmo tempo, o que não é impossível, vai te deixar na mão. Mas vai ser muito azarado assim na Cochinchina!

 
cat0l0n:

Eu também estava pensando num EA nessas características, usando ordens LIMIT ao invés dos TP ou SL automáticos. Isso daria certo se for negociar lote mínimo, no caso do mini-contratos seria 1, e nos contratos cheios seria 5. Mas me deparei com o problema de ter execução parcial de ordens no caso de negociar mais contratos. Tipo, executa parcialmente uma ordem de saída com lucro e depois o mercado vira e vai em direção ao stop-loss. A gestão de ordens ficaria mais complicada... Não sei se vc conseguiu alguma solução para isso...

Como expliquei em outra resposta acima, no caso do SL eu não uso ordem LIMIT, uso o SL automático mesmo com saída a mercado, pois prefiro perder o spread tendo a certeza de que zerei a posição do que tentar economizar o spread correndo o risco de o preço furar o nível de proteção e correr forte na direção desfavorável, gerando prejuízos além dos meus limites de gerenciamento de risco.

Mas no caso do TP eu penduro a ordem LIMIT e mantenho ela lá até ela ser totalmente executada. Se houver uma execução parcial da ordem LIMIT e em seguida descer pro stop-loss, é um risco que faz parte do jogo. Como eu geralmente uso limites assimétricos (take-profit mais longe do preço de entrada que o stop-loss), se metade do volume foc consumida no TP e metade no SL eu ainda saio com um pequeno lucro.

Ultimamente tenho testado algoritmos que movimentam o SL e o TP conforme o fluxo comprador/vendedor, tentando "dançar conforme o fluxo". Quando o fluxo muda para a direção contrária à posição, o robô já zera logo a posição, sem esperar chegar no stop-loss. Muitas vezes ele acaba zerando prematuramente uma posição que chegaria no take-profit, mas muitas outras vezes essa estratégia diminui substancialmente o prejuízo dos trades perdedores. Ainda estou em fase de estudo para ver se esse tipo de estratégia vale a pena, em comparação com manter o SL e o TP fixos durante todo o trade.  

 
Rogerio Giannetti Torres:

Isso é uma coisa que realmente me apavora. 

Ainda não atingi o nível de maturidade suficiente pra deixar o robô operar dinheiro de verdade desacompanhado em conta real.   

 
Boa noite a todos,
Considero essa thread como uma das melhores do fórum, pela evolução do conteúdo, relevância para o desenvolvimento de robôs realmente competitivos e pela qualidade das análises de vários colegas por aqui.
Meus dois centavos nessa discussão, talvez por ter começado no MT no mercado Forex, e com muito mais riscos, é que prefiro uma abordagem onde SL/TP são utilizados apenas como proteção, e não como alvo real.
Em termos práticos, quanto à discussão de TP,  prefiro que ele não seja programado ou utilizado de fato como alvo operacional.
Na minha opinião isso impacta na visibilidade de toda arquitetura sobre a estratégia operacional executada pelo robô, e não apenas na segurança ponto a ponto. Para volumes maiores isso me parece tão relevante quanto as estratégias de distribuir as operações no tempo.
Para isso, entretanto, é necessário ter um bom ambiente operacional, com baixa latência, o que no caso do MT5 significa estar próximo ao servidor da corretora, e boa capacidade de processamento, para decisão de fechamento de posições por análise em tempo real.
Seja como for, respeito todas abordagens apresentadas aqui, principalmente as que estão funcionando bem com volume relevante em conta real, o que, no final das contas, é o principal objetivo de qualquer trading system.
Sds.,
Rogério Figurelli
 

Olá, estou tendo prolemas com o tp e o sl da minha plataforma MT4 o preço chega na programação mas nao fecha automaticamente, estou tendo que fechar as ordens manualmente, sabe por que isso acontece ? obrigado pela atenção !

 
LuizHRocha:

Olá, estou tendo prolemas com o tp e o sl da minha plataforma MT4 o preço chega na programação mas nao fecha automaticamente, estou tendo que fechar as ordens manualmente, sabe por que isso acontece ? obrigado pela atenção !

Olá Luiz,

coloque no gráfico o ASK e o BID, ou abra o DOM para você enxergar os spreads dos instrumentos. O  TP/SL será executado quando Last=TP ou SL  e  Last >= Ask ou Last <=Bid

 
LuizHRocha:

Olá, estou tendo prolemas com o tp e o sl da minha plataforma MT4 o preço chega na programação mas nao fecha automaticamente, estou tendo que fechar as ordens manualmente, sabe por que isso acontece ? obrigado pela atenção !

@LuizHRocha,


Certamente é problema em seu código. Sugiro que poste trecho do mesmo para que haja condições de análise e apoio adequado.

[ ]´s

 
Rogerio Giannetti Torres:

Bom dia,

quem já sofreu uma chamada de margem, sabe o quanto dói! Eu tenho um robô monitor rodando em casa, cuja a única função é fechar todas posições e cancelar todas ordens pendentes as 17:35hr a partir de uma lista de ativos digitados como parâmetro. Os robôs que rodam no AWS fazem o mesmo procedimento as 17:30 hs.  Você confia no VPS até  que numa manhã do dia seguinte a corretora te liga cobrando margem!

Incrementar esse programa monitor para excluir as sobras de ordens LIMIT que ficaram na pedra aplicando alguma regra de risco é muito fácil.  

Hoje eu uso o AWS o fato que relatei foi em outro provedor.

PS: Pneu step só é um, portanto furar dois pneus ao mesmo tempo, o que não é impossível, vai te deixar na mão. Mas vai ser muito azarado assim na Cochinchina!

Boa tarde pessoal,

Gostei de sua abordagem. O ditado que aprendemos quanto a failover se aplica né: "Quem dois tem um, e quem tem um não tem nenhum."

Como estou começando há 3 dias no desenvolvimento de EA's, gostaria de saber se você consegue rodar várias instâncias do MT5 em uma mesma máquina logados na mesma conta, ou devem ser em máquinas diferentes?


Meu plano é fazer idêntico à você. Deixa o EA de operação na nuvem( Google Cloud ou AWS ) e um EA para monitorar e encerrar as posições em outra máquina.

 
Vinicius Lehmann:

Boa tarde pessoal,

Gostei de sua abordagem. O ditado que aprendemos quanto a failover se aplica né: "Quem dois tem um, e quem tem um não tem nenhum."

Como estou começando há 3 dias no desenvolvimento de EA's, gostaria de saber se você consegue rodar várias instâncias do MT5 em uma mesma máquina logados na mesma conta, ou devem ser em máquinas diferentes?


Meu plano é fazer idêntico à você. Deixa o EA de operação na nuvem( Google Cloud ou AWS ) e um EA para monitorar e encerrar as posições em outra máquina.

Olá Vinicius, estava viajando e não abri o MQL5 esses dias, por isso não lhe respondi.

Primeiro uma observação, os comentários que vou traçar estão relacionado a B3 mode netting e o MT5 instalado no Windows.

1) A instância do mt5 é formada com o nome da pasta e outro conjunto de valores que desconheço.  O nome da pasta você defini ao iniciar a instalação do MT5 clicando em configuração.

2) O que limita a quantidade de instâncias em uma máquina é somatório da quantidade máxima de memória que cada instância vai usar. Eu rodo duas instâncias no AWS uma opera os mini contratos e a outra opera ativos do mercado a vista.

3) Chamar de programa monitor é um exagero, pois ele monitora somente o resultado das operações em andamento de mini-contratos e emiti notificação para o celular segundo alguns critérios.  Faltando 31 min para fechar o mercado a vista ele lê um .txt com códigos de ativos cuja as operações devem ser encerradas e faltando 31 min para fechar mercado futuro de mini-contratos ele fecha todas as operações e ordens em curso.

4) O EA  que roda na nuvem não abre operações após 45 min antes de fechar cada mercado e executa o mesmo procedimento de fechamento de operações e ordens, 30 min antes de cada mercado encerrar.

5) Vez por outra , pelo menos uma vez no mês, nos Domingos eu reinicio o windows do AWS e consequentemente reinicio as duas instâncias MT5.

 
Rogerio Giannetti Torres:

Olá Vinicius, estava viajando e não abri o MQL5 esses dias, por isso não lhe respondi.

Primeiro uma observação, os comentários que vou traçar estão relacionado a B3 mode netting e o MT5 instalado no Windows.

1) A instância do mt5 é formada com o nome da pasta e outro conjunto de valores que desconheço.  O nome da pasta você defini ao iniciar a instalação do MT5 clicando em configuração.

2) O que limita a quantidade de instâncias em uma máquina é somatório da quantidade máxima de memória que cada instância vai usar. Eu rodo duas instâncias no AWS uma opera os mini contratos e a outra opera ativos do mercado a vista.

3) Chamar de programa monitor é um exagero, pois ele monitora somente o resultado das operações em andamento de mini-contratos e emiti notificação para o celular segundo alguns critérios.  Faltando 31 min para fechar o mercado a vista ele lê um .txt com códigos de ativos cuja as operações devem ser encerradas e faltando 31 min para fechar mercado futuro de mini-contratos ele fecha todas as operações e ordens em curso.

4) O EA  que roda na nuvem não abre operações após 45 min antes de fechar cada mercado e executa o mesmo procedimento de fechamento de operações e ordens, 30 min antes de cada mercado encerrar.

5) Vez por outra , pelo menos uma vez no mês, nos Domingos eu reinicio o windows do AWS e consequentemente reinicio as duas instâncias MT5.

Parece-me uma ótima estratégia para garantir robustez e segurança. Obrigado por compartilhar! 

Razão: