SuperTrend Trend Mengikut Strategi

Penulis:ChaoZhang, Tarikh: 2023-09-24
Tag:

Ringkasan

Strategi ini menggunakan penunjuk SuperTrend untuk menentukan arah trend harga dan menjana isyarat perdagangan, yang tergolong dalam kategori strategi trend berikut.

Logika Strategi

  1. Mengira ATR dan purata tertinggi tertinggi dan terendah terendah untuk menentukan band atas dan bawah SuperTrend berdasarkan pengganda.

  2. Tentukan sama ada harga pecah di atas jalur atas atau di bawah jalur bawah untuk mengenal pasti arah SuperTrend.

  3. Isyarat panjang apabila harga melintasi band bawah. Isyarat pendek apabila harga melintasi band atas.

  4. Boleh memilih untuk masuk pada bar seterusnya terbuka apabila isyarat dicetuskan, atau segera apabila harga mencapai band SuperTrend.

Kelebihan

  1. SuperTrend jelas mengenal pasti trend, mudah untuk diprogram.

  2. Pilihan kemasukan yang fleksibel sesuai dengan pilihan peniaga yang berbeza.

  3. Boleh menangkap dengan cepat trend jangka sederhana, sesuai untuk trend berikut.

  4. Perdagangan yang kerap membolehkan pengembangan dan peningkatan.

Risiko

  1. SuperTrend ketinggalan berpotensi kehilangan entri terbaik.

  2. Frekuensi perdagangan yang tinggi membawa kepada kos seluncur yang lebih besar.

  3. Tiada alat kawalan risiko seperti stop loss.

  4. Ujian semula hanya pada data Tesla 1 minit, sukar untuk membuktikan keabsahan strategi.

Kemungkinan Penyelesaian:

  1. Sesuaikan parameter untuk mengurangkan lag.

  2. Tambah kawalan slippage untuk mengehadkan kos.

  3. Menggabungkan stop loss untuk mengawal kerugian setiap perdagangan.

  4. Uji balik di lebih banyak produk dan jangka masa untuk ketahanan.

Arahan pengoptimuman

  1. Uji set parameter yang berbeza untuk mengurangkan lag.

  2. Tambah penapis untuk mengelakkan whipsaws.

  3. Mengoptimumkan pengurusan wang untuk kecekapan yang lebih tinggi.

  4. Menggabungkan pembelajaran mesin untuk meramalkan arah SuperTrend.

  5. Tambah penunjuk lain untuk mengesahkan isyarat dan meningkatkan kestabilan.

Ringkasan

Strategi ini menggunakan SuperTrend untuk mengenal pasti hala tuju trend jangka menengah untuk isyarat perdagangan, yang khas untuk strategi trend berikut. Kerangka keseluruhan adalah mudah dan berkesan, tetapi boleh ditingkatkan lagi dalam bidang seperti peluang kemasukan, pengurusan risiko, pemilihan parameter dan lain-lain. Dengan lebih banyak data sejarah di seluruh produk dan teknik bersepadu seperti pembelajaran mesin, ia boleh ditingkatkan secara ketara dalam kestabilan dan keuntungan.


/*backtest
start: 2023-08-24 00:00:00
end: 2023-09-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("QuantNomad - SuperTrend - TSLA - 1m", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

// INPUTS //
st_mult   = input(3,   title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01)
st_period = input(120, title = 'SuperTrend Period',     minval = 1)

// CALCULATIONS //
up_lev = hl2 - (st_mult * atr(st_period))
dn_lev = hl2 + (st_mult * atr(st_period))

up_trend   = 0.0
up_trend   := close[1] > up_trend[1]   ? max(up_lev, up_trend[1])   : up_lev

down_trend = 0.0
down_trend := close[1] < down_trend[1] ? min(dn_lev, down_trend[1]) : dn_lev

// Calculate trend var
trend = 0
trend := close > down_trend[1] ? 1: close < up_trend[1] ? -1 : nz(trend[1], 1)

// Calculate SuperTrend Line
st_line = trend ==1 ? up_trend : down_trend

// Plotting
plot(st_line, color = trend == 1 ? color.green : color.red , style = plot.style_line, linewidth = 2, title = "SuperTrend")

plotshape(crossover( close, st_line), location = location.belowbar, color = color.green)
plotshape(crossunder(close, st_line), location = location.abovebar, color = color.red)

// Strategy with "when"
//strategy.entry("long",  true,  when = crossover( close, down_trend[1]))
//strategy.entry("short", false, when = crossunder(close, up_trend[1]))

// Strategy with stop orders
strategy.entry("long",  true,  stop = down_trend[1])
strategy.entry("short", false, stop = up_trend[1])

Lebih lanjut