Strategi penembusan julat RSI algoritma


Tarikh penciptaan: 2023-10-17 17:14:09 Akhirnya diubah suai: 2023-10-17 17:14:09
Salin: 0 Bilangan klik: 759
1
fokus pada
1617
Pengikut

Strategi penembusan julat RSI algoritma

Gambaran keseluruhan

Strategi ini bertujuan untuk mencapai pembelian rendah dan penjualan tinggi dengan memantau penembusan RSI dalam pelbagai julat. Beli ketika RSI berada di julat rendah dan jual ketika RSI berada di julat tinggi, sehingga melakukan operasi terbalik apabila terdapat fenomena jual beli berlebihan.

Prinsip Strategi

  1. Tetapkan RSI untuk tempoh 14 kitaran

  2. Tetapkan RSI untuk isyarat beli:

    • Julat 1: RSI <= 27
    • Julat 2: RSI <= 18
  3. Tetapkan rantaian RSI untuk isyarat menjual:

    • Julat 1: RSI > = 68
    • Julat 2: RSI > = 80
  4. Apabila RSI berada di dalam julat beli, masukkan lebih banyak:

    • Jika RSI berada dalam lingkungan 1 (di bawah 27), buat 1 lagi.
    • Jika RSI berada di bawah 18 (atau lebih rendah), anda perlu melakukan 1 lagi.
  5. Apabila RSI memasuki selang jual, masuklah ke bawah:

    • Jika RSI masuk dalam lingkungan 1 (lebih daripada 68), kosongkan 1 tangan
    • Jika RSI masuk ke dalam julat 2 (80 atau lebih), buat 1 tangan kosong tambahan
  6. Setiap kali anda membuka kedudukan, anda akan mendapat stop loss 2500 dan stop loss 5000.

  7. RSI keluar dari tanda tanda, menebus kedudukan berkaitan

Analisis kelebihan

  1. Tetapan selang dua kali membolehkan strategi lebih jelas menilai fenomena overbought dan oversold dan mengelakkan kehilangan peluang untuk berbalik

  2. Tetapan Stop Loss Point Tetap, Tidak Terlalu Mempertahankan Penurunan

  3. RSI adalah satu indikator penilaian overbought dan oversold yang lebih matang dan mempunyai kelebihan berbanding indikator lain

  4. Apabila parameter strategi ini ditetapkan dengan munasabah, ia dapat menangkap titik-titik perubahan trend dengan berkesan dan memperoleh keuntungan tambahan.

Analisis risiko

  1. Indeks RSI mungkin berlaku di pasaran yang tidak berkesan, yang menyebabkan sistem terus melakukan kerugian

  2. Tetapan titik stop loss yang tetap mungkin tidak sepadan dengan ketinggian turun naik pasaran, tidak dapat menghasilkan keuntungan atau berhenti terlalu awal

  3. Pengaturan julat yang tidak munasabah boleh menyebabkan peluang perdagangan yang hilang atau kerugian perdagangan yang kerap

  4. Strategi ini lebih bergantung pada pengoptimuman parameter, memerlukan perhatian kepada kitaran ujian dan kawalan titik slider

Arah pengoptimuman

  1. Boleh menguji kesan RSI pada tempoh yang berbeza

  2. Nombor yang boleh dioptimumkan untuk jangka masa pembelian dan penjualan agar lebih sesuai dengan ciri-ciri yang berbeza

  3. Kajian boleh dilakukan ke atas cara-cara berhenti berhenti yang dinamik untuk membuat berhenti berhenti lebih berkesan dan lebih munasabah.

  4. Ia boleh dipertimbangkan untuk berdagang dalam kombinasi dengan petunjuk lain untuk meningkatkan kestabilan sistem

  5. Mengoptimumkan parameter julat secara automatik dengan menggunakan kaedah pembelajaran mesin yang boleh diterokai untuk membuat strategi lebih kasar

ringkaskan

Strategi ini berdasarkan pada prinsip penilaian overbought dan oversold indikator RSI. Dengan menetapkan rantaian binari untuk menggunakan indikator RSI, dengan mengekalkan kestabilan tertentu, dapat menangkap fenomena overbought dan oversold pasaran secara berkesan. Tetapi strategi ini juga bergantung pada parameter tertentu, yang memerlukan ujian optimasi untuk pelbagai jenis. Jika parameter ditetapkan, strategi ini dapat memperoleh keuntungan tambahan yang baik.

Kod 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)