Estratégia de parada mais alta/mais baixa

Autora:ChaoZhang, Data: 2024-03-08 14:32:30
Tags:

img

Resumo

Esta estratégia define pontos de stop-loss com base em máximos recentes e mínimos recentes para entrar rapidamente em tendências e controlar rigorosamente os riscos. Ele entra em posições longas quando os preços aumentam consecutivamente e posições curtas quando os preços caem consecutivamente. Ao manter posições, o nível de stop-loss para posições longas é o mais baixo dos poucos bares recentes, e o nível de stop-loss para posições curtas é o mais alto. Esta abordagem dinâmica de stop-loss pode capturar eficientemente as tendências enquanto limita rigorosamente as perdas.

Princípios de estratégia

  1. Utilize oinputfunção para definir os períodos de retrospecçãohiLeneloLenpara os máximos mais altos e mínimos mais baixos, a inadimplência para 20.
  2. Calcule o máximo máximohiHighsaté à barra anterior usandota.highest(high, hiLen)[1], e a mais baixaloLowsUtilizaçãota.lowest(low, loLen)[1].
  3. Gravar os níveis de stop-loss, comloLowspara posições longas ehiHighsPara facilitar a confirmação, não trace quando está em plano.
  4. Definir as condições do sinal comercial:
    • higherCloses: as últimas 3 barras têm fechamentos consecutivamente mais elevados
    • lowerCloses: as últimas 3 barras têm fechamentos consecutivamente mais baixos
    • isFlat: nenhuma posição corrente
  5. Inscrição: inscrever long whenisFlatehigherCloses, entrar em curto quandoisFlatelowerCloses.
  6. Stop-loss: para posições longas, stop-out emloLows; para posições curtas, parar emhiHighs.

Em resumo, esta estratégia utiliza máximos e mínimos recentes para estabelecer paradas, entrando rapidamente em tendências fortes e limitando rigorosamente as perdas, capturando assim de forma eficiente os lucros da tendência.

Análise das vantagens

  1. Simples e eficazes: a estratégia tem uma lógica clara e simples, estabelecendo paradas com base nos próprios preços para captar efetivamente as tendências.
  2. Entrada rápida: entrar em 3 barras consecutivas movendo-se na mesma direção permite entrar rapidamente em novas tendências.
  3. Paradas rigorosas: as paradas são estabelecidas a preços extremos recentes, estreitamente ligados aos preços atuais para um rigoroso controlo do risco.
  4. Trailing stops: os níveis de stop são continuamente actualizados com os preços, tanto para garantir os lucros como para manter a margem de tendência.
  5. Altamente adaptável: adequado para diversos mercados e instrumentos, com parâmetros flexíveis.

Análise de riscos

  1. Risco de mercado turbulento: os mercados turbulentos podem causar entradas e paradas frequentes, degradando o desempenho.
  2. Risco de fim de tendência: quando uma tendência está prestes a se inverter, uma nova entrada pode imediatamente enfrentar reversão e perda.
  3. Risco de movimento extremo: em rebotes extremos de sobrevenda ou quedas de sobrecompra, as paradas de trailing podem não proteger bem as posições.
  4. Risco de parâmetros: parâmetros inadequados podem causar entradas e saídas excessivamente frequentes.

Orientações de otimização

  1. Identificação da tendência: adicionar indicadores de tendência como médias móveis e negociar apenas na direção da tendência principal para melhorar a taxa de ganho.
  2. Incorporar a volatilidade: ajustar parâmetros baseados em indicadores de volatilidade, como o ATR, para se adaptarem a diferentes volatilidades.
  3. Confirmação de momento: adicionar indicadores de momento como o MACD para confirmar entradas apenas com suporte de momento.
  4. Otimizar paradas: combinar com paradas percentuais para movimentos extremos; adicionar paradas de proteção para reduzir as perdas por negociação.
  5. Dimensão das posições: otimizar a dimensão das posições, por exemplo, ajustando a dimensão com base nos níveis de risco para melhorar o rácio risco/recompensa.

Resumo

Esta estratégia de alto/baixo mais alto/baixo mais baixo define paradas dinâmicas com base nos próprios preços para capturar eficientemente tendências fortes e controlar rigorosamente os riscos. Suas vantagens são simplicidade, eficácia, entradas rápidas, paradas rigorosas e alta adaptabilidade. No entanto, ele apresenta um desempenho fraco em mercados agitados, finais de tendência e movimentos extremos, e requer atenção às configurações de parâmetros. Melhorias futuras podem adicionar confirmação de tendência e impulso, otimizar paradas e dimensionamento de posição.


/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Highest high/lowest low stop", overlay=true)

// STEP 1:
// Make inputs for length of highest high and lowest low
hiLen = input.int(20, title="Highest High Lookback", minval=2)
loLen = input.int(20, title="Lowest Low Lookback", minval=2)

// STEP 2:
// Calculate recent extreme high and low
hiHighs = ta.highest(high, hiLen)[1]
loLows  = ta.lowest(low, loLen)[1]

// Plot stop values for visual confirmation
plot(strategy.position_size > 0 ? loLows : na,
     style=plot.style_circles, color=color.green, linewidth=3,
     title="Lowest Low Stop")

plot(strategy.position_size < 0 ? hiHighs : na,
     style=plot.style_circles, color=color.red, linewidth=3,
     title="Highest High Stop")

// Trading conditions for this example strategy
higherCloses = close > close[1] and
     close[1] > close[2] and 
     close[2] > close[3]

lowerCloses = close < close[1] and
     close[1] < close[2] and 
     close[2] < close[3]

isFlat = strategy.position_size == 0

// Submit entry orders
if isFlat and higherCloses
    strategy.entry("EL", strategy.long)

if isFlat and lowerCloses
    strategy.entry("ES", strategy.short)

// STEP 3:
// Submit stops based on highest high and lowest low
if strategy.position_size > 0
    strategy.exit("XL HH", stop=loLows)

if strategy.position_size < 0
    strategy.exit("XS LL", stop=hiHighs)

Mais.