
Die Holy Grail Strategie ist eine quantitative Handelsstrategie, die ein Binärsystem und einen ADX-Indikator kombiniert. Sie dient dazu, die Richtung und Stärke eines Trends zu erkennen und bei einer Trendwende zu handeln.
Die Strategie verwendet den 20-Tage-Index-Moving-Average (EMA) und den ADX-Indikator zur Identifizierung der Einstiegsmomente. Insbesondere gibt sie ein Handelssignal in zwei Fällen:
Wenn der ADX-Wert unter 30 liegt (was einen schwachen Trend anzeigt) und der Preis die 20-Tage-EMA von unten durchbricht, machen Sie mehr;
Wenn der ADX-Wert höher als 30 ist (was einen starken Trend anzeigt) und der Preis die 20-Tage-EMA von oben durchbricht, machen Sie einen Short.
Die Strategie basiert auf der ADX-Bewertung der Stärke und Richtung eines Trends und sucht nach Umkehrmöglichkeiten in Kombination mit der Unterstützung und dem Widerstand des Moving Averages. Es kombiniert die Ideen von Trendfollowing und Resistance Trading.
Der größte Vorteil der Heiligen Kreuz-Strategie besteht darin, dass sie sowohl die Richtung als auch die Stärke des Trends berücksichtigt und die Wahrscheinlichkeit von False Breakouts wirksam vermeidet, wodurch die Wahrscheinlichkeit von Stop-Losses verringert wird. Konkret hat die Strategie folgende Vorteile:
Die Strategie des Heiligen Kreuzes birgt einige Risiken, die sich auf folgende Bereiche konzentrieren:
Um die oben genannten Risiken zu verringern, kann die Kombination der Parameter angepasst werden, um die beste Wirkung zu erzielen, oder ein Stop-Loss kann gesetzt werden, um einzelne Verluste zu kontrollieren. Darüber hinaus ist es notwendig, dass die Strategie auf verschiedenen Sorten und Perioden getestet wird.
Die Strategie des Heiligen Kreuzes hat viele Optimierungsmöglichkeiten:
Eine Anpassung der Parameter oder das Hinzufügen neuer Indikatoren kann die Gewinnrate oder die Gewinnrate einer Strategie erhöhen. Jede Optimierung erfordert jedoch ausreichend Rückmeldung, um ihre Stabilität zu gewährleisten.
Insgesamt kann man sagen, dass die Holy Cross-Strategie die Vorzüge der Doppel-Gleichgewichts- und ADX-Indikatoren kombiniert und klare Handelsregeln verwendet, um Trendwende zu erfassen. Es ist zuversichtlich, dass es gute Ergebnisse bringt. Trotzdem müssen die Händler die Parameterkombinationen und die Stop-Loss-Regeln optimieren, um sich an unterschiedliche Marktumgebungen anzupassen.
/*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")