Stratégie de suivi bidirectionnel AlphaTrend


Date de création: 2024-02-02 15:17:01 Dernière modification: 2024-02-02 15:17:01
Copier: 0 Nombre de clics: 814
1
Suivre
1617
Abonnés

Stratégie de suivi bidirectionnel AlphaTrend

Aperçu

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.

Principe de stratégie

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:

  • Il y a aussi une tendance à l’augmentation des prix à la hausse, et à la hausse des prix à la hausse.
  • Lorsque le prix est en dessous de l’indicateur AlphaTrend, faites une pause.

La transaction est ainsi suivie dans les deux sens par un canal dynamique basé sur l’indicateur AlphaTrend.

Analyse des avantages

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.

Analyse des risques

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.

Direction d’optimisation

Les stratégies de suivi bidirectionnel d’AlphaTrend peuvent être optimisées dans les domaines suivants:

  1. Les indicateurs de tendance sont utilisés pour évaluer les principales tendances du marché et éviter les transactions à contre-courant.
  2. L’augmentation des limites de volumes pour éviter les pertes dues aux fausses percées à faible volume;
  3. Optimiser les paramètres de l’indicateur pour que la portée du canal soit plus adaptée aux caractéristiques des différentes variétés;
  4. L’ajout d’algorithmes d’apprentissage automatique pour rendre le canal plus intelligent.

En optimisant les points ci-dessus, vous pouvez améliorer encore la stabilité et la rentabilité de la stratégie AlphaTrend.

Résumer

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.

Code source de la stratégie
/*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!')