Strategi Penembusan Tren


Tanggal Pembuatan: 2024-03-22 14:48:37 Akhirnya memodifikasi: 2024-03-22 14:48:37
menyalin: 1 Jumlah klik: 640
1
fokus pada
1617
Pengikut

Strategi Penembusan Tren

Ringkasan

Ini adalah strategi perdagangan kuantitatif yang menggunakan indikator ATR dan harga penutupan untuk menangkap trend breakout. Strategi ini menilai arah tren melalui perhitungan dinamis atas dan bawah garis tren, menghasilkan sinyal perdagangan ketika harga penutupan menembus garis tren. Strategi ini menetapkan stop loss dan harga target sekaligus, dan dapat melakukan stop loss bergerak sesuai dengan volatilitas.

Prinsip Strategi

  1. Perhitungan sinyal ATR: atr_signal = atr ((atr_period)
  2. Perhitungan garis tren naik turun:
    • Garis tren bawah: lower_trend = low - atr_mult*atr_signal
    • Garis tren atas: upper_trend = high + atr_mult*atr_signal
  3. Dinamis menyesuaikan garis tren, jika garis tren terobosan tetap tidak berubah, atau diperbarui menjadi nilai terbaru
  4. Garis tren diberi warna berdasarkan posisi harga penutupan relatif terhadap garis tren, untuk menentukan arah tren
  5. Menciptakan sinyal perdagangan:
    • Signal lebih banyak: Tidak ada posisi saat ini dan harga penutupan melampaui garis tren
    • Tanda kosong: Tidak ada posisi saat ini dan harga penutupan melewati garis tren
  6. Set Stop Loss dan Target Harga:
    • Stop loss: Nilai transaksi terbaru ± faktor amplitudo ATR saat terobosan
    • Target harga: Harga transaksi terbaru ± Stop Loss * Rasio untung rugirr
  7. Stop loss bergerak:
    • Stop loss multihead: garis tren tertinggi
    • Stop loss: garis tren terendah

Analisis Keunggulan

  1. Trendline yang beradaptasi dengan kondisi pasar yang berbeda berdasarkan volatilitas
  2. Garis tren memiliki penanda warna arah untuk membantu mengidentifikasi tren
  3. Menggunakan ATR sebagai ukuran volatilitas, menetapkan stop loss yang wajar dan target harga
  4. Fungsi Stop Loss Mobile untuk mengurangi penarikan sebanyak mungkin sambil menjamin keuntungan
  5. Tingkat parametrisasi tinggi, beradaptasi dengan berbagai varietas dan siklus

Analisis risiko

  1. Strategi trend breakout mudah menghasilkan terlalu banyak sinyal yang menyebabkan kerugian di pasar yang bergejolak
  2. Pilihan parameter ATR yang tidak tepat dapat menyebabkan garis tren menjadi terlalu sensitif atau lambat, yang mempengaruhi kualitas sinyal
  3. Rasio untung rugi tetap mungkin tidak dapat beradaptasi dengan karakteristik pasar yang berbeda
  4. Stop loss mobile mungkin akan menjadi pemicu penurunan, kehilangan tren

Solusi:

  1. Memperkenalkan filter tren atau penilaian tambahan indikator getaran untuk menghindari kerugian di pasar getaran
  2. Optimalkan parameter ATR berdasarkan varietas dan karakteristik siklus
  3. Mengoptimalkan rasio leverage dan logika stop loss bergerak, meningkatkan rasio risiko-keuntungan strategi
  4. Mengintegrasikan metode identifikasi tren untuk memperbaiki stop loss bergerak dan menangkap lebih banyak keuntungan tren

Arah optimasi

  1. Kombinasi multi-siklus waktu, identifikasi tren dengan siklus besar, sinyal pemicu siklus kecil
  2. Menambahkan validasi indikator kuantitatif sebelum garis tren pecah, meningkatkan efektivitas sinyal
  3. Mengoptimalkan manajemen posisi, meningkatkan operasi band
  4. Pengoptimalan parameter untuk stop loss dan profit loss ratio
  5. Memperbaiki logika stop loss mobile untuk mengurangi stop loss prematur dalam tren

Periode waktu yang lebih banyak membantu memfilter kebisingan dan menangkap tren dengan lebih stabil. Verifikasi indikator kuantitatif sebelum terobosan dapat menyingkirkan sinyal palsu. Pengoptimalan manajemen posisi dapat meningkatkan efisiensi pemanfaatan dana. Pengoptimalan parameter stop loss dan stop loss dapat meningkatkan rasio risiko keuntungan strategi.

Meringkaskan

Strategi ini menggunakan ATR untuk mengukur volatilitas, secara dinamis menyesuaikan posisi garis tren, menangkap tren tren. Tujuan stop loss dan profit yang ditetapkan secara masuk akal, dan menggunakan stop loss yang bergerak untuk mengunci keuntungan. Parameter yang dapat disesuaikan, adaptif. Namun, strategi pemecahan tren juga rentan terhadap pengaruh situasi yang bergolak, perlu lebih banyak pengoptimalan dan perbaikan.

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

//@version=4
strategy(title = "Claw-Pattern", overlay=true, calc_on_every_tick=true, default_qty_type= strategy.percent_of_equity,default_qty_value=10, currency="USD")
//Developer: Trading Strategy Guides
//Creator: Trading Strategy Guides
//Date: 3/18/2024
//Description: A trend trading system strategy 

atr_period = input(title="ATR Period", defval=120, type=input.integer)
atr_mult = input(title="ATR Multiplier", defval=2, type=input.integer)
dir = input(title="Direction (Long=1, Short=-1, Both = 0)", defval=1, type=input.integer)
factor = input(title="Stop Level Deviation (% Chan.)", defval=0.75, type=input.float)
rr = input(title="Reward to Risk Multiplier", defval=2, type=input.integer)
trail_bar_start = input(title="Trail Stop Bar Start", defval=20, type=input.integer)
col_candles = input(title="Enable Colored Candles", defval=false, type=input.bool)

atr_signal = atr(atr_period)

lower_trend = low - atr_mult*atr_signal
upper_trend = high + atr_mult*atr_signal

upper_trend := upper_trend > upper_trend[1] and close < upper_trend[1] ? upper_trend[1] : upper_trend
lower_trend := lower_trend < lower_trend[1] and close > lower_trend[1] ? lower_trend[1] : lower_trend

upper_color = barssince(cross(close, upper_trend[1])) > barssince(cross(close, lower_trend[1])) ? color.red : na
lower_color = barssince(cross(close, upper_trend[1])) > barssince(cross(close, lower_trend[1])) ? na : color.green

trend_line = lower_trend

plot(lower_trend, color=lower_color, title="Lower Trend Color")
plot(upper_trend, color=upper_color, title="Upper Trend Color")

is_buy = strategy.position_size == 0 and crossover(close, upper_trend[1]) and upper_color[1]==color.red and (dir == 1 or dir == 0)
is_sell = strategy.position_size == 0 and crossover(close, lower_trend[1]) and lower_color[1]==color.green and (dir == -1 or dir == 0)

if is_buy
    strategy.entry("Enter Long", strategy.long)
else if is_sell
    strategy.entry("Enter Short", strategy.short)