Strategi gabungan indikator momentum dan indikator stokastik


Tanggal Pembuatan: 2023-12-26 14:30:23 Akhirnya memodifikasi: 2023-12-26 14:30:23
menyalin: 0 Jumlah klik: 761
1
fokus pada
1623
Pengikut

Strategi gabungan indikator momentum dan indikator stokastik

Ringkasan

Strategi ini menggunakan kombinasi indeks tren dan indikator acak untuk menghasilkan sinyal perdagangan. Garis DI +, DI- dan ADX dalam indeks tren digunakan untuk menentukan arah dan kekuatan tren, dan garis% K dalam indikator acak digunakan untuk menentukan apakah ada overbought atau oversold. Strategi menghasilkan sinyal multihead ketika DI + lebih tinggi dari DI-, ADX lebih tinggi dari 25 dan 20% K lebih rendah; menghasilkan sinyal kosong ketika DI- lebih tinggi dari DI +, ADX lebih tinggi dari 25 dan 80% K lebih tinggi.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada beberapa bagian:

  1. Indeks tren menilai tren: Menggunakan DI+, DI- dan ADX untuk menilai arah dan kekuatan tren pasar. Ketika DI+ lebih tinggi dari DI-, menunjukkan tren multihead; Ketika DI- lebih tinggi dari DI+, menunjukkan tren overhead. ADX digunakan untuk menilai kekuatan tren, nilai yang lebih besar menunjukkan tren lebih jelas.

  2. Indikator acak menilai overbuying dan overselling: Garis %K dalam indikator acak menunjukkan posisi harga penutupan saat ini relatif terhadap harga tertinggi dan terendah dalam periode tertentu, untuk menilai apakah pasar overbought atau oversold. Ketika%K di bawah 20 adalah oversold, dan di atas 80 adalah oversold.

  3. Sinyal menghasilkan logikaKombinasi indeks tren dan indikator acak, strategi ini menghasilkan sinyal multihead ketika DI + lebih tinggi dari DI - ((tren multihead), ADX lebih tinggi dari 25 ((tren lebih jelas) dan% K lebih rendah dari 20 ((oversell); menghasilkan sinyal head kosong ketika DI - lebih tinggi dari DI + ((tren overhead), ADX lebih tinggi dari 25 dan% K lebih tinggi dari 80 ((oversell)).

  4. Metode Stop Loss Dinamis: mencatat harga tertinggi dan terendah setelah titik masuk terakhir, dan menggunakannya sebagai stop loss yang dinamis. Dengan demikian, Anda dapat mengunci keuntungan atau mengendalikan risiko sesuai dengan fluktuasi pasar.

Analisis Keunggulan

Strategi ini memiliki beberapa keuntungan utama:

  1. Kombinasi indeks tren dan indikator acak penilaian ganda, keandalan yang lebih tinggi. Indeks tren menentukan arah tren utama, indikator acak menangkap karakteristik lokal, keduanya saling melengkapi.

  2. Mekanisme Stop Loss yang inovatif dan dinamis. Mengatur Stop Loss berdasarkan fluktuasi terbaru, dapat mengontrol risiko sesuai dengan kondisi pasar yang sebenarnya, dan memiliki efek Stop Loss yang baik.

  3. Parameter kebijakan yang lebih sedikit, mudah untuk diterapkan. Parameter utama hanya panjang perhitungan indikator, mudah untuk menyesuaikan dan mengoptimalkan kebijakan.

  4. Strategi ini dapat digunakan di berbagai pasar keuangan seperti saham, forex, dan cryptocurrency.

  5. Penulisan skrip pine yang dapat langsung diterapkan pada platform perdagangan, mudah dan cepat.

Analisis risiko

Strategi ini juga memiliki beberapa risiko yang perlu diperhatikan:

  1. Ketika tren bergoyang, mudah untuk menghasilkan sinyal yang salah. Pada saat ini ADX relatif rendah, posisi harus diturunkan untuk menghindari risiko.

  2. Indikator acak itu sendiri adalah indikator backtesting, pasar mungkin telah terjadi pembalikan ketika menghasilkan sinyal. Harus digabungkan dengan indikator pendahulu lainnya sesuai.

  3. Mekanisme Stop Loss Dinamis tidak dapat sepenuhnya menghindari dampak dari pasar yang besar. Disarankan untuk mengatur jarak Stop Loss yang masuk akal.

  4. Setting parameter yang tidak tepat juga dapat mempengaruhi efek kebijakan. Anda harus memilih parameter panjang indikator yang sesuai.

  5. Perlu untuk memantau secara dekat kondisi pasar secara keseluruhan. Strategi harus dihentikan pada saat terjadi peristiwa Black Swan yang signifikan untuk menghindari kerugian yang tidak biasa.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Menambahkan indikator penilaian lainnya, membentuk filter ganda, meningkatkan keandalan sinyal. Misalnya, bergabung dengan tren penilaian rata-rata, MACD menilai deviasi, dll.

  2. Optimalkan pengaturan parameter, pilih kombinasi parameter yang optimal. Anda dapat menentukan panjang indikator yang paling sesuai dengan mengulang data historis.

  3. Sesuaikan parameter yang berbeda untuk varietas dan siklus perdagangan. Varietas yang cocok untuk perdagangan frekuensi tinggi dapat mempersingkat siklus perhitungan.

  4. Gabungan dengan fungsi getInfo dan fungsi logging, output log transaksi dan data indikator terperinci untuk analisis dan optimasi strategi.

  5. Tambahkan grafik di editor pine untuk menampilkan titik sinyal perdagangan. Selain itu, Anda juga dapat melihat pergerakan garis stop loss.

  6. Mengembangkan fungsi peringatan, mengirim pesan peringatan ketika kondisi tertentu terpenuhi, untuk memudahkan intervensi transaksi yang tepat waktu.

Meringkaskan

Strategi ini menggabungkan manfaat dari indikator tren dan indikator acak, menentukan arah tren dan mengidentifikasi area overbought dan oversold, sehingga menghasilkan sinyal perdagangan. Selain itu, strategi ini dirancang dengan cara yang inovatif untuk menghentikan kerugian secara dinamis, sehingga pengendalian risiko menjadi lebih cerdas dan otomatis.

Kode Sumber Strategi
/*backtest
start: 2022-12-19 00:00:00
end: 2023-12-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("DMI with Stochastic and Dynamic Stop-Loss", shorttitle="DMI_Stoch_SL", overlay=true)

length = input(14, title="DMI Length")
adxThreshold = input(25, title="ADX Threshold")
stochKLength = input(14, title="Stochastic %K Length")
stochDLength = input(3, title="Stochastic %D Length")

[diPlus, diMinus, adx] = ta.dmi(length, length)
stochKLine = ta.stoch(close, high, low, stochKLength)

var float lowestClose = na
var float highestClose = na
lowestClose := na(lowestClose) ? close : math.min(lowestClose, close)
highestClose := na(highestClose) ? close : math.max(highestClose, close)

longCondition = (diPlus > diMinus) and (adx > adxThreshold) and (stochKLine < 20)
shortCondition = (diMinus > diPlus) and (adx > adxThreshold) and (stochKLine > 80)

if longCondition
    strategy.entry("Buy", strategy.long)
    strategy.exit("Exit Buy", "Buy", stop=lowestClose)

if shortCondition
    strategy.entry("Sell", strategy.short)
    strategy.exit("Exit Sell", "Sell", stop=highestClose)