Estrategia de seguimiento de tendencias basada en el indicador de canal SSL


Fecha de creación: 2023-11-27 16:42:34 Última modificación: 2023-11-27 16:42:34
Copiar: 0 Número de Visitas: 1445
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencias basada en el indicador de canal SSL

Descripción general

La estrategia es una estrategia de seguimiento de tendencias basada en indicadores de la vía SSL. Combina la gestión de stop loss y stop loss para bloquear las ganancias y lograr un crecimiento estable de los fondos.

Principio de estrategia

La lógica principal del código es usar la cruz dorada de SSL en la vía superior y baja para juzgar la dirección de la tendencia. Concretamente, cuando la vía superior de SSL rompe la vía inferior de SSL desde la dirección inferior, haga más; cuando la vía inferior de SSL rompe la vía superior de SSL desde la dirección inferior, haga vacío.

Una vez en posición, la estrategia utiliza el indicador ATR multiplicado por un factor para establecer el precio de parada y el precio de parada. Por ejemplo, el precio de parada es el precio menos ATR * 1.5, el precio de parada es el precio más ATR * 1. Esto puede controlar eficazmente las pérdidas individuales y bloquear los beneficios.

Cuando el canal SSL se deshace, la posición se estabiliza. De esta manera, se puede seguir el punto de inflexión de la tendencia y detener la pérdida a tiempo.

Análisis de las ventajas

  1. Alta precisión en la dirección de la tendencia usando el canal SSL
  2. La configuración de los paradores y los detonadores es razonable y permite controlar el riesgo de manera efectiva.
  3. El cambio de tendencia es el resultado de un cambio de tendencia que se produce en el tiempo.

Análisis de riesgos

  1. El comercio de tendencias es propenso a la sobrecambio
  2. La probabilidad de fallo en el juicio del canal SSL
  3. Necesidad de optimizar el coeficiente ATR

La solución es la siguiente:

  1. Ajuste apropiado del ciclo de la posición
  2. Confirmación en combinación con otros indicadores
  3. Prueba de diferentes combinaciones de coeficientes ATR

Dirección de optimización

  1. Optimización de los parámetros ATR para encontrar la combinación óptima
  2. Añadir otros indicadores para filtrar y confirmar señales
  3. El ciclo de tenencia de las posiciones se ajusta según los diferentes mercados
  4. Optimización de las estrategias de stop loss

Resumir

La estrategia tiene una idea general clara, utiliza el canal SSL para juzgar las tendencias y establece un stop loss razonable. Sin embargo, aún se necesita más prueba y optimización, en combinación con otros indicadores para filtrar las falsas señales y encontrar la combinación de parámetros óptima. Al mismo tiempo, se deben ajustar los parámetros según los diferentes mercados para que la estrategia sea más flexible. En general, la estrategia proporciona un marco fiable para lograr un ingreso estable.

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

//@version=3
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Designed per No Nonsense Forex VP rules
//For testing your individual indicators before the full system
//Originated from causecelebre
//Tried to put in as much VP rules as possible

///////////////////////////////////////////////////
//Rules Implemented:
///////////////////////////////////////////////////
// - SL 1.5 x ATR
// - TP 1 x ATR
//
// - Entry conditions
//// - Entry from 1 x confirmation
// - Exit conditions
//// - Exit on confirmation flip 

///////////////////////////////////////////////////
//Trades entries
///////////////////////////////////////////////////
// - First entry L1 or S1 with standard SL and TP

///////////////////////////////////////////////////
//Included Indicators and settings
///////////////////////////////////////////////////
// - Confirmtion = SSL 10

///////////////////////////////////////////////////
//Credits
// Strategy causecelebre https://www.tradingview.com/u/causecelebre/
// SSL Channel ErwinBeckers https://www.tradingview.com/u/ErwinBeckers/
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Change log
//First release. Testing of indicators
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

strategy(title="NNFX Strategy Indicator | jh", overlay = true )

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  **** Set the main stuff  ****
///////////////////////////////////////////////////

//Price
price = close

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ATR stuff
///////////////////////////////////////////////////

slMultiplier = input(1.5, "SL")
tpMultiplier = input(1, "TP")

atrlength = input(title="ATR Length", defval=14, minval=1)
atrsmoothing = input(title="Smoothing", defval="SMA", options=["RMA", "SMA", "EMA", "WMA"])

ma_function(source, atrlength) => 
    if atrsmoothing == "RMA"
        rma(source, atrlength)
    else
        if atrsmoothing == "SMA"
            sma(source, atrlength)
        else
            if atrsmoothing == "EMA"
                ema(source, atrlength)
            else
                wma(source, atrlength)

//plot(ma_function(tr(true), atrlength), title = "ATR", color=#991515, transp=0)

atr = ma_function(tr(true), atrlength)

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  **** Confirmation ****
///////////////////////////////////////////////////

ssllen=input(title="SSL Length Period", defval=10)
smaHigh=sma(high, ssllen)
smaLow=sma(low, ssllen)
Hlv = na
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh: smaLow
sslUp   = Hlv < 0 ? smaLow : smaHigh

plot(sslDown, "SSL Down", linewidth=1, color=red)
plot(sslUp, "SSL Up", linewidth=1, color=lime)

///////////////////////////////////////////////////
//Confirm Signals
///////////////////////////////////////////////////

c_Up = sslUp
c_Down = sslDown

//Signals based on crossover
c_Long = crossover(c_Up, c_Down)
c_Short = crossover(c_Down, c_Up)

//Signals based on signal position
trendLong = c_Up > c_Down ? 1 : 0
trendShort = c_Down > c_Up ? 1 : 0

confirmLong = c_Long
confirmShort = c_Short

plotshape(trendLong, color = green, style=shape.triangleup, location=location.bottom)
plotshape(trendShort, color = red, style=shape.triangledown, location=location.bottom)


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Entries and Exits
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (year>2009)

    //Long entries with standard 1.5 ATR for SL, 1 ATR for TP
    long_sl = price - (atr * slMultiplier)
    long_tp = price + (atr * tpMultiplier)
    strategy.order("L1", strategy.long, when = confirmLong)
    strategy.close("L1", when = confirmShort)
    strategy.exit("L Limit Exit", "L1", stop = long_sl, limit = long_tp)

    
    //Short entries with standard 1.5 ATR for SL, 1 ATR for TP
    short_sl = price + (atr * slMultiplier)
    short_tp = price - (atr * tpMultiplier)
    strategy.order("S1", strategy.short, when = confirmShort)
    strategy.close("S1", when = confirmLong)
    strategy.exit("S Limit Exit", "S1", stop = short_sl, limit = short_tp)


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//End
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////