![Stop-loss e take-profit amigáveis ao trader](https://c.mql5.com/2/60/Trader_friendly_stop_loss_and_take_profit_600x314.jpg)
Stop-loss e take-profit amigáveis ao trader
Introdução
Se o maior dramaturgo pudesse escrever um epígrafe para este artigo, talvez ele dissesse:
Ser ou não ser? Eis a questão:
Colocar um stop-loss contra o mercado feroz,
Ou com um take-profit obter todo o lucro?
Stop-loss e take-profit são ordens de stop que fecham uma posição quando o preço atinge seus valores. O stop-loss permite limitar perdas, enquanto o take-profit possibilita garantir lucros. A principal vantagem de usar stop-loss e take-profit é a capacidade de controlar riscos financeiros e usar a gestão de capital.
No entanto, alguns traders preferem operar sem ordens de stop. Seu raciocínio é bastante simples. Eles acreditam que há situações em que o preço atinge o stop-loss e, em seguida, reverte. Se não houvesse stop-loss, a posição poderia fechar no positivo. O mesmo argumento vale para o take-profit. O preço atinge seu nível, a posição é fechada. Mas o preço continua a se $1 na mesma direção, e se o take-profit não tivesse sido definido, mais lucro poderia ser obtido.
Essa abordagem está mais ligada às avaliações subjetivas do trader. E essa subjetividade pode levar a grandes problemas. Por exemplo, se o trader não definir um stop-loss, a corretora fará isso por ele. Para evitar confusão nos termos, a corretora chamará seu nível de "stop-out". Você sempre pode descobrir o nível de stop-loss da corretora usando a função AccountInfoDouble com o identificador ACCOUNT_MARGIN_SO_SO. E quanto ao take-profit – talvez o próprio trader tenha escolhido seu nível incorretamente, e por isso não obtém todo o lucro possível?
Vamos tentar abordar a escolha dos níveis de stop-loss e take-profit de maneira racional.
Preparando os dados
Então, vamos nos familiarizar com o objeto de nossa pesquisa. Primeiro, precisamos descobrir quais níveis o preço pode alcançar quando se move para cima e para baixo. Também estamos interessados em quão frequentemente cada nível ocorre no histórico.
Usaremos um modelo bastante simples. Suponha que cada posição seja aberta ao preço open. Também definiremos a duração de manutenção da posição em N barras. Estamos interessados nas máximas variações de preço para cima e para baixo. Estes são os valores que coletaremos para estatísticas. Por exemplo, usei um tempo de manutenção de posição de 5 barras, e graficamente isso parece assim.
Como resultado, obtemos quantas vezes cada variação de preço ocorreu nos dados históricos. Em outras palavras, obtivemos uma avaliação da probabilidade de o preço atingir um nível definido. Por exemplo, aqui está a estatística para o movimento do preço para cima.
E para baixo.
O primeiro ponto que chama a atenção são as grandes variações, que ocorrem com menos frequência. O segundo resultado importante é a diferença entre os movimentos de preço para cima e para baixo.
Esta diferença nos indica que os valores de stop-loss e take-profit para as posições Buy e Sell podem diferir entre si.
Agora precisamos dar mais um passo. A condição de acionamento do stop-loss e do take-profit pode ser formulada assim: o preço atinge o nível definido e, talvez, vá além.
Para avaliar a probabilidade de que o stop-loss ou o take-profit seja acionado em um determinado nível, precisaremos da função de distribuição acumulada. O princípio por trás dessa função é muito simples, é necessário somar a probabilidade desse nível com as probabilidades de todos os níveis subsequentes.
Na prática, essa função pode ser encontrada da seguinte maneira. Pegamos a estimativa de probabilidade que obtivemos no início. A partir do penúltimo nível, precisamos encontrar somas como:
Como resultado, deveríamos obter uma imagem assim.
Lembro novamente. No início, obtivemos a probabilidade de o preço atingir exatamente esse nível, e não outro. Agora, obtivemos a probabilidade de o preço atingir esse nível e, possivelmente, ir além.
Agora podemos prosseguir para a parte principal de nossa pesquisa.
SL & TP Independentes
Assim, conhecemos as probabilidades de o preço atingir um determinado nível. Agora nossa tarefa é monetizar esses conhecimentos. E começaremos por … Aliás, você já notou que em todos os seus produtos a empresa MetaQuotes primeiro sugere definir o stop-loss, e só então o take-profit? Isso é porque lá trabalham pessimistas. Mas nós somos otimistas e, portanto, começaremos pelo take-profit.
Todo trader está interessado em ter um grande take-profit. Quanto maior o take-profit, maior o lucro. Mas, como já vimos, aumentar o take-profit leva a uma diminuição da probabilidade de sua execução. Com uma abordagem racional, precisamos encontrar o máximo take-profit com a máxima probabilidade possível de execução:
Vamos ver se é possível atender a essa condição.
Sim, há um máximo claramente expresso, e podemos adotar esse valor de take-profit como ótimo.
Agora podemos prosseguir para a busca do stop-loss ideal. À primeira vista tudo parece bastante simples, precisamos de um stop-loss mínimo com a menor probabilidade de execução. Mas essa simplicidade é enganosa. Na verdade, teremos que fazer o contrário.
Quando coletamos estatísticas sobre as variações de preço, também obtivemos o valor máximo. Agora, ao avaliar a otimalidade, podemos tomar a diferença entre esse máximo e o valor do stop-loss. Quanto maior essa diferença, melhor. Faremos o mesmo ao avaliar a probabilidade de execução. Uma pequena probabilidade de execução é equivalente a uma grande probabilidade de não execução. Ou seja, estamos procurando cumprir essa condição:
Verificamos. Sim, esse máximo existe, o stop-loss ideal foi encontrado.
Para EURUSD, H1, duração de manutenção da posição de 5 barras, obtive os seguintes valores.
SL / Probabilidade | TP / Probabilidade | |
---|---|---|
Compra | 622 / 6,90% | 210 / 37.28% |
Venda | 603 / 7.28% | 220 / 35.31% |
Vamos verificar se esses valores são ideais. Eu usarei uma estratégia simples, em que as posições são abertas em cada nova barra, se não houver posições abertas. O tipo de posição é escolhido aleatoriamente. Vamos testar três variações:
- stop-orders ótimos;
- stop-loss reduzidos em 10 pontos;
- take-profit aumentados em 10 pontos.
Assim parece a curva de balanço usando ordens de stop ótimos.
E os resultados dos testes para todas as variações estão apresentados na tabela.
Lucro Líquido Total | Lucro Bruto | Perda Bruta | Fator de Lucro | Pagamento Esperado |
---|---|---|---|---|
303,02 | 1.870,84 | -1.567,82 | 1,19 | 0,27 |
100,79 | 1.817,04 | -1.716,25 | 1,06 | 0,09 |
135,07 | 1.773,24 | -1.638,17 | 1,08 | 0,13 |
Algumas palavras sobre a aplicação prática dessa abordagem.
Primeiro, você pode usar isso como está, e implementá-lo como um indicador. Então você obterá níveis peculiares de suporte e resistência.
Segundo, suponha que você tenha uma estratégia de trading que gera sinais para abrir e fechar posições. Então você pode proceder da seguinte maneira. Primeiro, colete estatísticas para sinais de Buy e Sell separadamente. Neste caso, o tempo de manutenção da posição é contado do sinal de abertura ao sinal de fechamento.
Claro, você pode usar apenas o take-profit, ou apenas o stop-loss. Eles são independentes um do outro, então aplicá-los separadamente é totalmente aceitável.
Valor Esperado
A concepção de valor esperado é conhecida há muito tempo e é amplamente usada no trading. Por exemplo, o indicador SMA mostra o valor esperado do preço. E no artigo "Matemática na negociação. Como estimar resultados de trading", mostra-se detalhadamente como usar o valor esperado para avaliar estratégias de trading.
Vamos tentar aplicar o valor esperado ao cálculo de stop-orders. Já temos todas as estatísticas necessárias. Resta-nos apenas entender o que e como vamos calcular.
O valor esperado para uma posição pode ser calculado pela fórmula:
Onde p é a probabilidade de a posição fechar pelo take-profit. E é essa probabilidade que precisamos encontrar.
Qualquer posição fechará ou pelo take-profit ou pelo stop-loss. Não há outras opções. Portanto, a probabilidade total para esses dois eventos deve ser igual a 1. A probabilidade de a posição fechar pelo take-profit é composta de duas partes: a probabilidade de o preço atingir o nível de take-profit e a probabilidade de o preço não atingir o nível de stop-loss. Raciocinamos de maneira similar sobre o fechamento da posição pelo stop-loss. Então, a fórmula do valor esperado seria assim:
Resta apenas encontrar tais valores de stop-loss e take-profit que o valor esperado seja positivo. Por exemplo, o máximo de expectativa pode ser alcançado com esses valores de stop-orders.
SL / Probabilidade | TP / Probabilidade | Valor esperado | |
---|---|---|---|
Compra | 4611 / 7,69% | 3690 / 92,31% | 3051,53 |
Venda | 4071 / 14,29% | 3950 / 85,71% | 2804,19 |
Na prática, o valor esperado pode ser usado assim. Primeiro, você precisa escolher um valor específico de stop-loss ou take-profit. Em seguida, encontre o valor ótimo do outro stop-order. Por exemplo, peguei os valores de stop-loss do exemplo anterior e encontrei os take-profits com o maior valor esperado. Os valores que obtive são:
SL / Probabilidade | TP / Probabilidade | Valor esperado | |
---|---|---|---|
Compra | 622 / 19,24% | 310 / 80,76% | 130,68 |
Venda | 603 / 19,25% | 300 / 80,75% | 126,13 |
Aqui está como o balanço muda.
Além do valor esperado, outros critérios também podem ser utilizados. Por exemplo, o critério
permite obter valores de stop-orders que ofereçam a melhor relação entre o lucro médio e a perda média.
Tempo e Lucro
O aforismo "tempo é dinheiro" é conhecido por todos. Vamos ver como esse aforismo funciona (e se funciona) no trading.
Qualquer trader racional está interessado em obter lucro. E quanto maior o lucro, melhor para o trader. Eu ofereço três estratégias de trading para escolha: a primeira gera 1440 pontos de lucro, a segunda, 600, e a terceira, 20. Qual estratégia você escolheria?
Aqui faço uma pequena especificação. A primeira estratégia gera lucro em um dia, a segunda em uma hora, e a terceira em um minuto. Obviamente, para avaliar a lucratividade dessas estratégias, precisamos convertê-las para o mesmo intervalo de tempo. Por exemplo, para M1. Então, obteríamos os seguintes valores:
- 1440/1440 = 1;
- 600/60 = 10;
- 20/1 = 20.
Ou seja, usamos o seguinte critério para avaliar as estratégias:
Vamos tentar aplicar a mesma abordagem ao cálculo de stop-orders. Obviamente, o trader está interessado em obter o máximo de lucro no mínimo de tempo. Da mesma forma, ele visa minimizar as perdas, e adiar o tempo de ocorrência dessas perdas o quanto puder.
Por isso, do ponto de vista da escolha de stop-orders, podemos raciocinar assim. Suponha que esperamos obter lucro dentro de 5 barras. Então, podemos deslocar o tempo de execução do stop-loss para um período mais longo. Por exemplo, o tempo de execução do stop-loss pode ser definido para 7 ou 10 barras. Nesse caso, o tamanho do stop-loss aumentará, mas ao mesmo tempo diminuirá a probabilidade de sua execução.
Esse método pode ser aplicado em estratégias que têm sinais para abrir posições e não têm sinal para fechá-las. As posições devem ser fechadas apenas ao atingir o stop-loss ou o take-profit.
Por exemplo, peguei o tempo de execução do take-profit igual a 5 barras. E o tempo de execução do stop-loss – em 5, 10 e 15 barras. Uma das variações da mudança no balanço de trading parece assim.
E os principais resultados do teste são apresentados na tabela.
Lucro Líquido Total | Lucro Bruto | Perda Bruta | Fator de Lucro | Pagamento Esperado |
---|---|---|---|---|
-1.462,31 | 45.593,97 | -47.056,28 | 0,97 | -0,13 |
3.177,61 | 59.307,98 | -56.130,37 | 1,06 | 0,28 |
1.833,58 | 59.963,97 | -58.130,39 | 1,03 | 0,16 |
Como podemos ver, alterar o tempo de execução do stop-loss pode ter um impacto positivo nos resultados do trading.
Considerações finais
Os seguintes programas foram usados durante a escrita deste artigo:
Nome | Tipo | Descrição |
---|---|---|
Lvl SL & TP | Script | Este script permite calcular os stop-loss e take-profit ótimos.
|
EA SL&TP | Expert | Permite verificar os níveis de stop-loss e take-profit.
|
EA TIM | Expert | Permite testar a hipótese de diferentes tempos para SL e TP.
|
Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/13737
![Redes neurais de maneira fácil (Parte 64): Método de clonagem de comportamento ponderada conservadora (CWBC)](https://c.mql5.com/2/60/Neural_networks_made_easy_rPart_64s_CWBC__Logo.png)
![Ciência de Dados e Aprendizado de Máquina (Parte 15): SVM — uma ferramenta útil no arsenal do trader](https://c.mql5.com/2/60/Data_Science_and_Machine_LearningdPart_15g__Logo.png)
![Validação cruzada e noções básicas de inferência causal em modelos CatBoost, exportação para o formato ONNX](https://c.mql5.com/2/60/CatBoost_export_to_ONNX_format_LOGO.png)
![Redes neurais de maneira fácil (Parte 63): pré-treinamento do transformador de decisões não supervisionado (PDT)](https://c.mql5.com/2/60/Neural_networks_are_easy_wPart_636_Logo.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