Noro
Strategi ini mula-mula mengira purata harga tertinggi dan terendah dalam tempoh tertentu untuk membina saluran harga pertengahan. Apabila harga pecah di atas saluran dari bawah, ia dianggap isyarat panjang. Apabila harga pecah di bawah saluran dari atas, ia dianggap isyarat pendek.
Pada masa yang sama, strategi ini menggabungkan dua peraturan tambahan: RSI cepat dan warna lilin. Apabila RSI cepat di bawah 25%, ia menunjukkan status oversold dan harga mungkin bangkit semula. Bersama-sama dengan pecah di atas saluran, ini menghasilkan isyarat panjang yang lebih kuat. Sebaliknya, apabila RSI cepat di atas 75%, ia menunjukkan status overbought dan harga mungkin jatuh. Bersama-sama dengan kerosakan di bawah saluran, ini menghasilkan isyarat pendek yang lebih kuat. Di samping itu, strategi ini mengesan perubahan warna lilin selama dua lilin terakhir. Dua lilin merah berturut-turut meningkatkan isyarat pendek, sementara dua lilin hijau berturut-turut meningkatkan isyarat panjang.
Dengan menggabungkan ketiga-tiga penunjuk isyarat ini, strategi dapat dengan berkesan mengenal pasti trend jangka menengah hingga panjang dan menetapkan kedudukan dengan sewajarnya.
Kelebihan terbesar strategi ini adalah menggabungkan beberapa penunjuk untuk menentukan arah trend dan mengelakkan bunyi bising dari turun naik pasaran jangka pendek.
Saluran harga dengan jelas mengenal pasti arah trend dan kekuatan.
RSI pantas menilai keadaan overbought/oversold untuk mengelakkan mengejar trend pada titik perubahan.
Pengesahan warna lilin seterusnya mengesahkan kesinambungan trend. Kedudukan ditutup jika warna berubah.
Strategi ini hanya memasuki dua lilin berturut-turut yang berwarna yang sama memecahkan saluran, mengelakkan isyarat palsu dari goyangan jangka pendek.
Stop loss purata mudah menutup kedudukan apabila warna lilin berubah, meminimumkan kerugian dengan berkesan.
Terdapat juga beberapa risiko yang perlu diperhatikan untuk strategi ini:
Tetapan parameter saluran harga yang tidak betul boleh menyebabkan saluran yang terlalu lebar atau terlalu sempit, kehilangan titik perubahan trend atau menghasilkan isyarat palsu yang berlebihan.
Tetapan parameter RSI pantas yang tidak betul mungkin gagal mengenal pasti keadaan overbought/oversold dengan tepat, sehingga kehilangan peluang pembalikan.
Mekanisme stop loss mudah mungkin terlalu sensitif dalam trend yang bergolak, menyebabkan pembukaan dan penutupan kedudukan yang berlebihan.
Ia tidak dapat meramalkan kesinambungan trend sebenar selepas memecahkan saluran harga, yang membawa kepada kerugian yang diperkuat.
Ia tidak boleh menyesuaikan diri dengan peristiwa black swan dengan kesan pasaran tiba-tiba, mengakibatkan kerugian besar.
Beberapa peluang utama untuk meningkatkan strategi termasuk:
Sesuaikan parameter saluran harga secara dinamik untuk menyesuaikan diri dengan lebih baik dengan turun naik dalam tempoh dan pasaran yang berbeza.
Menggabungkan langkah-langkah turun naik untuk menyesuaikan parameter RSI, menurunkan kepekaan semasa turun naik yang tinggi dan meningkatkan kepekaan semasa turun naik yang rendah.
Tambahkan mekanisme hentian dengan paras hentian berdasarkan turun naik trend untuk mengelakkan hentian yang terlalu sensitif.
Meningkatkan pengenalan kekuatan pecah dan divergensi menurun / menaik untuk mengelakkan pecah palsu.
Memasukkan model latihan data sejarah untuk membantu menganggarkan titik perubahan trend yang berkemungkinan tinggi dan meningkatkan ketepatan kemasukan.
Mengoptimumkan model ukuran kedudukan untuk menyesuaikan peruntukan secara dinamik berdasarkan keadaan risiko.
Secara keseluruhan, Noro
/*backtest start: 2023-09-23 00:00:00 end: 2023-10-23 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's Price Channel Strategy v1.1", shorttitle = "Price Channel str 1.1", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") usecol = input(true, defval = true, title = "Use color strategy") usersi = input(true, defval = true, title = "Use RSI strategy") lev = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage") pch = input(30, defval = 30, minval = 2, maxval = 200, title = "Price Channel") showcl = input(true, defval = true, title = "Show center-line") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") src = close //Price channel lasthigh = highest(src, pch) lastlow = lowest(src, pch) center = (lasthigh + lastlow) / 2 trend = low > center ? 1 : high < center ? -1 : trend[1] col = showcl ? blue : na plot(center, color = col, linewidth = 2) //Bars bar = close > open ? 1 : close < open ? -1 : 0 rbars = sma(bar, 2) == -1 gbars = sma(bar, 2) == 1 //Fast RSI fastup = rma(max(change(src), 0), 2) fastdown = rma(-min(change(src), 0), 2) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //Signals body = abs(close - open) abody = sma(body, 10) up1 = rbars and close > center and usecol dn1 = gbars and close < center and usecol up2 = fastrsi < 25 and close > center and usersi dn2 = fastrsi > 75 and close < center and usersi exit = (((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2) lot = strategy.equity / close * lev //Trading if up1 or up2 if strategy.position_size < 0 strategy.close_all() strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn1 or dn2 if strategy.position_size > 0 strategy.close_all() strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) or exit strategy.close_all()