Strategi RSI Alligator Trend didasarkan pada kombinasi indikator RSI dan indikator Alligator untuk menentukan masuk dan keluarnya tren. Strategi ini menggunakan tiga garis rata-rata bergerak - garis rahang buaya, garis gigi dan garis bibir, yang dibangun oleh RSI dari periode yang berbeda. Strategi ini panjang ketika garis gigi melintasi di atas garis bibir dan garis rahang RSI lebih tinggi dari garis gigi; pendek ketika garis gigi melintasi di bawah garis bibir dan garis rahang RSI lebih rendah dari garis gigi. Strategi ini juga menetapkan kondisi stop loss dan take profit.
Strategi Tren Alligator RSI membangun tiga garis indikator Alligator menggunakan indikator RSI. Pengaturan spesifik adalah:
Logika sinyal masuk adalah:
Sinyal panjang: ketika garis gigi melintasi di atas garis bibir dan garis rahang lebih tinggi dari garis gigi, pergi panjang.
Sinyal pendek: ketika garis gigi melintasi di bawah garis bibir dan garis rahang lebih rendah dari garis gigi, pergi pendek.
Strategi ini juga menetapkan kondisi stop loss dan take profit:
Strategi RSI Alligator Trend memiliki kekuatan berikut:
Strategi RSI Alligator Trend juga memiliki risiko berikut:
Ada kemungkinan pecah palsu di persimpangan antara garis gigi dan garis bibir, menyebabkan kerugian yang tidak perlu.
Pengaturan stop loss mungkin terlalu agresif, dengan probabilitas tinggi stop loss yang tidak perlu.
Jika pasar bergerak dengan keras, stop loss mungkin gagal memainkan peran yang tepat untuk melindungi margin.
Ketika posisi panjang dan pendek sering bergantian, tekanan biaya perdagangan lebih besar.
Strategi RSI Alligator Trend dapat dioptimalkan dalam aspek berikut:
Mengoptimalkan pengaturan parameter garis Alligator untuk menemukan kombinasi parameter terbaik
Mengoptimalkan logika kondisi masuk, seperti menambahkan indikator seperti volume perdagangan untuk menyaring sinyal
Mengoptimalkan strategi mengambil keuntungan dan menghentikan kerugian untuk membuat mereka lebih beradaptasi dengan kondisi pasar dan tingkat margin
Menambahkan mekanisme untuk menangani peristiwa ekstrem dan menghindari paparan kondisi pasar yang tidak normal
Tambahkan algoritma posisi terbuka untuk mengontrol proporsi modal yang diinvestasikan dalam satu perdagangan untuk mengurangi risiko
Secara umum, strategi RSI Alligator Trend adalah strategi yang dapat diandalkan dan mudah digunakan untuk mengikuti tren. Ini menggunakan indikator Alligator untuk menentukan arah tren, dikombinasikan dengan indikator RSI untuk menetapkan ambang acuan, yang dapat secara efektif mengunci tren dan menetapkan titik keluar yang wajar. Pada saat yang sama, strategi itu sendiri juga memiliki fleksibilitas dan ekstensibilitas yang kuat, menjadikannya bermanfaat untuk perdagangan langsung dan optimasi lebih 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)