Strategi Pengesanan Trend Kuantitatif Berdasarkan Pelbagai Penunjuk Teknikal

Penulis:ChaoZhang, Tarikh: 2024-01-22 10:40:01
Tag:

img

Ringkasan

Strategi ini menggabungkan beberapa penunjuk teknikal seperti Bollinger Bands, Stochastic Oscillator, dan Indeks Kekuatan Relatif untuk menetapkan isyarat beli dan jual untuk operasi penjejakan trend jangka panjang pada aset crypto.

Prinsip Strategi

Strategi ini pertama menetapkan parameter pengiraan untuk penunjuk seperti Bollinger Bands, Stochastic Oscillator, dan RSI. Isyarat beli ditakrifkan sebagai: tutup di bawah Bollinger Lower Band, K line di bawah 20 dan di atas D line, RSI di bawah 30. Apabila ketiga-tiga syarat dipenuhi pada masa yang sama, pergi panjang. Isyarat jual sebahagiannya ditakrifkan sebagai: K line di atas 70 dan di bawah 70 pada tempoh sebelumnya (golden cross dead cross), dan terdapat perbezaan RSI. Apabila kedua-dua syarat ini dipenuhi, tutup 50% kedudukan.

Analisis Kelebihan

Strategi ini menggabungkan beberapa penunjuk untuk menilai keadaan pasaran dan mengelakkan salah menilai yang disebabkan oleh satu penunjuk. Bollinger Bands untuk menilai sama ada ia terlalu banyak dijual, Stochastic Oscillator untuk menilai sama ada ia terlalu banyak dijual, dan RSI untuk menilai sama ada ia terlalu banyak dijual. Kesan gabungan pelbagai penunjuk dapat secara berkesan mengenal pasti bahagian bawah pasaran untuk jangka panjang yang tepat. Di samping itu, strategi ini juga menggunakan divergensi RSI untuk menilai pembalikan trend yang berpotensi untuk mengelakkan kerugian berhenti lewat. Oleh itu, strategi ini dapat memanfaatkan peluang jual tinggi yang rendah.

Analisis Risiko

Strategi ini bergantung pada pengoptimuman parameter. Jika parameter ditetapkan dengan tidak betul, ia akan gagal mengenal pasti bahagian bawah dan puncak dengan betul. Di samping itu, mungkin terdapat kombinasi yang salah antara penunjuk. Sebagai contoh, Bollinger Bands mengenal pasti oversold, tetapi penunjuk lain tidak mencapai keadaan yang sesuai. Semua situasi ini boleh menyebabkan kerugian yang tidak perlu. Akhirnya, strategi tidak mempertimbangkan penarikan maksimum dan pengurusan kedudukan, yang juga memerlukan pengoptimuman.

Arahan pengoptimuman

  1. Uji dan optimumkan parameter penunjuk untuk mencari kombinasi parameter yang terbaik.

  2. Tambah kawalan pengeluaran maksimum untuk menghentikan perdagangan apabila mencapai ambang.

  3. Tambah modul pengurusan kedudukan untuk menyesuaikan kedudukan secara dinamik berdasarkan keadaan pasaran.

  4. Tambah strategi stop loss. Apabila arah pasaran tidak ditentukan dengan betul, tetapkan titik stop loss yang munasabah untuk mengawal kerugian tunggal.

Ringkasan

Idea keseluruhan strategi ini jelas. Melalui penghakiman pelbagai penunjuk, ia mempunyai keupayaan yang kuat untuk menangkap bahagian bawah dan puncak. Tetapi beberapa parameter dan modul masih mempunyai ruang untuk pengoptimuman. Dengan penyesuaian yang betul, ia boleh menjadi strategi kuantitatif keuntungan yang stabil.


/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Stratégie d'Entrée et de Sortie Longue", overlay=true)

// Paramètres des indicateurs
longueurBollinger = 20
stdDevBollinger = 2
longueurStochastic = 14
smoothK = 3
smoothD = 3
longueurRSI = 14

// Bollinger Bands
basis = ta.sma(close, longueurBollinger)
dev = ta.stdev(close, longueurBollinger)
lowerBand = basis - stdDevBollinger * dev

// Stochastic Oscillator
k = ta.sma(ta.stoch(close, high, low, longueurStochastic), smoothK)
d = ta.sma(k, smoothD)

// RSI
rsi = ta.rsi(close, longueurRSI)

// Logique des autres indicateurs (à compléter)

// Conditions d'entrée (à définir)
conditionBollinger = close < lowerBand
conditionStochastic = k < 20 and k > d
conditionRSI = rsi < 30
// Autres conditions (Braid Filter, VolumeBIS, Price Density...)

conditionEntree = conditionBollinger and conditionStochastic and conditionRSI // et autres conditions

// Exécution du trade (entrée)
if (conditionEntree)
    strategy.entry("Long Position", strategy.long)

// Conditions de sortie
stochCrossOver70 = k > 70 and k[1] <= 70

// Simplification de la détection de divergence baissière
// (Cette méthode est basique et devrait être raffinée pour une analyse précise)
highsRising = high > high[1]
lowsRising = low > low[1]
rsiFalling = rsi < rsi[1]
divergenceBearish = highsRising and lowsRising and rsiFalling

// Clôturer la moitié de la position
if (stochCrossOver70 and divergenceBearish)
    strategy.close("Long Position", qty_percent = 50)


Lebih lanjut