
Strategi Holy Grail adalah strategi perdagangan kuantitatif yang menggabungkan sistem dua garis lurus dan indikator ADX. Ini bertujuan untuk mengidentifikasi arah dan kekuatan tren, dan melakukan perdagangan ketika tren berbalik.
Strategi ini menggunakan indeks bergerak rata-rata 20 hari (EMA) dan indikator ADX untuk mengidentifikasi waktu masuk. Secara khusus, ia akan mengirimkan sinyal perdagangan dalam dua situasi berikut:
Ketika nilai ADX berada di bawah 30 (yang menunjukkan tren yang lemah) dan harga dari bawah menembus EMA 20 hari, lakukan lebih banyak;
Ketika nilai ADX lebih tinggi dari 30 ((menunjukkan tren yang kuat), dan harga dari atas menembus 20 hari EMA, melakukan shorting.
Seperti yang dapat dilihat, strategi ini bergantung pada kekuatan dan arah ADX untuk menilai tren, kemudian digabungkan dengan resistensi dukungan dari rata-rata bergerak untuk mencari peluang pembalikan. Ini menggabungkan konsep mengikuti tren dan perdagangan berlawanan.
Keuntungan terbesar dari strategi Holy Cross adalah bahwa ia mempertimbangkan arah dan kekuatan tren secara bersamaan, yang dapat secara efektif menghindari false breakout, sehingga mengurangi probabilitas stop loss. Secara khusus, strategi ini memiliki beberapa keuntungan:
Strategi Holy Cross juga memiliki beberapa risiko, terutama yang berkaitan dengan:
Untuk mengurangi risiko di atas, kombinasi parameter dapat disesuaikan untuk mendapatkan hasil yang optimal, atau stop loss dapat diatur untuk mengendalikan kerugian tunggal. Selain itu, perlu untuk membuat strategi untuk melakukan pengujian kembali pada varietas dan periode yang berbeda.
Strategi Holy Cross memiliki banyak hal yang bisa dioptimalkan:
Perubahan parameter atau penambahan indikator baru dapat meningkatkan profitabilitas atau tingkat kemenangan strategi. Namun, optimasi apa pun memerlukan cukup banyak pengujian untuk memastikan kehandalannya.
Secara keseluruhan, strategi Holy Cross menggabungkan keunggulan dari indikator Binary Equity dan ADX, menggunakan aturan perdagangan yang jelas untuk menangkap pergeseran tren. Ini diharapkan dapat memberikan hasil yang baik. Namun, pedagang masih perlu mengoptimalkan kombinasi parameter dan aturan stop loss untuk menyesuaikan diri dengan lingkungan pasar yang berbeda. Selain itu, tidak peduli seberapa baik, tidak mungkin sepenuhnya menghindari stop loss, yang merupakan kesulitan yang dihadapi 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")