Estrategia Super Trend V


Fecha de creación: 2023-10-18 12:35:53 Última modificación: 2023-10-18 12:35:53
Copiar: 0 Número de Visitas: 877
1
Seguir
1617
Seguidores

Estrategia Super Trend V

Descripción general

La estrategia de supertrend V es una estrategia de negociación en línea corta basada en las medias móviles y la diferencia estándar. Utiliza el indicador de Super Trend para determinar la dirección de la tendencia de los precios, combinando el soporte y la resistencia que se forman en las medias móviles para entrar.

Principio de estrategia

La estrategia primero calcula el indicador de Super Trend, que utiliza la relación entre ATR y el precio para determinar la dirección de la tendencia. Cuando el precio está por encima de la tendencia alcista, es un punto positivo, y cuando el precio está por debajo de la tendencia bajista, es un punto negativo.

Luego se calcula el EMA de la media móvil del precio y el EMA de la media móvil del precio de apertura, que sirve como señal de compra cuando el precio está por encima de la media móvil y por encima de la media de apertura, y de venta cuando el precio está por debajo de la media móvil y por debajo de la media de apertura.

A continuación, se utiliza la diferencia estándar para calcular la subida y bajada del canal de precios, y se realiza un tratamiento suave, la señal de parada se detiene cuando el precio se eleva por encima de la diferencia estándar, y la señal de parada se detiene cuando el precio se eleva por debajo de la diferencia estándar.

Finalmente, los promedios móviles de diferentes períodos de tiempo se combinan para determinar la dirección de la tendencia y se combinan con el indicador Super Trend para formar un juicio de tendencia estable.

Ventajas estratégicas

  • Utiliza el indicador de Super Tendencia para determinar la dirección de la tendencia de los precios y evitar pérdidas por reversión de la tendencia
  • Las medias móviles en combinación con el precio de apertura ayudan a determinar el momento de entrada y evitar falsas rupturas
  • El canal de desviación estándar predice las áreas de soporte y resistencia potenciales del precio y establece un precio de parada de pérdida
  • La combinación de varios ciclos de tiempo para determinar la dirección de la tendencia y mejorar la estabilidad

Riesgo estratégico

  • Los indicadores de Super Trend están rezagados y pueden perder el punto de cambio de tendencia
  • El promedio móvil produce señales cruzadas con retraso, no es el momento adecuado para entrar
  • Los canales de diferencia estándar son demasiado fijos para reflejar las fluctuaciones del mercado en tiempo real
  • Los juicios de varios períodos de tiempo pueden entrar en conflicto

La solución al riesgo:

  • Reducción adecuada de los parámetros de Super Trend para aumentar la sensibilidad
  • Optimizar el ciclo de las medias móviles, o agregar otros indicadores para juzgar la entrada
  • Adaptación dinámica de los parámetros de canal de desviación estándar para que el rango sea compatible con el mercado
  • Determinar con claridad la lógica de juicio de múltiples ciclos y manejar posibles conflictos

Dirección de optimización de la estrategia

  • Optimización de los parámetros de Super Trend para encontrar la combinación óptima de parámetros
  • Pruebe otros indicadores junto con la media móvil para determinar cuándo entrar en juego.
  • Intento de ajuste dinámico de los parámetros del canal de desviación estándar
  • Prueba diferentes combinaciones de múltiples períodos para encontrar la mejor coincidencia
  • Optimización de las estrategias de stop loss para aumentar el margen de ganancia de las estrategias

Resumir

La estrategia de hipertrend V integra las ventajas de indicadores como la tendencia, la línea media y el canal de diferencia estándar, permite determinar la dirección de la tendencia con estabilidad, elegir el momento adecuado para entrar en el mercado y establecer una estrategia de negociación en línea corta para detener los estorbos en la zona de precios. La mejora de la estrategia a través de la optimización de los parámetros, la optimización de los indicadores y la optimización de los estorbos de pérdida puede mejorar la estabilidad y la rentabilidad. Su sólida lógica y una forma de pensar rigurosa merecen ser estudiadas y estudiadas.

Código Fuente de la Estrategia
/*backtest
start: 2022-10-11 00:00:00
end: 2023-10-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © theCrypster 2020

//@version=4
strategy(title = "Super trend V Strategy version", overlay = true, pyramiding=1,initial_capital = 1000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.075)
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)
hilow = ((high - low)*100)
openclose = ((close - open)*100)
vol = (volume / hilow)
spreadvol = (openclose * vol)
VPT = spreadvol + cum(spreadvol)
window_len = 28

v_len = 14
price_spread = stdev(high-low, window_len)

v =  spreadvol + cum(spreadvol)
smooth = sma(v, v_len)
v_spread = stdev(v - smooth, window_len)
shadow = (v - smooth) / v_spread * price_spread

out = shadow > 0 ? high + shadow : low + shadow
//
src = out
src1=open
src2=low
src3=high
tf =input(720)
len = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   tf / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7

c = ema(src, len)
plot(c,color=color.red)
o = ema(src1,len)
plot(o,color=color.blue)
//h = ema(src3,len)
//l=ema(src2,len)
//
col=c > o? color.lime : color.orange
vis = true
vl = c
ll = o
m1 = plot(vl, color=col, linewidth=1, transp=60)
m2 = plot(vis ? ll : na,  color=col, linewidth=2, transp=80)

fill(m1, m2,  color=col, transp=70)
//

vpt=ema(out,len)

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

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

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

down_trend = 0.0
down_trend := close[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

// Plotting
plot(st_line[1], color = trend == 1 ? color.green : color.red , style = plot.style_cross, linewidth = 2, title = "SuperTrend")
buy=crossover( close, st_line) and close>o
sell=crossunder(close, st_line) and close<o
//plotshape(crossover( close, st_line), location = location.belowbar, color = color.green,size=size.tiny)
//plotshape(crossunder(close, st_line), location = location.abovebar, color = color.red,size=size.tiny)
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


//
multiplier = input(title="TP VWAP Deviation", type=input.float, defval=2, minval=1)
src5 = vwap
len5 = input(title="TP length", defval=150, minval=1)
offset = 0

calcSlope(src5, len5) =>
    sumX = 0.0
    sumY = 0.0
    sumXSqr = 0.0
    sumXY = 0.0
    for i = 1 to len5
        val = src5[len5-i]
        per = i + 1.0
        sumX := sumX + per
        sumY := sumY + val
        sumXSqr := sumXSqr + per * per
        sumXY := sumXY + val * per
        
        
    slope = (len5 * sumXY - sumX * sumY) / (len5 * sumXSqr - sumX * sumX)
    average = sumY / len5
    intercept = average - slope * sumX / len5 + slope
    [slope, average, intercept]

var float tmp = na
[s, a, i] = calcSlope(src5, len5)

vwap1=(i + s * (len5 - offset))
sdev = stdev(vwap, len5)
dev = multiplier * sdev
top=vwap1+dev
bott=vwap1-dev

//
z1 = vwap1 + dev
x1 = vwap1 - dev

low1 = crossover(close, x1)  
high1 = crossunder(close, z1) 

plotshape(low1, title="low", text="TP", color=color.red, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0)  //plot for buy icon
plotshape(high1, title="high", text="TP", color=color.green, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0)  //plot for sell icon



//
// Testing Start dates
testStartYear = input(2016, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
//Stop date if you want to use a specific range of dates
testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)


testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false

l = buy
s1 = sell
        
if l and testPeriod()
    strategy.entry("buy", strategy.long)
if s1 and testPeriod()
    strategy.entry("sell", strategy.short)