Strategi perdagangan ini memanfaatkan sepenuhnya kelebihan pembalikan purata bergerak dan penunjuk teknikal flash bawah tiga untuk aplikasi gabungan. Ia menangkap peluang pembalikan sambil mengesan trend, menapis beberapa isyarat pecah palsu, dan dapat meningkatkan kadar kemenangan sistem perdagangan dengan berkesan.
Strategi ini terdiri daripada dua bahagian:
Gabungan purata bergerak 2 hari dan 20 hari. Isyarat beli dan jual dihasilkan apabila purata bergerak 2 hari menyimpang dari purata bergerak 20 hari.
Pola kilat bawah tiga. Kemunculan corak ini adalah isyarat untuk pembalikan jangka pendek. Keadaan pembentukan adalah: harga terendah pada tengah hari lebih rendah daripada hari sebelumnya dan hari berikutnya, dan harga penutupan hari berikutnya lebih tinggi daripada harga tertinggi pada hari sebelumnya.
Apabila purata bergerak 2 hari dan 20 hari secara serentak menunjukkan isyarat pembalikan, dan adalah konsisten dengan arah isyarat pola kilat tiga bahagian bawah, ambil tindakan beli atau jual.
Dalam kod, purata bergerak 2 hari dan 20 hari dikira terlebih dahulu. Apabila purata bergerak 2 hari memecahkan purata bergerak 20 hari ke atas atau ke bawah, isyarat beli / jual dihasilkan.
Apabila corak kilat bawah tiga kali dikesan, isyarat arah corak ditetapkan kepada 1 atau -1. Baca isyarat corak hari sebelumnya, gabungkan dengan isyarat purata bergerak semasa, dan menjana isyarat masuk akhir.
Oleh itu, dengan menapis dengan gabungan purata bergerak dan corak, beberapa isyarat palsu boleh ditapis, menjadikan strategi perdagangan lebih boleh dipercayai.
Gabungan beberapa penunjuk teknikal boleh melengkapi dan mengesahkan antara satu sama lain dan meningkatkan kebolehpercayaan isyarat.
Pembalikan purata bergerak dapat menangkap titik pembalikan trend dengan cara yang tepat pada masanya dan memanfaatkan pembalikan.
Purata bergerak 20 hari mengesan trend jangka sederhana dan panjang, dan purata bergerak 2 hari menangkap titik masuk selepas penyesuaian jangka pendek.
Strategi ini tidak sensitif kepada parameter dan mudah dilaksanakan dan dioptimumkan.
Corak pembalikan cenderung untuk penilaian yang salah dan pengalaman diperlukan untuk menilai kebolehpercayaan mereka.
Isyarat pembalikan mungkin tertunda, yang memerlukan pemerhatian ciri corak dan pelarasan kedudukan yang sesuai.
Ujian dan pengoptimuman diperlukan untuk pelbagai jenis perdagangan, dan beberapa parameter mungkin perlu disesuaikan.
Kawalan kerugian perlu memperkenalkan mekanisme berhenti kerugian untuk mengelakkan kehilangan titik pembalikan penting.
Uji kombinasi purata bergerak yang berbeza untuk memilih parameter terbaik untuk pelbagai.
Memperkenalkan penunjuk tambahan lain seperti jumlah, Bollinger Bands, dan lain-lain untuk pengesahan pelbagai penunjuk.
Tambah modul stop loss untuk mengawal drawdown dan risiko.
Mengoptimumkan masa kemasukan untuk mengelakkan masalah awal atau lewat.
Melakukan pengoptimuman parameter untuk jenis tertentu untuk meningkatkan kebolehsesuaian.
Strategi ini menggunakan sepenuhnya kelebihan pembalikan purata bergerak dan corak jangka pendek untuk mencapai gabungan yang berkesan dari kedua-duanya, yang dapat meningkatkan kestabilan dan kadar kemenangan sistem perdagangan. Tetapi kawalan risiko, ujian parameter dan pengoptimuman diperlukan untuk menyesuaikan diri dengan ciri-ciri pelbagai jenis. Secara keseluruhan, strategi ini mempunyai struktur yang mudah dan jelas yang mudah dilaksanakan dan merupakan strategi perdagangan pembalikan trend yang praktikal.
/*backtest start: 2022-10-19 00:00:00 end: 2023-10-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 25/12/2021 // This is combo strategies for get a cumulative signal. // // First strategy // This indicator plots 2/20 exponential moving average. For the Mov // Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met. // // Second strategy // This startegy based on 3-day pattern reversal described in "Are Three-Bar // Patterns Reliable For Stocks" article by Thomas Bulkowski, presented in // January,2000 issue of Stocks&Commodities magazine. // That pattern conforms to the following rules: // - It uses daily prices, not intraday or weekly prices; // - The middle day of the three-day pattern has the lowest low of the three days, with no ties allowed; // - The last day must have a close above the prior day's high, with no ties allowed; // - Each day must have a nonzero trading range. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// EMA20(Length ) => pos = 0.0 xPrice = close xXA = ema(xPrice, Length) nHH = max(high, high[1]) nLL = min(low, low[1]) nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH) pos := iff(nXS > close[1] , -1, iff(nXS < close[1] , 1, nz(pos[1], 0))) pos BarR()=> pos = 0.0 pos := iff(open[2] > close[2] and high[1] < high[2] and low[1] < low[2] and low[0] > low[1] and high[0] > high[1], 1, iff(open[2] < close[2] and high[1] > high[2] and low[1] > low[2] and high[0] < high[1] and low[0] < low[1], -1, nz(pos[1], 0))) pos strategy(title="Combo 2/20 EMA & 3 Day Pattern", shorttitle="Combo", overlay = true) var I1 = "●═════ 2/20 EMA ═════●" Length = input(14, minval=1, group = I1) //var I2 = "●═════ 3-Bar-Reversal-Pattern ═════●" var misc = "●═════ MISC ═════●" reverse = input(false, title="Trade reverse", group = misc) var timePeriodHeader = "●═════ Time Start ═════●" d = input(1, title="From Day", minval=1, maxval=31, group=timePeriodHeader) m = input(1, title="From Month", minval=1, maxval=12, group=timePeriodHeader) y = input(2005, title="From Year", minval=0, group=timePeriodHeader) StartTrade = true prePos3Bar = BarR() posEMA20 = EMA20(Length) pos3BarR = security(syminfo.tickerid, "D", prePos3Bar[1], barmerge.gaps_off, barmerge.lookahead_on) pos = iff(posEMA20 == 1 and pos3BarR == 1 and StartTrade , 1, iff(posEMA20 == -1 and pos3BarR == -1 and StartTrade, -1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1 ) strategy.entry("Long", strategy.long) if (possig == -1 ) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )