Estrategia de seguimiento bidireccional de AlphaTrend


Fecha de creación: 2024-02-02 15:17:01 Última modificación: 2024-02-02 15:17:01
Copiar: 0 Número de Visitas: 814
1
Seguir
1617
Seguidores

Estrategia de seguimiento bidireccional de AlphaTrend

Descripción general

La estrategia de seguimiento bidireccional de AlphaTrend es una estrategia de negociación basada en las señales de compra y venta del indicador AlphaTrend. La estrategia puede abrir posiciones de más y de menos en las áreas donde el indicador AlphaTrend genera señales de compra y venta.

Principio de estrategia

El núcleo de la estrategia de seguimiento bidireccional de AlphaTrend es el indicador AlphaTrend. El indicador AlphaTrend se basa en una combinación de amplitud real media (ATR) y precio (precio de cierre o precio medio ponderado por volumen de transacción) basado en la adaptación.

El precio de salida = el precio mínimo - ATR * factor La línea inferior = precio máximo + ATR * factor

El ATR es el promedio de la amplitud real en un período determinado, y el coeficiente es un parámetro ajustable. Cuando el precio está por encima de la vía, la línea del indicador está cerca de la vía; cuando el precio está por debajo de la vía, la línea del indicador está cerca de la vía.

La estrategia de seguimiento bidireccional de AlphaTrend se basa en señales de los indicadores de AlphaTrend para establecer posiciones de más y de menos. La lógica específica es:

  • Cuando el precio sube por el indicador AlphaTrend, haz más.
  • Cuando el precio cruza el indicador AlphaTrend, haga una brecha.

Así se completan las operaciones de seguimiento bidireccional basadas en el canal dinámico del indicador AlphaTrend.

Análisis de las ventajas

La mayor ventaja de la estrategia de seguimiento bidireccional de AlphaTrend es la capacidad de seguir los cambios en las tendencias del mercado. La ATR adaptable puede ajustar el alcance del canal según los cambios en la volatilidad del mercado, evitando el problema de que los indicadores tradicionales como el Brin Belt son susceptibles a fallar debido a la expansión de la volatilidad.

Además, los indicadores de AlphaTrend, combinados con el precio y el volumen de transacción (o la fuerza dinámica), pueden filtrar algunas brechas falsas. Esto también mejora la calidad de las señales de estrategia.

Análisis de riesgos

El principal riesgo de la estrategia de seguimiento bidireccional de AlphaTrend proviene del impacto de las grandes sacudidas en el mercado en el canal indicador. Cuando el mercado presenta una fluctuación anormal, los puntos de parada pueden ser superados, lo que provoca grandes pérdidas. Esto requiere controlar el riesgo mediante el ajuste adecuado de los parámetros ATR y los puntos de parada.

Además, el indicador ALPHA tiene un cierto retraso en sí mismo. Por lo tanto, también se producen señales erróneas cerca de los puntos de inflexión. Esto requiere la ayuda de otros indicadores para confirmar.

Dirección de optimización

Las estrategias de seguimiento bidireccional de AlphaTrend se pueden optimizar en los siguientes aspectos:

  1. En combinación con los indicadores de tendencia, para determinar las principales tendencias del mercado y evitar el comercio en contra.
  2. Aumentar los límites de volumen para evitar pérdidas por brechas falsas en cantidades bajas;
  3. Optimizar los parámetros de los indicadores para que el alcance de los canales se ajuste mejor a las características de las diferentes variedades;
  4. El objetivo de este proyecto es aumentar la inteligencia de las vías a través de algoritmos de aprendizaje automático.

Con las optimizaciones mencionadas, se puede mejorar aún más la estabilidad y la rentabilidad de las estrategias de AlphaTrend.

Resumir

La estrategia de seguimiento bidireccional de AlphaTrend es una estrategia eficaz para seguir los cambios en el mercado en general. Soluciona el problema de la ineficacia de los indicadores técnicos tradicionales y combina el volumen de transacciones para filtrar las señales.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 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', shorttitle='AT', overlay=true, format=format.price, precision=2)
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=true)
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[2] ? #00E60F : AlphaTrend < AlphaTrend[2] ? #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))



longCondition = buySignalk and showsignalsk and O1 > K2
if (longCondition)
    
    strategy.entry("BUY", strategy.long, comment = "BUY ENTRY")

shortCondition = sellSignalk and showsignalsk and O2 > K1
if (shortCondition )
    
    strategy.entry("SELL", strategy.short, comment = "SELL ENTRY")













// alertcondition(buySignalk and O1 > K2, title='Potential BUY Alarm', message='BUY SIGNAL!')
// alertcondition(sellSignalk and O2 > K1, title='Potential SELL Alarm', message='SELL SIGNAL!')

// alertcondition(buySignalk[1] and O1[1] > K2, title='Confirmed BUY Alarm', message='BUY SIGNAL APPROVED!')
// alertcondition(sellSignalk[1] and O2[1] > K1, title='Confirmed SELL Alarm', message='SELL SIGNAL APPROVED!')



// alertcondition(ta.cross(close, AlphaTrend), title='Price Cross Alert', message='Price - AlphaTrend Crossing!')
// alertcondition(ta.crossover(low, AlphaTrend), title='Candle CrossOver Alarm', message='LAST BAR is ABOVE ALPHATREND')
// alertcondition(ta.crossunder(high, AlphaTrend), title='Candle CrossUnder Alarm', message='LAST BAR is BELOW ALPHATREND!')

// alertcondition(ta.cross(close[1], AlphaTrend[1]), title='Price Cross Alert After Bar Close', message='Price - AlphaTrend Crossing!')
// alertcondition(ta.crossover(low[1], AlphaTrend[1]), title='Candle CrossOver Alarm After Bar Close', message='LAST BAR is ABOVE ALPHATREND!')
// alertcondition(ta.crossunder(high[1], AlphaTrend[1]), title='Candle CrossUnder Alarm After Bar Close', message='LAST BAR is BELOW ALPHATREND!')