Strategi Holy Grail adalah strategi perdagangan kuantitatif yang menggabungkan sistem rata-rata bergerak ganda dengan indikator ADX. Ini bertujuan untuk mengidentifikasi arah dan kekuatan tren dan perdagangan pada pembalikan tren.
Strategi ini menggunakan rata-rata bergerak eksponensial 20 hari (EMA) dan indikator ADX untuk mengidentifikasi peluang masuk. Secara khusus, strategi ini akan mengeluarkan sinyal perdagangan dalam dua kasus berikut:
Ketika nilai ADX di bawah 30 (menunjukkan tren yang lebih lemah), dan harga menembus EMA 20 hari dari bawah, pergi panjang;
Ketika nilai ADX di atas 30 (menunjukkan tren yang lebih kuat), dan harga menembus EMA 20 hari dari atas, pergi pendek.
Ini dapat dilihat bahwa strategi ini mengandalkan ADX untuk menilai kekuatan dan arah tren, dan kemudian menggabungkan dukungan dan resistensi rata-rata bergerak untuk mencari peluang pembalikan.
Keuntungan terbesar dari strategi Holy Grail adalah bahwa ia memperhitungkan baik arah dan kekuatan tren, yang secara efektif dapat menghindari false breakout dan mengurangi probabilitas stop loss. Secara khusus, strategi ini memiliki keuntungan berikut:
Strategi Holy Grail juga memiliki beberapa risiko, terutama di bidang berikut:
Untuk mengurangi risiko di atas, parameter dapat disesuaikan untuk mencapai efek terbaik. Stop loss juga dapat diatur untuk mengendalikan kerugian tunggal. Selain itu, juga perlu untuk menguji strategi pada berbagai varietas dan siklus.
Masih ada banyak arah optimasi untuk strategi Holy Grail:
Menyesuaikan parameter atau menambahkan indikator baru dapat meningkatkan profitabilitas atau tingkat kemenangan strategi.
Secara singkat, strategi Holy Grail menggabungkan keuntungan dari rata-rata bergerak ganda dan indikator ADX, dan menggunakan aturan perdagangan yang jelas untuk menangkap pembalikan tren. Ini memiliki potensi untuk berkinerja baik. Namun, pedagang masih perlu mengoptimalkan kombinasi parameter dan aturan stop loss untuk beradaptasi dengan lingkungan pasar yang berbeda. Selain itu, tidak peduli seberapa meningkat, tidak mungkin untuk sepenuhnya menghindari stop loss, yang merupakan dilema yang dihadapi oleh setiap strategi perdagangan.
/*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")