Purata bergerak berbilang dan strategi henti untung dan henti rugi RSI crossover dinamik ATR

SMA RSI ATR TP SL
Tarikh penciptaan: 2025-02-21 13:44:39 Akhirnya diubah suai: 2025-02-21 13:44:39
Salin: 0 Bilangan klik: 330
2
fokus pada
319
Pengikut

Purata bergerak berbilang dan strategi henti untung dan henti rugi RSI crossover dinamik ATR Purata bergerak berbilang dan strategi henti untung dan henti rugi RSI crossover dinamik ATR

Gambaran Keseluruhan Strategi

Strategi ini adalah sistem perdagangan automatik yang berdasarkan kepada pelbagai isyarat perpaduan antara purata bergerak ((SMA) dan penunjuk yang agak kuat ((RSI)). Ia menggabungkan mekanisme pengesahan pelbagai purata bergerak jangka pendek dan jangka menengah, dan mengesahkan trend melalui penunjuk RSI, sambil menggunakan stop loss ATR dinamik untuk mengawal risiko, untuk mewujudkan kerangka keputusan perdagangan yang lengkap.

Prinsip Strategi

Logik utama strategi ini adalah berdasarkan kepada penghakiman komprehensif terhadap lima syarat utama:

  1. Harga melepasi purata bergerak 20 kitaran tertinggi
  2. Harga melepasi purata bergerak 20 kitaran rendah
  3. Harga melepasi purata bergerak 50 kitaran tertinggi
  4. Harga melepasi purata bergerak 50 kitaran rendah
  5. RSI ((7) penunjuk naik melebihi paras 50

Strategi hanya akan menghasilkan isyarat beli jika lima syarat ini dipenuhi secara serentak. Selepas masuk, strategi menggunakan tahap stop loss dan stop loss yang dinamik berdasarkan ATR, di mana stop loss ditetapkan sebagai 1.5 kali ATR dan stop loss ditetapkan sebagai 2.5 kali ATR, reka bentuk yang dapat menyesuaikan parameter pengurusan risiko secara automatik mengikut turun naik pasaran.

Kelebihan Strategik

  1. Mekanisme pengesahan berbilang meningkatkan kebolehpercayaan isyarat dagangan dengan ketara, mengurangkan kesan isyarat palsu dengan meminta beberapa petunjuk teknikal disahkan pada masa yang sama.
  2. Sistem pengurusan risiko dinamik dapat menyesuaikan secara automatik tahap hentian dan hentian mengikut turun naik pasaran, menjadikan strategi beradaptasi dengan baik.
  3. Gabungan ciri-ciri trend-following dan momentum-reversal, kedua-dua boleh menangkap terobosan yang kuat, dan dapat menghentikan kerugian dalam masa yang tepat untuk melindungi keuntungan.
  4. Parameter strategi boleh diselaraskan, pedagang boleh menyesuaikan parameter mengikut keadaan pasaran yang berbeza dan keutamaan risiko peribadi.

Risiko Strategik

  1. Keperluan untuk memenuhi pelbagai syarat pada masa yang sama boleh menyebabkan kehilangan peluang dagangan yang berpotensi.
  2. Dalam pasaran yang bergolak, harga yang sering melintasi garis rata-rata boleh mencetuskan terlalu banyak isyarat perdagangan.
  3. Pekali ATR tetap mungkin tidak fleksibel dalam keadaan pasaran yang melampau.
  4. Strategi ini tidak mengambil kira faktor asas pasaran, dan analisis teknikal semata-mata mungkin tidak berkesan di hadapan berita penting.

Arah pengoptimuman strategi

  1. Memperkenalkan penapis kadar turun naik pasaran untuk menyesuaikan frekuensi dagangan dan saiz kedudukan semasa turun naik yang tinggi.
  2. Meningkatkan mekanisme pengesahan jumlah pesanan dan meningkatkan kebolehpercayaan isyarat penembusan.
  3. Membangunkan mekanisme penyesuaian ATR berganda yang menyesuaikan tahap hentian dan hentian secara dinamik mengikut kadar turun naik sejarah.
  4. Tambah penapis kekuatan trend untuk mengelakkan perdagangan berlebihan dalam keadaan lemah.

ringkaskan

Ini adalah strategi perdagangan teknikal yang dirancang dengan wajar, meningkatkan ketepatan perdagangan dengan pengesahan silang pelbagai petunjuk teknikal, dan menggunakan sistem pengurusan risiko dinamik untuk melindungi keuntungan. Walaupun ada batasan tertentu dalam strategi, prestasi dapat ditingkatkan lagi dengan arah pengoptimuman yang disyorkan.

Kod sumber strategi
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy("Virat Bharat Auto Trade", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// **User-Defined Inputs for Customization**
smaLength20 = input(20, title="SMA High/Low 20 Length")
smaLength50 = input(50, title="SMA High/Low 50 Length")
rsiLength = input(7, title="RSI Length")
rsiLevel = input(50, title="RSI Crossover Level")
atrMultiplierSL = input(1.5, title="ATR Multiplier for Stop Loss")
atrMultiplierTP = input(2.5, title="ATR Multiplier for Target")

// **Defining the Indicators with Custom Inputs**
smaHigh20 = ta.sma(high, smaLength20)
smaLow20 = ta.sma(low, smaLength20)
smaHigh50 = ta.sma(high, smaLength50)
smaLow50 = ta.sma(low, smaLength50)
rsiValue = ta.rsi(close, rsiLength)
atrValue = ta.atr(14)  // ATR for Dynamic Stop Loss & Target

// **Conditions for Buy Signal**
condition1 = ta.crossover(close, smaHigh20)
condition2 = ta.crossover(close, smaLow20)
condition3 = ta.crossover(close, smaHigh50)
condition4 = ta.crossover(close, smaLow50)
condition5 = ta.crossover(rsiValue, rsiLevel)

// **Final Buy Signal (Only when all conditions match)**
buySignal = condition1 and condition2 and condition3 and condition4 and condition5

// **Buy Price, Stop Loss & Target**
buyPrice = close
stopLoss = buyPrice - (atrValue * atrMultiplierSL)  // Dynamic Stop Loss
target = buyPrice + (atrValue * atrMultiplierTP)  // Dynamic Target

// **Plot Buy Signal on Chart**
plotshape(buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="BUY", size=size.small, text="BUY")

// **Plot Labels for Buy, Stop Loss & Target**
if buySignal
    label.new(x=bar_index, y=buyPrice, text="BUY @ " + str.tostring(buyPrice, format="#.##"), color=color.green, textcolor=color.white, size=size.small, style=label.style_label_down, yloc=yloc.price)
    label.new(x=bar_index, y=stopLoss, text="STOP LOSS @ " + str.tostring(stopLoss, format="#.##"), color=color.red, textcolor=color.white, size=size.small, style=label.style_label_down, yloc=yloc.price)
    label.new(x=bar_index, y=target, text="TARGET @ " + str.tostring(target, format="#.##"), color=color.blue, textcolor=color.white, size=size.small, style=label.style_label_up, yloc=yloc.price)

// **Strategy Trading Logic - Automated Entry & Exit**
if buySignal
    strategy.entry("BUY", strategy.long)
    strategy.exit("SELL", from_entry="BUY", loss=atrValue * atrMultiplierSL, profit=atrValue * atrMultiplierTP)