Estratégia de stop loss em movimento combinando ciclo de Parobel e banda de Bollinger


Data de criação: 2024-02-02 11:05:57 última modificação: 2024-02-02 11:05:57
cópia: 2 Cliques: 749
1
focar em
1617
Seguidores

Estratégia de stop loss em movimento combinando ciclo de Parobel e banda de Bollinger

Visão geral

Este artigo descreve uma estratégia de negociação quantitativa que combina o indicador de ciclo de Parobel com o indicador de faixa de Brin para definir uma estratégia de parada móvel. A estratégia usa a linha de ciclo de Parobel para determinar a direção da tendência do mercado e, em seguida, usa a dinâmica ascendente e descendente da faixa de Brin para definir a parada de perda, permitindo a parada móvel para bloquear os lucros.

Princípio da estratégia

Em primeiro lugar, a estratégia usa o parobel para determinar a tendência atual do mercado. Quando o preço de fechamento de hoje cruza a linha do ciclo de parobel de ontem, pode-se fazer mais quando se pensa que o mercado se reverteu para o pessimismo; Quando o preço de fechamento de hoje cruza a linha do ciclo de ontem, o mercado pode cair e pode ser fechado.

Em segundo lugar, a estratégia combina um ponto de parada dinâmico com um indicador de correlação. A linha superior da correlação pode ser vista como uma zona de sobrecompra e a linha inferior como uma zona de sobrevenda. Se o preço voltar a cair abaixo da correlação de correlação, a posição de parada é travada; se a posição de parada é vazia, a saída é travada.

Através dos princípios acima, a estratégia permite determinar a direção do mercado e, ao mesmo tempo, configura um mecanismo de parada de perda dinâmico para acompanhar os lucros. Isso permite que ele possa capturar parte dos altos e baixos nas grandes tendências, além de bloquear os lucros e evitar o risco por meio de parada de perda.

Vantagens estratégicas

A estratégia utiliza o indicador de Brin como uma linha de parada, o que permite que a linha de parada se mova com a flutuação dos preços. Isso permite que ela bloqueie mais lucros em situações de mercado comparativamente maiores. Além disso, a estratégia usa o indicador de Brin para determinar áreas de sobrevenda e sobrevenda com mais precisão do que a linha de ciclo de Parobel.

Riscos e soluções

O principal risco da estratégia é que o parobélio não tem uma forte tendência de avaliação. Em situações de turbulência, os preços podem subir e descer várias vezes através da linha de ciclo parobélio, permitindo que a estratégia produza transações frequentes, mas pouco lucrativas. Nesse caso, as taxas de transação e os custos de deslizamento podem representar uma grande proporção, reduzindo a lucratividade da estratégia.

Para lidar com os riscos acima, pode-se considerar ajustar os parâmetros, aumentar a variação da linha de ciclo de Parobel, reduzir a probabilidade de erro de julgamento; ou em combinação com outros indicadores filtrar o momento de entrada no mercado. Por exemplo, pode ser adicionado um indicador de choque para julgar se a situação é tendencial ou chocante, para reduzir a negociação desnecessária.

Otimização de Estratégia

A estratégia pode ser melhorada em alguns aspectos:

  1. Optimizar os parâmetros do indicador de Parobel, ajustar a velocidade de variação dos parâmetros do indicador, reduzir a probabilidade de erro de julgamento

  2. Adição de filtros de outros indicadores técnicos, como adição de MACD, KD e outros para determinar o tipo de mercado, evitando arbitragem em mercados de turbulência

  3. Optimizar os parâmetros da faixa de Brin, ajustar os parâmetros de largura de banda para que a faixa de Brin esteja mais próxima das mudanças de preço

  4. Aumentar os indicadores de volume, tais como volume de transação, volume de posições e outros julgamentos auxiliares, para evitar falsas rupturas

  5. Combinação de informações básicas sobre ações para evitar problemas que afetam o desempenho das ações estratégicas

Resumir

Esta estratégia permite a combinação de acompanhamento de tendências e controle de risco. Comparado com a estratégia de parada fixa tradicional, esta estratégia pode obter maiores ganhos em grandes situações. A otimização de parâmetros e a adição de outros indicadores de julgamento auxiliares podem aumentar ainda mais a estabilidade da estratégia e reduzir as transações desnecessárias.

Código-fonte da estratégia
/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 3h
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/
// © maxencetajet

//@version=5
strategy("HA_RSI", overlay=true, initial_capital=1000, default_qty_type=strategy.fixed, default_qty_value=0.5, slippage=25)

closeHA = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close)

useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
     group="Backtest Time Period")
backtestStartDate = input(timestamp("5 June 2022"), 
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")
backtestEndDate = input(timestamp("5 July 2022"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")

inTradeWindow = true

swingHighV = input.int(10, title="Swing High", group="number of past candles")
swingLowV = input.int(10, title="Swing Low", group="number of past candles")

emaV = input.int(200, title="Ema Period", group="EMA")

rsiV = input.int(14, title="RSI Period", group="RSI")

start = input(0.02, group="Parabolic SAR")
increment = input(0.02, group="Parabolic SAR")
maximum = input(0.2, "Max Value", group="Parabolic SAR")

ema = ta.ema(closeHA, emaV)
rsi = ta.rsi(closeHA, rsiV)
SAR = ta.sar(start, increment, maximum)

myColor = SAR < low?color.green:color.red

longcondition = closeHA > ema and rsi > 50 and closeHA[1] > SAR and closeHA[1] < SAR[1] 
shortcondition = closeHA < ema and rsi < 50 and closeHA[1] < SAR and closeHA[1] > SAR[1]

float risk_long = na
float risk_short = na
float stopLoss = na
float entry_price = na
float takeProfit = na

risk_long := risk_long[1]
risk_short := risk_short[1]

swingHigh = ta.highest(closeHA, swingHighV)
swingLow = ta.lowest(closeHA, swingLowV)

if strategy.position_size == 0 and longcondition and inTradeWindow
    risk_long := (close - swingLow) / close
    strategy.entry("long", strategy.long, comment="Buy")
    
if strategy.position_size == 0 and shortcondition and inTradeWindow
    risk_short := (swingHigh - close) / close       
    strategy.entry("short", strategy.short, comment="Sell")
    
if strategy.position_size > 0

    stopLoss := strategy.position_avg_price * (1 - risk_long)
    entry_price := strategy.position_avg_price
    strategy.exit("long exit", "long", stop = stopLoss)
    
if strategy.position_size < 0 

    stopLoss := strategy.position_avg_price * (1 + risk_short)
    entry_price := strategy.position_avg_price
    strategy.exit("short exit", "short", stop = stopLoss)

if closeHA[1] < SAR and close > strategy.position_avg_price
    strategy.close("long", comment="Exit Long")
    
if closeHA[1] > SAR and close < strategy.position_avg_price
    strategy.close("short", comment="Exit Short")

p_ep = plot(entry_price, color=color.new(color.white, 0), linewidth=2, style=plot.style_linebr, title='entry price')
p_sl = plot(stopLoss, color=color.new(color.red, 0), linewidth=2, style=plot.style_linebr, title='stopLoss')
fill(p_sl, p_ep, color.new(color.red, transp=85))

plot(SAR, "ParabolicSAR", style=plot.style_circles, color=myColor, linewidth=1)
plot(ema, color=color.white, linewidth=2, title="EMA")