No hay estrategia de comercio de canales SSL sin sentido

El autor:¿ Qué pasa?, Fecha: 2023-11-27 16:42:34
Las etiquetas:

img

Resumen general

Se trata de una estrategia de seguimiento de tendencias basada en el indicador SSL Channel, que incorpora la gestión de pérdidas y beneficios para obtener beneficios para un crecimiento constante del capital.

Estrategia lógica

La lógica principal del código es usar la cruz de oro de las bandas superior e inferior de SSL para determinar la dirección de la tendencia.

Después de ingresar una posición, la estrategia utilizará ATR multiplicado por un coeficiente para establecer los precios de stop loss y take profit. Por ejemplo, el precio de stop loss es el precio menos ATR * 1.5 y el precio de take profit es el precio más ATR * 1. Esto puede controlar eficazmente la pérdida única y bloquear las ganancias.

Cuando el canal SSL cruce, cierre la posición. Esto puede rastrear los puntos de inflexión en la tendencia para detener las pérdidas oportunas.

Análisis de ventajas

  1. El canal SSL es muy preciso para determinar la dirección de la tendencia
  2. Los ajustes de stop loss y take profit son razonables para controlar eficazmente el riesgo
  3. Los puntos de inflexión de la tendencia se registran en el momento oportuno de las pérdidas de parada

Análisis de riesgos

  1. El comercio de tendencias puede llevar fácilmente a un exceso de operaciones
  2. Existe una probabilidad de fallo en el juicio del canal SSL
  3. Es necesario optimizar los coeficientes ATR

Las soluciones correspondientes:

  1. Ajustar adecuadamente el período de retención
  2. Incorporar otros indicadores para su confirmación
  3. Prueba de diferentes combinaciones de coeficientes ATR

Direcciones de optimización

  1. Optimizar los parámetros ATR para encontrar la combinación óptima de parámetros
  2. Aumentar otros indicadores para filtrar y confirmar señales
  3. Ajuste de los períodos de retención según los diferentes mercados
  4. Optimizar las estrategias de stop loss y take profit

Resumen de las actividades

La lógica general de esta estrategia es clara, utilizando el canal SSL para determinar la tendencia y establecer un stop loss y take profit razonables. Pero aún se necesita más pruebas y optimización, incorporando otros indicadores para filtrar señales falsas y encontrar la mejor combinación de parámetros. Al mismo tiempo, los parámetros deben ajustarse de acuerdo con diferentes mercados para hacer que la estrategia sea más flexible. En general, esta estrategia proporciona un marco confiable para lograr ingresos constantes.


/*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
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



    




Más.