Algoritma strategi terobosan rentang RSI


Tanggal Pembuatan: 2023-10-17 17:14:09 Akhirnya memodifikasi: 2023-10-17 17:14:09
menyalin: 0 Jumlah klik: 759
1
fokus pada
1617
Pengikut

Algoritma strategi terobosan rentang RSI

Ringkasan

Strategi ini bertujuan untuk melakukan trading low/high dengan memantau RSI yang terjatuh di berbagai range. Anda dapat membeli ketika RSI berada di range rendah dan menjual ketika RSI berada di range tinggi. Dengan demikian, Anda dapat melakukan trading reverse jika RSI berada di range tinggi.

Prinsip Strategi

  1. Setel RSI untuk panjang 14 siklus

  2. Setting RSI range untuk sinyal beli:

    • RSI <= 27
    • RSI <= 18
  3. Setel RSI untuk sinyal jual:

    • RSI >= 68
    • RSI >= 80
  4. Ketika RSI masuk dalam kisaran beli, lakukan over entry:

    • Jika RSI masuk ke dalam kisaran 1 (di bawah 27), lakukan 1 lebih
    • Jika RSI berada di kisaran 2 (di bawah 18), lakukan tambahan 1 tangan
  5. Ketika RSI masuk dalam kisaran jual beli, bukalah:

    • Jika RSI masuk ke dalam kisaran 1 (lebih dari 68) maka kosongkan 1 tangan
    • Jika RSI masuk ke dalam kisaran 2 (80 atau lebih), maka tambahan 1 tangan kosong
  6. Setiap kali membuka posisi tetap stop loss 2500 dan stop loss 5000

  7. Setelah RSI keluar dari sinyal, posisi yang terkait dihapus

Analisis Keunggulan

  1. Pengaturan dua interval memungkinkan strategi untuk lebih jelas menilai fenomena overbought dan oversold, menghindari kehilangan kesempatan untuk berbalik

  2. Pengaturan Stop Loss Point dengan Stop Loss Fixed, tidak terlalu mengejar penurunan

  3. RSI adalah indikator penilaian overbought dan oversold yang lebih matang dan memiliki keunggulan dibandingkan dengan indikator lainnya

  4. Parameter strategi ini, jika diatur dengan baik, dapat secara efektif menangkap titik balik tren dan mendapatkan keuntungan tambahan.

Analisis risiko

  1. RSI mungkin terjadi di pasar yang tidak efektif, yang menyebabkan sistem terus-menerus melakukan kerugian

  2. Pengaturan titik stop loss tetap mungkin tidak sesuai dengan volatilitas pasar, tidak dapat menghasilkan keuntungan atau berhenti prematur

  3. Pengaturan interval yang tidak masuk akal dapat menyebabkan peluang perdagangan yang terlewatkan atau kerugian perdagangan yang sering terjadi

  4. Strategi ini lebih bergantung pada optimasi parameter, perlu memperhatikan siklus pengujian dan kontrol titik geser

Arah optimasi

  1. Efek indikator RSI dapat diuji pada periode panjang yang berbeda

  2. Nilai-nilai yang dapat dioptimalkan untuk membedakan antara varietas yang berbeda

  3. Dengan cara ini, Anda dapat mempelajari cara-cara stop loss yang lebih efektif dan efisien.

  4. Pertimbangan untuk melakukan perdagangan dalam kombinasi dengan indikator lain untuk meningkatkan stabilitas sistem

  5. Dapat mengeksplorasi cara pembelajaran mesin untuk mengoptimalkan parameter interval secara otomatis, membuat strategi lebih robust

Meringkaskan

Strategi ini didasarkan pada prinsip penilaian overbought dan oversold dari indikator RSI. Dengan mengatur interval jual beli untuk memanfaatkan indikator RSI, dengan tetap mempertahankan stabilitas tertentu, dapat secara efektif menangkap fenomena overbought dan oversold di pasar untuk melakukan operasi terbalik. Tetapi strategi ini juga memiliki ketergantungan parameter tertentu, yang memerlukan pengujian optimasi untuk berbagai varietas. Jika parameter ditetapkan dengan benar, strategi ini dapat memperoleh keuntungan tambahan yang bagus.

Kode Sumber Strategi
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
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/
// © Rawadabdo

// Ramy's Algorithm

//@version=5
strategy("BTC/USD - RSI", overlay=false, initial_capital = 5000)

// User input
length = input(title = "Length", defval=14, tooltip="RSI period")

first_buy_level = input(title = "Buy Level 1", defval=27, tooltip="Level where 1st buy triggers")
second_buy_level = input(title = "Buy Level 2", defval=18, tooltip="Level where 2nd buy triggers")

first_sell_level = input(title = "Sell Level 1", defval=68, tooltip="Level where 1st sell triggers")
second_sell_level = input(title = "Sell Level 2", defval=80, tooltip="Level where 2nd sell triggers")

takeProfit= input(title="target Pips", defval=2500, tooltip="Fixed pip stop loss distance")
stopLoss = input(title="Stop Pips", defval=5000, tooltip="Fixed pip stop loss distance")

lot = input(title = "Lot Size", defval = 1, tooltip="Trading Lot size")

// Get RSI
vrsi = ta.rsi(close, length)

// Entry Conditions
long1 = (vrsi <= first_buy_level and vrsi>second_buy_level)
long2 = (vrsi <= second_buy_level)

short1= (vrsi >= first_sell_level and vrsi<second_sell_level)
short2= (vrsi >= second_sell_level)


// Entry Orders
// Buy Orders
if (long1 and strategy.position_size == 0)
    strategy.entry("Long", strategy.long, qty=lot, comment="Buy")
    if (long2 and  strategy.position_size == 0)
        strategy.entry("Long", strategy.long, qty=lot, comment="Buy")

// Short Orders
if (short1 and strategy.position_size == 0)
    strategy.entry("Short", strategy.short,qty=lot, comment="Sell")
    if (short2 and strategy.position_size == 0)
        strategy.entry("Short", strategy.short,qty=lot, comment="Sell")
    
// Exit our trade if our stop loss or take profit is hit
strategy.exit(id="Long Exit", from_entry="Long",qty = lot, profit=takeProfit, loss=stopLoss)
strategy.exit(id="Short Exit", from_entry="Short", qty = lot, profit=takeProfit, loss=stopLoss)

// plot data to the chart
hline(first_sell_level, "Overbought Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2)
hline(second_sell_level, "Overbought Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2)
hline(first_buy_level, "Oversold Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2)
hline(second_buy_level, "Oversold Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2)
plot (vrsi, title = "RSI", color = color.blue, linewidth=2)