Tren Mengikuti Strategi Momentum Breakout

Penulis:ChaoZhang, Tanggal: 2024-01-05 13:38:18
Tag:

img

Gambaran umum

Strategi ini disebut Trend Following Momentum Breakout Strategy. Ini menggunakan indikator Super Trend untuk menentukan arah tren saat ini dan menggabungkannya dengan arah tubuh lilin untuk tren mengikuti perdagangan untuk mencapai momentum breakout.

Logika Strategi

Inti dari strategi ini bergantung pada indikator Super Trend untuk menilai arah tren saat ini. Indikator Super Trend menghitung band atas dan bawah berdasarkan Average True Range (ATR). Ketika harga melewati band atas, itu adalah sinyal bullish, dan ketika harga melewati band bawah, itu adalah sinyal bearish.

Ketika indikator Super Trend menentukan uptrend, jika candlestick adalah tubuh merah (tutup di bawah terbuka), pergi panjang. Ketika indikator Super Trend menentukan downtrend, jika candlestick adalah tubuh hijau (tutup di atas terbuka), pergi pendek.

Analisis Keuntungan

Strategi ini menggabungkan penilaian tren dan karakteristik momentum untuk secara efektif memfilter keluar breakout palsu dan meningkatkan validitas sinyal perdagangan.

Keuntungan utama diringkas sebagai berikut:

  1. Menyaring pecah palsu dengan menggabungkan penilaian tren dan karakteristik momentum
  2. Ikuti arah tubuh candlestick untuk menghindari perdagangan kontra-trend
  3. Keuntungan yang lebih tinggi

Analisis Risiko

Risiko utama dari strategi ini adalah:

  1. Masalah bagaimana mengatur parameter indikator Super Trend. pengaturan parameter yang tidak benar dapat menyebabkan penilaian yang salah dan menghasilkan sinyal yang salah.
  2. Hanya mengikuti arah tubuh candlestick tidak dapat menentukan kekuatan tubuh, dan mungkin ada risiko kerugian.
  3. Rasio risiko-manfaat tetap tidak dapat disesuaikan secara dinamis dan kerugian tunggal tidak dapat dikontrol.

Langkah-langkah penanggulangan adalah:

  1. Mengoptimalkan parameter indikator Super Trend untuk membuat penilaian lebih akurat.
  2. Hukum kekuatan tubuh candlestick dengan menggabungkan indikator seperti volume perdagangan dan arus uang.
  3. Tambahkan stop loss dinamis untuk mengontrol loss tunggal.

Arahan Optimasi

Strategi ini dapat dioptimalkan dalam aspek berikut:

  1. Menggabungkan indikator teknis untuk penyaringan sinyal, seperti Bollinger Bands dan KDJ, untuk meningkatkan kinerja strategi.
  2. Tambahkan algoritma pembelajaran mesin untuk secara dinamis mengoptimalkan parameter dan membuat indikator Super Trend lebih stabil.
  3. Tambahkan mekanisme stop loss untuk menghentikan kerugian sebelum kerugian berkembang.
  4. Menggunakan produk dengan kemampuan perdagangan bidirectional, seperti futures untuk memanfaatkan sepenuhnya peluang jangka panjang dan jangka pendek.

Ringkasan

Secara umum, strategi ini sangat cocok untuk posisi jangka menengah dan pendek. Dengan menggabungkan penilaian tren dan momentum breakout, secara efektif dapat menyaring kebisingan dan meningkatkan tingkat kemenangan. Pada saat yang sama, masih ada ruang untuk optimasi parameter untuk mendapatkan kinerja strategi yang lebih baik.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy("Noro's SuperTrend Strategy v1.0", shorttitle = "ST str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
cloud = input(25, defval = 25, minval = 5, maxval = 50, title = "cloud, % of ATR")
Factor = input(title = "Super Trend", defval = 3, minval = 1, maxval = 100)
ATR = input(title = "ATR", defval = 7, minval = 1,maxval = 100)
centr = input(true, defval = true, title = "need center of ATR?")
border = input(false, defval = false, title = "need border?")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Super Trend ATR 1
src = close
Up=hl2-(Factor*atr(ATR))
Dn=hl2+(Factor*atr(ATR))
TUp=close[1]>TUp[1]? max(Up,TUp[1]) : Up
TDown=close[1]<TDown[1]? min(Dn,TDown[1]) : Dn
Trend = close > TDown[1] ? 1: close< TUp[1]? -1: nz(Trend[1],1)
Tsl1 = Trend==1? TUp: TDown
Tsl2 = Trend==1? TDown: TUp
limit = (Tsl1 - Tsl2) / 100 * cloud
upcloud = Tsl1 - limit
dncloud = Tsl2 + limit

//Cloud
linecolor = Trend == 1 ? green : red
centercolor = centr == true ? blue : na
cloudcolor = Trend == 1 ? green : red
cline = (Tsl1 + Tsl2) / 2
P1 = plot(Tsl1, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-1")
P2 = plot(Tsl2, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-2")
P3 = plot(cline, color = centercolor , style = line , linewidth = 1,title = "SuperTrend Center")
P4 = plot(upcloud, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend Center+1")
P5 = plot(dncloud, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend Center-1")
fill(P1, P4, color = linecolor == red ? red : lime, transp = 50)
fill(P2, P5, color = linecolor == red ? red : lime, transp = 50)

//Signals
up = Trend == 1 and close < open //and low < cline 
dn = Trend == -1 and close > open //and high > cline

//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if up
    strategy.entry("Long", strategy.long, needlong ? lot : 0)

if dn
    strategy.entry("Short", strategy.short, needshort ? lot : 0)


Lebih banyak