Strategi pembalikan harga yang dipandu oleh saluran harga menghitung garis tengah saluran harga untuk menentukan arah tren fluktuasi harga. Ini menghasilkan sinyal panjang dan pendek ketika harga mendekati garis tengah saluran.
Indikator inti dari strategi ini adalah garis tengah saluran harga. Hal ini dihitung sebagai rata-rata harga tertinggi dan harga terendah dari 30 candlestick terbaru. Ketika rendah lebih tinggi dari garis tengah, itu dianggap sebagai uptrend. Ketika tinggi lebih rendah dari garis tengah, itu dianggap sebagai downtrend.
Strategi ini hanya menghasilkan sinyal perdagangan ketika latar belakang tren berubah. yaitu, dalam latar belakang tren naik, itu hanya akan pendek ketika lilin berubah menjadi merah. Dalam latar belakang tren turun, itu akan panjang hanya ketika lilin berubah menjadi hijau.
Selain itu, strategi ini juga menetapkan kondisi filter ganda: filter tubuh candlestick dan filter batang saluran harga. Sinyal hanya dipicu ketika volume tubuh candlestick lebih besar dari 20% dari nilai rata-rata, dan harus ada sinyal tren berturut-turut dalam siklus filter untuk membuka posisi.
Strategi ini menggabungkan tren, area nilai dan pola candlestick, yang merupakan strategi perdagangan pembalikan yang efisien. Keuntungan utama adalah:
Risiko utama dari strategi ini berasal dari titik pembalikan harga yang hilang dan menunggu sinyal yang tidak perlu.
Strategi ini dapat dioptimalkan dalam aspek berikut:
Strategi pembalikan harga yang dipandu oleh saluran harga menentukan titik pembalikan melalui saluran harga, dan menetapkan kondisi filter ganda untuk menghasilkan sinyal berkualitas tinggi.
/*backtest start: 2023-11-19 00:00:00 end: 2023-11-26 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's PriceChannel for D1 v1.0", shorttitle = "PriceChannel D1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0) //Settings needlong = input(true, "long") needshort = input(true, "short") slowlen = input(30, defval = 30, minval = 2, maxval = 200, title = "PriceChannel Period") pcbars = input(1, defval = 1, minval = 1, maxval = 20, title = "PriceChannel Bars") usecol = input(true, "Use color-filter") usebod = input(true, "Use body-filter") needbg = input(false, defval = false, title = "Need trend Background?") 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 //PriceChannel lasthigh = highest(src, slowlen) lastlow = lowest(src, slowlen) center = (lasthigh + lastlow) / 2 //Trend ub = low > center ? 1 : 0 db = high < center ? 1 : 0 trend = sma(ub, pcbars) == 1 ? 1 : sma(db, pcbars) == 1 ? -1 : trend[1] //Body body = abs(close - open) abody = sma(body, 10) //Signals up = trend == 1 and (close < open or usecol == false) and (body > abody / 5 or usebod == false) dn = trend == -1 and (close > open or usecol == false) and (body > abody / 5 or usebod == false) //Lines plot(center, color = blue, linewidth = 3, transp = 0, title = "PriceChannel Center") //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 80) //Trading if up strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()