Strategi trend ikan RSI adalah kombinasi indikator ikan yang berdasarkan pada indikator RSI untuk menentukan masuk dan keluar trend. Ia menggunakan tiga rata-rata - garis ketinggian ikan, garis gigi dan garis bibir, dengan pembinaan RSI yang berkala.
Strategi trend ikan RSI menggunakan indikator RSI untuk membina tiga purata bergerak untuk indikator ikan RSI. Ia ditetapkan sebagai berikut:
Logik penghakiman isyarat masuk ialah:
Isyarat berbilang kepala: apabila lip line diletakkan di atas garis gigi, lakukan lebih banyak apabila garis gigi berada di atas garis gigi.
Isyarat kepala kosong: Bila garis gigi di bawah garis bibir dan pada masa yang sama garis gigi di bawah garis gigi, buatlah kosong.
Strategi ini menetapkan syarat-syarat untuk menghentikan dan menghentikan kerugian:
Strategi trend RSI mempunyai kelebihan berikut:
RSI juga mempunyai risiko yang berkaitan dengan strategi trend fishing:
Persaingan garis gigi dengan garis bibir boleh menyebabkan pecah palsu, menyebabkan kerugian yang tidak perlu. Parameter kitaran boleh disesuaikan dengan betul untuk mengurangkan kemungkinan pecah palsu.
Tetapan hentikan kerugian mungkin terlalu radikal, kemungkinan besar tidak perlu berhenti. Anda boleh meluaskan julat hentikan kerugian dengan sewajarnya, atau menambah syarat lain sebagai prasyarat untuk mengaktifkan hentikan kerugian.
Jika keadaan teruk, kemusnahan atau tidak dapat memberi kesan yang sepatutnya, campur tangan manusia diperlukan untuk menghentikan kemusnahan tepat pada masanya.
Apabila bertukar-tukar antara banyak ruang, tekanan kos urus niaga lebih besar. Syarat kemasukan boleh dilonggarkan dengan sewajarnya, mengurangkan pengulangan yang tidak perlu.
Strategi trend RSI boleh dioptimumkan dengan cara berikut:
Mengoptimumkan tetapan parameter garisan ikan paus, menyesuaikan parameter kitaran, dan mencari kombinasi parameter terbaik
Logik syarat yang dioptimumkan untuk masuk, seperti penapis isyarat seperti penunjuk jumlah dagangan baru
Mengoptimumkan strategi hentian dan hentian yang lebih selaras dengan keadaan dan tahap jaminan
Meningkatkan mekanisme untuk menangani kejadian yang tidak dijangka dan mengelakkan pendedahan yang tidak normal
Menambah algoritma pembukaan kedudukan, mengawal peratusan dana yang dimasukkan, mengelakkan risiko
Strategi trend ikan RSI secara keseluruhannya adalah strategi pemantauan trend yang boleh dipercayai dan mudah dikendalikan. Ia menggunakan petunjuk ikan untuk menentukan arah trend, dengan penunjuk RSI untuk menetapkan ambang rujukan, dapat mengunci trend dengan berkesan dan menetapkan titik keluar yang munasabah.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// @version=3
// RSI Alligator
// Forked from Author: Reza Akhavan
// Updated by Khalid Salomão
strategy("RSI Alligator Strategy", overlay=false, pyramiding=0, default_qty_type=strategy.cash, default_qty_value=25000, initial_capital=25000, commission_type=strategy.commission.percent, commission_value=0.15, slippage=3)
// === TA LOGIC ===
overBought = input(70, minval=0, maxval=100, title="Over bought")
overSold = input(30, minval=0, maxval=100, title="Over sold")
jawPeriods = input(5, minval=1, title="Jaw Periods")
jawOffset = input(0, minval=0, title="Jaw Offset")
teethPeriods = input(13, minval=1, title="Teeth Periods")
teethOffset = input(0, minval=0, title="Teeth Offset")
lipsPeriods = input(34, minval=1, title="Lips Periods")
lipsOffset = input(0, minval=0, title="Lips Offset")
jaws = rsi(close, jawPeriods)
teeth = rsi(close, teethPeriods)
lips = rsi(close, lipsPeriods)
plot(jaws, color=green, offset=jawOffset, title="Jaw")
plot(teeth, color=red, offset=teethOffset, title="Teeth")
plot(lips, color=blue, offset=lipsOffset, title="Lips")
//
// === Signal logic ===
//
LONG_SIGNAL_BOOLEAN = crossover(teeth, lips) and jaws > teeth
SHORT_SIGNAL_BOOLEAN = crossunder(teeth, lips) and jaws < teeth
// === INPUT BACKTEST DATE RANGE ===
strategyType = input(defval="Long Only", options=["Long & Short", "Long Only", "Short Only"])
FromMonth = input(defval = 7, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2020, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => true
// === STRATEGY BUY / SELL ENTRIES ===
// TODO: update the placeholder LONG_SIGNAL_BOOLEAN and SHORT_SIGNAL_BOOLEAN to signal
// long and short entries
buy() => window() and LONG_SIGNAL_BOOLEAN
sell() => window() and SHORT_SIGNAL_BOOLEAN
if buy()
if (strategyType == "Short Only")
strategy.close("Short")
else
strategy.entry("Long", strategy.long, comment="Long")
if sell()
if (strategyType == "Long Only")
strategy.close("Long")
else
strategy.entry("Short", strategy.short, comment="Short")
// === BACKTESTING: EXIT strategy ===
sl_inp = input(10, title='Stop Loss %', type=float)/100
tp_inp = input(90, title='Take Profit %', type=float)/100
stop_level = strategy.position_avg_price * (1 - sl_inp)
take_level = strategy.position_avg_price * (1 + tp_inp)
strategy.exit("Stop Loss/Profit", "Long", stop=stop_level, limit=take_level)