Saluran Donchian dengan Strategi Trailing Stop


Tanggal Pembuatan: 2023-12-07 16:53:10 Akhirnya memodifikasi: 2023-12-07 16:53:10
menyalin: 0 Jumlah klik: 854
1
fokus pada
1619
Pengikut

Saluran Donchian dengan Strategi Trailing Stop

Ringkasan

Strategi ini adalah strategi trend following yang didasarkan pada indikator saluran Dongxian, yang dikombinasikan dengan stop loss dinamis dari indikator ATR untuk mengunci keuntungan, dan termasuk dalam kategori strategi trend following.

Prinsip Strategi

Strategi ini menggunakan indikator saluran Dongxian dengan panjang 20 siklus, dengan garis tengah saluran sebagai rata-rata harga tertinggi dan terendah. Jika harga naik, maka harga akan melewati garis tengah saluran, dan jika harga turun, maka harga akan melewati garis tengah saluran.

Analisis Keunggulan

Strategi ini memiliki beberapa keuntungan utama:

  1. Menggunakan saluran Dongxian untuk menentukan arah tren pasar, dapat menangkap tren secara efektif
  2. Tergabung dengan ATR Dynamic Tracking Stop Loss, dapat mengontrol risiko secara efektif sambil menjamin keuntungan
  3. Dengan menambahkan faktor ATR dalam perhitungan stop loss line, maka volatilitas pasar dapat diperhitungkan, sehingga stop loss lebih masuk akal.
  4. Perhitungan garis stop loss lebih stabil dan dapat diandalkan, menghindari stop loss terlalu dekat, mengurangi probabilitas stop loss dituntut

Analisis risiko

Strategi ini memiliki risiko utama sebagai berikut:

  1. Dalam beberapa tahun terakhir, saya telah melihat banyak orang yang menggunakan alat-alat musik tradisional, tetapi tidak ada satu pun dari mereka yang menggunakan alat musik tradisional.
  2. Setting parameter ATR yang tidak tepat dapat menyebabkan stop loss terlalu longgar atau terlalu dekat
  3. Mekanisme penilaian tren yang relatif sederhana, dapat terjadi lebih banyak sinyal yang salah dalam pasar konsolidasi
  4. Kurangnya mekanisme penilaian yang efektif untuk mendukung resistensi, dan waktu yang salah untuk memasuki pasar

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Menambahkan penilaian indikator lain untuk menghindari sering berdagang di pasar tanpa tren yang jelas
  2. Meningkatkan support untuk resistance judgement, optimalisasi entry timing
  3. Mencoba cara lain untuk mengoptimalkan strategi stop loss
  4. Pengujian dampak dari berbagai parameter siklus saluran Dongxian terhadap efektivitas strategi
  5. Menambahkan kondisi penyaringan seperti volume transaksi atau incremental, mengurangi sinyal yang salah masuk

Meringkaskan

Strategi ini secara keseluruhan merupakan strategi yang sederhana dan praktis untuk mengikuti tren, dengan cara menentukan arah tren melalui saluran Tongxian, dan menggunakan stop loss dinamis untuk mengunci keuntungan. Strategi ini sangat praktis, tetapi dapat dioptimalkan lebih lanjut dengan berbagai cara, sehingga strategi ini masih dapat mempertahankan pendapatan yang stabil dalam lingkungan pasar yang lebih kompleks.

Kode Sumber Strategi
/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-06 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title = "dc",  overlay = true)
atrLength = input(title="ATR Length:", defval=20, minval=1)

testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2018, "Backtest Start Year")
testEndMonth = input(12)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testEndYear,testEndMonth,testEndDay,0,0)


testPeriod() =>
    true
    //time >= testPeriodStart  ? true : false

dcPeriod = input(20, "Period")

dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2
atrValue=atr(atrLength)


useTakeProfit   = na
useStopLoss     = na
useTrailStop    = na
useTrailOffset  = na
//@version=1
Buy_stop = lowest(low[1],3) - atr(20)[1] / 3
plot(Buy_stop, color=red, title="buy_stoploss")
Sell_stop = highest(high[1],3) + atr(20)[1] / 3
plot(Sell_stop, color=green, title="sell_stoploss")

plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)

plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average")

strategy.entry("simpleBuy", strategy.long, when=(close > dcAverage) and cross(close,dcAverage))
strategy.close("simpleBuy",when= ( close< Buy_stop))
    
strategy.entry("simpleSell", strategy.short,when=(close < dcAverage) and cross(close,dcAverage) )
strategy.close("simpleSell",when=( close > Sell_stop))
    
//strategy.exit("Exit simpleBuy", from_entry = "simpleBuy", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
//strategy.exit("Exit simpleSell", from_entry = "simpleSell", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)