Strategi perdagangan ayunan berbasis momentum


Tanggal Pembuatan: 2024-02-05 10:44:19 Akhirnya memodifikasi: 2024-02-05 10:44:19
menyalin: 1 Jumlah klik: 678
1
fokus pada
1617
Pengikut

Strategi perdagangan ayunan berbasis momentum

Ringkasan

Strategi ini adalah strategi perdagangan day-space oscillating yang didasarkan pada teknologi momentum, menggunakan ATR stop loss. Strategi ini dibuat oleh Kory Hoang dari Stable.

Strategi menggunakan indikator momentum untuk mengidentifikasi arah tren, digabungkan dengan indikator ATR untuk mengatur garis stop loss, untuk mencapai strategi perdagangan getaran rendah dan tinggi.

Prinsip Strategi

Kode pertama yang ditetapkan adalah jangka waktu pengamatan.

Kemudian bagian indikator, yang menghitung beberapa indikator berikut:

  • atr ((): menghitung indikator ATR untuk pengaturan stop loss;
  • max/min: Rekam harga tertinggi/terendah pada satu garis K;
  • is_uptrend: menentukan apakah ada tren naik;
  • Masuk: Stop Loss Line

Logika utama dalam menilai tren adalah:

Jika close lebih tinggi dari stop line vstop yang sebelumnya turun, maka dianggap sebagai tren naik; jika close lebih rendah dari stop line vstop yang sebelumnya naik, maka dianggap sebagai tren turun.

Pada saat terjadi perubahan tren, posisi garis stop loss harus disesuaikan.

Secara khusus, pada saat tren naik, garis stop loss ditetapkan sebagai harga tertinggi sebelumnya K garis dikurangi nilai ATR; Pada saat tren turun, garis stop loss ditetapkan sebagai harga terendah sebelumnya K garis ditambah nilai ATR.

Hal ini memungkinkan stop loss dari trend tracking.

Pada bagian aturan perdagangan, buka posisi dengan melakukan over-collapsing saat melewati batas stop loss.

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Menggunakan teknik momentum untuk menentukan arah tren, menangkap titik balik tepat waktu, dan menghindari terobosan palsu.
  2. ATR stop loss melacak harga tertinggi/terendah, sehingga dapat mengontrol risiko dengan baik.
  3. Strategi logisnya sederhana, jelas, dan mudah dimengerti.
  4. Pada saat ini, ada banyak cara untuk melakukan perdagangan yang berbeda, seperti dengan melakukan trading shock dengan harga rendah dan harga tinggi.

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. ATR yang tidak dipilih dengan benar dapat menyebabkan stop loss yang terlalu longgar atau terlalu ketat.
  2. Tren gempa bumi dapat mengalami fluktuasi yang kuat, dengan kerusakan terus menerus.
  3. Transaksi mungkin lebih banyak dan biaya yang lebih tinggi.

Ada beberapa hal yang dapat dioptimalkan:

  1. Uji berbagai parameter ATR untuk menemukan kombinasi optimal.
  2. Optimalisasi Stop Lines berdasarkan ATR yang dikombinasikan dengan indikator volatilitas
  3. Tidak ada alasan untuk mengambil posisi di pasar yang bergoyang, dengan menggunakan filter tren.

Arah optimasi

Strategi ini dapat dioptimalkan dari beberapa arah:

  1. Uji parameter ATR yang berbeda untuk menemukan kombinasi optimal. Anda dapat memetakan kembali beberapa kombinasi untuk menilai rasio risiko / keuntungan.

  2. Garis stop loss yang dioptimalkan digabungkan dengan indikator fluktuasi berdasarkan ATR. Indikator fluktuasi dapat diperkenalkan, dengan pelepasan stop loss yang tepat saat fluktuasi meningkat.

  3. Kombinasi dengan filter tren, menghindari pasar yang bergoyang tidak perlu untuk membuka posisi. Anda dapat meningkatkan indikator penilaian tren, hanya membuka posisi ketika tren jelas.

  4. Meningkatkan mekanisme manajemen posisi. Anda dapat menyesuaikan posisi Anda berdasarkan tingkat pemanfaatan dana, jumlah stop loss berturut-turut, dan sebagainya.

  5. Meningkatkan pengendalian risiko overnight. Anda dapat secara aktif menghentikan kerugian sebelum penutupan, untuk menghindari harga overnight melonjak.

Meringkaskan

Strategi ini digunakan sebagai dasar untuk strategi perdagangan intraday yang bergoyang, memiliki pemikiran yang jelas, menggunakan teknik momentum untuk menilai tren, dan menggunakan indikator ATR untuk stop loss tracking slippage, yang dapat mengontrol risiko secara efektif.

Ada banyak ruang untuk pengoptimalan, yang dapat ditingkatkan dari berbagai sudut pandang seperti penilaian tren, metode stop loss, manajemen posisi, dan lain-lain, sehingga strategi lebih cocok untuk perdagangan langsung. Secara keseluruhan, strategi ini memberikan kerangka dasar yang bagus untuk perdagangan kuantitatif.

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

//@version=2
strategy("BTC Swinger", overlay=true, commission_value = 0.25, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)

/////////////////////////////////////////////////////////////
//START - SET DATE RANGE

// === BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2010, title = "From Year")
ToMonth   = input(defval = 12, title = "To Month", minval = 1)
ToDay     = input(defval = 31, title = "To Day", minval = 1)
ToYear    = input(defval = 2020, title = "To Year")

startDate = time > timestamp(FromYear, FromMonth, FromDay, 1, 1)
endDate = time < timestamp(ToYear, ToMonth, ToDay, 23, 59)
withinTimeRange = true

/////////////////////////////////////////////////////////////
//END - SET DATE RANGE



/////////////////////////////////////////////////////////////
//START - INDICATORS

length = input(3)
mult = input(1, minval = 0.01)
atr_ = atr(length)
max1 = max(nz(max_[1]), close)
min1 = min(nz(min_[1]), close)
is_uptrend_prev = nz(is_uptrend[1], true)
stop = is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_
vstop_prev = nz(vstop[1])
vstop1 = is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend = close - vstop1 >= 0
is_trend_changed = is_uptrend != is_uptrend_prev
max_ = is_trend_changed ? close : max1
min_ = is_trend_changed ? close : min1
vstop = is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1
plot(vstop, color = is_uptrend ? yellow : red, style=circles, linewidth=2)

/////////////////////////////////////////////////////////////
//END - INDICATORS



/////////////////////////////////////////////////////////////
//START - TRADING RULES
direction = input(defval=1, title = "Strategy Direction", minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

condition1 = close > vstop and withinTimeRange
condition2 = close < vstop and withinTimeRange

strategy.entry("BUY", strategy.long, when = condition1)
strategy.entry("SELL", strategy.short, when = condition2)

/////////////////////////////////////////////////////////////
//END - TRADING RULES