Auto-aprendizagem da linguagem MQL5 a partir do zero - página 56

 
Valeriy Yastremskiy:

De modo geral, há duas motivações com efeitos opostos. O SL mais próximo reduz a perda e aumenta a probabilidade de fechar no SL. Se o SL estiver próximo em relação à volatilidade, então é claro que sua opção é melhor, se a um nível normal e puxando o SL não afetará a freqüência de acionamento, então a minha.

Você já entrou no reino da estratégia;) ensine-meprimeiro a definir 1 bu e depois movê-lo

 
VVT:

Você já correu para o reino da estratégia;) me ensine comoprimeiro definir 1 boo e depois movê-lo

Olá! por um lado você está certo - você pode simplesmente parar em um ponto de equilíbrio e escrever um código apenas para isso. Mas, na minha opinião, se você inicialmente não tem idéia de como uma parada de trilha deve funcionar em geral, esta não é a melhor opção. Além disso, quase todos os Expert Advisors são escritos com base em uma estratégia claramente definida. Como dizem em tais casos, "devemos chegar a um acordo sobre a costa".

Sinto que estou "acordando" o programador novamente.

Cumprimentos, Vladimir.

 
Vasiliy Sokolov:

É o meu entendimento. Você tem duas funções de reposicionamento das paradas de trilhamento. A primeira move a stop-loss para o Breakeven, guiada pelo parâmetro "Trailing level", a segunda função puxa a stop-loss mais atrás do preço, guiada pelo parâmetro "Trailing step". Imho, eu chamaria o primeiro parâmetro de "Stop Loss Breakeven Level" - porque não se trata de uma parada de perda móvel, mas sim de uma transferência de parada de perda.

Sim, Vasily, é isso mesmo! Vocês entenderam e formularam corretamente minha idéia de uma parada de trilha. O parâmetro deveria ter tido o mesmo nome desde o início: "Trailing Stop Loss Level to Breakeven". Minha terminologia ainda não é perfeita. Obrigado!

Atenciosamente, Vladimir.

 
MrBrooklin:

Olá! por um lado você está certo - você pode simplesmente parar em um ponto de equilíbrio e escrever um código apenas para isso. Mas, na minha opinião, se você inicialmente não tem idéia de como uma parada de trilha deve funcionar em geral, esta não é a melhor opção. Além disso, quase todos os Expert Advisors são escritos com base em uma estratégia claramente definida. Como dizem em tais casos, "devemos chegar a um acordo sobre a costa".

Sinto que estou "despertando" o programador novamente.

Cumprimentos, Vladimir.

Olá! Se você aprender a mover o Stop Loss passo a passo uma vez, você pode movê-lo 100 vezes mais tarde, se necessário, se você tiver espaço suficiente para isso ;)

O Expert Advisor é ajustado à estratégia, e não o contrário

 
MrBrooklin:

Sim, Vasily, absolutamente certo! Vocês entenderam e formularam corretamente minha idéia de uma parada de trilha. O parâmetro foi originalmente chamado assim: "Trailing Stop Loss Level to Breakeven". Minha terminologia ainda não é perfeita. Obrigado!

Atenciosamente, Vladimir.


Bom dia Vladimir. Vejam este posto. Você pode modificar nas redes de arrasto a partir do nível de lucro e não se preocupar com o nível dedicado de transferência para o breakeven
https://www.mql5.com/ru/forum/352460/page55#comment_18711100
 
Aleksey Masterov:

Boa tarde, Vladimir. Dê uma olhada neste meu posto. Lá nas redes de arrasto você pode modificar a partir do nível de lucro e não se preocupe com o nível de transferência destacado para o breakeven
https://www.mql5.com/ru/forum/352460/page55#comment_18711100

Olá Alexey! Desculpe por não reagir imediatamente ao seu posto. Este link é muito interessante. Procurei em todos os 11 códigos de rastreamento e bibliotecas de funções. Tudo isso é muito interessante, apesar de estar escrito em MQL4. Para ser honesto, eu nunca imaginei que houvesse tantos tipos de paradas de trilha. Muito obrigado por seu apoio!

Atenciosamente, Vladimir.

 

Bom dia a todos e bom humor!

Eu continuo aprendendo a linguagem de programação MQL5. Levando em conta as correções de Vasily Sokolov, o algoritmo de Stop Loss em posições abertas agora

parece ser o seguinte:
  1. Criar um EA para automatizar o trabalho de rastreamento (tracking) do nível de Stop Loss de uma posição aberta.
  2. No Expert Advisor, crie um bloco de parâmetros de entrada com dois parâmetros: "Stop Loss level to Breakeven" e "Trailing Step".
  3. Quando novas citações chegarem, processe-as usando OnTick( ). O rastreamento só pára quando um novo tick aparece no símbolo atual.
  4. Solicitamos dados no momento do recebimento do evento OnTick.
  5. Para cada posição de compra
  6. , determinamos onde o preço atual é relativo ao preço da posição aberta.
  7. Se o preço atual for superior ao preço da posição aberta, verificamos em que nível ele subiu.
  8. Se o preço atual tiver atingido o nível "Stop Loss without loss" especificado nos parâmetros de entrada, movemos o Stop Loss para um nível sem perda igual ao preço de abertura da posiçãoComprar. Caso contrário, não fazemos nada.
  9. Se o preço atual tiver excedido o "Nível de Stop Loss Breakeven" pelo valor igual a "Trailing Stop", o Stop Loss é movido do nível de preço de abertura da posição Comprar pelo valor igual ao "Trailing Stop Level" e assim por diante, até o preço atingir o nível de Take Profit especificado para esta posição
  10. .
  11. Se o preço gira e atinge o nível deStop Loss, a posição é fechada
. [Versão simplificada da descrição da parada de rastreamento de Vasily Sokolov:
  1. O processamento da parada de rastreamento ocorre no novo recebimento de tick, na função OnTick
.
    O
  1. Trailing Stop consiste de duas partes consecutivas:
  2. Parte 1
  3. .
  4. Para cada posição em aberto
  5. , o preço é calculado e, assim que é alcançado, seu stop-loss é movido para o Breakeven.
  6. Parte 2. Após o stop loss ter sido movido para o breakeven, o algoritmo de stop pull-up é ativado para a posição ativa, seguindo o preço.

Você deve então seguir o padrão:

Parte 1. Breakeven:
  • Para comprar;
  • para vender;
Parte 2. Pulling Stop:
  • Para comprar;
  • Para vender;

Esta variante do algoritmo do Trailing Stop Loss da posição aberta é definitiva

, e continuo escrevendo o código do programa seguindo-o.

Cumprimentos, Vladimir.

 
VVT:

Olá! Se você aprender a mover a parada de perda passo a passo uma vez, então você pode movê-la 100 vezes, se necessário, desde que haja espaço para isso ;)

O Expert Advisor é ajustado à estratégia, e não o contrário

Olá! Já mencionei em meu posto mais cedo que você está certo em seu julgamento. O problema é que, com a ajuda de Vasily Sokolov, eu formei relativamente rápido um algoritmo para o Stop Loss em uma posição aberta, por isso vou segui-lo.

Cumprimentos, Vladimir.

 
Você tem uma abordagem inteligente para escrever o Perito. E você não vai precisar de um mercado.
 

Eu continuo aprendendo a linguagem de programação MQL5. Anteriormente publiquei o código do laço que inicia a enumeração das posições em aberto. Agora, depois que o loop foi iniciado, começamos a trabalhar com o símbolo no gráfico atual:

     {
     /* Для работы с символом создадим переменную _Symbol, в которой будем хранить имя символа текущего графика.
        Делаем запрос на сервер. Сервер возвращает нам символ соответствующей открытой позиции и автоматически
        выбирает позицию для дальнейшей работы с ней при помощи функций PositionGetDouble, PositionGetInteger,
        PositionGetString. Если получим от сервера ответ о том, что для текущего символа была выбрана позиция для 
        дальнейшей работы с ней, то в торговом терминале выводим соответствующее сообщение во вкладке "Эксперт".*/
      if(_Symbol==PositionGetSymbol(i))
         Print("Выбираем позицию для дальнейшей работы с ней"); //
     }

Publicarei periodicamente o código escrito com meus próprios comentários para fornecer um feedback imediato. Peço aos participantes deste tópico que me corrijam, se houver alguma imprecisão em meu código ou comentários.

Cumprimentos, Vladimir.

Razão: