Estrategia de trailing stop loss basada en stop loss puntual y take profit


Fecha de creación: 2024-01-11 11:04:57 Última modificación: 2024-01-11 11:04:57
Copiar: 0 Número de Visitas: 695
1
Seguir
1617
Seguidores

Estrategia de trailing stop loss basada en stop loss puntual y take profit

Descripción general

La idea central de la estrategia es utilizar la cruz de EMA y WMA como señal de entrada y combinar los stop-loss con un stop-loss basado en el cálculo de puntos. Su mayor ventaja es que se puede controlar el riesgo de manera muy flexible y precisa, controlando la amplitud del stop-loss ajustando el tamaño del número de puntos.

Principio de estrategia

Cuando la EMA se desvía hacia abajo para romper el WMA, se produce una señal de más; cuando la EMA se desvía hacia abajo para romper el WMA, se produce una señal de más. Una vez en posición, se calcula el punto de entrada en tiempo real y se establece un stop loss y un stop loss sobre esa base. Por ejemplo, si se establece un stop loss de 20 puntos y un stop loss de 100 puntos, el precio de stop loss específico será el precio de entrada menos 20 puntos.*El valor del contrato, el precio de parada es el precio de entrada más 100 puntos*Valor del contrato. Así se controlan los riesgos y los beneficios.

Al mismo tiempo, la estrategia también se combina con la oferta actual con la comparación de los paros históricos, para ajustar la posición de parada móvil y lograr el seguimiento de los paros en movimiento.

Análisis de las ventajas

La mayor ventaja de esta estrategia, en comparación con los puntos fijos o el porcentaje de stop loss, es que se puede controlar el riesgo de manera muy flexible y precisa. El tamaño de los puntos de ajuste puede afectar directamente al tamaño de la amplitud del stop loss. Esto es muy útil para diferentes variedades y se puede ajustar de forma sutil según la frecuencia y amplitud de las fluctuaciones del mercado.

Además, el Stop Loss en Movimiento es una función muy práctica. Puede seguir y ajustar las posiciones de stop loss en función de los cambios en la situación en tiempo real, garantizando el control del riesgo y buscando la mayor rentabilidad posible.

Análisis de riesgos

El riesgo de esta estrategia proviene principalmente de los dos indicadores EMA y WMA en sí mismos. Cuando las condiciones cambian drásticamente, a menudo emiten señales erróneas y son propensos a la pérdida. En este caso, se recomienda una relajación adecuada de los puntos de pérdida o considerar la sustitución de otras combinaciones de indicadores.

Otro punto de riesgo es que el stop loss es difícil de mantener a la par. Si se busca un stop más alto, generalmente se requiere asumir un riesgo mayor, lo que es fácil de detener cuando el mercado cambia. Por lo tanto, la configuración del stop loss debe ser cuidadosamente probada y evaluada.

Dirección de optimización

La estrategia puede ser optimizada en las siguientes direcciones:

  1. Prueba combinaciones de EMA y WMA de diferentes parámetros para encontrar el mejor parámetro.
  2. Prueba con otros indicadores como el MACD, el KDJ o combinaciones de ellos para ver si puedes mejorar la tasa de éxito.
  3. Evaluar el riesgo-beneficio de los diferentes puntos de parada de pérdidas y encontrar la configuración óptima;
  4. Estudiar las características de las diferentes variedades y ajustar los parámetros para adaptarse a los diferentes mercados;
    1. Incorporación de algoritmos de aprendizaje automático para la optimización dinámica de los parámetros

Resumir

La idea central de la estrategia es simple y clara, basada en los indicadores EMA y WMA, para el control de riesgos mediante el uso de mecanismos de detención de pérdidas basados en el cálculo de puntos. La ventaja de la estrategia reside en que el control de riesgos es preciso y flexible, y se puede ajustar adecuadamente según los diferentes mercados. Posteriormente, se puede optimizar en profundidad desde la señal de entrada, la selección de parámetros, el mecanismo de detención de pérdidas, etc., para que la estrategia se adapte mejor a un entorno de mercado complejo y cambiante.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-03 00:00:00
end: 2024-01-10 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// inspiration script from: @ahmad_naquib
// inspiration script link: https://www.tradingview.com/script/tGTV8MkY-Two-Take-Profits-and-Two-Stop-Loss/
// inspiration strategy script name: Two Take Profits and Two Stop Loss


////////////
// Do not use this strategy, it's just an exmaple !! The goal from this script is to show you TP and SL based on PIPS
////////////


//@version=5
strategy('SL & TP based on Pips', "PIP SL & TP", overlay=true, initial_capital=1000)

// MA
ema_period = input(title='EMA period', defval=10)
wma_period = input(title='WMA period', defval=20)
ema = ta.ema(close, ema_period)
wma = ta.wma(close, wma_period)

// Entry Conditions
long = ta.crossover(ema, wma) and nz(strategy.position_size) == 0
short = ta.crossunder(ema, wma) and nz(strategy.position_size) == 0

// Pips Calculation
pip1 = input(20, title = "TP PIP", group = "PIP CALCULATION") * 10 * syminfo.mintick
pip2 = input(20, title = "SL PIP", group = "PIP CALCULATION") * 10 * syminfo.mintick

// Trading parameters 
var bool LS = na
var bool SS = na

var float EP = na // Entry Position
var float TVL = na
var float TVS = na
var float TSL = na
var float TSS = na

var float TP1 = na
//var float TP2 = na
var float SL1 = na
///var float SL2 = na

// SL & TP Values
// there's also SL2 and TP2 in case you want to add them to your script, 
//also you can add a break event in the strategy.entry section.

if short or long and strategy.position_size == 0
    EP := close
    SL1 := EP - pip2 * (short ? -1 : 1)
    //SL2 := EP - pip2 * (short ? -1 : 1)
    
    TP1 := EP + pip1 * (short ? -1 : 1)
    //TP2 := EP + pip1 * 2 * (short ? -1 : 1)


// current trade direction    
LS := long or strategy.position_size > 0
SS := short or strategy.position_size < 0

// adjust trade parameters and trailing stop calculations
TVL := math.max(TP1, open) - pip1[1]
TVS := math.min(TP1, open) + pip1[1]
TSL := open[1] > TSL[1] ? math.max(TVL, TSL[1]) : TVL
TSS := open[1] < TSS[1] ? math.min(TVS, TSS[1]) : TVS

//if LS and high > TP1
    //if open <= TP1
        //SL2 := math.min(EP, TSL)

//if SS and low < TP1
    //if open >= TP1
        //SL2 := math.max(EP, TSS)


// Closing conditions
// and those are a closing conditions in case you want to add them.

//close_long = LS and open < SL2
//close_short = SS and open > SL2

// Buy
if (long and not SS)
    strategy.entry('buy', strategy.long)
strategy.exit('exit1', from_entry='buy', stop=SL1, limit=TP1, qty_percent=100)
//strategy.exit('exit2', from_entry='buy', stop=SL2, limit=TP2)

// Sell
if (short and not LS)
    strategy.entry('sell', strategy.short)
strategy.exit('exit3', from_entry='sell', stop=SL1, limit=TP1, qty_percent=100)
//strategy.exit('exit4', from_entry='sell', stop=SL2, limit=TP2)

// Plots
// those are plots for the lines of The tp and sl. they are really useful, and in the next update I will use a filling option.

a = plot(strategy.position_size > 0 ? SL1 : na, color=color.new(#af0829, 30), linewidth = 2, style=plot.style_linebr)
b = plot(strategy.position_size < 0 ? SL1 : na, color=color.new(#af0829, 30), linewidth = 2, style=plot.style_linebr)

c = plot(strategy.position_size > 0 ? TP1 : na, color=color.new(#2e7e00, 30), linewidth = 2, style=plot.style_linebr)
d = plot(strategy.position_size < 0 ? TP1 : na, color=color.new(#2e7e00, 30), linewidth = 2, style=plot.style_linebr)

g = plot(strategy.position_size >= 0 ? na : EP, color=color.new(#ffffff, 50), style=plot.style_linebr)
h = plot(strategy.position_size <= 0 ? na : EP, color=color.new(#ffffff, 50), style=plot.style_linebr)


// those are plot for the TP2 and SL2, they are optional if you want to add them.

//e = plot(strategy.position_size > 0 ? TP2 : na, color=color.new(#00ced1, 0), style=plot.style_linebr)
//f = plot(strategy.position_size < 0 ? TP2 : na, color=color.new(#00ced1, 0), style=plot.style_linebr)


//those are the plot for the ema and wma strategy for short and long signal. they are not really a good strategy, I just used them as an example
//but you have the option to plot them or not.
// do not use this strategy, it's just an exmaple !! The goal from this script is to show you TP and SL based on PIPS

//plot(ema, title='ema', color=color.new(#fff176, 0))
//plot(wma, title='wma', color=color.new(#00ced1, 0))