Resposta

A negociação é aberta quando a regra de saída é verdadeira...

6 respostas

RJL

Cliente, bbp_participant, comunidade, 67 respostas.

Perfil da visita

8 anos atrás #114410

...levando a uma perda imediata!

 

Alguém passou pela mesma situação e tem alguma orientação sobre como evitar isso?

 

Basicamente, as condições de entrada do EA eram verdadeiras e, portanto, ele executou a negociação. No entanto, ao entrar na negociação, a regra de saída também era verdadeira e, portanto, ele a fechou imediatamente - obviamente, com a perda do spread. Entrou e saiu em um segundo, com prejuízo... rs.

 

É algo que não pode ser realmente detectado nos testes, portanto, talvez seja necessário introduzir uma proteção contra falhas na geração do código do EA que também procure garantir que todas as regras de saída também sejam falsas antes de executar uma negociação?

 

Mark/Tomas, alguma ideia?

 

Felizmente, ainda estou testando estratégias em tamanhos de microlotes e é apenas o spread que perco, mas se isso puder ser evitado com algo tão simples como o descrito acima, talvez isso possa ser implementado como uma versão imediata, mas certamente pelo menos para o SQ4.

 

Se tivesse entrado no mercado em um momento de spreads ampliados, poderia ter sido pior, e esse tipo de problema só faz com que nossas estratégias sofram uma hemorragia de dinheiro.

0

tomas262

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

8 anos atrás #133895

É possível fazer o upload dessa estratégia problemática ou nos enviar para [email protected]? O que você descreve não deveria estar acontecendo

0

RJL

Cliente, bbp_participant, comunidade, 67 respostas.

Perfil da visita

8 anos atrás #133900

Oi, Tomás,

 

A estratégia está abaixo.

 

O que estou dizendo é que, quando as condições de entrada são verdadeiras, o EA executa uma negociação...

 

No entanto, ao entrar na negociação, o EA percebe que as ordens de saída também são verdadeiras e, portanto, ele a fecha imediatamente, resultando em uma perda.

 

Não é provável que isso aconteça o tempo todo, mas, certamente, quando um EA é carregado em um determinado ciclo de preços, há uma chance de ele não captar a regra de entrada quando ela ocorre pela primeira vez. Por exemplo, o Close10 Closing Above SMA76 pode ter ocorrido 5 barras atrás, mas como minha posição estava estável quando o EA foi adicionado 5 barras após a primeira ocorrência do sinal, ele ainda teria executado a negociação, mesmo que, até então, a ordem de saída também fosse válida.

 

Esse é apenas um exemplo, mas, por acaso, pode haver outras instâncias em que uma ordem de saída seja verdadeira ao mesmo tempo em que as condições de entrada são verdadeiras, portanto, seria útil uma maneira de o EA reconhecer isso e não entrar em uma negociação. Portanto, como mencionei na OP, talvez seja possível verificar se as ordens de saída são falsas antes de entrar em uma negociação?

 

De qualquer forma, deixe-me saber se isso faz sentido e o que você acha.

 

Obrigado! 🙂

 

 

 

====================================================================
== Condições de entrada
==================================================================== 
LongEntryCondition = ((Close(10) Closes Above SMA(76)) Or (BBWidthRatio(181, 2.0) Crosses Above BarRange(55)))
ShortEntryCondition = ((Close(10) Closes Below SMA(76)) Or (BBWidthRatio(181, 2.0) Crosses Below BarRange(55)))
 
 
====================================================================
== Ordens de entrada
====================================================================
- Entrada longa
se a LongEntryCondition for verdadeira {
   Se nenhuma posição estiver aberta, compre na abertura do mercado;
   Stop Loss = 387 pips;
   Profit Target = (0,79 * ATR(69)) pips;
}
 
- Entrada curta
se a ShortEntryCondition for verdadeira {
   Se nenhuma posição estiver aberta, vender na abertura do mercado;
   Stop Loss = 387 pips;
   Profit Target = (0,79 * ATR(69)) pips;
}
 
====================================================================
== Ordens de saída
====================================================================
- Saída longa
se MarketPosition for Long {
   se (ADX_DIMINUS(21) > MACD(12, 26, 9)) {
      Fechar a posição no mercado;
   }
}
 
- Saída curta
se MarketPosition for Short {
   se (ADX_DIMINUS(21) < MACD(12, 26, 9)) {
      Fechar a posição no mercado;
   }
}

0

RJL

Cliente, bbp_participant, comunidade, 67 respostas.

Perfil da visita

8 anos atrás #133914

Isso é muito importante, pois aconteceu novamente, mas é impossível para mim legislar se e quando isso acontecer. 

 

Acho que uma regra simples de "verificar as ordens de saída" precisa estar em vigor antes de executar uma negociação.

 

Eu me frustrei por ter perdido mais dinheiro em uma operação que não deveria ter sido aberta com base na regra de saída e, quando os spreads são ampliados nesse momento do dia de negociação, isso só piora ainda mais a situação.

 

Por favor, é possível fornecer uma solução para isso o mais rápido possível.

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

8 anos atrás #133944

Eu entendo o problema, mas não há uma solução fácil.

 

Sim, a condição de saída pode ser verificada antes da entrada para uma condição simples como a sua, mas e quanto às regras que funcionam com o número de barras da ordem aberta?

Talvez não seja capaz de capturar todos os casos, porque há alguns, e isso também tornará o backtest mais lento, porque agora as regras de saída são verificadas somente se houver alguma posição aberta.

 

 

Esse problema é relativamente fácil de descobrir - você pode verificar os resultados do backtest e procurar ordens que foram fechadas imediatamente após terem sido abertas.

Além disso, o backtester funciona da mesma forma que a negociação real, portanto, você também terá um custo de spread no backtest.

Na negociação real, há derrapagem, atrasos do corretor, recotações e outros problemas. Não acho que o fechamento ocasional de ordens seja o maior problema que precise de solução imediata.

 

Mas tentaremos aprimorá-lo na nova versão.

Marcar
EstratégiaQuant arquiteto

0

RJL

Cliente, bbp_participant, comunidade, 67 respostas.

Perfil da visita

8 anos atrás #133976

Sim, a condição de saída pode ser verificada antes da entrada para uma condição simples como a sua, mas e quanto às regras que funcionam com o número de barras da ordem aberta?

 

 

Ele simplesmente deve ignorar essa parte da equação ao analisar as ordens de saída.

 

 

Talvez não seja capaz de capturar todos os casos, porque há alguns, e isso também tornará o backtest mais lento, porque agora as regras de saída são verificadas somente se houver alguma posição aberta.

 

 

Ele não precisa necessariamente fazer parte do backtest, apenas ser adicionado à geração do código mt4.

 

 

Na negociação real, há derrapagem, atrasos do corretor, recotações e outros problemas. Não acho que o fechamento ocasional de ordens seja o maior problema que precise de solução imediata.

 

 

Entendo que esse não é o maior dos problemas, mas pode ser um problema, mesmo que ocorra apenas ocasionalmente. Se você estiver negociando alguns minilotes em um momento em que há spreads ampliados, você perde uma boa quantia de dinheiro por absolutamente nada. Outro dia, tive uma negociação aberta e fechada com spread de 20 pips porque era o meio da noite e, obviamente, muitas estratégias diárias podem ser abertas nesse horário, quando os relógios do servidor batem meia-noite.

 

No entanto, como já foi solicitado, se você introduzir um verificador de spread nas regras das estratégias recém-geradas para o SQ4, espera-se que os spreads ampliados não sejam mais um problema.

0

watson7tyler

Assinante, bbp_participante, comunidade, 3 respostas.

Perfil da visita

8 anos atrás #134168

Não há muitas regras rígidas e rápidas nas negociações, mas este artigo lista as 10 regras que você nunca deve quebrar se quiser ser um operador de mercado bem-sucedido.

0

Visualizando 6 respostas - 1 até 6 (de um total de 6)