Die MoonFlag MACD Momentum StochRSI Trading Strategie ist eine quantitative Handelsstrategie, die MACD, Momentum und StochRSI Indikatoren für das Urteilen verwendet.
In der Strategie werden folgende Schlüsselindikatoren zur Beurteilung verwendet:
MACD-Indikator: Die schnelle SMA-Periode beträgt 50 und die langsame SMA-Periode 200, was die am häufigsten verwendeten 50-Tage- und 200-Tage-Linie auf dem Markt darstellt.
Custom Momentum-Indikator: Im Wesentlichen ähnlich dem Stoch-Indikator, der zur Beurteilung der kurzfristigen Dynamikrichtung des Marktes verwendet wird.
StochRSI-Indikator: Beurteilt die Stärke und das Überkauf-/Überverkaufsniveau des Marktes.
Um Long zu gehen, muss er gleichzeitig die 3 Bedingungen MACD>0 (der mittelfristige bis langfristige Aufwärtstrend darstellt), benutzerdefinierter Momentumindikator >0 (der kurzfristige Aufwärtstrend darstellt) und einen höheren Schlusskurs als der vorherige Schlusskurs (der aktuelle Aufwärtstrend darstellt) erfüllen.
Das Schließen des Long-Signals ist etwas komplexer und erfordert MACD<0, benutzerdefinierten Momentum-Indikator <0, einen niedrigeren Schlusskurs als der vorherige Schlusskurs und StochRSI>20 - die 4 Bedingungen müssen gleichzeitig erfüllt werden.
Die Strategie beurteilt umfassend den mittelfristigen bis langfristigen Trend, die kurzfristige Dynamik und den aktuellen Trend und ist ein relativ robustes Ausbruchssystem.
Eine umfassende Beurteilung mehrerer Indikatoren verhindert die Erzeugung falscher Signale
Bei der Auswahl des MACD-Parameters wird die wichtige 50-Tage- und die wichtige 200-Tage-Marktlinie berücksichtigt.
Nachdem die Parameter jedes Indikators auf Variation getestet wurden, änderte sich die Strategieleistung nur geringfügig, was das Risiko einer Überanpassung vermied.
Zurückgeprüft mit ausreichenden Daten mit hoher Zuverlässigkeit
Breakout-Systeme sind anfällig für Arbitrage, was die Anzahl der Trades und die Kosten für Schlupf erhöhen kann
Hohe Komplexität mit umfassendem Urteilsvermögen für mehrere Indikatoren, Schwierigkeiten bei Parameteranpassung und -optimierung
Hohe kurzfristige Handelsrisiken innerhalb des Tages
Einbeziehung von Analysen mehrerer Indikatoren, wie Handelsvolumen
Erhöhung von Algorithmen für maschinelles Lernen zur Optimierung dynamischer Parameter
Niedrigere Handelshäufigkeit, Umstellung auf höhere Periodizität für Urteile
Die MoonFlag MACD Momentum StochRSI Trading Strategy beurteilt Markttrends und -stärke umfassend mit mehreren Indikatoren, hat gute Rücktestergebnisse und hohe Zuverlässigkeit und eignet sich für erfahrene quantitative Trader, um qualitativ hochwertige Kryptowä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")