Strategi perdagangan kuantitatif RSI


Tarikh penciptaan: 2024-05-15 11:02:13 Akhirnya diubah suai: 2024-05-15 11:02:13
Salin: 0 Bilangan klik: 701
1
fokus pada
1617
Pengikut

Strategi perdagangan kuantitatif RSI

Gambaran keseluruhan

Strategi ini adalah strategi perdagangan kuantitatif berdasarkan indikator yang agak kuat (RSI). Strategi ini menggunakan indikator RSI untuk menilai keadaan pasaran yang terlalu banyak dan terlalu banyak dijual, dan melakukan pembelian dan penjualan pada masa yang sesuai. Strategi ini juga memperkenalkan konsep sistem Martingale, yang akan meningkatkan kedudukan perdagangan apabila syarat dipenuhi.

Strategi ini merangkumi:

  1. Hitung nilai RSI.
  2. Apabila indikator RSI melintasi ke atas dari kawasan oversold, lakukan pembelian; apabila indikator RSI melintasi ke bawah dari kawasan oversold, lakukan penjualan.
  3. Tetapkan tahap hentian dan hentian kerugian, dan tutup kedudukan apabila harga mencapai tahap ini.
  4. Memperkenalkan sistem Martingale, apabila perdagangan terakhir mengalami kerugian, kedudukan perdagangan seterusnya akan dikalikan dengan kelipatan.

Prinsip Strategi

  1. Pengiraan indikator RSI: Menggunakan fungsi ta.rsi untuk mengira nilai indikator RSI, perlu menetapkan kitaran RSI (default 14) .
  2. Syarat Beli: Melakukan operasi beli apabila RSI melintasi ke atas dari bawah paras oversold (default 30).
  3. Syarat jual: Operasi jual dilakukan apabila RSI melintasi ke bawah dari lebih tinggi daripada tahap overbought (default 70)
  4. Hentikan dan Hentikan Kerosakan: Tetapkan peratusan untuk hentikan dan hentikan (kedua-duanya 0% secara lalai) dan tutup kedudukan apabila harga mencapai tahap ini.
  5. Sistem Martingale: menetapkan kedudukan awal ((default 1) dan perkalian Martingale ((default 2)). Apabila perdagangan terakhir mengalami kerugian, kedudukan perdagangan seterusnya didarabkan dengan perkalian Martingale.

Kelebihan Strategik

  1. Penunjuk RSI adalah penunjuk teknikal yang digunakan secara meluas, yang dapat menilai dengan berkesan keadaan pasaran yang terlalu banyak dan terlalu banyak, dan memberikan asas untuk keputusan perdagangan.
  2. Strategi ini logiknya jelas, mudah difahami dan dilaksanakan.
  3. Memperkenalkan sistem Martingale, anda boleh meningkatkan keuntungan strategi untuk tahap tertentu. Apabila pasaran mengalami kerugian berturut-turut, anda boleh mencari keuntungan yang lebih besar dengan meningkatkan kedudukan anda.
  4. Strategi ini boleh menyesuaikan rentang RSI secara fleksibel mengikut ciri-ciri pasaran dan keutamaan risiko individu, parameter seperti tahap overbought dan oversold, dan peratusan stop loss.

Risiko Strategik

  1. Indeks RSI kadang-kadang mengalami kegagalan isyarat, terutamanya ketika tren pasaran kuat. Pada masa ini, indikator RSI mungkin berada dalam keadaan overbought atau oversold untuk masa yang lama, sementara harga pasaran terus naik atau turun.
  2. Sistem Martingale, walaupun dapat meningkatkan keuntungan strategi, tetapi juga meningkatkan risiko strategi. Apabila pasaran mengalami kerugian berturut-turut, kedudukan strategi akan meningkat secara mendadak, yang boleh menyebabkan risiko pecah kedudukan.
  3. Strategi ini tidak menetapkan peratusan hentian dan hentian (sama-sama 0%) yang bermaksud bahawa strategi tidak akan secara aktif berhenti atau berhenti selepas membuka kedudukan. Ini mungkin menyebabkan strategi mengambil risiko yang lebih besar ketika pasaran bergolak.

Arah pengoptimuman strategi

  1. Pertimbangkan untuk memperkenalkan petunjuk teknikal lain, seperti purata bergerak ((MA), Bollinger Bands ((Bollinger Bands) dan lain-lain, untuk meningkatkan kualiti isyarat dan kebolehpercayaan strategi. Ia boleh digunakan bersama-sama dengan RSI untuk membentuk keadaan perdagangan yang lebih kompleks.
  2. Mengoptimumkan sistem Martingale. Anda boleh menetapkan kedudukan maksimum untuk mengelakkan peningkatan kedudukan tanpa had. Anda juga boleh menangguhkan penggunaan sistem Martingale untuk mengawal risiko setelah kerugian berturut-turut mencapai beberapa kali.
  3. Tetapkan peratusan hentian dan hentian yang munasabah. Hentian dapat membantu strategi menghentikan kerugian tepat pada masanya dan mengelakkan kerugian yang berlebihan. Hentian dapat membantu strategi mengunci keuntungan tepat pada masanya dan mengelakkan pembalikan keuntungan.
  4. Untuk mengoptimumkan parameter RSI, anda boleh menggunakan pengukuran dan pengoptimuman parameter untuk mencari kitaran RSI yang paling sesuai dengan pasaran dan piawaian semasa.

ringkaskan

Strategi ini adalah strategi perdagangan kuantitatif berdasarkan RSI, dan memperkenalkan sistem Martingale. Kelebihan strategi ini adalah keberkesanan RSI dan kejelasan logik strategi. Tetapi strategi ini juga mempunyai beberapa risiko, seperti kegagalan RSI, peningkatan risiko sistem Martingale, dan sebagainya.

Kod sumber strategi
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Cloudexp1

//@version=5
strategy("RSI Martingale Strategy", overlay=true)

// RSI settings
rsi_length = input(14, title="RSI Length")
overbought_level = input(70, title="Overbought Level")
oversold_level = input(30, title="Oversold Level")

// Martingale settings
initial_quantity = input(1, title="Initial Quantity")
martingale_multiplier = input(2, title="Martingale Multiplier")

// Calculate RSI
rsi = ta.rsi(close, rsi_length)

// Entry conditions
buy_condition = ta.crossover(rsi, oversold_level)
sell_condition = ta.crossunder(rsi, overbought_level)

// Take profit and stop loss
take_profit_percent = 0
stop_loss_percent = 0

// Strategy logic
strategy.entry("Buy", strategy.long, when = buy_condition)
strategy.entry("Sell", strategy.short, when = sell_condition)

// Calculate take profit and stop loss levels
take_profit_level = close * (1 + take_profit_percent / 100)
stop_loss_level = close * (1 - stop_loss_percent / 100)

// Exit conditions
strategy.exit("Exit Buy", "Buy", limit = take_profit_level, stop = stop_loss_level)
strategy.exit("Exit Sell", "Sell", limit = take_profit_level, stop = stop_loss_level)

// Martingale logic
var float last_quantity = na
if (buy_condition)
    last_quantity := initial_quantity
if (sell_condition)
    last_quantity := initial_quantity

if (strategy.position_size > 0)
    strategy.entry("Buy Martingale", strategy.long, qty = last_quantity * martingale_multiplier)
if (strategy.position_size < 0)
    strategy.entry("Sell Martingale", strategy.short, qty = last_quantity * martingale_multiplier)