La stratégie de suivi double d'AlphaTrend est basée sur les signaux d'achat et de vente générés par l'indicateur AlphaTrend.
Le noyau de la stratégie de suivi double d'AlphaTrend est l'indicateur AlphaTrend. L'indicateur AlphaTrend calcule les bandes supérieures et inférieures en fonction de l'ATR et du prix adaptatif (prix de clôture ou prix moyen pondéré par volume).
Bandes supérieures = basses inférieures - ATR * multiplicateur Bandes inférieures = plus élevé + ATR * multiplicateur
Lorsque le prix est au-dessus de la bande supérieure, la ligne d'indicateur s'approche de la bande supérieure. Lorsque le prix est en dessous de la bande inférieure, la ligne d'indicateur s'approche de la bande inférieure. Ainsi, AlphaTrend forme un canal adaptatif.
La stratégie de suivi double d'AlphaTrend établit des positions longues et courtes en fonction des signaux générés par AlphaTrend.
Cela complète le trading de suivi bidirectionnel basé sur le canal dynamique AlphaTrend.
Le plus grand avantage de la stratégie de suivi double d'AlphaTrend est qu'il peut suivre les changements dans les tendances du marché.
En outre, AlphaTrend combine à la fois des informations sur le prix et le volume (ou l'élan), ce qui aide à filtrer certaines fausses ruptures, améliorant la qualité des signaux de trading.
Le principal risque de la stratégie de suivi double d'AlphaTrend provient d'énormes fluctuations du marché qui pourraient frapper les points de stop loss. Lorsqu'il y a un mouvement anormal du marché, les points de stop loss peuvent être brisés, ce qui entraîne de grandes pertes. Cela doit être contrôlé en ajustant correctement les paramètres ATR et les points de stop loss.
En outre, l'ALPHA lui-même a un certain retard. Il peut également générer des signaux incorrects autour des points tournants du marché. D'autres indicateurs devraient être utilisés pour confirmer les signaux.
La stratégie de suivi double d'AlphaTrend peut être optimisée dans les aspects suivants:
Grâce aux optimisations susmentionnées, la stabilité et la rentabilité de la stratégie AlphaTrend peuvent être encore améliorées.
En résumé, la stratégie de suivi double AlphaTrend est un moyen efficace de suivre les changements du marché. Elle résout le problème des indicateurs techniques traditionnels qui perdent de leur efficacité et incorpore également des informations de volume pour filtrer les signaux. Avec des optimisations appropriées, cette stratégie peut devenir un outil puissant dans les systèmes de trading quantitatif.
/*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!')