![Trailing-stop no trading](https://c.mql5.com/2/67/Trailing_stop_in_trading_600x314.jpg)
Trailing-stop no trading
Introdução
O principal objetivo do trailing-stop é garantir lucro com risco mínimo. O funcionamento do trailing-stop é muito simples. O stop-loss se move gradualmente seguindo o preço, se este último estiver indo a favor do trader. E permanece no lugar se o preço for na direção oposta.
O trailing-stop pode ser representado esquematicamente da seguinte forma. Suponha que o trader abriu uma posição de compra durante uma tendência de alta. À medida que o preço sobe, o stop-loss será automaticamente movido junto com o preço. E quando a tendência mudar de direção, o trader pode concretizar o lucro.
Existem muitas variações de trailing-stop. Há algumas na plataforma de trading MetaTrader.
Além disso, o trailing-stop pode ser automatizado e incluído no código dos EAs. Por exemplo, isso pode ser feito com classes de acompanhamento de posições abertas.
A praticidade do trailing-stop depende muito da volatilidade do preço e da escolha do nível de stop-loss. Para a configuração do stop-loss, podem ser utilizados vários métodos. Por exemplo, em uma tendência clara, podem ser usados os valores máximos ou mínimos do preço. Além disso, os parâmetros do trailing-stop podem ser determinados por meio de indicadores técnicos. Essa abordagem é descrita no artigo "Como criar seu próprio Trailing Stop". Neste artigo, vamos considerar a construção de um trailing-stop com base em dados estatísticos.
Trailing-stop simples
A estratégia de trading e o trailing-stop são independentes um do outro. A principal diferença entre eles é que as estratégias abrem e fecham posições. E o trailing-stop é destinado apenas ao fechamento de posições.
Primeiro, vamos considerar as limitações impostas ao stop-loss.
O limite superior do stop-loss é definido nas propriedades do símbolo, assim a diferença mínima entre o preço de fechamento da posição e o stop-loss estabelecido não pode ser menor que o desvio mínimo em pontos do preço atual de fechamento da posição.
SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL)
No entanto, o limite inferior do stop-loss para o trailing-stop deve ser calculado por nós mesmos. O primeiro requisito para o stop-loss mínimo é que ele deve estar na área de break-even. À primeira vista, é simples, isto é, o stop-loss mínimo deve ser, no mínimo, igual ao preço de abertura da posição. Certo? Errado.
Ao abrir uma posição, ao trader pode ser cobrada uma comissão. Além disso, a posição pode acumular swap durante o seu tempo de existência. Esses custos adicionais devem ser considerados ao calcular o stop-loss mínimo possível. Para isso, precisamos saber o valor de um ponto na moeda do depósito.
PointValue=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)*SymbolInfoDouble(_Symbol,SYMBOL_POINT)/SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE)
Agora, podemos calcular quantos pontos o preço precisa percorrer para compensar a comissão e o swap. Além disso, é necessário considerar o impacto do slippage. Durante as operações de trading, o slippage pode ocorrer tanto a favor quanto contra o trader. No entanto, vamos ser cautelosos e assumir que o slippage sempre ocorrerá contra o trader.
Suponha que PriceOpen seja o preço de abertura da posição, e Lot seja o seu volume. Então, o stop-loss mínimo pode ser calculado pela fórmula:
Os sinais superiores são usados para posições de compra (Buy), e os inferiores para posições de venda (Sell).
O stop-loss mínimo corresponde ao nível de break-even garantido da posição. Ou seja, se a posição for fechada pelo stop-loss mínimo, seu lucro total (considerando o lucro atual, o swap e a comissão) será não negativo.
Agora podemos formular as regras básicas do trailing-stop:
- o novo stop-loss deve estar entre o nível mínimo e o máximo;
- o novo stop-loss deve ser melhor que o anterior.
Cumprindo esses requisitos, o stop-loss pode ser atualizado. No entanto, antes da atualização, é necessário fazer uma verificação adicional de se o stop-loss antigo está fora do nível de congelamento (saiba mais consultando o artigo "Que testes deve passar o robô de negociação antes da publicação no Mercado").
Diferentes abordagens podem ser utilizadas para determinar o novo stop-loss. Eu vou usar os níveis descritos no artigo "Stop-loss e Take-profit amigáveis ao trader".
Mas farei pequenas alterações para calcular o stop-loss ideal. Como o trailing-stop deve ser ativado na barra atual, o tempo de manutenção da posição será sempre igual a 1 barra. Além disso, as estatísticas sobre o movimento do preço serão coletadas em um timeframe escolhido aleatoriamente. Essa abordagem permite ajustar a sensibilidade do trailing-stop.
A seguir, algumas palavras sobre o take-profit. Aqui, podem existir diferentes opções.
Suponha que o trader utilize uma estratégia de trading com um take-profit definido. Então, o take-profit pode permanecer fixo, e o trailing-stop modifica apenas o stop-loss. Nesse caso, o trailing-stop leva a posição para o break-even.
Se a estratégia de trading não prever a colocação de um take-profit, ou houver a possibilidade de usar um take-profit móvel, o trailing-stop pode monitorar os níveis de stop-loss e take-profit. Nesse caso, a rentabilidade do trading pode mudar, pois algumas posições podem ser fechadas a preços mais vantajosos.
Além disso, há a possibilidade de usar o trailing-stop no modo de tick. Nesse caso, a colocação do take-profit não faz sentido, numa vez que o preço nunca alcançará o take-profit. E a única opção possível de fechamento da posição é apenas usando stop-loss.
Vamos verificar como funciona um trailing-stop simples com e sem take-profit. Para isso, vamos introduzir uma condição adicional, em particular a definição e modificação do take-profit só se torna possível depois que o trailing-stop mover o stop-loss para a área de break-even.
Eu vou usar o símbolo EURUSD, timeframe H1. O período de teste será de 1 de janeiro a 31 de dezembro de 2023. O timeframe do trailing-stop é M1. A direção e o volume das posições são determinados aleatoriamente. O stop-loss e o take-profit das posições não são definidos.
O gráfico de variação do saldo é o seguinte.
Parte das posições foi fechada forçadamente ao final do teste, esta é uma desvantagem da estratégia utilizada. Mas, o gráfico dá uma ideia de como o trailing-stop pode funcionar. Vamos ver os resultados dos testes.
PERIOD_M1 | Total Net Profit | Gross Profit | Gross Loss |
---|---|---|---|
UseTakeProfit=false | 4 758,48 | 10 689,84 | -5 931,36 |
UseTakeProfit=true | 5 483,94 | 11 297,68 | -5 813,74 |
Como podemos ver, o uso do take-profit pode influenciar a rentabilidade do trading. Agora, vamos testar nas mesmas condições, mas com o timeframe do trailing-stop definido em M15.
PERIOD_M15 | Total Net Profit | Gross Profit | Gross Loss |
---|---|---|---|
UseTakeProfit=false | 16 371,11 | 33 435,31 | -17 064,20 |
UseTakeProfit=true | 17 038,63 | 34 042,13 | -17 003,50 |
A mudança no timeframe teve um impacto significativo nos resultados dos testes. Isso está relacionado com a alteração dos níveis ótimos de stop-loss e take-profit. Assim, podemos concluir que timeframes menores de trailing-stop são adequados para scalping, enquanto os maiores são melhores para estratégias de tendência.
Expectativa moral e trailing-stop
Expectativa moral é uma avaliação de risco introduzida pela primeira vez por Daniel Bernoulli em 1732. A expectativa moral permite avaliar a utilidade de um jogo. Ela considera o capital do jogador, os possíveis ganhos e perdas, bem como suas probabilidades.
Vamos olhar para o processo de trading de uma maneira diferente. Imagine que cada posição é um jogador separado. Então, a posição tem capital, isto é, o lucro total da posição. Este capital pode aumentar se a posição for fechada pelo take-profit. Ou diminuir se a posição for fechada pelo stop-loss.
Suponha que ProfitPoint seja o lucro da posição em pontos, e p seja a probabilidade de que a posição será fechada pelo take-profit. Então, a expectativa moral da posição pode ser calculada assim:
É claro que o trader deve escolher um stop-loss e take-profit onde a expectativa moral seja máxima. Vamos considerar as particularidades de acompanhar uma posição com base na expectativa moral.
O stop-loss deve ser estritamente menor que o lucro. Somente neste caso a expectativa moral pode ser positiva. Mas, esta condição não é suficiente. Suponha que encontramos o stop-loss e take-profit ótimos. Esses níveis são ideais para um mercado perfeito. O mercado real pode trazer surpresas.
Suponha que o trailing-stop definiu o stop-loss ótimo, mas devido ao slippage a posição pode ser fechada a um preço pior. Nesse caso, o stop-loss real pode ser maior que o lucro da posição. Isso não pode ser permitido. Portanto, há uma restrição no stop-loss:
O valor do take-profit é utilizado ao calcular a expectativa moral. Mas seu uso não é obrigatório. Neste caso, as particularidades da estratégia de trading são mais importantes.
Esses são os resultados do trailing-stop baseado na expectativa moral.
PERIOD_M1 | Total Net Profit | Gross Profit | Gross Loss |
---|---|---|---|
UseTakeProfit=false | 4 482,35 | 8 175,37 | -3 693,02 |
UseTakeProfit=true | 4 747,94 | 8 434,11 | -3 686,17 |
Os resultados foram um pouco piores do que os do trailing-stop simples. Isso se deve ao fato de que, ao acompanhar as posições mediantes a expectativa moral, a posição é movida para break-even mais cedo do que com o trailing-stop simples. Assim, esse trailing-stop é mais adequado para estratégias de scalping.
Outro grande inconveniente é a quantidade de operações necessárias. Os cálculos podem ser otimizados. Mas, mesmo assim, o timeframe do trailing-stop baseado na expectativa moral deve ser pequeno.
Trailing-stop para várias posições
Até agora, aplicamos o trailing-stop a cada posição individualmente. Mas seria possível aplicá-lo a várias posições ao mesmo tempo? Vamos considerar essa possibilidade. Suponhamos que as posições possam ser de diferentes tipos e volumes simultaneamente.
Primeiro, precisamos determinar qual tipo de posição tem vantagem. Para isso, encontraremos a soma dos volumes das posições Buy e subtrairemos dela a soma dos volumes das posições Sell.
O resultado indicará qual tipo de posição é mais forte. Um número positivo indica que as posições Buy são mais fortes, enquanto um número negativo indica que as posições Sell são mais fortes. Se o resultado for zero, as posições têm a mesma força.
Em seguida, precisamos encontrar os preços mínimos possíveis de fechamento para cada posição. Eles são calculados da mesma forma que o stop-loss mínimo, mas sem considerar o slippage.
Agora, esses preços de fechamento devem ser convertidos em preços Ask/Bid e encontrar seu valor médio ponderado. Os volumes das posições serão usados como pesos.
Esses dois valores são mais fáceis de combinar em um valor Bid ideal, que será necessário para o acompanhamento das posições.
Agora temos três opções:
- Se os volumes das posições Buy e Sell forem iguais, o valor Bid ideal corresponderá ao prejuízo mínimo. Ou seja, o trader pode fechar todas as posições se o preço Bid real coincidir com o valor ideal.
- Se os volumes das posições Buy forem maiores, o BidOpt deve ser aumentado pelo valor do slippage. Este será o stop-loss mínimo para todas as posições.
- Se os volumes das posições Sell forem maiores, o BidOpt deve ser reduzido pelo valor do slippage.
O acompanhamento das posições é feito da mesma forma que com o trailing-stop simples. Novos níveis de stop-loss são calculados e ajustados ao preço. A única diferença é que este stop-loss é virtual. Logo, teremos que monitorar a variação do preço a cada tick.
Implementei o acompanhamento de várias posições com base no princípio do trailing-stop simples. É assim que o gráfico de saldo muda ao aplicá-lo.
É importante lembrar que o acompanhamento de todas as posições e de cada uma individualmente não conflitam entre si. Por exemplo, trailing-stop simples + trailing-stop para todas as posições produzem os seguintes resultados.
Total Net Profit | Gross Profit | Gross Loss | |
---|---|---|---|
PERIOD_M1 | 4 907,90 | 10 425,52 | -5 517,62 |
PERIOD_M15 | 16 524,44 | 32 304,01 | -15 779,57 |
No geral, o trailing-stop é uma ferramenta útil. No entanto, o trader deve lembrar que sua aplicação não garante operações sem prejuízos. Ele não melhorará uma estratégia de trading mal desenvolvida.
Conclusão
Ao escrever este artigo, foi utilizado o seguinte programa.
Nome | Tipo | Características |
---|---|---|
Trailing stop | EA |
|
Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/14167
![Do básico ao intermediário: Variáveis (II)](https://c.mql5.com/2/85/Do_b8sico_ao_intermedixrio__Varipveis_II___LOGO.png)
![Desenvolvendo um sistema de Replay (Parte 57): Dissecando o serviço de testagem](https://c.mql5.com/2/85/Desenvolvendo_um_sistema_de_Replay_Parte_57___LOGO.png)
![Redes neurais de maneira fácil (Parte 77): Cross-Covariance Transformer (XCiT)](https://c.mql5.com/2/70/Neural_networks_made_easy_pPart_77c__Cross-Covariance_Transformer_tXCiTl____LOGO.png)
![Do básico ao intermediário: Variáveis (I)](https://c.mql5.com/2/84/Do_brsico_ao_intermediirio__Variiveis_I.png)
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso