Stratégie de percée latérale à moyenne mobile unique


Date de création: 2024-02-02 11:19:19 Dernière modification: 2024-02-02 11:19:19
Copier: 0 Nombre de clics: 537
1
Suivre
1617
Abonnés

Stratégie de percée latérale à moyenne mobile unique

Aperçu

La stratégie de rupture de la courbe horizontale à un seul point médian est une stratégie de négociation quantitative basée sur l’indicateur de dynamique de Chande. Cette stratégie permet de déterminer si le marché est en phase de liquidation de la courbe horizontale en calculant la dynamique du prix.

Principe de stratégie

La stratégie commence par calculer la dynamique de la variation des prix.mommEt ensuite, on le divise en masse positive.m1et négatifm2On calcule ensuite la somme des forces positives et négatives sur un certain cycle.sm1etsm2Il a fini par obtenir l’indicateur de dynamique de Chande.chandeMOL’indicateur a 0 comme axe central, lorsque l’indicateur est supérieur à 0 indique que la force ascendante est supérieure à la force descendante, et vice versa lorsque l’indicateur est inférieur à 0.

Lorsque l’indicateur de la dynamique de Chande franchit la ligne d’achat à partir du bas, indiquant que le prix est sorti de la période de baisse et est entré dans la phase de levage en vue de la hausse, la stratégie effectue une opération d’achat. Lorsque l’indicateur franchit la ligne de vente à partir du haut, une opération de vente est effectuée.

Analyse des avantages

  • Cette stratégie permet de capturer les points de basculement des prix, puis de ralliement et de hausse, permettant ainsi de faire des achats bas et des ventes hautes.
  • L’indicateur de dynamique de Chande prend en compte la vitesse et l’intensité des variations de prix et est un excellent outil pour déterminer les tendances.
  • Les stratégies sont simples et faciles à mettre en œuvre.

Analyse des risques

  • L’indicateur de la dynamique de Chande est sensible aux paramètres et les paramètres de différentes périodes peuvent entraîner des différences importantes entre les signaux de transaction et les résultats.
  • Les réglages statiques des lignes d’achat et de vente peuvent également entraîner des signaux erronés.
  • La stratégie ne prend pas en compte le stop loss, ce qui peut entraîner une augmentation des pertes.

Il est possible de définir des lignes d’achat et de vente dynamiques, ou de combiner des signaux de filtrage avec d’autres indicateurs. Il est également recommandé de définir des arrêts de perte pour contrôler le risque.

Direction d’optimisation

  • Essayez différents paramètres pour obtenir le meilleur résultat
  • Ligne d’achat et de vente dynamique
  • Filtrage des signaux en combinaison avec d’autres indicateurs
  • Ajout d’un risque de contrôle logique d’arrêt

Résumer

La stratégie de rupture transversale à un seul point médian permet de déterminer le point de basculement du prix de la baisse à la correction puis à la hausse en utilisant l’indicateur de dynamique de Chande. La stratégie est simple et pratique et permet de capturer efficacement les virages de tendance.

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"}]
*/

//@version=4

//* Backtesting Period Selector | Component *//
//* https://www.tradingview.com/script/eCC1cvxQ-Backtesting-Period-Selector-Component *//
//* https://www.tradingview.com/u/pbergden/ *//
//* Modifications made *//
testStartYear = input(2021, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(10, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(999999, "Backtest Stop Year")
testStopMonth = input(9, "Backtest Stop Month")
testStopDay = input(26, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => true
/////////////// END - Backtesting Period Selector | Component ///////////////
strategy(title="Chande Momentum Strat", shorttitle="ChandeMO Strat", format=format.price, precision=2)
length = input(9, minval=1)
src = input(close, "Price", type = input.source)
momm = change(src)
f1(m) => m >= 0.0 ? m : 0.0
f2(m) => m >= 0.0 ? 0.0 : -m
m1 = f1(momm)
m2 = f2(momm)
sm1 = sum(m1, length)
sm2 = sum(m2, length)
percent(nom, div) => 100 * nom / div
chandeMO = percent(sm1-sm2, sm1+sm2)
plot(chandeMO, "Chande MO", color=color.blue)
hline(0, color=#C0C0C0, linestyle=hline.style_dashed, title="Zero Line")
buyline= input(-80)
sellline= input(80)
hline(buyline, color=color.gray)
hline(sellline, color=color.gray)

if testPeriod()
    if crossover(chandeMO, buyline)
        strategy.entry("Long", strategy.long, alert_message="a=ABCD b=buy e=binanceus q=1.2 s=uniusd")
    //    strategy.exit(id="Long Stop Loss", stop=strategy.position_avg_price*0.8) //20% stop loss 
        
    if crossunder(chandeMO, sellline)
        strategy.entry("Short", strategy.short, alert_message="a=ABCD b=sell e=binanceus q=1.2 s=uniusd")
    //    strategy.exit(id="Short Stop Loss", stop=strategy.position_avg_price*1.2) //20% stop loss

//      remember to alert as    {{strategy.order.alert_message}}