Strategi Salib Suci


Tarikh penciptaan: 2023-12-01 15:27:39 Akhirnya diubah suai: 2023-12-01 15:27:39
Salin: 0 Bilangan klik: 974
1
fokus pada
1621
Pengikut

Strategi Salib Suci

Strategi Holy Grail adalah strategi perdagangan kuantitatif yang menggabungkan sistem dua garis lurus dan indikator ADX. Ia bertujuan untuk mengenal pasti arah dan kekuatan trend dan berdagang apabila trend berubah.

Prinsip Strategi

Strategi ini menggunakan purata bergerak indeks 20 hari (EMA) dan ADX untuk mengenal pasti masa masuk. Secara khusus, ia akan menghantar isyarat perdagangan dalam dua keadaan:

  1. Apabila nilai ADX di bawah 30 (yang menunjukkan trend yang lemah) dan harga menembusi EMA 20 hari dari bawah, lakukan lebih banyak;

  2. Apabila nilai ADX lebih tinggi daripada 30 ((menunjukkan trend yang kuat), dan harga menembusi EMA 20 hari dari atas, buat shorting.

Seperti yang dapat dilihat, strategi ini bergantung kepada kekuatan dan arah trend yang dinilai oleh ADX, dan kemudian digabungkan dengan sokongan dan rintangan pada purata bergerak untuk mencari peluang pembalikan. Ia menggabungkan konsep trend mengikuti dan perdagangan berlawanan.

Analisis kelebihan

Kelebihan terbesar strategi Holy Cross adalah bahawa ia mengambil kira arah dan kekuatan trend pada masa yang sama, dan dapat dengan berkesan mengelakkan perobosan palsu, sehingga mengurangkan kebarangkalian penghentian kerugian. Secara khusus, strategi ini mempunyai beberapa kelebihan:

  1. Menggunakan sistem dua hala yang sama untuk mengenal pasti trend secara berkesan;
  2. Menggunakan ADX untuk menilai kekuatan trend, anda boleh mengelakkan penyusunan semula dan penembusan yang tidak berkesan;
  3. Menggabungkan konsep reversal dan trend trading, ia boleh menangkap trend dan juga berbalik pada titik-titik yang berpusing;
  4. Peraturan operasi jelas, mudah dan mudah dilaksanakan.

Analisis risiko

Strategi Salib Suci juga mempunyai beberapa risiko, yang tertumpu kepada beberapa aspek berikut:

  1. ADX juga memberi isyarat yang salah sebagai penunjuk penilaian tambahan.
  2. Perseberangan dua garis yang sama tidak dapat mengelakkan kerugian yang disebabkan oleh gelombang kecil;
  3. Tetapan parameter yang tidak betul (seperti nilai sasaran ADX, kitaran garis rata-rata, dan lain-lain) boleh menyebabkan isyarat menjadi terlalu kerap atau konservatif.

Untuk mengurangkan risiko yang disebutkan di atas, kombinasi parameter boleh disesuaikan untuk mencapai kesan terbaik, atau anda boleh menetapkan hentian untuk mengawal kerugian tunggal. Di samping itu, adalah perlu untuk membuat strategi untuk diuji semula pada pelbagai jenis dan kitaran.

Arah pengoptimuman

Di samping itu, terdapat banyak cara yang boleh dioptimumkan dalam strategi Salib Suci:

  1. Cuba menggunakan pelbagai jenis purata bergerak, seperti purata bergerak bertimbangan.
  2. Garis sasaran nilai ADX boleh dioptimumkan sebagai parameter;
  3. Anda boleh menguji parameter kitaran yang berbeza, seperti EMA 10 hari dan 30 hari.
  4. Indikator lain seperti RSI, Bollinger Bands dan lain-lain boleh ditambah untuk mengesahkan isyarat dagangan.

Penyesuaian parameter atau penambahan penunjuk baru boleh meningkatkan kadar keuntungan atau kemenangan strategi. Tetapi apa-apa pengoptimuman memerlukan pengulangan yang mencukupi untuk memastikan kestabilan.

ringkaskan

Secara keseluruhannya, strategi Holy Cross menggabungkan kelebihan garis dua rata dan indikator ADX, menggunakan peraturan perdagangan yang jelas untuk menangkap perubahan trend. Ia menjanjikan hasil yang baik. Tetapi pedagang masih perlu mengoptimumkan kombinasi parameter dan peraturan berhenti untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.

Kod sumber strategi
/*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")