Estrategia de stop loss siguiendo la tendencia alfa


Fecha de creación: 2023-11-27 15:25:35 Última modificación: 2023-11-27 15:25:35
Copiar: 0 Número de Visitas: 835
1
Seguir
1617
Seguidores

Estrategia de stop loss siguiendo la tendencia alfa

Descripción general

La estrategia de seguimiento de pérdidas de seguimiento de tendencias alfa se basa en la estrategia de seguimiento de pérdidas de seguimiento, que permite controlar el riesgo de manera más efectiva y mejorar la tasa de retorno general.

Principio de estrategia

La estrategia utiliza primero el indicador Alfa para determinar la tendencia de los precios. Cuando el indicador Alfa sube, es una señal de alza, y cuando el indicador Alfa baja, es una señal de caída. La estrategia genera señales de compra y venta en función de la horquilla dorada del indicador Alfa.

Al mismo tiempo, la estrategia ha activado el mecanismo de seguimiento de la parada de pérdidas. El seguimiento de la parada de pérdidas es el 10% del precio de cierre por defecto del día. Cuando se mantiene una posición de más de una posición, si el precio cae por encima de la parada de pérdidas, la parada de pérdidas se retira; Cuando se mantiene una posición de más de una posición, si el precio sube por encima de la parada de pérdidas, la parada de pérdidas se retira.

Análisis de las ventajas

  1. La tendencia alfa tiene una gran capacidad para determinar la tendencia de los precios y es más eficaz que los indicadores como la media móvil ordinaria.

  2. La activación de un mecanismo de seguimiento de pérdidas puede controlar eficazmente las pérdidas individuales y reducir el riesgo.

  3. La estrategia tiene una fuerte capacidad de control de riesgos, que permite minimizar las pérdidas incluso en situaciones adversas.

  4. La estrategia tiene pocas referencias y es altamente eficiente en el cálculo, lo que la hace adecuada para operaciones de alta frecuencia.

Análisis de riesgos

  1. Esta estrategia genera más señales de negociación innecesarias en el ajuste horizontal, lo que aumenta los costos de negociación y la pérdida de puntos de deslizamiento.

  2. La activación del seguimiento de la pérdida requiere un ajuste razonable de la proporción de pérdidas, ya que una proporción demasiado grande o demasiado pequeña no es beneficiosa para la estrategia.

  3. Cuando los precios de las monedas fluctúan fuertemente, la probabilidad de que se produzca un stop loss es mayor, lo que aumenta el riesgo de cautiverio.

  4. La optimización de los parámetros de stop loss requiere la consideración integral de múltiples factores, como la característica de los parámetros, la frecuencia de las operaciones, y no solo la búsqueda de la maximización de los beneficios.

Este riesgo puede mitigarse mediante la modificación de los parámetros del indicador Alpha, el establecimiento de un DYNAMIC Stop Loss y la reducción del ciclo de negociación.

Dirección de optimización

  1. Se pueden probar diferentes parámetros indicadores para encontrar la combinación más adecuada de parámetros indicadores alfa.

  2. Trate de configurar el Stop Loss en función de la dinámica ATR para adaptarse mejor a la volatilidad del mercado.

  3. Se puede combinar con otros indicadores para filtrar señales, como MACD, KD, etc., para filtrar algunas señales falsas.

  4. Optimización automática de parámetros basada en el disco real y los resultados de las respuestas, inteligencia de la selección de parámetros mediante el uso de tecnologías como el aprendizaje automático.

Resumir

La estrategia de parada de pérdidas de seguimiento de tendencias alfa combina el juicio de tendencias con el control de riesgos, lo que permite determinar eficazmente las tendencias de precios y bloquear los beneficios para reducir el riesgo. En comparación con la simple estrategia de seguimiento de tendencias, esta estrategia puede obtener mayores ganancias estables.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// author © KivancOzbilgic
// developer © KivancOzbilgic
//@version=5

strategy("AlphaTrend Strategy", shorttitle='ATst', overlay=true, format=format.price, precision=2, margin_long=100, margin_short=100)
coeff = input.float(1, 'Multiplier', step=0.1)
AP = input(14, 'Common Period')
ATR = ta.sma(ta.tr, AP)
src = input(close)
showsignalsk = input(title='Show Signals?', defval=false)
novolumedata = input(title='Change calculation (no volume data)?', defval=false)
upT = low - ATR * coeff
downT = high + ATR * coeff
AlphaTrend = 0.0
AlphaTrend := (novolumedata ? ta.rsi(src, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT

color1 = AlphaTrend > AlphaTrend[1] ? #00E60F : AlphaTrend < AlphaTrend[1] ? #80000B : AlphaTrend[1] > AlphaTrend[3] ? #00E60F : #80000B
k1 = plot(AlphaTrend, color=color.new(#0022FC, 0), linewidth=3)
k2 = plot(AlphaTrend[2], color=color.new(#FC0400, 0), linewidth=3)

fill(k1, k2, color=color1)

buySignalk = ta.crossover(AlphaTrend, AlphaTrend[2])
sellSignalk = ta.crossunder(AlphaTrend, AlphaTrend[2])


K1 = ta.barssince(buySignalk)
K2 = ta.barssince(sellSignalk)
O1 = ta.barssince(buySignalk[1])
O2 = ta.barssince(sellSignalk[1])

plotshape(buySignalk and showsignalsk and O1 > K2 ? AlphaTrend[2] * 0.9999 : na, title='BUY', text='BUY', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(#0022FC, 0), textcolor=color.new(color.white, 0))

plotshape(sellSignalk and showsignalsk and O2 > K1 ? AlphaTrend[2] * 1.0001 : na, title='SELL', text='SELL', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.maroon, 0), textcolor=color.new(color.white, 0))


// //ENTER SOME SETUP TRADES FOR TSL EXAMPLE
// longCondition = ta.crossover(ta.sma(close, 10), ta.sma(close, 20))
// if longCondition
//     strategy.entry('My Long Entry Id', strategy.long)

// shortCondition = ta.crossunder(ta.sma(close, 10), ta.sma(close, 20))
// if shortCondition
//     strategy.entry('My Short Entry Id', strategy.short)



longCondition = buySignalk
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = sellSignalk
if (shortCondition)
    strategy.entry("Short", strategy.short)
    

enableTrailing = input.bool(title='Enable Trailing Stop (%)',defval = true)
//TRAILING STOP CODE
trailStop = input.float(title='Trailing (%)', minval=0.0, step=0.1, defval=10) * 0.01



longStopPrice = 0.0
shortStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - trailStop)
    math.max(stopValue, longStopPrice[1])
else
    0
shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + trailStop)
    math.min(stopValue, shortStopPrice[1])
else
    999999

//PLOT TSL LINES
plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Long Trail Stop', offset=1, title='Long Trail Stop')
plot(series=strategy.position_size < 0 ? shortStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Short Trail Stop', offset=1, title='Short Trail Stop')

    
if enableTrailing
    //EXIT TRADE @ TSL
    if strategy.position_size > 0
        strategy.exit(id='Close Long', stop=longStopPrice)
    if strategy.position_size < 0
        strategy.exit(id='Close Short', stop=shortStopPrice)