Estratégia chave de reversão do backtest

Autora:ChaoZhang, Data: 2024-01-17 10:56:52
Tags:

img

Resumo

A estratégia de reversão de retrospectiva detecta potenciais oportunidades de curto prazo no mercado, verificando se os preços das ações atingem novas altas e depois fecham mais baixo.

Princípio da estratégia

A lógica central desta estratégia baseia-se na teoria do indicador chave de reversão, julgando se há sinais óbvios de queda após o preço atingir um novo máximo, para identificar potenciais oportunidades de curto prazo.

  1. Definir o parâmetro nLength, que representa o período de retrospectiva, para determinar se o preço está atingindo ou não uma nova máxima;

  2. Definir a variável xHH para armazenar o preço mais elevado dos últimos ciclos nLength;

  3. Definir a variável C1 para determinar se o preço mais alto de hoje excede xHH, ou seja, atingindo um novo máximo, enquanto o preço de fechamento é inferior ao preço de fechamento do dia anterior, o que preenche as condições que podem ser um padrão de reversão chave;

  4. Desenhe um triângulo para indicar a potencial inversão da chave K-line hoje;

  5. Ao identificar o principal padrão de reversão, faça negociações curtas de curto prazo e defina a lógica de stop profit e stop loss.

Através do processo acima, podem ser identificados padrões de reversão potenciais, podem ser julgados os sinais de reversão de preços e podem ser realizadas transações curtas de curto prazo.

Análise das vantagens

A estratégia apresenta as seguintes vantagens:

  1. A identificação de sinais de reversão com base nos padrões reais de preços é mais fiável;

  2. Indicadores gráficos visuais tornam os sinais de negociação mais intuitivos;

  3. A implementação de uma lógica de stop profit e stop loss é propícia ao controlo do risco;

  4. O backtesting para verificar a viabilidade da estratégia é mais convincente.

No geral, a estratégia combina vários fatores para determinar os sinais de negociação e o backtesting para verificar a precisão das reversões de preços é relativamente elevado, com bom valor prático.

Análise de riscos

Embora a estratégia tenha vantagens óbvias, ainda existem alguns riscos a observar:

  1. Os principais padrões de reversão não conduzem necessariamente a reversões de tendência, existindo um certo risco de falsos sinais;

  2. O tamanho da amostra de uma única unidade populacional pode ser pequeno e pode não representar plenamente o mercado global;

  3. A configuração inadequada do ponto de stop loss pode levar a maiores perdas de capital.

Para evitar os riscos acima referidos, podem ser considerados os seguintes pontos:

  1. Verificar os sinais de negociação com mais fatores, tais como volume de negociação anormal;

  2. Aumentar o tamanho da amostra de backtest, combinar backtest de diferentes variedades;

  3. Otimizar e testar diferentes pontos de stop loss para encontrar os parâmetros ideais.

Orientações de otimização

Ainda existem algumas direcções que podem ser otimizadas nesta estratégia:

  1. Aumentar os algoritmos de aprendizagem de máquina para treinar modelos para determinar a probabilidade de padrões de reversão chave para melhorar a precisão;

  2. Otimizar os algoritmos de stop loss, tais como stop loss de trailing, stop loss médio, etc., para reduzir a stop loss única;

  3. Incorporar mais fatores, como a análise do sentimento, para determinar a probabilidade de reversão do mercado e definir sinais de negociação dinâmicos;

  4. Enriquecer os tipos de estratégia, tais como a combinação de indicadores de impulso, indicadores de volatilidade, etc., para determinar sinais de reversão;

  5. Usar funções de backtesting e otimização de sistemas de negociação mais complexos para melhorar a flexibilidade da estratégia.

Através dos aspectos de otimização acima mencionados, a precisão e o nível prático desta estratégia de negociação podem ser melhorados.

Resumo

A estratégia de reversão de retrospectiva de chave identifica sinais de reversão de curto prazo julgando padrões de preços e os verifica por meio de backtesting. Pode capturar efetivamente oportunidades de reversão. Esta estratégia possui indicadores gráficos intuitivos e lógica completa de stop profit e stop loss, com bom valor prático. É claro que ainda é necessário notar certos riscos de falso sinal. Ao otimizar continuamente o modelo de julgamento e o algoritmo de stop loss, o efeito da estratégia pode ser melhor.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 20/01/2020
//
// A key reversal is a one-day trading pattern that may signal the reversal of a trend. 
// Other frequently-used names for key reversal include "one-day reversal" and "reversal day."
// How Does a Key Reversal Work?
// Depending on which way the stock is trending, a key reversal day occurs when:
// In an uptrend -- prices hit a new high and then close near the previous day's lows.
// In a downtrend -- prices hit a new low, but close near the previous day's highs
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Key Reversal Down Backtest", shorttitle="KRD Backtest", overlay = true)
input_takeprofit = input(20, title="Take Profit pip", step=0.01)
input_stoploss = input(10, title="Stop Loss pip", step=0.01)
nLength = input(1, minval=1, title="Enter the number of bars over which to look for a new high in prices.")
xHH = highest(high[1], nLength)
C1 = iff(high > xHH and close < close[1], true, false)
plotshape(C1, style=shape.triangledown, size = size.small, color=color.red)
posprice = 0.0
pos = 0
barcolor(nz(pos[1], 0) == -1 ? color.red: nz(pos[1], 0) == 1 ? color.green : color.blue ) 
posprice := iff(C1== true, close, nz(posprice[1], 0)) 
pos := iff(posprice > 0, -1, 0)
if (pos == 0) 
    strategy.close_all()
if (pos == -1)
    strategy.entry("Short", strategy.short)
posprice := iff(low <= posprice - input_takeprofit and posprice > 0, 0 ,  nz(posprice, 0))
posprice := iff(high >= posprice + input_stoploss and posprice > 0, 0 ,  nz(posprice, 0))

Mais.