
Logik teras strategi ini adalah untuk mengesan sama ada harga penutupan N akar K berturut-turut meningkat secara berturut-turut, jika ya, lakukan lebih banyak; jika tidak puas, tutup. Dengan demikian, anda dapat menangkap trend kenaikan harga saham dan mencapai keuntungan.
Indikator utama strategi ini adalah nCounter, yang menilai kenaikan harga dengan membandingkan harga penutupan dan harga pembukaan K-Line semasa.
Khususnya, jika close[1]>=open[1], nCounter ditambah 1, menunjukkan kenaikan; jika close[1]
Kemudian nCounter dibandingkan dengan parameter nLength, output isyarat C1 = 1 apabila nCounter> = nLength; jika tidak, C1 = 0. nLength di sini adalah berapa banyak baris K yang kita tentukan yang diperlukan untuk menghasilkan isyarat.
Selepas menerima isyarat C1 = 1, jika tidak ada kedudukan pada masa ini, lakukan lebih banyak; jika sudah ada lebih banyak kepala memegang kedudukan, teruskan memegang.
Di samping itu, strategi ini juga menetapkan syarat berhenti dan berhenti. Jika harga di bawah harga masuk tertentu, ia akan berhenti; jika lebih tinggi daripada harga masuk tertentu, ia akan berhenti.
Ini adalah strategi trend-following yang lebih tipikal dan mempunyai beberapa kelebihan:
Strategi ini juga mempunyai beberapa risiko, yang tertumpu kepada beberapa aspek:
Untuk mengurangkan risiko-risiko ini, kita boleh menetapkan syarat-syarat yang lebih ketat untuk menghentikan kerugian, mengoptimumkan parameter nLength, menambah peraturan penghakiman besar, atau parameter ujian berasingan untuk saham yang berbeza. Sudah tentu, strategi apa pun sukar untuk mengelakkan kerugian sepenuhnya dan perlu disesuaikan dengan pilihan risiko pedagang.
Mengambil kira risiko yang disebutkan di atas, kita boleh terus mengoptimumkan strategi ini dalam beberapa aspek:
Strategi ini dapat menangkap trend kenaikan dengan mengesan N akar terus naik K garis, dan dapat mengikuti trend dengan berkesan. Kelebihannya adalah kesederhanaan logik, penyesuaian parameter yang fleksibel, dan penapisan palsu. Tetapi ada juga risiko tertentu, perlu menambah modul seperti berhenti, pengoptimuman parameter, dan penghakiman persekitaran untuk membuat strategi lebih komprehensif dan stabil.
/*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)