Saluran Harga dan Trend Berdasarkan Moving Average Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2024-02-06 09:46:23
Tag:

img

Gambaran umum

Strategi ini mengidentifikasi dan mengikuti tren dengan membangun Saluran Harga untuk menghitung penyimpangan harga dari garis tengah dan menggunakan rata-rata bergerak untuk menyaring sinyal.

Logika Strategi

  1. Membangun Saluran Harga
  • Menghitung tertinggi tertinggi dan terendah terendah selama periode len terakhir
  • Garis tengah adalah rata-rata tertinggi tertinggi dan terendah rendah
  • Jarak adalah penyimpangan mutlak harga dari garis tengah
  • Jarak halus untuk mendapatkan band atas dan bawah
  1. Tentukan Arah Tren
  • Ketika harga di bawah band bawah, mendefinisikan sebagai downtrend
  • Ketika harga di atas band atas, mendefinisikan sebagai uptrend
  1. Membuat Sinyal Perdagangan
  • Dalam tren naik, panjang ketika harga berada di bawah terbuka atau pecah di bawah band atas
  • Dalam downtrend, short ketika harga berada di atas terbuka atau pecah di atas band bawah

Analisis Keuntungan

  1. Mencatatkan tren jangka menengah hingga jangka panjang
  2. Kombinasi dengan sinyal breakout untuk menghindari perdagangan yang tidak efektif di pasar yang terikat rentang
  3. Parameter yang dapat disesuaikan sesuai dengan produk yang berbeda

Analisis Risiko

  1. Kemungkinan kerugian lebih kecil dalam tren osilasi
  2. Pengaturan parameter yang tidak tepat dapat melewatkan pembalikan tren
  3. Memantau frekuensi perdagangan untuk mencegah overtrading

Arahan Optimasi

  1. Tambahkan indikator lain ke sinyal filter
  2. Sesuaikan secara dinamis parameter Saluran Harga
  3. Menggabungkan stop loss untuk mengoptimalkan manajemen risiko

Kesimpulan

Strategi ini secara keseluruhan cukup kuat dalam melacak tren jangka menengah hingga panjang secara efektif sambil menghasilkan sinyal perdagangan melalui trend breakout. Perbaikan lebih lanjut dapat dilakukan melalui optimasi parameter dan penyaringan sinyal untuk menyesuaikan strategi dengan lebih banyak produk dan lingkungan pasar.


/*backtest
start: 2023-01-30 00:00:00
end: 2024-02-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Strategy v1.1", shorttitle = "NoroBands str 1.1", overlay=true)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
color = input(true, "Color")
needbb = input(true, defval = false, title = "Show Bands")
needbg = input(true, defval = false, title = "Show Background")
src = close

//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//dist
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma

//Trend
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 = 90)

//Signals
up = trend == 1 and ((close < open or color == false) or close < hd) ? 1 : 0
dn = trend == -1 and ((close > open or color == false) or close > ld) ? 1 : 0 

longCondition = up == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)

Lebih banyak