Strategi momentum indikator panjang dan pendek


Tanggal Pembuatan: 2023-11-02 16:34:48 Akhirnya memodifikasi: 2023-11-02 16:34:48
menyalin: 0 Jumlah klik: 644
1
fokus pada
1617
Pengikut

Strategi momentum indikator panjang dan pendek

Ringkasan

Strategi ini menggunakan indikator momentum seperti indikator rata-rata arah ((ADX), indikator pergerakan ((DMI) dan indikator jalur komoditas ((CCI) untuk menentukan arah tren, untuk melacak tren. Ketika ADX dan indikator tren mengkonfirmasi tren terbentuk, posisi didirikan pada saat overbought CCI.

Prinsip Strategi

  1. Perhitungan ADX, DMI dan CCI.

    • ADX digunakan untuk menilai kekuatan tren, dan ketika ADX lebih tinggi dari batas yang ditetapkan, tren dianggap cukup kuat.
    • DMI terdiri dari DI+ dan DI-, yang masing-masing menunjukkan intensitas tren naik dan tren turun. Ketika DI+ lebih tinggi dari DI-, dianggap berada dalam tren naik, sebaliknya adalah tren turun.
    • CCI digunakan untuk menilai overbought dan oversold. CCI di bawah 100 berarti oversold, dan di atas 100 berarti overbought.
  2. Menentukan arah tren.

    • Ketika DI+ di atas DI-, dinilai sebagai tren naik.
    • Ketika DI- turun melewati DI+, ditentukan sebagai tren menurun.
  3. Masuk ke dalam arena

    • Ketika tren naik terjadi, ADX lebih tinggi dari titik terendah dan CCI lebih rendah dari -100, masuk lebih banyak.
    • Ketika tren turun, ADX lebih tinggi dari titik terendah, dan CCI lebih tinggi dari 100, melakukan short entry.
  4. Keluar dari pertandingan.

    • Di bawah DI-di bawah DI+ di bawah DI+
    • Ketika kosong, ketika DI+ memakai DI- ketika bersih.

Analisis Keunggulan Strategi

  1. Menggunakan ADX untuk menilai tren kuat atau lemah, dan menghindari perdagangan yang sia-sia tanpa tren yang jelas.

  2. Menggunakan DMI untuk menentukan arah tren, mengurangi kemungkinan kesalahan penilaian.

  3. Dengan masuk saat over-the-horizon CCI, Anda dapat menangkap titik-titik perubahan tren tepat waktu dan mengurangi risiko masuk.

  4. Penggunaan kombinasi indikator momentum dapat meningkatkan akurasi penilaian.

  5. Ada mekanisme stop loss yang dapat membatasi setiap kerugian.

Risiko dan perlindungan

  1. Pada saat ADX turun, akan ada beberapa transaksi kecemasan yang menyebabkan kerugian. Anda dapat menaikkan nilai masuk ADX dengan tepat untuk memastikan tren cukup jelas.

  2. Indikator DMI tertinggal dan mungkin melewatkan peluang di awal tren. Dapat bekerja sama dengan indikator lain atau analisis teknis grafis untuk menentukan waktu masuk.

  3. CCI mudah menghasilkan transaksi yang sering. Anda dapat dengan tepat melonggarkan margin CCI, memfilter beberapa kebisingan.

  4. Jika Anda melakukan lebih banyak shorting dan memegang posisi pada saat yang sama, pertimbangkan untuk menggunakan strategi netral pasar saham, membuat aturan perlindungan nilai jangka pendek, dan mengurangi risiko posisi secara keseluruhan.

Arah optimasi strategi

  1. Optimalkan parameter ADX untuk menemukan keseimbangan optimal antara filtering noise dan catching trend in time.

  2. Optimalkan parameter DMI, keseimbangan keterbelakangan dan sensitivitas.

  3. Optimalkan parameter CCI, keseimbangan frekuensi perdagangan dan kemampuan untuk menangkap reversal.

  4. Tes menambahkan atau mengubah indikator lain untuk mencari kombinasi yang lebih baik. Misalnya MACD, KDJ, dll.

  5. Tes varietas perdagangan untuk menemukan varietas yang paling cocok.

  6. Mengoptimalkan strategi manajemen posisi, mengendalikan risiko dengan tetap menjaga kemampuan untuk melacak tren.

Meringkaskan

Strategi ini menggunakan ADX menilai tren, DMI menentukan arah, CCI posisi titik balik pemikiran untuk trend mengikuti perdagangan, memiliki logika yang lebih kuat. Namun, masih perlu untuk mengoptimalkan parameter, dan bekerja sama dengan manajemen posisi untuk mengendalikan risiko. Jika masing-masing parameter disesuaikan dengan tingkat yang tepat, dan diterapkan pada varietas yang jelas tren, strategi ini diharapkan untuk mendapatkan keuntungan yang stabil.

Kode Sumber Strategi
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("ADX Strategy", currency = "USD", initial_capital = 1000, overlay=true)
adxlen = input(9, title="ADX Smoothing")
dilen = input(14, title="DI Length")
ADX_Entry = input(25, title="ADX Entry")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
	minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
	[plus, minus]

adx(dilen, adxlen) => 
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
	[adx, plus, minus]

[sig, up, down] = adx(dilen, adxlen)
cci_length = input(20, minval=1, title="CCI Length")
cci_ma = sma(close, cci_length)
cci = (close - cci_ma) / (0.015 * dev(close, cci_length))

stop_loss = syminfo.mintick * 100


open_longs = strategy.position_size > 0
open_shorts = strategy.position_size < 0

possible_bull = false
possible_bull := not open_longs ? (possible_bull[1] and not crossunder(up,down) ? true : false) : false
possible_bear = false
possible_bear := not open_shorts ? (possible_bear[1] and not crossunder(down,up) ? true : false) : false



bool bull_entry = crossover(up,down)

if(bull_entry and up < ADX_Entry and cci < 0)
	possible_bull := true
	bull_entry := false

if(possible_bull and up > ADX_Entry and cci > -100)
	bull_entry := true

bool bear_entry = crossover(down,up)

if(bear_entry and down < ADX_Entry and cci > 0)
	possible_bear := true
	bear_entry := false

if(possible_bear and down >= ADX_Entry and cci < 100)
	bear_entry := true

strategy.entry("Short", strategy.short, qty = 1,comment="Short", stop=high[1] - stop_loss, when = bear_entry)
strategy.entry("Long", strategy.long, qty = 1, comment="Long", stop=low[1] - stop_loss, when = bull_entry )	

strategy.close_all(when = (open_shorts and (crossover(up,down) or crossover(sig,down))) or (open_longs and ( crossover(down,up) or crossover(sig, up))))