Resposta

Como fazer uma condição atrasar por um período de tempo em uma estratégia

2 respostas

Hans Hwang

Assinante, bbp_participante, 2 respostas.

Perfil da visita

3 anos atrás #259239

Olá. Descobri o AlgoWizard hoje e fiquei muito empolgado com o fato de ele ser realmente uma boa ferramenta.

Li o documento de ajuda e tentei alguns EA.

Quero criar um EA com uma ou duas condições de atraso, o que significa que, quando essas condições forem acionadas, a condição será definida como verdadeira por um período de tempo, independentemente de a condição original ter se tornado falsa。

Aqui está um exemplo simples:

Quando houver divergência no MACD nas últimas 60 barras, quando o MACD cruzar a linha 0, abra a compra. (ele mostra divergência no passado, mas talvez não no passado recente).

Vi que podemos usar if...then para definir variáveis. Talvez eu possa definir uma variável quando houver divergência MACD e deixá-la durar 60 barras?

E a divergência MACD é outro recurso, que vi como exemplo no documento do usuário, mas ainda não o visualizei.

Qualquer resposta será bem-vinda, pois continuarei tentando e fornecerei mais informações.

obrigado

 

0

tomas262

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

3 anos atrás #259278

Hi,

Se quiser combinar dois sinais que não precisam aparecer ao mesmo tempo, mas com um atraso entre eles, você poderá fazer isso facilmente usando variáveis (chame-as de variáveis de estado) para dividir a lógica em duas etapas:

1) verificar a divergência MACD ... quando ocorrer uma divergência MACD de compra, você define uma variável (crie uma nova variável chamada 'divergencyState (int)) como +1

2) criar uma segunda condição que verifique uma situação em que o MACD cruze acima de 0 E divergencyState = 1 .... Agora você pode acionar uma entrada de compra e definir divergencyState novamente como 0 para a próxima situação

Dessa forma, pode haver um atraso de várias barras entre esses dois sinais, portanto, após uma divergência, a estratégia "espera" até que o MACD cruze acima da linha 0

Se quiser limitar o número de barras entre os sinais, você também precisará "contar barras" depois que divergencyState for definido como 1 e verificar "max bars to detect MACD cross above 0".

Se precisar de ajuda com isso, entre em contato comigo

0

Hans Hwang

Assinante, bbp_participante, 2 respostas.

Perfil da visita

3 anos atrás #259306

Obrigado por sua resposta.

Tenho uma dúvida sobre a "contagem de barras", como posso fazer isso?

E sobre a divergência do macd, descobri que o exemplo não pode ser clicado, o que é https://algowizard.io/examples/

Como posso verificar a divergência?

obrigado

0

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