Estratégia de negociação de regressão da média móvel RSI


Data de criação: 2023-09-12 14:37:28 última modificação: 2023-09-12 14:37:28
cópia: 0 Cliques: 703
1
focar em
1617
Seguidores

Esta estratégia é baseada no RSI indicador de regresso equilíneo característica design. Quando o RSI supera compra e venda, ocorre uma reversão, formando uma oportunidade de negociação. A estratégia através do indicador de RSI julgar o estado de sobrecompra e venda, tomar uma forma de regresso equilíneo para criar uma posição em aberto, para atingir a finalidade de negociação sistematizada.

Princípios da estratégia:

  1. Calcule o valor do indicador RSI, definindo uma linha de sobrecompra e uma linha de sobrevenda, com parâmetros típicos de linha de sobrecompra 60 e linha de sobrevenda 30.

  2. Quando o RSI se move de cima para baixo e ultrapassa a linha de compra, execute uma operação de venda e estabeleça uma posição curta.

  3. Quando o RSI ultrapassa a linha de venda de baixo para cima, execute uma operação de compra e estabeleça uma posição a mais.

  4. A linha de parada de posição múltipla é o preço de entrada multiplicado por ((1-perda proporcional), a linha de parada de posição curta é o preço de entrada multiplicado por ((1 + perda proporcional)) [2].

  5. Quando o preço atinge a linha de stop loss, a saída de stop loss é executada.

As vantagens da estratégia incluem:

  1. O indicador RSI usa a sua característica de regressão para capturar as oportunidades de negociação de uma reversão de tendência.

  2. O método de construção de posições de ruptura permite capturar a mudança de tendência em tempo hábil.

  3. Estabeleça um limite de perda para controlar a perda individual.

Os riscos da estratégia incluem:

  1. O indicador RSI tem maior probabilidade de emitir falsos sinais e deve ser confirmado em combinação com outros indicadores.

  2. Os pontos de parada próximos dos pontos de entrada são frequentemente parados, e o alcance de paragem deve ser adequadamente relaxado.

  3. A escolha inadequada da hora de retorno às negociações pode levar a um período prolongado de detenção.

Em resumo, a estratégia de retorno da linha média do RSI é usada para negociar, capturando oportunidades de retorno do RSI. A estratégia pode ser efetiva e efetivamente controlar perdas individuais.

Código-fonte da estratégia
/*backtest
start: 2022-09-05 00:00:00
end: 2023-09-11 00:00:00
period: 1d
basePeriod: 1h
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/
// © relevantLeader16058

//@version=4
strategy(shorttitle='RSI Bot Strategy',title='Quadency Mean Reversion Bot Strategy', overlay=true, initial_capital = 100, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.08)

//Backtest dates
start = input(defval = timestamp("08 Mar 2021 00:00 -0600"), title = "Start Time", type = input.time)
finish = input(defval = timestamp("9 Mar 2021 23:59 -0600"), title = "Start Time", type = input.time)
window()  => true       // create function "within window of time"

// Complete Control over RSI inputs and source price calculations
lengthRSI = input(14, minval=1)
source = input(title="Source", type=input.source, defval=close)
strat = input(title="Strategy", defval="Long/Short", options=["Long Only", "Long/Short", "Short Only"])
strat_val = strat == "Long Only" ? 1 : strat == "Long/Short" ? 0 : -1
stoploss = input(5.00, "Stop Loss %")
oversold= input(30)
overbought= input(60)

// Standard RSI Calculation
RSI = rsi(close, lengthRSI)
stLossLong=(1-(stoploss*.01))
stLossShort=(1+(stoploss*.01))

//Long and Short Strategy Logic
GoLong = crossunder(RSI, oversold) and window()
GoShort = crossover(RSI, overbought) and window()

// Strategy Entry and Exit
if (GoLong)
    if strat_val > -1
        strategy.entry("LONG", strategy.long)
    if strat_val < 1
        strategy.close("SHORT")
    

if (GoShort)
    if strat_val > -1
        strategy.close("LONG")
    if strat_val < 1
        strategy.entry("SHORT", strategy.short)


LongStopLoss = barssince(GoLong)<barssince(GoShort) and crossunder(low, valuewhen(GoLong, close, 0)*stLossLong)

ShortStopLoss = barssince(GoLong)>barssince(GoShort) and crossover(high, valuewhen(GoShort, close, 0)*stLossShort)

if (ShortStopLoss)
    strategy.close("SHORT")
    
if (LongStopLoss)
    strategy.close("LONG")