Strategi Perdagangan Saluran Harga Dinamis

Penulis:ChaoZhang, Tanggal: 2023-09-16 19:01:26
Tag:

Gambaran umum

Artikel ini memperkenalkan strategi perdagangan jangka pendek berdasarkan saluran harga dinamis.

Logika Strategi

Strategi ini didasarkan pada logika berikut:

  1. Menghitung saluran harga dinamis menggunakan harga tertinggi dan terendah. Band atas adalah rata-rata harga tertinggi dan titik tengah saluran. Band bawah adalah titik tengah dikurangi perbedaan antara harga terendah dan titik tengah.

  2. Ketika harga menembus band atas, tren naik dimulai. Ketika harga menembus band bawah, tren turun dimulai.

  3. Dalam tren naik, pergi panjang ketika dua bar bearish berturut-turut muncul. Dalam tren turun, pergi pendek ketika dua bar bullish berturut-turut muncul.

  4. Pertimbangkan entri kontra-tren untuk mengejar momentum pasar. misalnya, pendek dalam tren naik dan panjang dalam tren turun.

  5. Tetapkan persentase keuntungan, seperti x% dari harga masuk, untuk mengunci keuntungan.

Analisis Keuntungan

Keuntungan dari strategi ini meliputi:

  1. Saluran dinamis mencerminkan perubahan pasar secara real time untuk penilaian tren yang lebih baik.

  2. Menggabungkan tren dan breakout menyaring breakout palsu.

  3. Entri kontra-tren memanfaatkan momentum pasar untuk keuntungan yang berlebihan.

  4. Menghentikan keuntungan secara efektif mengendalikan risiko.

  5. Logikanya sederhana dan jelas untuk penerapan yang mudah.

Analisis Risiko

Ada juga beberapa risiko yang harus dipertimbangkan:

  1. Saluran mungkin gagal selama pasar yang tidak stabil.

  2. Perdagangan yang bertentangan dengan tren rentan terhadap kerugian.

  3. Pengecualian palsu dapat menyebabkan perdagangan yang buruk.

  4. Hindari overtrading untuk mengendalikan biaya.

Kesimpulan

Strategi ini mengintegrasikan saluran dinamis, breakout, dan mengambil keuntungan. Dengan penyesuaian yang tepat, ini bisa menjadi alat perdagangan jangka pendek yang efektif.


/*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)

Lebih banyak