Stratégie inter-périodes basée sur AlphaTrend


Date de création: 2023-09-28 11:05:27 Dernière modification: 2023-09-28 11:05:27
Copier: 0 Nombre de clics: 903
1
Suivre
1617
Abonnés

Aperçu

Cette stratégie est basée sur l’indicateur AlphaTrend, qui combine les avantages des deux indicateurs RSI et MFI pour obtenir un meilleur effet stratégique dans un marché à tendance multi-zones. La stratégie détermine principalement si le prix a franchi la courbe AlphaTrend pour capturer la direction de la tendance.

Principe de stratégie

  1. Calculer l’indicateur ATR pour mesurer la volatilité du marché
  2. Si le volume de transactions n’est pas disponible, le RSI est utilisé pour déterminer si le marché est vide; si le volume de transactions est disponible, le MFI est utilisé pour déterminer si le marché est vide
  3. Calcul sur et en dessous de la voie en fonction de l’ATR et du jugement de polyvalence
  4. Calculer la courbe AlphaTrend, qui combine les ajustements de la dynamique ascendante et descendante
  5. Les signaux d’achat et de vente sont émis lorsque les prix traversent la courbe AlphaTrend

La stratégie s’appuie principalement sur la courbe AlphaTrend pour déterminer la direction de la tendance des prix. Elle prend en compte les mesures de volatilité du marché ATR, le RSI et l’indicateur de la hausse des MFI, permettant de suivre efficacement la tendance des prix.

Avantages stratégiques

  1. L’indicateur AlphaTrend combine les avantages des deux indicateurs RSI et MFI pour s’adapter à la fois à une situation de marge libre
  2. Le réglage dynamique de la voie ascendante et descendante peut être ajusté automatiquement en fonction des fluctuations du marché
  3. Les informations sur les prix et les volumes de transactions sont prises en compte de manière globale et ne sont pas facilement induites en erreur par des signaux contradictoires.
  4. La technologie de pointe permet de saisir les nouvelles tendances en temps opportun
  5. La logique est claire, simple et facile à comprendre.

Dans l’ensemble, la stratégie est applicable à toutes les conditions de marché, elle filtre efficacement le bruit du marché, elle identifie les tendances avec plus de précision et elle est une stratégie de suivi de tendances plus précise et plus efficace.

Risque stratégique

  1. La courbe d’AlphaTrend peut être faussement brisée et doit être vérifiée avec d’autres indicateurs
  2. Des signaux inefficaces peuvent apparaître à plusieurs reprises lors d’un tremblement de terre majeur
  3. Une mauvaise configuration des paramètres de l’indicateur peut également affecter les résultats de la stratégie
  4. La baisse de la tempête, avec un risque de rupture du stop loss, est un signe d’une perte importante

Pour les risques, il est possible de définir un stop-loss pour contrôler les pertes individuelles; optimiser les combinaisons de paramètres, utilisées avec d’autres combinaisons d’indicateurs pour réduire les signaux inefficaces; ajuster les paramètres en fonction des différents marchés.

Optimisation de la stratégie

  1. Vous pouvez essayer différentes combinaisons de paramètres pour trouver le meilleur.
  2. Peut être combiné avec d’autres indicateurs pour former des conditions auxiliaires qui aident à juger
  3. Vous pouvez définir un stop-loss dynamique ou un stop-loss suivi pour contrôler le risque
  4. La fréquence de négociation peut varier en fonction des conditions du marché (par exemple 5 minutes, 15 minutes, etc.)
  5. Optimiser le timing de l’entrée et définir des conditions d’entrée plus précises

En testant différents marchés et paramètres, la stratégie peut être optimisée pour s’adapter à d’autres types de situations.

Résumer

La stratégie AlphaTrend est une stratégie simple et efficace pour suivre la tendance dans son ensemble. Elle combine les prix et le volume des transactions pour s’adapter à l’hypermarché.

Code source de la stratégie
/*backtest
start: 2023-09-20 00:00:00
end: 2023-09-26 00:00:00
period: 30m
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
// pv additions, simplification and strategy conversion @ treigen
//@version=5
strategy('AlphaTrend For ProfitView', overlay=true, calc_on_every_tick=true, process_orders_on_close=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1, initial_capital=1000)
coeff = input.float(1.5, 'Multiplier', step=0.1)
AP = input(15, 'Common Period')
ATR = ta.sma(ta.tr, AP)
novolumedata = input(title='Change calculation (no volume data)?', defval=false)

i_startTime = input(defval = timestamp("01 Jan 2014 00:00 +0000"), title = "Backtesting Start Time", inline="timestart", group='Backtesting')
i_endTime = input(defval = timestamp("01 Jan 2100 23:59 +0000"), title = "Backtesting End Time", inline="timeend", group='Backtesting')
timeCond = true

pv_ex = input.string('', title='Exchange', tooltip='Leave empty to use the chart ticker instead (Warning: May differ from actual market name in some instances)', group='PV Settings')
pv_sym = input.string('', title='Symbol', tooltip='Leave empty to use the chart ticker instead (Warning: May differ from actual market name in some instances)', group='PV Settings')
pv_acc = input.string("", title="Account", group='PV Settings')
pv_alert_long = input.string("", title="PV Alert Name Longs", group='PV Settings')
pv_alert_short = input.string("", title="PV Alert Name Shorts", group='PV Settings')
pv_alert_test = input.bool(false, title="Test Alerts", tooltip="Will immediately execute the alerts, so you may see what it sends. The first line on these test alerts will be excluded from any real alert triggers" ,group='PV Settings')

upT = low - ATR * coeff
downT = high + ATR * coeff
AlphaTrend = 0.0
AlphaTrend := (novolumedata ? ta.rsi(close, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT


k1 = plot(AlphaTrend, color=color.new(#0022FC, 0), linewidth=3)
k2 = plot(AlphaTrend[2], color=color.new(#FC0400, 0), linewidth=3)

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

var exsym = ""
if barstate.isfirst
    exsym := pv_ex == "" ? "" : "ex=" + pv_ex + ","
    exsym := pv_sym == "" ? exsym : exsym + "sym=" + pv_sym + ","


if barstate.isconfirmed and timeCond 
    if strategy.position_size <= 0 and buySignalk
        strategy.entry("Buy", strategy.long)
        alert(pv_alert_long + "(" + exsym + "acc=" + pv_acc + ")", alert.freq_once_per_bar_close)
    if strategy.position_size >= 0 and sellSignalk
        strategy.entry("Sell", strategy.short)
        alert(pv_alert_short + "(" + exsym + "acc=" + pv_acc + ")", alert.freq_once_per_bar_close)


//  Only used for testing/debugging alert messages
if pv_alert_test
    alert("<![Alert Test]!>\n" + pv_alert_long + "(" + exsym + "acc=" + pv_acc + ")", alert.freq_once_per_bar)
    alert("<![Alert Test]!>\n" + pv_alert_short + "(" + exsym + "acc=" + pv_acc + ")", alert.freq_once_per_bar)