Wizard MetaEditor: LongCondition vs. CheckOpenLong

 

Boa tarde...

Estou trabalhando com o Wizard do MetaEditor e tenho uma dúvida sobre as classes de sinais personalizados.

Entendi que tanto o método LongCondition quanto o CheckOpenLong (e seus equivalentes para posições short) podem ser usados para abrir posições longas. No entanto, qual a diferença prática entre eles?

Minhas dúvidas são:

  1. Qual a finalidade de cada método? Em quais cenários um é mais adequado que o outro?
  2. Qual a diferença na lógica de execução entre os dois métodos?
  3. Existem casos específicos em que um método deve ser priorizado em relação ao outro?

Já criei alguns sinais personalizados e sempre utilizei o LongCondition, mas gostaria de entender melhor as nuances entre os dois métodos para otimizar minhas estratégias.

Agradeço desde já!


https://www.mql5.com/pt/docs/standardlibrary/expertclasses/expertbaseclasses/cexpertsignal

Documentação sobre MQL5: Biblioteca Padrão / Módulos de estratégias / Classes Base para Expert Advisors / CExpertSignal
Documentação sobre MQL5: Biblioteca Padrão / Módulos de estratégias / Classes Base para Expert Advisors / CExpertSignal
  • www.mql5.com
CExpertSignal é uma classe base para sinais de negociação que não faz nada (exceto os métodos CheckReverseLong()...
 
Anderson De Assis:

Boa tarde...

Estou trabalhando com o Wizard do MetaEditor e tenho uma dúvida sobre as classes de sinais personalizados.

Entendi que tanto o método LongCondition quanto o CheckOpenLong (e seus equivalentes para posições short) podem ser usados para abrir posições longas. No entanto, qual a diferença prática entre eles?

Minhas dúvidas são:

  1. Qual a finalidade de cada método? Em quais cenários um é mais adequado que o outro?
  2. Qual a diferença na lógica de execução entre os dois métodos?
  3. Existem casos específicos em que um método deve ser priorizado em relação ao outro?

Já criei alguns sinais personalizados e sempre utilizei o LongCondition, mas gostaria de entender melhor as nuances entre os dois métodos para otimizar minhas estratégias.

Agradeço desde já!


https://www.mql5.com/pt/docs/standardlibrary/expertclasses/expertbaseclasses/cexpertsignal

Se olhar na outra classe CExpert, ela tem um processing() que realiza varias verificações das condições (metodos Check* na CExpert) se deve ou não fazer algo a partir da direção que ele obteve. A direção é obtida consultando os sinais que estão cadastrados e o que gosto de pensar "indices de força" que são as funções Long/Short Condition dos sinais. Não sei se deu pra captar a diferença...
 
Ricardo Rodrigues Lucca #:
Se olhar na outra classe CExpert, ela tem um processing() que realiza varias verificações das condições (metodos Check* na CExpert) se deve ou não fazer algo a partir da direção que ele obteve. A direção é obtida consultando os sinais que estão cadastrados e o que gosto de pensar "indices de força" que são as funções Long/Short Condition dos sinais. Não sei se deu pra captar a diferença...

Olá.

Então LongCondition (e Short) é para avaliar a força do sinal, enquanto Check(...) é para abrir uma posição, Check pode ser sobrescrito por um código meu, como uma ordem pendente. Se não for sobrescrito será utilizado o método padrão (base). Estou certo?

 
Anderson De Assis #:

Olá.

Então LongCondition (e Short) é para avaliar a força do sinal, enquanto Check(...) é para abrir uma posição, Check pode ser sobrescrito por um código meu, como uma ordem pendente. Se não for sobrescrito será utilizado o método padrão (base). Estou certo?

sim, qualquer desses metodos podem ser sobreescritos. Long/Short Condition na CSignal (base) porque cada calculo é um calculo pra definir para onde vai o preço. O Check* pode ser sobre-escrito dependendo do caso, vamos dizer que não quer fazer inversão de mão, então voce pode sobreescrever o metodo CheckReverse para sempre retornar false.