English Русский Deutsch 日本語
preview
Stop-loss e take-profit amigáveis ao trader

Stop-loss e take-profit amigáveis ao trader

MetaTrader 5Negociação | 24 abril 2024, 13:09
251 0
Aleksej Poljakov
Aleksej Poljakov

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.
  • Duration define o tempo esperado de manutenção da posição em barras. Dependendo disso, o tamanho do SL e do TP é ajustado. Os resultados dos cálculos são exibidos na aba Experts
  • Verifiable SL e Verifiable TP permitem estabelecer um stop-loss ou take-profit para os quais é necessário encontrar o melhor valor esperado. Os resultados dos cálculos são salvos na pasta Files
EA SL&TP Expert Permite verificar os níveis de stop-loss e take-profit.
  • Seed - número inicial, afeta a sequência das posições. Se o valor não é zero, as posições serão repetidas, isso ajudará a comparar diferentes stop-losses e take-profits
  • SLBuy, TPBuy, SLSell, TPSell - stop-losses e take-profits para as posições. Seus valores podem ser obtidos do script Lvl SL & TP
EA TIM Expert Permite testar a hipótese de diferentes tempos para SL e TP.
  • Seed - número inicial, afeta a sequência das posições.
  • DurationTP - tempo esperado para a ocorrência do take-profit
  • ShiftSL - quanto mais barras o SL será esperado


Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/13737

Arquivos anexados |
Lvl_SL_6_TP.mq5 (21.89 KB)
EA_SLuTP.mq5 (3.56 KB)
EA_TIM.mq5 (7.01 KB)
Redes neurais de maneira fácil (Parte 64): Método de clonagem de comportamento ponderada conservadora (CWBC) Redes neurais de maneira fácil (Parte 64): Método de clonagem de comportamento ponderada conservadora (CWBC)
Pelo resultado dos testes realizados em artigos anteriores, concluímos que a qualidade da estratégia treinada depende muito da amostra de treinamento utilizada. Neste artigo, apresento a vocês um método simples e eficaz para selecionar trajetórias com o objetivo de treinar modelos.
Ciência de Dados e Aprendizado de Máquina (Parte 15): SVM — uma ferramenta útil no arsenal do trader Ciência de Dados e Aprendizado de Máquina (Parte 15): SVM — uma ferramenta útil no arsenal do trader
Neste artigo, exploraremos o papel que o método de máquinas de vetores de suporte (<i>support vector machines</i>, SVM) desempenha na formação do futuro do trading. Este artigo pode ser visto como um guia detalhado que explica como usar o SVM para melhorar estratégias de trading, otimizar a tomada de decisões e descobrir novas oportunidades nos mercados financeiros. Você mergulhará no mundo do SVM através de aplicações reais, instruções passo a passo e avaliações de especialistas. Talvez essa ferramenta indispensável o ajude a entender as complexidades do trading moderno. De qualquer forma, o SVM se tornará uma ferramenta muito útil no arsenal de cada trader.
Validação cruzada e noções básicas de inferência causal em modelos CatBoost, exportação para o formato ONNX Validação cruzada e noções básicas de inferência causal em modelos CatBoost, exportação para o formato ONNX
Este artigo propõe um método autoral para a criação de robôs usando aprendizado de máquina.
Redes neurais de maneira fácil (Parte 63): pré-treinamento do transformador de decisões não supervisionado (PDT) Redes neurais de maneira fácil (Parte 63): pré-treinamento do transformador de decisões não supervisionado (PDT)
Continuamos nossa análise, desta vez, explorando a família de transformadores de decisão. Em trabalhos anteriores, já observamos que o treinamento do transformador subjacente à arquitetura desses métodos é bastante desafiador e requer uma grande quantidade de dados de treinamento rotulados. Neste artigo, consideramos um algoritmo para usar trajetórias não rotuladas com o objetivo de pré-treinar modelos.