Die Holy Grail-Strategie ist eine quantitative Handelsstrategie, die ein duales gleitendes Durchschnittssystem mit dem ADX-Indikator kombiniert.
Die Strategie verwendet sowohl den 20-Tage-Exponential Moving Average (EMA) als auch den ADX-Indikator, um Einstiegsmöglichkeiten zu identifizieren.
Wenn der ADX-Wert unter 30 liegt (was auf einen schwächeren Trend hinweist) und der Kurs die 20-Tage-EMA von unten durchbricht, geht man lang;
Wenn der ADX-Wert über 30 liegt (was auf einen stärkeren Trend hinweist) und der Kurs von oben durch die 20-Tage-EMA bricht, gehen Sie kurz.
Diese Strategie setzt auf den ADX, um die Stärke und Richtung des Trends zu beurteilen, und kombiniert dann die Unterstützung und den Widerstand des gleitenden Durchschnitts, um nach Umkehrmöglichkeiten zu suchen.
Der größte Vorteil der Holy Grail-Strategie besteht darin, dass sowohl die Richtung als auch die Stärke des Trends berücksichtigt werden, wodurch falsche Ausbrüche effektiv vermieden und die Wahrscheinlichkeit eines Stop-Loss reduziert werden können.
Die Heilige Gral-Strategie birgt auch einige Risiken, hauptsächlich in folgenden Bereichen:
Um die oben genannten Risiken zu reduzieren, können Parameter angepasst werden, um den besten Effekt zu erzielen. Stop-Loss kann auch eingestellt werden, um einzelne Verluste zu kontrollieren. Darüber hinaus ist es auch notwendig, Strategien auf verschiedenen Sorten und Zyklen zu testen.
Es gibt noch viele Optimierungsrichtungen für die Heilige Gral-Strategie:
Die Anpassung von Parametern oder das Hinzufügen neuer Indikatoren kann die Rentabilität oder Gewinnrate der Strategie erhöhen.
Zusammenfassend lässt sich sagen, dass die Holy Grail-Strategie die Vorteile von doppelten gleitenden Durchschnitten und dem ADX-Indikator kombiniert und klare Handelsregeln verwendet, um Trendumkehrungen zu erfassen. Sie hat das Potenzial, gut zu funktionieren. Trader müssen jedoch immer noch Parameterkombinationen und Stop-Loss-Regeln optimieren, um sich an verschiedene Marktumgebungen anzupassen. Darüber hinaus ist es unmöglich, Stop-Loss vollständig zu vermeiden, was ein Dilemma für jede Handelsstrategie ist.
/*backtest start: 2022-11-24 00:00:00 end: 2023-11-30 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("LAT Holy Grail v3", overlay=true) /////////////TEST TIME //////////////////////// testStartYear = input(2018, "Backtest Start Year") testStartMonth = input(4, "Backtest Start Month") testStartDay = input(15, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2018, "Backtest Stop Year") testStopMonth = input(5, "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=bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na bgcolor(testPeriodBackgroundColor, transp=97) testPeriod() => time >= testPeriodStart and time <= testPeriodStop ? true : false ////////////////////////////////////////////////////////////////////// myema= ema(close, 20) plot(myema, color=green, title="eMA", linewidth=3) //longCondition = (crossover(close, myema)) //and adx3 < target //if (longCondition) //strategy.entry("My Long Entry Id", strategy.long) //shortCondition = (crossunder(close, myema)) //and adx3 > target //if (shortCondition) //strategy.entry("My Short Entry Id", strategy.short) ////////////////////////////////////////////////////////// /////////////////////////////////////// DMI /////////////////////////////////////////////// len3 = input(14, minval=1, title="DI Length") ///////////////////// lensig3 = input(14, title="ADX Smoothing", minval=1, maxval=50) //////////////////// up3 = change(high) /////////////////// down3 = -change(low) ////////////////// plusDM3 = na(up3) ? na : (up3 > down3 and up3 > 0 ? up3 : 0) ///////////////// minusDM3 = na(down3) ? na : (down3 > up3 and down3 > 0 ? down3 : 0) //////////////// trur3 = rma(tr, len3) /////////////// plus3 = fixnan(100 * rma(plusDM3, len3) / trur3) ////////////// minus3 = fixnan(100 * rma(minusDM3, len3) / trur3) ///////////// sum3 = plus3 + minus3 //////////// adx3 = 100 * rma(abs(plus3 - minus3) / (sum3 == 0 ? 1 : sum3), lensig3) /////////// //plot(plus3, color=green, style=circles, linewidth=2, title="+DI") ////////// //plot(minus3, color=red, style=circles, linewidth=2, title="-DI") ///////// plot(adx3, color=aqua, style=line, linewidth=3, title="ADX") //////// target = input(30, title=" ADX Target Line") /////// plot(target, color=yellow, title="ADX Target Line") ////// ///////////////////////////////////////////////////////////////////////////////////////////////// plot(hl2) /////////////////////////////////////////////// eMA SIGNAL LINE /////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////// HOLY GRAIL STRATEGY /////////////////////////////////////////////////////////////////// if (adx3 <= target) and crossover(close, myema) strategy.entry("HolyGrail", strategy.long, comment="Long") if (adx3 >= target) and crossunder(close, myema) strategy.entry("HolyGrail", strategy.short, comment="Short")