
Die Single-Mean-Point-Horizontal-Breakout-Strategie ist eine quantitative Handelsstrategie, die auf dem Chande-Dynamik-Indikator basiert. Die Strategie beurteilt, ob sich der Markt in der Horizontal-Ausgleichsphase befindet, indem sie die Dynamik der Preise berechnet.
Die Strategie berechnet zunächst die dynamische Veränderung des PreisesmommUnd dann teilt man es in positive Dynamik.m1und negative Dynamikm2Dann berechnen wir die Summe der positiven und negativen Dynamik innerhalb eines bestimmten Zeitraums.sm1Undsm2Und am Ende ist der Chande-Dynamik-Wert.chandeMODer Indikator ist mit 0 als Mittelpunkt, wenn der Indikator größer als 0 ist, ist die Aufwärtskraft größer als die Abwärtskraft, und wenn kleiner als 0 ist das Gegenteil.
Wenn der Chande-Dynamik-Indikator die Kauflinie von der niedrigen Breche, bedeutet, dass der Preis aus der Fallphase und in die Aufholphase der Vorbereitung auf den Aufstieg, die Strategie zu kaufen. Wenn der Indikator von der hohen Breche die Verkauflinie, die Verkaufsaktion durchgeführt.
Es können dynamische Kauf- und Verkaufslinien eingerichtet werden, oder es können Filtersignale in Kombination mit anderen Indikatoren eingerichtet werden. Es sollte auch ein Stop-Loss eingerichtet werden, um das Risiko zu kontrollieren.
Die Single-Mean-Point-Cross-Streak-Strategie erlaubt es, die Kurse von unten nach oben zu korrigieren. Die Strategie ist einfach und praktisch, um Trendwende effektiv zu erfassen. Die Parameter-Einstellungen und die Stop-Loss-Kontrolle müssen jedoch weiter optimiert werden, um das Risiko von Fehlsignalen und -Kontrollen zu reduzieren.
/*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}}