
Diese Strategie erzeugt einen MACD-Obsolver, indem sie die Differenz zwischen dem schnellen EMA und dem langsamen EMA berechnet und dann die Signallinie durch die Berechnung der MACD-Gleichlinie erzeugt, wodurch ein Doppelfiltersystem aufgebaut wird. Es erzeugt ein Kaufsignal, wenn die MACD-Linie von unten durch die Signallinie geht, und ein Verkaufssignal, wenn die MACD-Linie von oben durch die Signallinie geht.
Der Kern der Strategie ist der MACD-Vibrometer, der berechnet wird aus dem schnellen EMA (normalerweise 12 Tage EMA) abzüglich des langsamen EMA (normalerweise 26 Tage EMA). Die schnellen EMAs sind empfindlicher und können kurzfristige Preisschwankungen erfassen; die langsamen EMAs reagieren langsamer auf Preisänderungen.
Die Strategie setzt die Eingabeparameter auf die Linienlänge, die Linienlänge, die Preisquelle und die Signallinienlänge. Sie kann die Parameter an die verschiedenen Märkte anpassen, um die beste Kombination von Parametern zu finden. Die Hintergrundfarbe zeigt den Zeitrahmen der Rückmessung.
Der MACD-Indikator ist klassisch und leicht verständlich, um kurz- und mittelfristige Umkehrchancen zu nutzen.
Ein MACD-System mit doppelter EMA-Konstruktion hat eine bessere Glattigkeit als ein einzelnes MA-System.
Die Parameter können für verschiedene Märkte optimiert werden.
Die kombinierte Verkehrsmenge identifiziert ein hochwertiges Signal.
Die MACD-Wertung erzeugt mehr Fehlsignale bei Erschütterungen.
Es ist unwahrscheinlich, dass es sich um einen Trend handelt, der mit dem Trend zusammenhängt.
Die Einschränkung der Rückmeldzeit kann extreme Situationen übersehen.
Die Parameter-Einstellungen erfordern die Kombination von mehr Marktdaten zur Optimierung, sonst kann ein Marktsegment überfüllt werden.
Die Risiken können durch die Kombination von Trendbeurteilungsindikatoren und Stop-Loss-Mechanismen gesteuert werden. Gleichzeitig kann der Rückmessungsbereich und der Marktmusterraum für die Parameteroptimierung erweitert werden.
Verschiedene Preisquellen, wie z. B. Schlusskurs, Durchschnittspreis, Umsatzpreis usw. werden getestet.
Die optimale Kombination von Parametern auf der Grundlage von mehr historischen Daten zu finden.
Integration anderer Indikatoren zur Beurteilung der Signalqualität.
In Kombination mit Trend- und Bandbreitenbeurteilungen vermeidet man erhebliche Konflikte mit Trends.
Diese Strategie ist eine klassische und praktische Wahlzeitstrategie, die durch den Aufbau von Doppel-EMA-Filtern die Umkehrphänomene der kurzen Zyklen in den Preisen erfasst. Die Risiken können durch Parameteroptimierung, Signalfilterung und Verlustminderung kontrolliert werden. Gleichzeitig können stabile Gewinne erzielt werden, wenn Trend-Anzeige-Indikatoren kombiniert werden, um die Tiefen zu vermeiden.
/*backtest
start: 2022-12-19 00:00:00
end: 2023-12-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="MACD Histogram Backtest", shorttitle="MACD")
// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
grow = (hist[1] < hist)
fall = (hist[1] > hist) and hist >= 0
stop = (hist[1] > hist)
plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
//Strategy Testing
// Component Code Start
// Example usage:
// if testPeriod()
// strategy.entry("LE", strategy.long)
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
testPeriod() => true
// Component Code Stop
//Entry and Close settings
if testPeriod()
strategy.entry("grow", true, 10, when = grow, limit = close)
strategy.close("grow", when = fall)
strategy.close("grow", when = stop)
//if testPeriod()
// strategy.entry("fall", false, 1000, when = fall, limit = close)
// strategy.close("fall", when = grow)