Penunjuk momentum dan penunjuk stokastik strategi gabungan


Tarikh penciptaan: 2023-12-26 14:30:23 Akhirnya diubah suai: 2023-12-26 14:30:23
Salin: 0 Bilangan klik: 761
1
fokus pada
1623
Pengikut

Penunjuk momentum dan penunjuk stokastik strategi gabungan

Gambaran keseluruhan

Strategi ini menggunakan gabungan indeks trend dan penunjuk rawak untuk menghasilkan isyarat perdagangan. Garis DI +, DI- dan ADX dalam indeks trend digunakan untuk menentukan arah dan kekuatan trend, dan garis% K dalam penunjuk rawak digunakan untuk menentukan sama ada overbought atau oversold.

Prinsip Strategi

Logik utama strategi ini adalah berdasarkan beberapa bahagian:

  1. Indeks trend menilai trend: Mengambil keputusan mengenai arah dan kekuatan trend pasaran melalui DI+, DI- dan ADX. Apabila DI+ lebih tinggi daripada DI-, ia menunjukkan trend yang lebih banyak; apabila DI- lebih tinggi daripada DI+, ia menunjukkan trend yang kosong.

  2. Indeks rawak menilai kelebihan beli dan kelebihan jual: Garis% K dalam penunjuk rawak menunjukkan kedudukan harga penutupan semasa berbanding harga tertinggi dan terendah dalam tempoh tertentu, digunakan untuk menentukan sama ada pasaran terlalu beli atau terlalu jual. Apabila% K di bawah 20 adalah terlalu jual, di atas 80 adalah terlalu beli.

  3. Isyarat menghasilkan logikGabungan indeks trend dan penunjuk rawak, strategi ini menghasilkan isyarat multihead apabila DI+ lebih tinggi daripada DI- ((trend multihead), ADX lebih tinggi daripada 25 ((trend lebih jelas) dan% K lebih rendah daripada 20 ((oversell); menghasilkan isyarat kosong apabila DI- lebih tinggi daripada DI+ ((trend overhead), ADX lebih tinggi daripada 25 dan% K lebih tinggi daripada 80 ((oversell)).

  4. Cara Hentikan Kerosakan Dinamik: Rekodkan harga tertinggi dan terendah selepas titik masuk terakhir, dan gunakan sebagai titik hentian yang dinamik. Oleh itu, anda boleh mengunci keuntungan atau mengawal risiko mengikut turun naik pasaran.

Analisis kelebihan

Strategi ini mempunyai beberapa kelebihan:

  1. Gabungan antara indeks trend dan penilaian dua kali ganda, kebolehpercayaan yang tinggi. Indeks trend menentukan arah trend utama, dan indikator rawak menangkap ciri-ciri tempatan, kedua-duanya saling membantu.

  2. Mekanisme Hentian Kerosakan Bergerak yang Inovatif. Dengan menetapkan titik hentian berdasarkan turun naik baru-baru ini, ia dapat mengawal risiko mengikut keadaan pasaran sebenar, dan hentian yang berkesan.

  3. Parameter strategi lebih sedikit, mudah dilaksanakan. Parameter utama hanya panjang pengiraan indikator, mudah menyesuaikan dan mengoptimumkan strategi.

  4. Strategi ini boleh digunakan di pasaran kewangan seperti saham, forex, dan cryptocurrency.

  5. Ia ditulis menggunakan skrip pine dan boleh digunakan secara langsung dalam platform perdagangan, mudah dan cepat.

Analisis risiko

Strategi ini juga mempunyai risiko yang perlu diperhatikan:

  1. Apabila trend bergoyang, mudah untuk menghasilkan isyarat salah. Pada masa ini ADX relatif rendah, anda harus menurunkan kedudukan untuk mengelakkan risiko.

  2. Penunjuk rawak itu sendiri adalah penunjuk belakang, dan pasaran mungkin telah berbalik ketika menghasilkan isyarat. Ia harus digabungkan dengan penunjuk pendahuluan lain.

  3. Mekanisme Hentikan Kerosakan Dinamik tidak dapat sepenuhnya mengelakkan kejutan pasaran yang besar. Ia disyorkan untuk menetapkan jarak Hentikan Kerosakan yang munasabah.

  4. Tetapan parameter yang tidak betul juga boleh mempengaruhi kesan strategi. Parameter panjang penunjuk yang sesuai harus dipilih.

  5. Perlu memantau keadaan pasaran secara keseluruhan dengan teliti. Strategi harus ditangguhkan apabila berlaku peristiwa Black Swan utama untuk mengelakkan kerugian yang luar biasa.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Menambah petunjuk penghakiman lain, membentuk penapisan berganda, meningkatkan kebolehpercayaan isyarat. Sebagai contoh, menyertai trend penghakiman rata-rata, penghakiman MACD menyimpang dan sebagainya.

  2. Optimumkan parameter, pilih kombinasi parameter yang terbaik. Anda boleh menentukan panjang penunjuk yang paling sesuai dengan mengkaji semula data sejarah.

  3. Tetapkan parameter yang berbeza mengikut jenis dan kitaran dagangan yang berbeza. Jenis yang sesuai untuk perdagangan frekuensi tinggi dapat mempersingkat kitaran pengiraan.

  4. Gabungan dengan fungsi getInfo dan fungsi catatan log, output log dagangan terperinci dan data penunjuk untuk analisis dan pengoptimuman strategi.

  5. Penambahan grafik pada editor pine untuk memaparkan titik isyarat dagangan. Pada masa yang sama, pergerakan garisan stop loss juga boleh ditunjukkan.

  6. Membangunkan fungsi amaran, menghantar peringatan mesej apabila syarat tertentu dipenuhi, untuk memudahkan intervensi perdagangan tepat pada masanya.

ringkaskan

Strategi ini menggabungkan kelebihan indeks trend dan petunjuk rawak untuk menentukan arah trend dan pada masa yang sama menentukan kawasan overbought dan oversold, sehingga menghasilkan isyarat perdagangan. Pada masa yang sama, cara menghentikan kerugian yang dirancang secara dinamik menjadikan kawalan risiko lebih pintar dan automatik. Isyarat strategi ini lebih dipercayai, luas, mudah digunakan, dan merupakan strategi perdagangan kuantitatif yang berkesan dan praktikal.

Kod 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)