Discussão do artigo "Como criar qualquer tipo de Trailing Stop e anexá-lo ao EA"

 

Novo artigo Como criar qualquer tipo de Trailing Stop e anexá-lo ao EA foi publicado:

Neste artigo, vamos analisar classes para a criação conveniente de diferentes tipos de trailing stops. Vamos aprender a anexar o trailing stop a qualquer EA.

Dando continuidade ao tema do trailing stop, iniciado no artigo anterior, hoje vamos analisar classes de trailing para facilitar a criação de vários algoritmos de trailing do StopLoss de posições. Com base nas classes criadas, será possível desenvolver qualquer algoritmo de ajuste de stops: por deslocamento do stop em relação ao preço atual, por indicadores, por níveis de StopLoss especificados, etc. Após a leitura do artigo, poderemos criar e anexar a qualquer EA qualquer algoritmo de ajuste de stops das posições. Além disso, a conexão e o uso do trailing serão fáceis e claros.

Vamos rever brevemente o algoritmo de funcionamento de um trailing stop. Vamos estabelecer que, para cada trailing, podem ser usadas três condições de operação:

  • início do trailing — número de pontos de lucro da posição, ao atingir o qual o trailing stop é ativado;
  • passo do trailing — número de pontos que o preço deve percorrer na direção do lucro da posição para o próximo ajuste do StopLoss da posição;
  • distância do trailing — distância em relação ao preço atual na qual o StopLoss é mantido.

Esses três parâmetros podem ser aplicados a qualquer trailing. Qualquer um desses parâmetros pode estar presente nas configurações do trailing ou ausente, se não for necessário ou substituído por algum valor no algoritmo de trailing. Um exemplo de substituição do parâmetro "distância do trailing" pode ser o valor do indicador, onde o stop-loss da posição é definido. Nesse caso, se esse parâmetro for ativado, o stop será definido não no preço indicado pelo indicador, mas com um desvio do preço indicado no valor da distância em pontos.

Autor: Artyom Trishkin

 
Artigo muito informativo - estou lendo-o. Usarei o material dele em meus robôs
Do último artigo - obrigado
Essas funções destinam-se à criação rápida de médias móveis para usar seus dados em vez dos dados do SAR parabólico ao fazer sua própria pesquisa para criar diferentes tipos de trailing - também tomei nota disso.
 
Roman Shiredchenko #:
Ao fazer sua própria pesquisa para criar diferentes tipos de trailing

Os fractais e o Ishimoku também são boas opções.

 
Adorei! Vou usá-lo em todos os meus bots pessoais.
 

Artem, seu trailing PSAR não está funcionando corretamente. Não posso explicar isso em palavras, mas observe atentamente cada fechamento. Ele fecha na hora errada e não fecha na hora certa. Pode fechar comprado em um PSAR descendente, mas só deveria fechar em um PSAR ascendente. Pode pular várias trocas de PSAR, embora tenha havido condições de fechamento durante elas.

Há muita simplificação no código - ele apenas pega o valor do PSAR e o usa como SL. Acho que isso deve funcionar para os movimentos.

Dê uma olhada em como eu controlo a condição de fechamento:

        if (tick.ask > PSAR_BufClose[0] && PSAR_BufClose[1] < PSAR_BufClose[0]) {
                buy = PSAR_CloseWeight;
                return;
        }
        if (tick.bid < PSAR_BufClose[0] && PSAR_BufClose[1] > PSAR_BufClose[0]) {
                sell = PSAR_CloseWeight;
                return;
        }
        if (tick.bid < PSAR_BufClose[0] && tick.ask > PSAR_BufClose[1] && PSAR_BufClose[1] < PSAR_BufClose[0]) {
                buy = PSAR_CloseWeight;
                return;
        }
        if (tick.bid < PSAR_BufClose[1] && tick.ask > PSAR_BufClose[0] && PSAR_BufClose[1] > PSAR_BufClose[0]) {
                sell = PSAR_CloseWeight;
                return;
        }

Aqui o PSAR é usado para emitir um sinal em vez de definir um SL móvel, mas a essência é a mesma.

 
Olá a todos, tudo muito interessante, mas não consigo concluir todas as etapas, estou preso na parte do segundo construtor que deve ser paramétrico. Não consigo continuar. Tentei fazer o download dos arquivos anexados, mas ele encontra tantos erros que não consigo corrigi-los. Alguém pode me ajudar? Obrigado pela ajuda
 
Mas, como de costume, qualquer coisa que use Position...() é totalmente inadequada para compensação ao executar mais de um robô em um símbolo ou ao negociar manualmente em paralelo com um robô.
 
JRandomTrader #:
símbolo

Obrigado - também darei uma olhada no FINAM MT 5

 
JRandomTrader negocia manualmente em paralelo com o robô.

Para fazer isso, você precisa manter posições virtuais no robô. E definir paradas com ordens pendentes.

 
Ivan Titov #:

Para isso, é necessário manter posições virtuais no robô. E definir stops com ordens pendentes.

Eu sei disso, tenho posições virtuais e stops.

Mas a maior parte do código forex postado aqui não é adequada para esse tipo de trabalho (em particular, no MOEX).

 
Ainda bem que não somos um deles.