Strategi ini menggunakan indikator RSI untuk menentukan waktu pembelian lintas-siklus, dan menggunakan mekanisme stop loss ATR, yang merupakan salah satu strategi pelacakan tren. Menggunakan indikator RSI periode yang berbeda untuk menentukan titik balik tren pasar, digabungkan dengan penilaian harga yang ditutup untuk memfilter lebih banyak waktu kosong.
Strategi ini pertama-tama menggunakan teknik smoothing SMA untuk menghitung rata-rata pergerakan indeks selama 26 siklus, sebagai garis dasar untuk penilaian pasar multihead. Kemudian menghitung nilai 4 siklus dari indikator RSI, ketika turun melewati 30 zona oversold, menganggap bahwa pasar mungkin akan berbalik ke atas. Pada saat ini, menilai apakah tinggi baru parameter shortdays dapat menembus tinggi baru-baru ini dari parameter longdays, menunjukkan tren jangka pendek yang kuat.
Setelah masuk ke pasar, gunakan perkalian indikator ATR sebagai stop loss, dengan stop loss proporsional tertentu pada titik tinggi harga penutupan.
Strategi ini memiliki keuntungan sebagai berikut:
Menggunakan indikator RSI untuk menentukan titik balik, memiliki kemampuan menangkap waktu yang lebih baik.
Menggunakan mekanisme naik turun, menghindari sinyal yang salah.
Menggunakan ATR Stop Loss, otomatis melacak titik keluar yang optimal.
Pengaturan parameter fleksibel dan dapat disesuaikan dengan tingkat optimal.
Strategi yang jelas dan mudah dimengerti, dengan stabilitas yang kuat.
Strategi ini juga memiliki risiko sebagai berikut:
Indikator RSI dapat mengirimkan sinyal yang salah, yang menyebabkan waktu masuk yang tidak tepat. Anda dapat menyesuaikan parameter RSI dengan tepat, atau menambahkan filter indikator lainnya.
ATR stop margin mungkin terlalu besar atau terlalu kecil untuk mengunci keuntungan maksimum. Kombinasi parameter yang lebih baik dapat diuji.
Stop loss terlalu dekat dan mungkin bisa dilewati.
Data retrospektif yang tidak memadai, mungkin overestimated strategi yield. Harus meningkatkan periode retrospektif dan pengujian kondisi pasar.
Strategi ini dapat dioptimalkan dengan:
Uji optimasi parameter RSI dan stop loss multiplier untuk menemukan kombinasi optimal.
Menambahkan penilaian indikator lain untuk meningkatkan akurasi strategi. Seperti MACD, KD, dll.
Mengoptimalkan mekanisme stop loss, menyesuaikan secara dinamis dengan rentang fluktuasi ATR.
Uji kinerja dari berbagai varietas yang diperdagangkan. Pilih varietas dengan likuiditas yang baik dan volatilitas tinggi.
Bandingkan kinerja dari berbagai jenis stop loss, seperti stop loss proporsional, stop loss bergerak, dan lain-lain.
Strategi ini secara keseluruhan bekerja dengan lancar, pilihan indikator dan pengaturan parameter yang masuk akal, dan memiliki kepraktisan yang kuat. Masih ada ruang untuk peningkatan lebih lanjut melalui optimasi parameter dan perbaikan mekanisme. Secara keseluruhan, strategi ini memiliki keuntungan stabil yang tinggi.
/*backtest
start: 2023-02-05 00:00:00
end: 2024-01-18 05:20:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//A translation from info found at http://backtestwizard.com/swing-trading-system-for-stocks/
strategy("Swing Trading System RSI", overlay=true)
source = close[1]
longperiod = input(26,"long week",minval=2,maxval=500,step=1)
s = request.security(syminfo.tickerid, "W", sma(close[1], longperiod)) // 1 Day
plot(s)
shortdays = input(21,"short days high period",minval=2,maxval=500,step=1)
longdays = input(50,"long days high period",minval=2,maxval=500,step=1)
rsiperiod = input(4,"rsi period",minval=2,maxval=500,step=1)
rsithresh = input(30,"rsi thresh",minval=2,maxval=500,step=1)
highcheck = highest(source,shortdays) == highest(source,longdays)
rsicheck = crossunder(rsi(source,rsiperiod),rsithresh)
longCondition = (highcheck) and (rsicheck) and source > s
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
profittarget = input(3,"profit target",minval=2,maxval=500,step=1)
stoploss = input(2,"stop target",minval=2,maxval=500,step=1)
exitCondition1 = source > strategy.position_avg_price + (atr(50) * profittarget)
exitCondition2 = source < strategy.position_avg_price - (atr(50) * stoploss)
if (exitCondition1)
strategy.close_all()
if (exitCondition2)
strategy.close_all()