Noro
Strategi ini pertama-tama menghitung rata-rata harga tertinggi dan terendah selama periode tertentu untuk membangun saluran harga pertengahan. Ketika harga pecah di atas saluran dari bawah, itu dianggap sinyal panjang. Ketika harga pecah di bawah saluran dari atas, itu dianggap sinyal pendek.
Pada saat yang sama, strategi ini menggabungkan dua aturan tambahan: RSI cepat dan warna lilin. Ketika RSI cepat di bawah 25%, ini menunjukkan status oversold dan harga mungkin bangkit kembali. Bersama dengan pecah di atas saluran, ini menghasilkan sinyal panjang yang lebih kuat. Sebaliknya, ketika RSI cepat di atas 75%, ini menunjukkan status overbought dan harga mungkin turun. Bersama dengan kerusakan di bawah saluran, ini menghasilkan sinyal pendek yang lebih kuat. Selain itu, strategi ini melacak perubahan warna lilin selama dua lilin terakhir. Dua lilin merah berturut-turut meningkatkan sinyal pendek, sementara dua lilin hijau berturut-turut meningkatkan sinyal panjang.
Dengan menggabungkan tiga indikator sinyal ini, strategi dapat secara efektif mengidentifikasi tren jangka menengah hingga panjang dan menetapkan posisi sesuai.
Keuntungan terbesar dari strategi ini adalah menggabungkan beberapa indikator untuk menentukan arah tren dan menghindari kebisingan dari fluktuasi pasar jangka pendek.
Saluran harga dengan jelas mengidentifikasi arah tren dan kekuatan.
RSI cepat menilai kondisi overbought/oversold untuk menghindari mengejar tren pada titik balik.
Validasi warna lilin lebih lanjut memverifikasi keberlanjutan tren. Posisi ditutup jika warna berubah.
Strategi ini hanya masuk pada dua lilin berwarna yang sama berturut-turut memecahkan saluran, menghindari sinyal palsu dari osilasi jangka pendek.
Stop loss rata-rata sederhana menutup posisi setelah warna lilin berubah, meminimalkan kerugian secara efektif.
Ada juga beberapa risiko yang harus diperhatikan untuk strategi ini:
Pengaturan parameter saluran harga yang tidak benar dapat mengakibatkan saluran yang terlalu lebar atau terlalu sempit, kehilangan titik perubahan tren atau menghasilkan sinyal palsu yang berlebihan.
Pengaturan parameter RSI cepat yang tidak tepat mungkin gagal mengidentifikasi kondisi overbought/oversold dengan akurat, sehingga kehilangan peluang pembalikan.
Mekanisme stop loss sederhana mungkin terlalu sensitif pada tren bergolak, menyebabkan pembukaan dan penutupan posisi yang berlebihan.
Ini tidak dapat memprediksi kelanjutan tren yang sebenarnya setelah menembus saluran harga, yang mengarah pada kerugian yang diperkuat.
Tidak bisa beradaptasi dengan peristiwa angsa hitam dengan dampak pasar yang tiba-tiba, mengakibatkan kerugian besar.
Beberapa peluang utama untuk meningkatkan strategi meliputi:
Sesuaikan secara dinamis parameter saluran harga untuk lebih beradaptasi dengan volatilitas di berbagai periode dan pasar.
Menggabungkan ukuran volatilitas untuk menyesuaikan parameter RSI, menurunkan sensitivitas selama volatilitas tinggi dan meningkatkan sensitivitas selama volatilitas rendah.
Tambahkan mekanisme stop trailing dengan level stop berdasarkan volatilitas tren untuk menghindari stop out yang terlalu sensitif.
Meningkatkan identifikasi kekuatan terobosan dan divergensi bearish/bullish untuk menghindari terobosan palsu.
Mengintegrasikan model pelatihan data historis untuk membantu memperkirakan titik balik tren dengan kemungkinan tinggi dan meningkatkan akurasi entri.
Mengoptimalkan model ukuran posisi untuk menyesuaikan alokasi secara dinamis berdasarkan kondisi 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()