Strategi ini menggunakan indikator RSI untuk menentukan kondisi overbought dan oversold, dikombinasikan dengan sistem penilaian tren yang dibangun dengan garis rata-rata bergerak cepat, menengah dan lambat, untuk mengidentifikasi peluang untuk membuka posisi panjang atau pendek ketika harga melonjak.
Menggunakan indikator RSI untuk menentukan kondisi overbought dan oversold
Gunakan tiga garis SMA dari periode yang berbeda untuk menentukan tren
Ketika garis cepat melintasi di atas garis menengah, dan indikator RSI menunjukkan oversold, pergi panjang
Ketika garis cepat melintasi di bawah garis menengah, dan indikator RSI menunjukkan overbought, pergi pendek
Stop loss ditetapkan pada 4% dari harga masuk
Mengambil keuntungan dilakukan dalam batch, pertama mengambil keuntungan 20%, kemudian mengambil 15% sebagai harga terus naik, keluar posisi secara bertahap
Strategi ini menggabungkan indikator rata-rata bergerak dan indikator overbought/oversold RSI. Dengan menangkap perubahan tren harga saat menilai peluang perdagangan, ini merupakan strategi pelacakan tren yang umum digunakan. Optimasi lebih lanjut dan tingkat kemenangan yang lebih baik dapat dicapai melalui pengujian parameter dan menggabungkan indikator penilaian tambahan.
/*backtest start: 2023-11-13 00:00:00 end: 2023-11-20 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © syfuslokust //@version=4 strategy(shorttitle='CoinruleCombinedCryptoStrat',title='CoinruleCombinedCryptoStrat', overlay=true) // RSI inputs and calculations lengthRSI = 14 RSI = rsi(close, lengthRSI) //Normal oversold = input(30) overbought = input(70) //ALGO //oversold= input(26) //overbought= input(80) //sell pct SellPct = input(20) ExitPct = input(15) //MA inputs and calculations movingaverage_signal = sma(close, input(9)) movingaverage_fast = sma(close, input(50)) movingaverage_slow = sma(close, input(200)) movingaverage_mid= sma(close, input(100)) //Look Back inp_lkb = input(12, title='Lookback Long Period') inp_lkb_2 = input(2, title='Lookback Short Period') perc_change(lkb) => overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100 //Entry //MA bullish = crossover(movingaverage_signal, movingaverage_fast) //Execute buy strategy.entry(id="long", long = true, when = (RSI < oversold and movingaverage_fast < movingaverage_mid)) //when = crossover(close, movingaverage_signal) and movingaverage_signal < movingaverage_slow and RSI < oversold) //Exit //RSI Stop_loss= ((input (4))/100) longStopPrice = strategy.position_avg_price * (1 - Stop_loss) //MA bearish = crossunder(movingaverage_signal, movingaverage_fast) //Execute sell strategy.close("long", qty_percent = SellPct, when = RSI > overbought and movingaverage_fast > movingaverage_mid) //when = (crossunder(low, movingaverage_signal) and movingaverage_fast > movingaverage_slow and RSI > overbought) or (movingaverage_signal < movingaverage_fast and crossunder(low, movingaverage_fast)) or (low < longStopPrice)) //PLOT plot(movingaverage_signal, color=color.black, linewidth=2, title="signal") plot(movingaverage_fast, color=color.orange, linewidth=2, title="fast") plot(movingaverage_slow, color=color.purple, linewidth=2, title="slow") plot(movingaverage_mid, color=color.blue, linewidth=2, title="mid")