
Die MACD-Dynamik-StochRSI-Handelsstrategie ist eine quantitative Handelsstrategie, die die drei Indikatoren MACD, Dynamik und StochRSI verwendet. Die Strategie gilt hauptsächlich für den Tagesgeldhandel in Bitcoin und Ethereum.
Die Strategie basiert auf folgenden Kennzahlen:
MACD-Indikator: Schneller SMA-Zyklus mit 50, langsamer SMA-Zyklus mit 200, der die 50er- und 200er-Tage-Linie darstellt, die häufig in den Märkten verwendet wird. Dieser Indikator beurteilt die langfristige Trendrichtung des Marktes.
Selbstgenerierte Dynamik-Indikatoren: ähnlich wie der Stoch-Indikator, um die kurzfristige Dynamik des Marktes zu beurteilen.
Der StochRSI-Indikator beurteilt die Marktstärke und den Überkauf und Überverkauf.
Bei der Eintritt in den Mehrheitsmarkt müssen die drei Bedingungen gleichzeitig erfüllt werden: MACD> 0 (was den mittleren und langen Trend nach oben darstellt), der Eigenkapitalindex> 0 (was den kurzfristigen Trend nach oben darstellt) und der Schlusskurs, der am Tag zuvor gestiegen ist (was den aktuellen Aufwärtstrend darstellt).
Ein einfaches Mehrkopfsignal ist etwas komplizierter und erfordert die gleichzeitige Erfüllung von 4 Bedingungen: MACD < 0, Autokreativitätsindikator < 0, Abschlusskurs niedriger als am Vortag und StochRSI > 20.
Die Strategie, die mittelfristige Trends, kurzfristige Dynamik und aktuelle Trends zusammenfasst, ist ein robustes Durchbruchssystem.
Mehrindikatorische Analyse, um falsche Signale zu vermeiden
Die Auswahl der MACD-Parameter berücksichtigt die wichtigen 50- und 200-Tage-Linien des Marktes
Nach Veränderungen der Parameter für die einzelnen Kennzahlen wurden nur geringe Änderungen der Strategieergebnisse vorgenommen, um ein Risiko einer Überpassung zu vermeiden.
Daten ausreichend und zuverlässig
Durchbruchssysteme sind leicht zu arbitragen und können die Anzahl der Transaktionen und die Kosten für die Gleitpunkte erhöhen.
Die Komplexität der integrierten Mehrindikatorbeurteilung ist hoch, die Parameter sind schwierig anzupassen und zu optimieren
Kurzstreckenbetrieb am Tag ist gefährlicher
In Kombination mit weiteren Kennzahlen, wie der Analyse der Transaktionsmengen
Mehr Machine Learning Algorithmen und dynamische Parameteroptimierung
Verringerung der Handelsfrequenz, Umstellung auf höhere Zyklen zur Beurteilung
Der MACD-Dynamik-StochRSI-Trading-Strategie umfasst mehrere Indikatoren, um Markttrends und -stärken zu bestimmen. Die Rückmesswirkung ist gut und die Zuverlässigkeit ist hoch. Es ist für erfahrene Quantitative Trader geeignet, auf hochwertige digitale Währungen anzuwenden und zu optimieren.
/*backtest
start: 2023-02-16 00:00:00
end: 2024-02-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// // © MoonFlag
//@version=5
strategy("MoonFlag 1D MACD Momentum StochRSI Strategy", max_bars_back=500, overlay=false, initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=80, pyramiding=0, calc_on_order_fills=true)
d(gaps_1, data)=>
float out = 0.
out :=(ta.wma(ta.wma(ta.wma(data, math.round(((1 * gaps_1) - math.round((1 * gaps_1) / 3)) / 2)), math.round((1 * gaps_1) / 3)) , int(((1 * gaps_1) - math.round((1 * gaps_1) / 3)) / 2)))
out
MoonFlagAverage(gaps_1,data)=>
float out = 0.
out:=d(gaps_1,d(gaps_1, d(gaps_1, data)))
out
fastLength = input.int(50, "MACD SMA Fast Length")
slowlength = input.int(200, "MACD SMA Slow Length")
MACDLength = 9//input.int(9, "MACD Length")
MACD = ta.ema(close, fastLength) - ta.ema(close, slowlength)
aMACD = ta.sma(MACD, MACDLength)
MACDdelta = MACD - aMACD
//plot (MACD, "MACD1", color.red)
//plot (aMACD, "aMACD1", color.green)
//plot (delta, "MACD delta", color.white)
fastLength2 = input.int(12, "MoonFlag Momentum Length")
slowlength2 = 2*fastLength2//input.int(50, "MoonFlag Momentum Slow Length")
MACDLength2 = 20//input.int(20, "Momentum Delta")
MoonFlag_MACD2 = MoonFlagAverage(fastLength2, close) - MoonFlagAverage(slowlength2,close)
MoonFlag_aMACD2 = MoonFlagAverage(MACDLength2, MoonFlag_MACD2)
MoonFlag_delta = MoonFlag_MACD2 - MoonFlag_aMACD2
MoonFlag_delta_line=0
if MoonFlag_delta < 0
MoonFlag_delta_line:=-100
else
MoonFlag_delta_line:=100
//plot (MoonFlag_MACD2, "MoonFlag Momentum Fast Length", color.red)
//plot (MoonFlag_aMACD2, "MoonFlag Momentum Slow Length", color.green)
//plot (MoonFlag_delta2, "MoonFlag Delta", color.white)
uptrend = (close + high)/(close[1] + high[1])
downtrend = (close + low)/(close[1] + low[1])
lineColor = color.green
if uptrend > 1
lineColor := color.green
if downtrend < 1
lineColor := color.red
smoothK = 2//input.int(2, minval=1, title="K smoothing Stoch RSI")
smoothD = 3//input.int(3, minval=1, title= "D smoothing for Stoch RSI")
lengthRSI = 7//input.int(7, minval=1, title="RSI Length")
lengthStoch = 8//input.int(8, minval=1, title="Stochastic Length")
src = close//input(close, title="RSI Source")
rsi1 = ta.rsi(src, lengthRSI)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
StochRSI = ta.sma(k, smoothD)
MACDdirection_line = 0
MACDdirection_line := MACDdirection_line[1]
if (MACDdelta > 0)
MACDdirection_line := 50
if (MACDdelta < 0)
MACDdirection_line := -50
useStochRSI = input.bool(true,"Include Condition (StochRSI > 20) with Exit Long/Enter Short")
StochRSI_val = 20//input.int(20,"StochRSI greater than to exit short")
h1 = hline(StochRSI_val)
StochRSIGreaterThanSetValue = true
if useStochRSI
if (StochRSI > StochRSI_val)
StochRSIGreaterThanSetValue := true
else
StochRSIGreaterThanSetValue := false
stoch20 = lineColor
if StochRSI < StochRSI_val
stoch20 := color.white
yearin = input.int(2019, title="Start backtesting from year:")
includeShorts = false//input.bool(false, "Include Shorts")
plot(MoonFlag_delta_line,"MoonFlag Momentum Direction", color.white)
plot(MACDdirection_line,"MACD Direction", color = color.orange)
plot(StochRSI, "StochRSI", color=lineColor)
if (year>=yearin)
if (MACDdelta > 0) and (uptrend > 1) and MoonFlag_delta_line > 0
strategy.entry("buy2", strategy.long, comment="buy")
if (MACDdelta < 0) and (downtrend < 1) and MoonFlag_delta_line < 0 and StochRSIGreaterThanSetValue
if includeShorts
strategy.entry("sell", strategy.short, comment="sell")
else
strategy.close("buy2", comment = "sell")