
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.
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.
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.
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.
/*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}}