Logik teras strategi ini adalah untuk mengesan sama ada harga penutupan N lilin berturut-turut terus meningkat. Jika ya, pergi panjang; jika tidak, kedudukan dekat. Ini dapat menangkap trend kenaikan harga saham dan membuat keuntungan.
Indikator teras strategi ini adalah nCounter. Ia membandingkan harga penutupan dan harga pembukaan lilin semasa untuk menilai sama ada harga meningkat.
Secara khusus, jika close[1]>=open[1], nCounter menambah 1, menunjukkan kenaikan; jika close[1]
Kemudian bandingkan nCounter dengan parameter nLength. Apabila nCounter>=nLength, output isyarat C1=1; jika tidak C1=0.
Selepas menerima isyarat C1 = 1, jika tidak ada kedudukan semasa, pergi panjang; jika sudah berada dalam kedudukan panjang, teruskan memegang.
Di samping itu, strategi ini menetapkan syarat stop loss dan mengambil keuntungan. Jika harga jatuh di bawah harga kemasukan dengan peratusan tertentu, stop loss keluar kedudukan; jika meningkat di atas harga kemasukan dengan peratusan tertentu, mengambil keuntungan.
Ini adalah trend yang tipikal mengikut strategi dengan kekuatan di bawah:
Terdapat beberapa risiko strategi ini, terutamanya dalam aspek berikut:
Untuk mengurangkan risiko ini, kita boleh menetapkan stop loss yang lebih ketat, mengoptimumkan nLength, menambah peraturan keadaan pasaran, atau menguji parameter secara berasingan untuk saham yang berbeza.
Mempertimbangkan risiko di atas, kita boleh mengoptimumkan strategi dari aspek berikut:
Strategi ini menangkap trend menaik dengan mengesan N lilin yang meningkat berturut-turut. Ia boleh menjalankan trend berikut dengan berkesan. Kelebihannya adalah logik yang mudah, penyesuaian parameter yang fleksibel, penapisan pecah palsu. Tetapi terdapat juga beberapa risiko. Ia perlu menambah modul seperti stop loss, pengoptimuman parameter, penghakiman persekitaran untuk meningkatkan. Secara keseluruhan, strategi ini menyediakan model asas yang berharga untuk perdagangan kuantitatif. Ia boleh menjadi alat perdagangan yang kuat selepas peningkatan berterusan.
/*backtest start: 2023-01-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 05/02/2020 // Evaluates for n number of consecutive higher closes. Returns a value // of 1 when the condition is true or 0 when false. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="N Bars Up", shorttitle="NBU Backtest", overlay = false) nLength = input(4, minval=1) input_takeprofit = input(20, title="Take Profit pip", step=0.01) input_stoploss = input(10, title="Stop Loss pip", step=0.01) nCounter = 0 nCounter := iff(close[1] >= open[1], nz(nCounter[1],0)+1, iff(close[1] < open[1], 0, nCounter)) C1 = iff(nCounter >= nLength, 1, 0) posprice = 0.0 pos = 0 barcolor(nz(pos[1], 0) == -1 ? color.red: nz(pos[1], 0) == 1 ? color.green : color.blue ) posprice := iff(C1== 1, close, nz(posprice[1], 0)) pos := iff(posprice > 0, 1, 0) if (pos == 0) strategy.close_all() if (pos == 1) strategy.entry("Long", strategy.long) posprice := iff(low <= posprice - input_stoploss and posprice > 0, 0 , nz(posprice, 0)) posprice := iff(high >= posprice + input_takeprofit and posprice > 0, 0 , nz(posprice, 0)) plot(C1, title='NBU', color=color.green)