Strategi Perdagangan Breakout Donchian


Tanggal Pembuatan: 2024-04-29 14:56:35 Akhirnya memodifikasi: 2024-04-29 14:56:35
menyalin: 0 Jumlah klik: 701
1
fokus pada
1617
Pengikut

Strategi Perdagangan Breakout Donchian

Ringkasan

Strategi Donchian breakout trading adalah sistem trading yang didasarkan pada indikator channel Donchian. Ide utama strategi ini adalah untuk menangkap tren pasar melalui penembusan saluran Donchian ke atas dan ke bawah, dan melakukan stop loss menggunakan rasio risiko-keuntungan yang tetap.

Prinsip Strategi

  1. Hitung saluran Donchian: Berdasarkan siklus saluran Donchian yang ditetapkan ((default 20), hitung harga tertinggi dan terendah dalam siklus tersebut, masing-masing sebagai lintasan atas dan bawah saluran Donchian, dan hitung titik tengah lintasan atas dan bawah sebagai lintasan tengah saluran Donchian.
  2. Menentukan apakah ada tinggi/rendah baru: dengan membandingkan siklus up dan down dari saluran Donchian saat ini dengan siklus up dan down dari siklus sebelumnya, untuk menentukan apakah ada tinggi atau rendah baru yang dibuat saat ini dari siklus saluran Donchian yang relatif. Jika ada tinggi baru, saluran Donchian di atas ditampilkan dengan warna biru; jika ada rendah baru, saluran Donchian di bawah ditampilkan dengan warna biru.
  3. Penembusan posisi terbuka: buka posisi multihead ketika harga menutup penembusan Donchian biru ke arah atas, buka posisi head kosong ketika penembusan Donchian biru ke arah bawah. Artinya, penembusan hanya berlaku setelah menciptakan tinggi / rendah baru.
  4. Stop Loss: Pada saat membuka posisi, catat harga bukaan dan harga saat ini di Donchian Channel, dan hitung selisih keduanya. Posisi stop loss ditetapkan di Donchian Channel, dan posisi stop loss berdasarkan rasio risiko-keuntungan yang ditetapkan (default 5x) dan selisih ini dihitung.
  5. Posisi terdepan: posisi terdepan ketika harga menyentuh harga stop loss atau stop loss.

Keunggulan Strategis

  1. Pas untuk pasar tren: Donchian strategi penembusan dengan menembus tren atas / bawah membuka posisi, bertransaksi sesuai dengan arah tren pasar, berkinerja baik dalam situasi tren.
  2. Filter tinggi/rendah baru: Strategi untuk memfilter beberapa sinyal noise dan false breakout dan meningkatkan kualitas sinyal pembukaan dengan menilai apakah menciptakan siklus tinggi/rendah baru pada saluran Donchian.
  3. Rasio keuntungan risiko tetap: posisi stop dan stop loss untuk setiap transaksi didasarkan pada rasio keuntungan risiko tetap, risiko dapat dikendalikan, dan menguntungkan manajemen dana.
  4. Parameter sederhana: pengaturan parameter strategi lebih sederhana, terutama untuk siklus saluran Donchian dan rasio risiko / keuntungan, lebih mudah dioptimalkan dan dikendalikan.

Risiko Strategis

  1. Stop loss: posisi stop loss strategi adalah di tengah-tengah saluran Donchian, di mana kerugian besar dapat terjadi pada satu perdagangan dalam situasi tren yang tidak jelas atau bergejolak.
  2. Sering bertransaksi: Jika Donchian channel memiliki pengaturan siklus yang lebih kecil, dapat menyebabkan sering membuka posisi kosong, meningkatkan biaya transaksi.
  3. Trend reversal: Strategi dapat mengalami beberapa stop loss berturut-turut selama periode trend reversal.
  4. Sensitivitas parameter: Kinerja strategi lebih sensitif terhadap pengaturan parameter, yang perlu dioptimalkan sesuai dengan karakteristik pasar yang berbeda dan siklus pasar.

Arah optimasi strategi

  1. Stop loss dinamis: Mengatur posisi stop loss secara real-time berdasarkan pergerakan harga, volatilitas, dan lain-lain, misalnya menggunakan ATR sebagai referensi stop loss, untuk mengurangi risiko transaksi tunggal.
  2. Filter tren: menambahkan indikator penilaian tren seperti rata-rata bergerak, hanya membuka posisi ketika arah tren jelas, meningkatkan kualitas sinyal.
  3. Kombinasi dengan indikator lain: seperti kombinasi RSI, MACD, dan indikator momentum lainnya, untuk mengevaluasi secara komprehensif waktu untuk membuka posisi.
  4. Manajemen posisi: Mengatur ukuran posisi berdasarkan dinamika seperti kekuatan tren pasar, volatilitas, dan lain-lain, untuk mengontrol risiko keseluruhan.
  5. Adaptasi parameter: Menggunakan metode seperti pembelajaran mesin untuk mengoptimalkan pengaturan parameter.

Meringkaskan

Strategi Donchian breakout trading adalah sistem perdagangan pelacakan tren yang didasarkan pada indikator saluran Donchian klasik. Strategi ini memiliki logika yang sederhana dan cocok untuk pasar yang sedang tren. Namun, dalam pasar yang bergejolak, strategi ini dapat dilakukan secara umum dan sensitif terhadap pengaturan parameter.

Kode Sumber Strategi
/*backtest
start: 2023-04-23 00:00:00
end: 2024-04-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//---------------------------------------------//
// This source code is subject to the terms of 
// the Mozilla Public License 2.0 at 
// https://mozilla.org/MPL/2.0/
// © Dillon_Grech
//---------------------------------------------//

//---------------------------------------------//
// Simple donchian channel break out strategy
// which only enters trades when price closes
// above donchian upper and creates new high 
// (long) or price closes below donchian lower
// and creates new low, relative to the donchian
// length. This is indicated by the donchian
// upper and lower color (blue). Stop loss is
// located at donchian basis and take profit
// is set at Risk Reward (RR) profit target.
//---------------------------------------------//
//@version=5
strategy("Donchian New High/Low Strategy [Dillon Grech]", overlay=true)

//---------------------------------------------//

//---------------------------------------------//
//INDICATOR 1 - Donchian New High Low Price Close
don_length = input.int(20, minval = 1)
don_lower  = ta.lowest(don_length)
don_upper  = ta.highest(don_length)
don_basis  = math.avg(don_upper, don_lower)

//loop
don_lower_upper  = true
don_higher_lower = true
for i = 0 to don_length - 1
    //Check for higher high over don_length
    if don_upper > don_upper[i]
        don_lower_upper := false
    //Check for lower low over don_length
    if don_lower < don_lower[i]
        don_higher_lower := false

//Plot
c_ora = color.orange
c_blu = color.blue
c_gra = color.gray
color_basis = c_ora
color_upper = don_lower_upper  ? c_blu : c_gra
color_lower = don_higher_lower ? c_blu : c_gra
plot(don_basis,     "Don Basis", color_basis, 2)
u = plot(don_upper, "Don Upper", color_upper, 2)
l = plot(don_lower, "Don Lower", color_lower, 2)

//Conditions
Ind_1_L = ta.crossover(close, don_upper[1]) and 
   don_lower_upper[1]
Ind_1_S = ta.crossunder(close,don_lower[1]) and 
   don_higher_lower[1]
//---------------------------------------------//

//---------------------------------------------//
//ENTRY CONDITIONS
entry_long  = strategy.position_size<=0 and
   Ind_1_L
entry_short = strategy.position_size>=0 and
   Ind_1_S

if(entry_long)
    strategy.entry("Long Entry", strategy.long)
if(entry_short)
    strategy.entry("Short Entry", strategy.short)
//---------------------------------------------/

//---------------------------------------------//
//TAKE PROFIT AND STOP LOSS CONDITIONS
profit_RR = input.float(5.0,"RR Profit Target")

//Store Price on new entry signal
entry_price = strategy.opentrades.entry_price(
   strategy.opentrades-1)

//Store Donchain Channel Basis
entry_don_basis = float(0.0)
if entry_long or entry_short
    entry_don_basis := don_basis
else
    entry_don_basis := entry_don_basis[1]

//Get stop loss distance
stop_distance = math.abs(entry_price -
   entry_don_basis)
stop_L   = entry_price - stop_distance
profit_L = entry_price + stop_distance*profit_RR
stop_S   = entry_price + stop_distance
profit_S = entry_price - stop_distance*profit_RR

//Plot TP and SL
plot(entry_long or entry_short ? na :
   strategy.position_size > 0 ? profit_L : na,
   color=color.lime, style=plot.style_linebr,
   linewidth=2)
plot(entry_long or entry_short ? na :
   strategy.position_size > 0 ? stop_L : na,
   color=color.red,  style=plot.style_linebr,
   linewidth=2)
plot(entry_long or entry_short ? na : 
   strategy.position_size < 0 ? profit_S : na,
   color=color.lime, style=plot.style_linebr,
   linewidth=2)
plot(entry_long or entry_short ? na :
   strategy.position_size < 0 ? stop_S : na,
   color=color.red,  style=plot.style_linebr,
   linewidth=2)

//Exit long trades
strategy.exit(id = 'Exit Long', 
   from_entry ='Long Entry', 
   stop = stop_L, limit = profit_L)
strategy.exit(id = 'Exit Short', 
   from_entry ='Short Entry', 
   stop = stop_S, limit = profit_S)
//---------------------------------------------//