Esta estratégia combina os indicadores VSTOP e RSI para ir longo quando o RSI está sobrecomprado e ir curto quando o RSI está sobrevendido, enquanto usa o VSTOP para determinar a direção da tendência e cortar as perdas a tempo quando a tendência se inverte.
Calcule o valor do indicador RSI e defina as linhas de sobrecompra e sobrevenda.
Calcule o VSTOP, que é uma linha de stop loss baseada no intervalo de flutuação de preços.
Calcular o indicador ATR e definir o múltiplo do coeficiente ATR
Registre o preço máximo e o preço mínimo
De acordo com o estado de tendência ascendente is_uptrend, calcule a linha de stop loss atual: stop = is_uptrend? max - mult * ATR : min + mult * ATR
Atualizar a linha de stop loss: vstop1 = is_uptrend? max ((vstop_prev, stop) : min ((vstop_prev, stop)
Quando a inversão de tendência acontece, redefina a linha de stop loss entrar
Quando o RSI está sobrevendido, se o preço cruzar acima do VSTOP, vá curto; quando o RSI está sobrecomprado, vá longo.
A combinação do indicador de tendência e do indicador de sobrecompra/supervenda ajuda a captar oportunidades de reversão nos mercados em tendência.
Usando VSTOP para definir stop loss efetivamente controla os riscos.
As configurações flexíveis dos parâmetros RSI podem ser otimizadas para diferentes produtos.
O VSTOP rastreia sistematicamente a perda de parada sem intervenção manual.
Se o parâmetro ATR for definido muito grande ou muito pequeno, a linha de stop loss não terá significado.
Em mercados de intervalo, o RSI pode desencadear sinais de negociação frequentes, aumentando a frequência de negociação e o custo de deslizamento.
A reversão fracassada é o principal risco desta estratégia. Os comerciantes precisam observar a direção da tendência de um período de tempo maior para evitar a negociação de contra-tendência. As médias móveis de longo prazo podem ser usadas para determinar a tendência.
Considere a combinação de outros indicadores para filtrar sinais inválidos, por exemplo, volume, canal de Donchian, etc.
Otimizar parâmetros com base nos resultados dos backtests para encontrar a combinação de parâmetros ideal.
Pesquisar como ajustar dinamicamente o coeficiente ATR para adaptação em diferentes ambientes de mercado.
Explorar a desativação da estratégia durante períodos de alto risco.
Esta estratégia integra o julgamento da tendência e os níveis de sobrecompra / sobrevenda para capturar oportunidades de reversão em mercados de tendência. VSTOP fornece gerenciamento sistemático de stop loss para controle de risco. A estratégia pode ser melhorada através da otimização de parâmetros e combinação de outros indicadores. Os comerciantes precisam estar atentos a reversões fracassadas, o principal risco.
/*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")