Der Marktanteil der US-amerikanischen Währungen

Schriftsteller:ChaoZhang, Datum: 2024-02-23 15:06:59
Tags:

img

Übersicht

Die MoonFlag MACD Momentum StochRSI Trading Strategie ist eine quantitative Handelsstrategie, die MACD, Momentum und StochRSI Indikatoren für das Urteilen verwendet.

Strategie Logik

In der Strategie werden folgende Schlüsselindikatoren zur Beurteilung verwendet:

  1. 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.

  2. Custom Momentum-Indikator: Im Wesentlichen ähnlich dem Stoch-Indikator, der zur Beurteilung der kurzfristigen Dynamikrichtung des Marktes verwendet wird.

  3. 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.

Vorteile der Strategie

  1. Eine umfassende Beurteilung mehrerer Indikatoren verhindert die Erzeugung falscher Signale

  2. Bei der Auswahl des MACD-Parameters wird die wichtige 50-Tage- und die wichtige 200-Tage-Marktlinie berücksichtigt.

  3. Nachdem die Parameter jedes Indikators auf Variation getestet wurden, änderte sich die Strategieleistung nur geringfügig, was das Risiko einer Überanpassung vermied.

  4. Zurückgeprüft mit ausreichenden Daten mit hoher Zuverlässigkeit

Risiken der Strategie

  1. Breakout-Systeme sind anfällig für Arbitrage, was die Anzahl der Trades und die Kosten für Schlupf erhöhen kann

  2. Hohe Komplexität mit umfassendem Urteilsvermögen für mehrere Indikatoren, Schwierigkeiten bei Parameteranpassung und -optimierung

  3. Hohe kurzfristige Handelsrisiken innerhalb des Tages

Optimierungsrichtlinien

  1. Einbeziehung von Analysen mehrerer Indikatoren, wie Handelsvolumen

  2. Erhöhung von Algorithmen für maschinelles Lernen zur Optimierung dynamischer Parameter

  3. Niedrigere Handelshäufigkeit, Umstellung auf höhere Periodizität für Urteile

Zusammenfassung

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")



Mehr