Strategi ini menggunakan penunjuk RSI untuk menentukan keadaan overbought dan oversold, digabungkan dengan sistem penilaian trend yang dibina dengan garis purata bergerak pantas, sederhana dan perlahan, untuk mengenal pasti peluang untuk membuka kedudukan panjang atau pendek apabila harga melonjak.
Gunakan penunjuk RSI untuk menentukan keadaan overbought dan oversold
Gunakan tiga garis SMA dari tempoh yang berbeza untuk menentukan trend
Apabila garisan pantas melintasi di atas garisan sederhana, dan penunjuk RSI menunjukkan oversold, pergi panjang
Apabila garisan pantas melintasi di bawah garisan sederhana, dan penunjuk RSI menunjukkan overbought, pergi pendek
Stop loss ditetapkan pada 4% daripada harga masuk
Mengambil keuntungan dilakukan dalam kumpulan, pertama mengambil keuntungan 20%, kemudian mengambil 15% sebagai harga terus meningkat, keluar kedudukan secara beransur-ansur
Strategi ini menggabungkan penunjuk purata bergerak dan penunjuk overbought / oversold RSI. Dengan menangkap perubahan trend harga semasa menilai peluang perdagangan, ia adalah sebahagian daripada strategi penjejakan trend yang biasa digunakan. Pengoptimuman lanjut dan peningkatan kadar kemenangan dapat dicapai melalui ujian parameter dan menggabungkan penunjuk 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")