Strategi Trend Alligator RSI adalah berdasarkan gabungan penunjuk RSI dan penunjuk Alligator untuk menentukan kemasukan dan keluar trend. Ia menggunakan tiga garis purata bergerak - garisan rahang alligator, garisan gigi dan garisan bibir, yang dibina oleh RSI dari tempoh yang berbeza. Ia menjadi panjang apabila garisan gigi melintasi di atas garisan bibir dan garisan rahang RSI lebih tinggi daripada garisan gigi; ia menjadi pendek apabila garisan gigi melintasi di bawah garisan bibir dan garisan rahang RSI lebih rendah daripada garisan gigi. Strategi ini juga menetapkan syarat berhenti kerugian dan mengambil keuntungan.
Strategi Trend Alligator RSI membina tiga garis penunjuk Alligator menggunakan penunjuk RSI. Tetapan khusus adalah:
Logik isyarat masuk adalah:
Isyarat panjang: apabila garis gigi melintasi di atas garis bibir dan garis rahang lebih tinggi daripada garis gigi, pergi panjang.
Isyarat pendek: apabila garis gigi melintasi di bawah garis bibir dan garis rahang lebih rendah daripada garis gigi, pergi pendek.
Strategi ini juga menetapkan syarat stop loss dan mengambil keuntungan:
Strategi RSI Alligator Trend mempunyai kekuatan berikut:
Strategi RSI Alligator Trend juga mempunyai risiko berikut:
Terdapat kemungkinan pecah palsu di persimpangan antara garis gigi dan garis bibir, yang membawa kepada kehilangan yang tidak perlu. Parameter kitaran boleh diselaraskan untuk mengurangkan kebarangkalian pecah palsu.
Tetapan stop loss mungkin terlalu agresif, dengan kebarangkalian tinggi kehilangan stop yang tidak perlu. Julat stop loss boleh santai dengan sewajarnya, atau keadaan lain boleh ditambah sebagai prasyarat untuk mengaktifkan stop loss.
Jika pasaran bergerak dengan ganas, stop loss mungkin gagal memainkan peranan yang betul untuk melindungi margin. Dalam kes ini, campur tangan manual diperlukan untuk menghentikan kerugian tepat pada masanya.
Apabila kedudukan panjang dan pendek bertukar dengan kerap, tekanan kos dagangan lebih besar.
RSI Alligator Trend strategi boleh dioptimumkan dalam aspek berikut:
Mengoptimumkan tetapan parameter baris Alligator untuk mencari kombinasi parameter terbaik
Mengoptimumkan logik syarat kemasukan, seperti menambah penunjuk seperti jumlah dagangan untuk menapis isyarat
Mengoptimumkan strategi mengambil keuntungan dan menghentikan kerugian untuk menjadikannya lebih mudah disesuaikan dengan keadaan pasaran dan tahap margin
Tambah mekanisme untuk menangani peristiwa melampau dan mengelakkan pendedahan kepada keadaan pasaran yang tidak normal
Tambah algoritma kedudukan terbuka untuk mengawal bahagian modal yang dilaburkan dalam perdagangan tunggal untuk mengurangkan risiko
Secara umum, strategi Trend Alligator RSI adalah strategi trend yang boleh dipercayai dan mudah digunakan. Ia menggunakan penunjuk Alligator untuk menentukan arah trend, digabungkan dengan penunjuk RSI untuk menetapkan ambang rujukan, yang dapat mengunci trend dengan berkesan dan menetapkan titik keluar yang munasabah. Pada masa yang sama, strategi itu sendiri juga mempunyai fleksibiliti dan keluasan yang kuat, menjadikannya bernilai untuk perdagangan langsung dan pengoptimuman lanjut.
/*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)