Estrategia de negociación cuantitativa basada en los indicadores de tendencia TRSI y SUPER

El autor:¿ Qué pasa?, Fecha: 2023-12-15 16:05:51
Las etiquetas:

img

Resumen general

Esta estrategia combina el índice de fortaleza relativa (TRSI) y los indicadores de súper tendencia para formar una estrategia comercial cuantitativa relativamente completa.

Estrategia lógica

  1. Calcular el indicador TRSI para determinar si el mercado está en estado de sobrecompra o sobreventa y emitir señales de compra y venta
  2. Utilice el indicador Super Trend para filtrar las señales de ruido y confirmar la tendencia subyacente
  3. Establecer puntos de stop loss y take profit en diferentes etapas de las posiciones rentables

Específicamente, la estrategia primero calcula el indicador TRSI para juzgar si el mercado ha entrado en la zona de sobrecompra o sobreventa, y luego calcula el indicador Super Trend para determinar la dirección de la tendencia principal.

Análisis de ventajas

Esta estrategia tiene las siguientes ventajas:

  1. La combinación de múltiples indicadores mejora la precisión de la señal.
  2. Aplicable a la negociación de tendencias a medio y largo plazo.
  3. Los ajustes de stop loss y take profit son razonables, retirando diferentes proporciones de fondos en diferentes etapas de rentabilidad para controlar eficazmente el riesgo.

Análisis de riesgos

Esta estrategia también tiene algunos riesgos:

  1. El comercio a medio y largo plazo no aprovecha las oportunidades comerciales a corto plazo.
  2. La configuración incorrecta de los parámetros TRSI puede hacer que se pierdan las zonas de sobrecompra y sobreventa.
  3. La configuración incorrecta de los parámetros de Super Tendencia puede emitir señales incorrectas.
  4. Un espacio de stop loss demasiado grande no permite controlar eficazmente los riesgos.

Para hacer frente a estos riesgos, podemos optimizar desde los siguientes aspectos:

Direcciones de optimización

  1. Incorporar más indicadores a corto plazo para identificar más oportunidades comerciales.
  2. Ajuste los parámetros TRSI para reducir el intervalo de error.
  3. Prueba y optimiza los parámetros de Super Tendencia.
  4. Configurar las pérdidas flotantes para rastrear las líneas de stop loss en tiempo real.

Resumen de las actividades

Esta estrategia integra múltiples indicadores como TRSI y Super Trend para formar una estrategia comercial cuantitativa relativamente completa. Puede identificar efectivamente las tendencias a medio y largo plazo mientras establece stop loss y take profit para controlar los riesgos. Todavía hay mucho espacio para la optimización, con posibles mejoras posteriores en áreas como mejorar la precisión de la señal e identificar más oportunidades comerciales. En general, este es un buen punto de partida para una estrategia cuantitativa.


/*backtest
start: 2022-12-14 00:00:00
end: 2023-11-26 05:20:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=4
strategy(title = "SuperTREX strategy", overlay = true)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
length = input( 14 )
overSold = input( 35 )
overBought = input( 70 )
HTF = input("W", type=input.resolution)
ti = change( time(HTF) ) != 0
p = fixnan( ti ? close : na )

vrsi = rsi(p, length)
price = close
var bool long = na
var bool short = na

long :=crossover(vrsi,overSold) 
short := crossunder(vrsi,overBought)

var float last_open_long = na
var float last_open_short = na

last_open_long := long ? close : nz(last_open_long[1])
last_open_short := short ? close : nz(last_open_short[1])


entry_value =last_open_long
entry_value1=last_open_short

xy=(entry_value+entry_value)/2

// INPUTS //
st_mult   = input(4,   title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01)
st_period = input(10, title = 'SuperTrend Period',     minval = 1)

// CALCULATIONS //
up_lev =xy - (st_mult * atr(st_period))
dn_lev =xy + (st_mult * atr(st_period))

up_trend   = 0.0
up_trend   := entry_value[1] > up_trend[1]   ? max(up_lev, up_trend[1])   : up_lev

down_trend = 0.0
down_trend := entry_value1[1] < down_trend[1] ? min(dn_lev, down_trend[1]) : dn_lev

// Calculate trend var
trend = 0
trend := close > down_trend[1] ? 1: close < up_trend[1] ? -1 : nz(trend[1], 1)

// Calculate SuperTrend Line
st_line = trend ==1 ? up_trend : down_trend
plot(xy,color = trend == 1 ? color.green : color.red)

buy=crossover( close, st_line) 
sell1=crossunder(close, st_line) 
 


buy1=buy
//

sell=sell1


// STRATEGY

plotshape(buy , title="buy", text="Buy", color=color.green, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0)  //plot for buy icon
plotshape(sell, title="sell", text="Sell", color=color.red, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0)  //plot for sell icon
// Take profit

//
l = buy 
s1=sell 
if l 
    strategy.entry("buy", strategy.long)
if s1 
    strategy.entry("sell", strategy.short)
per(pcnt) =>  strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss=input(title=" stop loss", defval=25, minval=0.01)
los = per(stoploss)
q1=input(title=" qty_percent1", defval=25, minval=1)
q2=input(title=" qty_percent2", defval=25, minval=1)
q3=input(title=" qty_percent3", defval=25, minval=1)
tp1=input(title=" Take profit1", defval=2, minval=0.01)
tp2=input(title=" Take profit2", defval=4, minval=0.01)
tp3=input(title=" Take profit3", defval=6, minval=0.01)
tp4=input(title=" Take profit4", defval=8, minval=0.01)
strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los)
strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los)
strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los)
strategy.exit("x4", profit = per(tp4), loss = los)


Más.