La estrategia es una estrategia de seguimiento de tendencias súper en dos marcos de tiempo. Aplica dos indicadores de tendencias súper de diferentes períodos al mismo tiempo, uno como marco principal para determinar la dirección de la tendencia y otro como marco auxiliar para filtrar la entrada. La entrada se realiza cuando los indicadores de tendencias súper de los dos marcos de tiempo se alinean para capturar con mayor precisión los puntos de inflexión de la tendencia.
El indicador central de la estrategia es el indicador de tendencia de la super. El indicador de tendencia de la super determina la dirección de la tendencia relativa de los precios mediante el cálculo de la dispersión de los precios. La estrategia utiliza indicadores de tendencia de la super de dos períodos de tiempo, calculando la línea de tendencia de la super en el marco de tiempo principal y el marco de tiempo auxiliar, respectivamente.
La lógica de la transacción es la siguiente:
La dirección de las líneas de tendencia en el marco de tiempo principal se considera como la dirección de la tendencia general.
Espere a que el marco de tiempo auxiliar entre en juego cuando la línea de tendencia ultra emita una señal de posición isotrópica.
Establezca el punto de parada de pérdidas.
La línea de tendencia en el marco de tiempo principal se vuelve a estabilizar.
Al combinar dos indicadores de ciclo, se pueden filtrar algunas señales de desviación para una entrada más precisa.
La estrategia tiene las siguientes ventajas:
La combinación de dos marcos de tiempo permite una mejor evaluación de las tendencias.
El indicador de tendencia es sensible a los cambios de tendencia y es preciso para entrar.
Configurar el punto de parada de pérdidas para controlar el riesgo.
La lógica de la estrategia es simple, directa y fácil de entender.
Los parámetros se pueden optimizar para adaptarse a diferentes variedades.
Los principales riesgos de esta estrategia son:
El retraso en el indicador de tendencia extrema puede ser una señal de error.
El control de deterioro incorrecto puede causar un exceso de seguimiento o deterioro intencional.
La combinación de dos marcos de tiempo puede perder una oportunidad de reversión más corta.
La optimización de los parámetros depende de los datos históricos y existe el riesgo de sobreajuste.
No se tiene en cuenta el costo de la transacción.
Resolución de las mismas:
Ajuste adecuadamente los parámetros del indicador para introducir la verificación de otras combinaciones de indicadores.
Optimización dinámica de la posición de la parada de pérdida de acuerdo con los datos de retroalimentación.
El ciclo de prueba es más corto como criterio auxiliar.
Ampliar el alcance de la retroalimentación de datos y la verificación de retroalimentación en varios mercados.
Los gastos de transacción incluyen comisiones, puntos de deslizamiento, etc.
La estrategia puede ser mejorada en los siguientes aspectos:
Prueba la combinación de más indicadores para encontrar la combinación óptima.
Introducir métodos de aprendizaje automático para optimizar dinámicamente los parámetros.
Optimización de las estrategias de stop loss y mejora de la relación ganancias/pérdidas.
Probar el efecto combinado de varios ciclos temporales.
Ajuste el intervalo de parada y pérdida de acuerdo con el número de transacciones.
La lógica de cálculo de las tarifas y los puntos de deslizamiento.
Desarrollo de herramientas de optimización de parámetros gráficos.
La estrategia permite un juicio de tendencias y entradas más precisos a través de indicadores de tendencia de más de dos marcos de tiempo. La lógica de la estrategia es simple, clara y fácil de ampliar y optimizar. En el futuro, se pueden introducir más indicadores, parámetros de optimización dinámica y la inclusión de cálculos de costos de transacción para que la estrategia sea más sólida.
/*backtest
start: 2023-08-22 00:00:00
end: 2023-09-21 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//Supertrend Strategy by breizh29 using *rajandran.r* Supertrend Indicator
// strategy("Super Trend 2", overlay=true, default_qty_value=100)
TrendUp = 0.0
TrendDown = 0.0
Trend = 0.0
MTrendUp = 0.0
MTrendDown = 0.0
MTrend = 0.0
res = input(title="Main SuperTrend Time Frame", defval="120")
Factor=input(1, minval=1,maxval = 100)
Pd=input(1, minval=1,maxval = 100)
tp = input(500,title="Take Profit")
sl = input(400,title="Stop Loss")
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
MUp=security(syminfo.tickerid,res,hl2-(Factor*atr(Pd)))
MDn=security(syminfo.tickerid,res,hl2+(Factor*atr(Pd)))
Mclose=security(syminfo.tickerid,res,close)
TrendUp:=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown:=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn
MTrendUp:=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp
MTrendDown:=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn
Trend := close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown
MTrend := Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1)
MTsl = MTrend==1? MTrendUp: MTrendDown
linecolor = Trend == 1 ? green : red
plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")
Mlinecolor = MTrend == 1 ? blue : orange
plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main SuperTrend")
plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)
up = Trend == 1 and Trend[1] == -1 and MTrend == 1
down = Trend == -1 and Trend[1] == 1 and MTrend == -1
plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)
golong = Trend == 1 and Trend[1] == -1 and MTrend == 1
goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1
strategy.entry("Buy", strategy.long,when=golong)
strategy.exit("Close Buy","Buy",profit=tp,loss=sl)
strategy.entry("Sell", strategy.short,when=goshort)
strategy.exit("Close Sell","Sell",profit=tp,loss=sl)