Strategi ini menggunakan penunjuk RSI untuk menentukan masa kemasukan melalui penghakiman salib kitaran dan menggunakan mekanisme keuntungan dan berhenti ATR untuk strategi penjejakan trend. Ia menentukan titik perubahan trend pasaran melalui persimpangan penunjuk RSI kitaran yang berbeza dan menggabungkan harga penutupan untuk menapis masa kedudukan panjang dan pendek.
Strategi pertama menggunakan teknologi penyelarasan SMA untuk mengira purata bergerak 26 minggu sebagai penanda aras untuk menilai pasaran lembu. Kemudian mengira nilai penunjuk RSI 4 minggu, apabila ia melintasi di bawah 30 di kawasan oversold, ia dianggap bahawa pasaran mungkin bangkit semula. Pada masa ini, menilai sama ada paras tinggi baru parameter hari pendek dapat memecahkan paras tinggi baru parameter hari panjang, menunjukkan bahawa trend jangka pendek semakin kuat. Jika keadaan di atas dipenuhi pada masa yang sama, isyarat panjang dikeluarkan.
Selepas memasuki pasaran, gunakan kali ganda penunjuk ATR sebagai julat keuntungan, dan hentikan kerugian pada peratusan tertentu daripada titik tinggi harga penutupan.
Strategi ini mempunyai kelebihan berikut:
Gunakan penunjuk RSI untuk menentukan titik pembalikan dengan keupayaan masa yang baik.
Gunakan mekanisme tinggi dan rendah baru untuk mengelakkan isyarat palsu.
Gunakan ATR untuk keuntungan dan hentikan kerugian untuk mengesan titik keluar yang optimum secara automatik.
Tetapan parameter yang fleksibel boleh diselaraskan ke tahap optimum.
Idea strategi adalah jelas dan mudah difahami, dengan kestabilan yang kuat.
Strategi ini juga mempunyai risiko berikut:
Indikator RSI boleh mengeluarkan isyarat yang salah, mengakibatkan masa yang tidak tepat. Parameter RSI boleh diselaraskan dengan sewajarnya, atau penunjuk lain boleh ditambah untuk penapisan.
Julat keuntungan ATR boleh ditetapkan terlalu besar atau terlalu kecil untuk mengunci keuntungan maksimum. Gabungan parameter yang lebih baik boleh diuji.
Titik stop loss terlalu dekat dan mungkin stop loss terputus.
Data backtest yang tidak mencukupi boleh menganggarkan kadar pulangan strategi.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Uji dan optimumkan parameter RSI dan keuntungan dan kerugian kelipatan untuk mencari kombinasi parameter yang terbaik.
Meningkatkan penunjuk lain untuk meningkatkan ketepatan strategi. seperti MACD, KD, dll.
Mengoptimumkan mekanisme stop loss dan menyesuaikan secara dinamik mengikut julat fluktuasi ATR.
Uji kesan prestasi pada pelbagai jenis perdagangan. Pilih jenis dengan kecairan yang baik dan turun naik yang tinggi.
Bandingkan prestasi pelbagai jenis stop loss. seperti stop loss proporsional, stop loss bergerak, dll.
Operasi keseluruhan strategi ini jelas dan lancar, pemilihan penunjuk dan tetapan parameter adalah munasabah, dan ia mempunyai kepraktisan yang kuat. Masih ada ruang untuk penambahbaikan lanjut melalui pengoptimuman parameter dan penambahbaikan mekanisme. Secara keseluruhan, strategi ini mempunyai keupayaan yang agak tinggi untuk memperoleh keuntungan yang stabil.
/*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()