Estratégia de negociação baseada em VSTOP e RSI


Data de criação: 2023-10-09 15:48:46 última modificação: 2023-10-09 15:48:46
cópia: 0 Cliques: 706
1
focar em
1617
Seguidores

Visão geral

A estratégia combina os dois indicadores VSTOP e RSI, permitindo que você faça mais operações de shorting quando o RSI está superando o overbought, enquanto usa o VSTOP para determinar a direção da tendência e parar o prejuízo quando a tendência se inverte.

Princípio da estratégia

  1. Calcule o valor do indicador RSI, definindo as linhas de sobrecompra e de sobrevenda. Quando o RSI for maior do que a linha de sobrecompra, faça mais; Quando o RSI for menor do que a linha de sobrevenda, faça um curto.

  2. Calcule o VSTOP, que é uma linha de parada definida de acordo com a amplitude de flutuação do preço. Os passos específicos para o cálculo são os seguintes:

    • Calcular o indicador ATR e definir o coeficiente de ATR

    • Registre o valor máximo e mínimo

    • Calcule a linha de parada de perda atual = is_uptrend ? max - mult * ATR: min + mult * ATR

    • Atualização da linha de stop loss: vstop1 = is_uptrend ? max ((vstop_prev, stop): min ((vstop_prev, stop)

    • Quando a tendência se inverter, reinicie a linha de stop vstop

  3. Quando o RSI está acima de venda, se o preço atravessar o VSTOP, faça um curto; quando o RSI está acima de compra, faça mais.

Análise de vantagens

  • A combinação de indicadores de tendência e indicadores de sobrecompra e sobrevenda permite capturar oportunidades de reversão em situações de tendência.

  • Usando o VSTOP para definir o stop loss, pode-se controlar o risco de forma eficaz.

  • A configuração dos parâmetros do RSI é flexível e pode ser otimizada para diferentes variedades.

  • O VSTOP é um sistema de rastreamento de perdas sem a necessidade de intervenção humana.

Riscos e soluções

  • Se os parâmetros do ATR forem muito grandes ou pequenos, a linha de parada perderá o sentido. Pode-se testar diferentes parâmetros do ATR, ou pode-se combinar a média do ATR para definir.

  • Em situações de equilíbrio, o RSI pode desencadear sinais de negociação com frequência, aumentando a frequência de negociação e os custos de deslizamento. Os parâmetros do RSI podem ser ajustados de forma apropriada ou os requisitos de filtragem podem ser adicionados para reduzir os sinais inativos.

  • O fracasso do reverso é o principal risco desta estratégia, e os comerciantes precisam prestar atenção ao nível mais amplo da direção da tendência, evitando operações de contra-balanço. A direção da tendência pode ser julgada por combinação com a linha média de longo prazo.

Direção de otimização

  • Pode-se considerar a eliminação de sinais de invalidez em combinação com outros indicadores, como o indicador de energia quântica, o canal de Tongji, etc.

  • Os parâmetros podem ser otimizados com base nos resultados da retrospectiva para encontrar a melhor combinação de parâmetros.

  • O estudo de como o coeficiente ATR pode ser ajustado de forma dinâmica para se adaptar a diferentes cenários de mercado.

  • Pode-se explorar a estratégia de fechar em determinados períodos de tempo para evitar períodos de alto risco.

Resumir

A estratégia integra o julgamento de tendências e o julgamento de overbought e oversold, permitindo capturar oportunidades de reversão em situações de tendência. O VSTOP é um sistema de gestão de stop loss que ajuda no controle de risco. Otimizar os parâmetros e combinar outros indicadores pode aumentar ainda mais a eficácia da estratégia.

Código-fonte da estratégia
/*backtest
start: 2022-10-02 00:00:00
end: 2023-10-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Vstop and RSI", overlay=true)

//RSI Section
length = input(2, "RSI Period") 
overSold = input(30, "Oversold Level") 
overBought = input(70, "Overbought Level") 
price = close 
vrsi = rsi (price, length) 

//VSTOP Section
vlength = input(2, "Vstop Length") 
mult = input(2, "Vstop Mult") 
atr_ = atr(vlength) 

max1=0.0 
min1=0.0 
is_uptrend_prev = false 
stop=0.0 
vstop_prev=0.0 
vstop1=0.0 
is_uptrend=false 
is_trend_changed=false 
max_ = 0.0 
min_ = 0.0 
vstop=0.0 

max1 := max(nz(max_[1]), close)
min1 := min(nz(min_[1]), close)


is_uptrend_prev := nz(is_uptrend[1], true)

stop := is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_
vstop_prev := nz(vstop[1])
vstop1 := is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend := close - vstop1 >= 0
is_trend_changed := is_uptrend != is_uptrend_prev
max_ := is_trend_changed ? close : max1
min_ := is_trend_changed ? close : min1
vstop := is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1
plot(vstop, color = is_uptrend ? green : red, style=cross, linewidth=2)

if vrsi > overBought
    strategy.entry("Buy", strategy.long, comment="Buy")
     
if vrsi < overSold and vstop > price
    strategy.entry("Sell", strategy.short, comment="Sell")