
La stratégie de suivi bidirectionnel AlphaTrend est une stratégie de négociation basée sur les signaux d’achat et de vente de l’indicateur AlphaTrend. Cette stratégie permet d’ouvrir des positions à plusieurs têtes et à vide dans les zones où l’indicateur AlphaTrend génère des signaux d’achat et de vente.
Le cœur de la stratégie de suivi bidirectionnel AlphaTrend est l’indicateur AlphaTrend. L’indicateur AlphaTrend est basé sur une combinaison d’une amplitude réelle moyenne (ATR) et d’un prix (prix de clôture ou prix moyen pondéré).
Le coefficient ATR est le coefficient ATR. La piste inférieure = prix maximal + ATR * facteur
L’ATR est l’amplitude réelle moyenne d’un certain cycle passé, le coefficient est un paramètre réglable. Lorsque le prix est supérieur à la trajectoire ascendante, la ligne de l’indicateur est proche de la trajectoire ascendante; lorsque le prix est inférieur à la trajectoire descendante, la ligne de l’indicateur est proche de la trajectoire descendante. Ainsi, l’indicateur AlphaTrend forme un canal adaptatif.
La stratégie de suivi bidirectionnel d’AlphaTrend est basée sur les signaux de l’indicateur AlphaTrend pour établir des positions à plusieurs têtes et à vide. La logique spécifique est la suivante:
La transaction est ainsi suivie dans les deux sens par un canal dynamique basé sur l’indicateur AlphaTrend.
Le plus grand avantage de la stratégie de suivi bidirectionnel AlphaTrend réside dans la possibilité de suivre les changements de tendance du marché. L’ATR adaptatif est capable d’ajuster la portée du canal en fonction des changements de la volatilité du marché, évitant ainsi le problème que les indicateurs traditionnels tels que les bandes de browning sont susceptibles d’échouer en raison de l’expansion de la volatilité.
En outre, l’indicateur AlphaTrend, combinant le prix et le volume de transactions (ou la dynamique), est capable de filtrer les fausses ruptures. Cela améliore également la qualité des signaux stratégiques.
Le risque principal de la stratégie de suivi bidirectionnel AlphaTrend provient de l’impact d’une grande secousse sur le canal de l’indicateur. Lorsque le marché est anormalement volatile, le point d’arrêt peut être franchi, ce qui entraîne de grandes pertes. Il est nécessaire de contrôler le risque en ajustant correctement les paramètres ATR et les points d’arrêt.
En outre, l’indicateur ALPHA lui-même est en retard. Il peut donc produire un signal erroné à proximité d’un point de basculement. Cela nécessite l’aide d’autres indicateurs pour confirmer.
Les stratégies de suivi bidirectionnel d’AlphaTrend peuvent être optimisées dans les domaines suivants:
En optimisant les points ci-dessus, vous pouvez améliorer encore la stabilité et la rentabilité de la stratégie AlphaTrend.
La stratégie de suivi bidirectionnel AlphaTrend est une stratégie efficace pour suivre les changements du marché dans son ensemble. Elle résout le problème de l’inefficacité des indicateurs techniques traditionnels et combine le volume des transactions pour filtrer les signaux.
/*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!')