Strategi ini menggunakan Indeks Dinamik Pedagang (TDI) sebagai penunjuk teknikal utama, digabungkan dengan purata bergerak dalam jangka masa yang berbeza untuk menjana isyarat perdagangan.
Strategi ini mula-mula mengira RSI penutupan dengan tempoh 13. Kemudian ia mengira purata bergerak mudah 34-periode RSI, dan menggunakan 1.6185 kali deviasi standard 34-periode RSI sebagai jalur atas dan bawah. Band atas adalah purata bergerak ditambah ofset, dan jalur bawah adalah purata bergerak dikurangkan ofset. Purata bergerak adalah jalur tengah.
Selepas itu, ia mengira MA cepat RSI dengan tempoh 2, dan MA perlahan RSI dengan tempoh 7. Ia kemudian mengambil nilai sejarah penunjuk ini dari jangka masa yang lebih tinggi. Apabila MA pantas melintasi di bawah MA perlahan, isyarat beli dihasilkan. Apabila MA pantas melintasi di atas MA perlahan, isyarat jual dihasilkan.
Strategi ini menggunakan ciri pembalikan purata RSI dan menggabungkan penunjuk momentum untuk melaksanakan perdagangan pembalikan. Band atas dan bawah RSI mencerminkan keadaan overbought dan oversold, sementara band tengah mencerminkan tahap harga purata. Perpindahan MA yang cepat dan perlahan mencerminkan perubahan momentum dan peluang pembalikan. Secara keseluruhan, strategi ini dengan tepat menangkap titik pembalikan dengan kawalan penarikan yang ideal.
Secara khusus, rentang RSI menetapkan ambang terlalu banyak beli dan terlalu banyak jual untuk segera mengesan anomali. Band tengah memahami tahap harga keseimbangan. MA yang cepat menapis bunyi bising jangka pendek dan MA yang perlahan menentukan trend jangka sederhana. Bekerja bersama, mereka dapat mengenal pasti peluang pembalikan dengan berkesan. Di samping itu, gabungan penunjuk di pelbagai jangka masa membolehkan strategi untuk mengesahkan di pelbagai jangka masa, mengurangkan risiko isyarat palsu.
Strategi ini terutamanya berdasarkan pembalikan purata, yang mempunyai risiko masa yang melekat. Kerugian berturut-turut boleh berlaku jika pasaran mengalami pengembangan yang tidak rasional yang berpanjangan, seperti memerah pendek. Juga, kegagalan untuk menetapkan MAs cepat dan perlahan dengan betul boleh menyebabkan peluang pembalikan yang hilang atau isyarat palsu. Beberapa tahap pengoptimuman parameter diperlukan.
Untuk mengawal risiko di atas, adalah dinasihatkan untuk menyesuaikan tempoh MA dengan munasabah atau menambah mekanisme stop loss. Apabila pasaran memasuki rejim yang tidak rasional, saiz kedudukan harus dikurangkan atau berhenti berdagang sama sekali. Secara keseluruhan, menyesuaikan strategi dengan persekitaran pasaran tertentu adalah kunci.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Uji tempoh RSI dengan panjang yang berbeza untuk mencari tetapan yang lebih sesuai untuk keadaan pasaran semasa.
Mengoptimumkan panjang MA pantas dan perlahan untuk mengimbangi menangkap pembalikan dan menapis bunyi bising.
Tambah stop loss berdasarkan turun naik untuk mengawal pengeluaran maksimum.
Cuba tambah faktor lain seperti perubahan jumlah dalam logik kemasukan untuk meningkatkan ketepatan.
Uji kesan menggunakan semula set isyarat perdagangan yang sama di pelbagai jangka masa.
Membangunkan mekanisme pengoptimuman adaptif untuk pelarasan parameter dinamik.
Kerangka keseluruhan strategi pembalikan RSI ini adalah munasabah dengan logik yang jelas dan boleh ditafsirkan. Ia mempunyai ruang dan potensi pengoptimuman yang boleh disesuaikan. Dengan penyesuaian parameter dan kawalan risiko yang betul, keupayaannya untuk menangkap pembalikan adalah menjanjikan. Langkah seterusnya adalah untuk mengoptimumkan lagi strategi melalui lebih banyak pengujian dan penyesuaian parameter, untuk meningkatkan ketahanan dan keuntungan.
/*backtest start: 2022-11-06 00:00:00 end: 2023-11-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("TDI - Traders Dynamic Index [Mehdi]", shorttitle="TDIMEHDI") rsiPeriod = input(13, minval = 1, title = "RSI Period") bandLength = input(34, minval = 1, title = "Band Length") lengthrsipl = input(7, minval = 0, title = "Fast MA on RSI") lengthtradesl = input(2, minval = 1, title = "Slow MA on RSI") p1 = input("15", title = "Signal Timeframe") src = close // Source of Calculations (Close of Bar) r = rsi(src, rsiPeriod) // RSI of Close ma = sma(r, bandLength) // Moving Average of RSI [current] offs = (1.6185 * stdev(r, bandLength)) // Offset up = ma + offs // Upper Bands dn = ma - offs // Lower Bands mid = (up + dn) / 2 // Average of Upper and Lower Bands fastMA = sma(r, lengthrsipl) // Moving Average of RSI 2 bars back slowMA = sma(r, lengthtradesl) // Moving Average of RSI 7 bars back hline(20) // ExtremelyOversold hline(30) // Oversold hline(50) // Midline hline(70) // Overbought hline(80) // ExtremelyOverbought up1 = request.security(syminfo.tickerid, p1, up) dn1 = request.security(syminfo.tickerid, p1, dn) mid1 = request.security(syminfo.tickerid, p1, mid) slowMA1 = request.security(syminfo.tickerid, p1, slowMA) fastMA1 = request.security(syminfo.tickerid, p1, fastMA) plot(up1, "Upper Band", color = #3286c3, linewidth = 2) // Upper Band plot(dn1, "Lower Band", color = #3286c3, linewidth = 2) // Lower Band plot(mid1, "Middle of Bands", color = yellow, linewidth = 2) // Middle of Bands plot(slowMA1, "Slow MA", color=green, linewidth=2) // Plot Slow MA plot(fastMA1, "Fast MA", color=red, linewidth=1) // Plot Fast MA if (crossover(slowMA1, fastMA1)) strategy.entry("Buy", strategy.long, comment="Buy") if (crossunder(slowMA1, fastMA1)) strategy.entry("Sell", strategy.short, comment="Sell")