Artikel ini memperkenalkan strategi perdagangan jangka pendek berdasarkan saluran harga dinamik. Ia menilai arah trend dengan mengira saluran dinamik harga dan perdagangan pada saluran pecah.
Strategi ini berdasarkan logik berikut:
Mengira saluran harga dinamik menggunakan harga tertinggi dan terendah. Band atas adalah purata harga tertinggi dan titik tengah saluran. Band bawah adalah titik tengah dikurangkan perbezaan antara harga terendah dan titik tengah.
Apabila harga memecahkan di atas band atas, trend menaik bermula. Apabila harga memecahkan di bawah band bawah, trend menurun bermula.
Dalam trend menaik, pergi panjang apabila dua bar bearish berturut-turut muncul. Dalam trend menurun, pergi pendek apabila dua bar bullish berturut-turut muncul.
Pertimbangkan entri yang bertentangan dengan trend untuk mengejar momentum pasaran. Sebagai contoh, pendek dalam trend naik dan panjang dalam trend turun.
Tetapkan peratusan keuntungan, seperti x% daripada harga masuk, untuk mengunci keuntungan.
Kelebihan strategi ini termasuk:
Saluran dinamik mencerminkan perubahan pasaran dalam masa nyata untuk penilaian trend yang lebih baik.
Menggabungkan trend dan breakout menapis breakout palsu.
Pendapatan yang bertentangan dengan trend memanfaatkan momentum pasaran untuk keuntungan yang berlebihan.
Menghentikan keuntungan mengawal risiko dengan berkesan.
Logiknya mudah dan jelas untuk pelaksanaan yang mudah.
Terdapat juga beberapa risiko yang perlu dipertimbangkan:
Saluran mungkin gagal semasa pasaran yang tidak menentu.
Perdagangan yang bertentangan dengan trend adalah terdedah kepada kerugian.
Penembusan palsu boleh menyebabkan perdagangan yang buruk.
Elakkan overtrading untuk mengawal kos.
Strategi ini mengintegrasikan saluran dinamik, pecah, dan mengambil keuntungan. Dengan penyesuaian yang betul, ia boleh menjadi alat perdagangan jangka pendek yang berkesan. Tetapi peniaga harus memperhatikan kawalan risiko dan menyesuaikan dengan gaya mereka sendiri.
/*backtest start: 2022-09-09 00:00:00 end: 2023-09-15 00:00:00 period: 2d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Noro's Bands Scalper Strategy v1.1", shorttitle = "Scalper str 1.1", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %") needct = input(false, defval = false, title = "Counter-trend entry") len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period") needbb = input(true, defval = true, title = "Show Bands") needbg = input(true, defval = true, title = "Show Background") src = close //PriceChannel lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 //Distance dist = abs(src - center) distsma = sma(dist, len) hd = center + distsma ld = center - distsma hd2 = center + distsma * 2 ld2 = center - distsma * 2 //Trend sma = sma(close, 20) smatrend = close > sma ? 1 : close < sma ? -1 : smatrend[1] trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1] //Lines colo = needbb == false ? na : black plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band") plot(center, color = colo, linewidth = 1, transp = 0, title = "center") plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band") //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 80) //Signals bar = close > open ? 1 : close < open ? -1 : 0 up7 = trend == 1 and bar == -1 and bar[1] == -1 ? 1 : 0 dn7 = trend == 1 and bar == 1 and bar[1] == 1 and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0 up8 = trend == -1 and bar == -1 and bar[1] == -1 and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0 dn8 = trend == -1 and bar == 1 and bar[1] == 1 ? 1 : 0 if up7 == 1 or up8 == 1 strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na) if dn7 == 1 or dn8 == 1 strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)