Estrategia de swing trading del RSI basada en ajustes intraanuales


Fecha de creación: 2024-02-29 10:54:45 Última modificación: 2024-02-29 10:54:45
Copiar: 0 Número de Visitas: 592
1
Seguir
1617
Seguidores

Estrategia de swing trading del RSI basada en ajustes intraanuales

Descripción general

Esta estrategia es una estrategia de comercio de oscilación del RSI basada en ajustes interanuales, que emite una señal de comercio cuando el indicador RSI toca la línea de descenso y baja mediante el seguimiento de las características de oscilación entre el indicador RSI y el tren de descenso establecido.

Principio de estrategia

  1. Configuración de la longitud de la línea media de la MA, el parámetro RSI, el tren ascendente y descendente, el parámetro stop loss y el rango de ciclo de negociación
  2. Calcula el RSI, el RSI es igual a la media de las subidas y las bajadas.*100
  3. Trazar el indicador RSI y sus trayectorias
  4. El indicador RSI en la parte superior de la banda baja para hacer más señales, la parte inferior de la banda baja para hacer la señal de vacío
  5. La apertura de una posición para la creación de una OCO
  6. Detener y detener el daño de acuerdo con la lógica de detener y detener establecida

Análisis de las ventajas estratégicas

  1. Al establecer un ciclo de transacciones dentro del año, se puede evitar un entorno externo inapropiado.
  2. El indicador RSI puede reflejar de manera efectiva las situaciones de sobreventa y sobrecompra, y puede filtrar parte del ruido mediante la configuración de un rango razonable para el comercio de convulsiones.
  3. El OCO en el listado se combina con la configuración de stop loss para lograr un control de riesgo eficiente.

Análisis de riesgos estratégicos

  1. El RSI no puede garantizar la exactitud de los juicios críticos, y existe un cierto riesgo de error.
  2. La configuración incorrecta del ciclo de negociación durante el año puede perder mejores oportunidades de negociación o entrar en un entorno de negociación inadecuado.
  3. Un punto de parada demasiado alto puede causar una pérdida mayor, y un punto de parada demasiado pequeño puede causar una ganancia demasiado pequeña.

Se puede optimizar mediante el ajuste de los parámetros RSI, el rango de tiempo del ciclo de negociación, el stop loss ratio y otros métodos.

Dirección de optimización de la estrategia

  1. Prueba de los valores óptimos del RSI en diferentes mercados y períodos
  2. Analizar el ciclo de la economía en general para determinar el mejor momento del año para operar
  3. Determinación de la proporción de stop loss razonable mediante retroalimentación
  4. Optimización de la selección de variedades de comercio y aumento del tamaño de las posiciones
  5. Optimización en combinación con otras técnicas de negociación o indicadores de mejor calidad

Resumir

La estrategia controla el riesgo de negociación de manera efectiva mediante el seguimiento de la tendencia de las operaciones a través de la característica de la oscilación del indicador RSI en un período determinado del año. Se puede obtener una mayor eficacia de la estrategia mediante la optimización de los parámetros y la optimización de las reglas.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Bitlinc MARSI Study AST",shorttitle="Bitlinc MARSI Study AST",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,initial_capital=1000,currency="USD",pyramiding=0, calc_on_order_fills=false)

// === General Inputs ===
lengthofma = input(62, minval=1, title="Length of MA")
len = input(31, minval=1, title="Length")
upperband = input(89, minval=1, title='Upper Band for RSI')
lowerband = input(10, minval=1, title="Lower Band for RSI")
takeprofit =input(1.25, title="Take Profit Percent")
stoploss =input(.04, title ="Stop Loss Percent")
monthfrom =input(8, title = "Month Start")
monthuntil =input(12, title = "Month End")
dayfrom=input(1, title= "Day Start")
dayuntil=input(31, title= "Day End")

// === Innput Backtest Range ===
//FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
//FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
//FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
//ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
//ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
//ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === Create RSI ===
src=sma(close,lengthofma)
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi,linewidth = 2, color=purple)

// === Plot Bands ===
band1 = hline(upperband)
band0 = hline(lowerband)
fill(band1, band0, color=blue, transp=95)

// === Entry and Exit Methods ===
longCond =  crossover(rsi,lowerband)
shortCond =  crossunder(rsi,upperband)

// === Long Entry Logic ===
if (  longCond ) 
    strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND", comment="LONG")
else
    strategy.cancel(id="LONG")

// === Short Entry Logic ===    
if ( shortCond   ) 
    strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND",  comment="SHORT")
else
    strategy.cancel(id="SHORT")

// === Take Profit and Stop Loss Logic ===
//strategy.exit("Take Profit LONG", "LONG", profit = close * takeprofit / syminfo.mintick, loss = close * stoploss / syminfo.mintick)
//strategy.exit("Take Profit SHORT", "SHORT", profit = close * takeprofit / syminfo.mintick, loss = close * stoploss / syminfo.mintick)
strategy.exit("LONG TAKE PROFIT", "LONG", profit = close * takeprofit / syminfo.mintick)
strategy.exit("SHORT STOP LOSS", "SHORT", profit = close * takeprofit / syminfo.mintick)
strategy.exit("LONG STOP LOSS", "LONG", loss = close * stoploss / syminfo.mintick)
strategy.exit("SHORT STOP LOSS", "SHORT", loss = close * stoploss / syminfo.mintick)