Auto-aprendizagem da linguagem MQL5 a partir do zero - página 56
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
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
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.
É 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.
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
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.
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:- Criar um EA para automatizar o trabalho de rastreamento (tracking) do nível de Stop Loss de uma posição aberta.
- No Expert Advisor, crie um bloco de parâmetros de entrada com dois parâmetros: "Stop Loss level to Breakeven" e "Trailing Step".
- Quando novas citações chegarem, processe-as usando OnTick( ). O rastreamento só pára quando um novo tick aparece no símbolo atual.
- Solicitamos dados no momento do recebimento do evento OnTick.
- Para cada posição de compra
, determinamos onde o preço atual é relativo ao preço da posição aberta. - Se o preço atual for superior ao preço da posição aberta, verificamos em que nível ele subiu.
- 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.
- 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
. - 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:- O processamento da parada de rastreamento ocorre no novo recebimento de tick, na função OnTick
.O- Trailing Stop consiste de duas partes consecutivas:
- Parte 1
. - Para cada posição em aberto
, o preço é calculado e, assim que é alcançado, seu stop-loss é movido para o Breakeven. - 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: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.
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.
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.