Estrategias de stop-loss y take-profit siguiendo tendencias


Fecha de creación: 2024-01-24 14:17:28 Última modificación: 2024-01-24 14:17:28
Copiar: 1 Número de Visitas: 661
1
Seguir
1617
Seguidores

Estrategias de stop-loss y take-profit siguiendo tendencias

Descripción general

Esta es una estrategia de seguimiento de tendencias basada en el indicador de la banda de Brin y el uso del indicador ATR para establecer un stop loss. La estrategia primero determina la tendencia del mercado, en la línea IRONMENT, y establece un stop loss en la posición en blanco.

Principio de estrategia

  1. Cálculo de las vías de subida y bajada de la banda de Bryn.
  2. Para determinar si el precio de cierre está por encima de la línea superior o por debajo de la línea inferior, se considerará un mercado de tendencia y un mercado de más y uno de menos.
  3. Si se trata de un mercado de tendencia, se calcula la línea ambiental. La línea ambiental se basa en el precio mínimo menos el valor de ATR (mercado de más tiendas) o el precio máximo más el valor de ATR (mercado de tiendas en blanco).
  4. Si no es un mercado de tendencia, la línea ambiental se mantiene igual a la línea ambiental de la línea K anterior.
  5. Comparar la línea ENVIRONMENT para determinar la dirección de la tendencia. Si la subida es de más cabezas, la bajada es de cabezas vacías.
  6. Cuando la línea ENVIRONMENT cambia de dirección, genera una señal de compra/venta.
  7. Establezca un stop loss: el stop loss fijo es 100 veces el precio de entrada; el stop loss flotante es 1.1 veces el precio de entrada (en el caso de los multi-cabezas) o 0.9 veces el precio de entrada (en el caso de los cabezones vacíos).

Análisis de las ventajas

  1. La estrategia de la empresa es evaluar las tendencias del mercado y reducir las operaciones fraudulentas.
  2. Establezca una línea ENVIRONMENT para evitar ser atrapado.
  3. La suspensión de pérdidas se establece de manera razonable y permite controlar el riesgo al mismo tiempo que garantiza la rentabilidad.

Análisis de riesgos

  1. La configuración incorrecta de los parámetros puede causar oportunidades de negociación perdidas.
  2. El indicador de la franja de Bryn tiene una mayor probabilidad de error en el juicio en situaciones de temblor.
  3. El punto de parada demasiado cerca puede ser eliminado.

Dirección de optimización

  1. Optimización de los parámetros de la cinta de broileros para que sea más adecuada para diferentes variedades.
  2. Optimizar el cálculo de la línea ENVIRONMENT, como la introducción de otros indicadores.
  3. Prueba y optimiza la configuración de los parámetros de la parada de pérdida.

Resumir

Esta es una estrategia para juzgar la tendencia en la banda de Brin y utilizar la línea de ENVIRONMENT para configurar el stop loss. La ventaja central es que el juicio de la tendencia es claro, el cierre de la parada es razonable y el riesgo puede ser controlado de manera efectiva. El principal riesgo reside en el error de juicio de la tendencia de la banda de Brin y el punto de parada es demasiado cercano.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © zhuenrong

// © Dreadblitz
//@version=4
strategy(shorttitle="FLI", title="Follow Line Indicator", overlay=true)
// 
BBperiod      = input(defval = 21,     title = "BB Period",    type = input.integer, minval = 1)
BBdeviations  = input(defval = 1.00,     title = "BB Deviations",    type = input.float, minval = 0.1, step=0.05)
UseATRfilter  = input(defval = true, title = "ATR Filter",  type = input.bool)
ATRperiod     = input(defval = 5,     title = "ATR Period",    type = input.integer, minval = 1)
hl            = input(defval = false, title = "Hide Labels",  type = input.bool)
//
BBUpper=sma (close,BBperiod)+stdev(close, BBperiod)*BBdeviations
BBLower=sma (close,BBperiod)-stdev(close, BBperiod)*BBdeviations
//
TrendLine = 0.0
iTrend = 0.0
buy = 0.0
sell = 0.0
//
BBSignal = close>BBUpper? 1 : close<BBLower? -1 : 0
// 
if BBSignal == 1 and UseATRfilter == 1
    TrendLine:=low-atr(ATRperiod)
    if TrendLine<TrendLine[1] 
        TrendLine:=TrendLine[1]
if BBSignal == -1 and UseATRfilter == 1
    TrendLine:=high+atr(ATRperiod)
    if TrendLine>TrendLine[1]
        TrendLine:=TrendLine[1]
if BBSignal == 0 and UseATRfilter == 1
    TrendLine:=TrendLine[1]
//
if BBSignal == 1 and UseATRfilter == 0
    TrendLine:=low
    if TrendLine<TrendLine[1] 
        TrendLine:=TrendLine[1]
if BBSignal == -1 and UseATRfilter == 0
    TrendLine:=high
    if TrendLine>TrendLine[1]
        TrendLine:=TrendLine[1]
if BBSignal == 0 and UseATRfilter == 0
    TrendLine:=TrendLine[1]
//
iTrend:=iTrend[1]
if TrendLine>TrendLine[1] 
    iTrend:=1
if TrendLine<TrendLine[1] 
    iTrend:=-1
//
buy:=iTrend[1]==-1 and iTrend==1 ? 1 : na
sell:=iTrend[1]==1 and iTrend==-1? 1 : na
//
plot(TrendLine, color=iTrend > 0?color.blue:color.red ,style=plot.style_line,linewidth=2,transp=0,title="Trend Line") 
plotshape(buy == 1 and hl == false? TrendLine-atr(8) :na, text='💣', style= shape.labelup, location=location.absolute, color=color.blue, textcolor=color.white, offset=0, transp=0,size=size.auto)
plotshape(sell == 1 and hl == false ?TrendLine+atr(8):na, text='🔨', style=shape.labeldown, location=location.absolute, color=color.red, textcolor=color.white, offset=0, transp=0,size=size.auto)
//
alertcondition(sell == 1 ,title="Sell",message="Sell")
alertcondition(buy == 1 ,title="Buy",message="Buy")
alertcondition(buy == 1 or sell == 1 ,title="Buy/Sell",message="Buy/Sell")
if (buy==1)
    strategy.entry("Buy", strategy.long)
if (sell==1)
    strategy.entry("Sell", strategy.short)
// === Stop LOSS ===

if strategy.position_size>0
    strategy.exit("Stop Loss/Profit Long","Buy", stop=strategy.position_avg_price*100, limit=strategy.position_avg_price*1.1)
if strategy.position_size<0
    strategy.exit("Stop Loss/Profit Short","Sell", stop=strategy.position_avg_price*100, limit=strategy.position_avg_price*0.9)