Pontos de balanço Breakouts Estratégia a longo prazo

Autora:ChaoZhang, Data: 2024-02-18 09:57:11
Tags:

img

Resumo

A estratégia de Swing Points Breakouts é uma estratégia de flutuação de tendência de longo prazo baseada na identificação de swing high e swing low. A estratégia entra em posições longas quando os preços ultrapassam o preço mais alto no período mais recente especificado pelos parâmetros de entrada e entra em posições curtas quando os preços ultrapassam o preço mais baixo no período mais recente.

Estratégia lógica

A estratégia define o preço mais alto e o preço mais baixo da N bar mais recente como o swing high e o swing low através dos parâmetros de entrada. Determina a entrada e saída com base no parâmetro de direção. Quando vai longo, entra em posições longas com uma ordem de parada OCO quando os preços quebram o swing high. Quando vai curto, entra em posições curtas com uma ordem de parada OCO quando os preços quebram o swing low.

Além disso, a estratégia define stop losses. Após a abertura de posições longas, o stop loss é definido perto do preço mais baixo recente. Após a abertura de posições curtas, o stop loss é definido perto do preço mais alto mais recente. Isso evita efetivamente grandes perdas em um mercado de tendência.

Análise das vantagens

A maior vantagem desta estratégia é que ela capta as principais flutuações em torno de altas e baixas e os lucros em conformidade.

Especificamente, as vantagens são:

  1. A lógica da estratégia é clara, com entradas e saídas baseadas em breakouts altos/baixos.

  2. Utiliza os altos/baixos de balanço para identificar oportunidades de reversão, uma abordagem clássica de análise técnica.

  3. Há stop losses definidos para controlar os riscos e evitar grandes perdas em mercados de tendência.

  4. O código tem uma estrutura clara e é fácil de compreender e modificar.

  5. Os parâmetros podem ser ajustados para otimizar a estratégia, como ajustar o período swing alto / baixo.

Análise de riscos

O principal risco desta estratégia provém de uma identificação imprecisa de alta/baixa balança que conduz a negociações erradas.

  1. Falso rompimento de altas/baixas de balanço, resultando em entradas erradas.

  2. Um enorme stop loss perto dos pontos de fuga.

  3. Os símbolos de tendência tendem a precisar de enormes custos para determinar os pontos de balanço.

  4. O ajuste incorreto dos parâmetros também afeta o desempenho da estratégia.

As soluções incluem:

  1. Otimizar parâmetros como os períodos de swing alto/baixo.

  2. Aumentando a distância de stop loss.

  3. Evitar usá-lo em símbolos de tendência.

  4. Adotar o aprendizado de máquina para otimizar dinamicamente os parâmetros.

Orientações de otimização

A estratégia pode ser otimizada nas seguintes direcções:

  1. Optimização dinâmica dos períodos de alta/baixa de balanço em vez de valores fixos para evitar o sobreajuste.

  2. Introdução de um stop loss/take profit dinâmico baseado no ATR e na volatilidade.

  3. Combinar vários prazos, utilizando TFs mais elevados para definir tendências e TFs mais baixos para entrada.

  4. Incorporar modelos de aprendizagem de máquina para prever pontos de balanço potenciais e melhorar o desempenho.

  5. Otimizar os algoritmos de stop loss para evitar acertos desnecessários, mantendo uma stop loss eficaz.

Conclusão

A estratégia de Swing Points Breakouts é uma estratégia quantitativa prática de longo prazo em geral. Ao capturar oportunidades de reversão em torno de pontos de balanço e definir stop losses para controlar riscos, ela garante lucros enquanto também controla drawdowns. Com ajuste flexível de parâmetros e lógica clara, é um paradigma de estratégia recomendado que vale a pena utilizar.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tweakerID

// Long term strategy for managing a Crypto investment with Swing Trades of more than 1 day. The strategy buys with a 
// stop order at the Swing High price (green line) and sells with a stop order at the Swing Low price (red line). 
// The direction of the strategy can be adjusted in the Inputs panel.

//@version=4
strategy("Swing Points Breakouts", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, commission_value=0.04)

direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

//Inputss
i_SL=input(true, title="Use Swing Lo/Hi Stop Loss & Take Profit")
i_SwingLow=input(10, title="Swing Low Lookback")
i_SwingHigh=input(10, title="Swing High Lookback")
i_reverse=input(false, "Reverse Trades")
i_SLExpander=input(defval=0, step=1, title="SL Expander")

//Strategy Calculations
SwingLow=lowest(i_SwingLow)
SwingHigh=highest(i_SwingHigh)

//SL & TP Calculations
bought=strategy.position_size != strategy.position_size[1]
LSL=valuewhen(bought, SwingLow, 0)-((valuewhen(bought, atr(14), 0)/5)*i_SLExpander)
SSL=valuewhen(bought, SwingHigh, 0)+((valuewhen(bought, atr(14), 0)/5)*i_SLExpander)
islong=strategy.position_size > 0
isshort=strategy.position_size < 0
SL= islong ? LSL : isshort ? SSL : na

//Entries and Exits
strategy.entry("long", true, stop=i_reverse?na:SwingHigh, limit=i_reverse?SwingLow:na)
strategy.entry("short", false, stop=i_reverse?na:SwingLow, limit=i_reverse?SwingHigh:na)

if i_SL
    strategy.exit("longexit", "long", stop=LSL)
    strategy.exit("shortexit", "short", stop=SSL)

//Plots
plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL")
plot(SwingLow, color=color.red)
plot(SwingHigh, color=color.green)


Mais.