Strategi hentian trailing dinamik lanjutan dan sasaran keuntungan

RSI ATR SMA
Tarikh penciptaan: 2024-12-11 14:57:09 Akhirnya diubah suai: 2024-12-11 14:57:09
Salin: 0 Bilangan klik: 383
1
fokus pada
1617
Pengikut

Strategi hentian trailing dinamik lanjutan dan sasaran keuntungan

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan canggih yang menggabungkan stop loss, nisbah ganjaran risiko, dan keluar dari paras RSI yang dinamik. Strategi ini melakukan perdagangan dengan mengenal pasti bentuk tertentu di pasaran ((mode garis K selari dan bentuk garis K acuan) sambil menggunakan ATR dan titik rendah terkini untuk menetapkan stop loss dinamik dan menetapkan sasaran keuntungan berdasarkan nisbah ganjaran risiko yang telah ditetapkan.

Prinsip Strategi

Logik teras strategi merangkumi bahagian penting berikut:

  1. Isyarat masuk berasaskan dua bentuk: bentuk garis K selari (garis besar yang diikuti oleh garis besar yang bercabang) dan bentuk garis K yang bercabang dua.
  2. Hentian Tracking Dinamik menggunakan ATR untuk menyesuaikan harga terendah pada garis N-root K yang paling dekat, memastikan bahawa titik hentian dapat menyesuaikan diri secara dinamik dengan turun naik pasaran.
  3. Sasaran keuntungan berdasarkan seting nisbah risiko-pulang yang tetap, yang ditentukan dengan mengira nilai risiko ® bagi setiap perdagangan.
  4. Saiz kedudukan dikira berdasarkan jumlah risiko tetap dan nilai risiko setiap dagangan secara dinamik.
  5. RSI Extreme Exit Mechanism memicu isyarat kedudukan rata apabila pasaran terlalu panas atau terlalu sejuk.

Kelebihan Strategik

  1. Pengurusan Risiko Dinamis: Dengan ATR dan gabungan titik rendah terkini, titik berhenti dapat disesuaikan dengan pergerakan pasaran yang bergelombang.
  2. Kawalan kedudukan yang tepat: Kaedah pengiraan kedudukan berdasarkan jumlah risiko tetap memastikan risiko setiap perdagangan adalah sama.
  3. Mekanisme Keluar Berbilang Dimensi: Mekanisme Keluar Tiga kali ganda yang digabungkan dengan pengesanan berhenti yang dikesan, sasaran keuntungan tetap dan RSI.
  4. Pilihan arah perdagangan yang fleksibel: anda boleh memilih untuk berdagang hanya dengan lebih, hanya dengan lebih atau dua arah.
  5. Tetapan risiko dan ganjaran yang jelas: dengan menetapkan risiko dan ganjaran yang lebih tinggi daripada sasaran keuntungan yang jelas untuk setiap perdagangan.

Risiko Strategik

  1. Risiko ketepatan pengiktirafan bentuk: Pengiktirafan garisan K sejajar dan garisan K acuan mungkin terdapat kesalahan pengiktirafan.
  2. Risiko tergelincir dengan tetapan stop loss: kemungkinan tergelincir yang lebih besar dalam pasaran yang bergolak.
  3. RSI teramat mungkin keluar terlalu awal: dalam pasaran trend yang kuat boleh menyebabkan keluar lebih awal dan kehilangan lebih banyak keuntungan.
  4. Batasan nisbah ganjaran risiko tetap: nisbah ganjaran risiko yang optimum mungkin berbeza dalam keadaan pasaran yang berbeza.
  5. Risiko over-fit dalam pengoptimuman parameter: gabungan beberapa parameter mungkin menyebabkan pengoptimuman berlebihan.

Arah pengoptimuman strategi

  1. Optimasi isyarat masuk: Anda boleh menambah lebih banyak penunjuk pengesahan bentuk, seperti jumlah transaksi, penunjuk trend, dan sebagainya.
  2. Nisbah ganjaran risiko dinamik: nisbah ganjaran risiko yang disesuaikan mengikut dinamik turun naik pasaran.
  3. Penyesuaian parameter pintar: memperkenalkan algoritma pembelajaran mesin untuk mengoptimumkan parameter secara dinamik.
  4. Pengesahan pelbagai kitaran masa: mekanisme pengesahan isyarat yang menambah lebih banyak kitaran masa.
  5. Klasifikasi persekitaran pasaran: menggunakan kombinasi parameter yang berbeza mengikut persekitaran pasaran yang berbeza.

ringkaskan

Ini adalah strategi perdagangan yang dirancang dengan baik, dengan menggabungkan beberapa konsep analisis teknikal yang matang, untuk membina sistem perdagangan yang lengkap. Keunggulan strategi adalah sistem pengurusan risiko yang komprehensif dan peraturan perdagangan yang fleksibel, tetapi juga memerlukan perhatian terhadap pengoptimuman parameter dan kesesuaian pasaran.

Kod sumber strategi
/*backtest
start: 2024-11-10 00:00:00
end: 2024-12-09 08:00:00
period: 2h
basePeriod: 2h
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/
// © ZenAndTheArtOfTrading | www.TheArtOfTrading.com
// @version=5
strategy("Trailing stop 1", overlay=true)

// Get user input 
int     BAR_LOOKBACK    = input.int(10, "Bar Lookback")
int     ATR_LENGTH      = input.int(14, "ATR Length")
float   ATR_MULTIPLIER  = input.float(1.0, "ATR Multiplier")
rr                      = input.float(title="Risk:Reward", defval=3)

// Basic definition
var float shares=na
risk = 1000
var float R=na
E = strategy.position_avg_price

// Input option to choose long, short, or both
side = input.string("Long", title="Side", options=["Long", "Short", "Both"])

// RSI exit option
RSIexit = input.string("Yes", title="Exit at RSI extreme?", options=["Yes", "No"])
RSIup = input(75)
RSIdown = input(25)

// Get indicator values 
float atrValue = ta.atr(ATR_LENGTH)

// Calculate stop loss values
var float trailingStopLoss = na 
float longStop  = ta.lowest(low, BAR_LOOKBACK) - (atrValue * ATR_MULTIPLIER)
float shortStop = ta.highest(high, BAR_LOOKBACK) + (atrValue * ATR_MULTIPLIER)

// Check if we can take trades 
bool canTakeTrades = not na(atrValue)
bgcolor(canTakeTrades ? na : color.red)

//Long pattern
    //Two pin bar
onepinbar = (math.min(close,open)-low)/(high-low)>0.6 and math.min(close,open)-low>ta.sma(high-low,14)
twopinbar = onepinbar and onepinbar[1]
notatbottom = low>ta.lowest(low[1],10)
    // Parallel
bigred = (open-close)/(high-low)>0.8 and high-low>ta.sma(high-low,14)
biggreen = (close-open)/(high-low)>0.8 and high-low>ta.sma(high-low,14)
parallel = bigred[1] and biggreen  
atbottom = low==ta.lowest(low,10)

// Enter long trades (replace this entry condition)
longCondition = parallel 
if (longCondition and canTakeTrades and  strategy.position_size == 0 and (side == "Long" or side == "Both"))
    R:= close-longStop
    shares:= risk/R
    strategy.entry("Long", strategy.long,qty=shares)

// Enter short trades (replace this entry condition)
shortCondition = parallel
if (shortCondition and canTakeTrades and strategy.position_size == 0 and (side == "Short" or side == "Both"))
    R:= shortStop - close
    shares:= risk/R
    strategy.entry("Short", strategy.short,qty=shares)

// Update trailing stop
if (strategy.position_size > 0)
    if (na(trailingStopLoss) or longStop > trailingStopLoss)
        trailingStopLoss := longStop
else if (strategy.position_size < 0)
    if (na(trailingStopLoss) or shortStop < trailingStopLoss)
        trailingStopLoss := shortStop
else
    trailingStopLoss := na

// Exit trades with trailing stop
strategy.exit("Long Exit",  "Long",  stop=trailingStopLoss, limit = E + rr*R )
strategy.exit("Short Exit", "Short", stop=trailingStopLoss, limit = E - rr*R)

//Close trades at RSI extreme
if ta.rsi(high,14)>RSIup and RSIexit == "Yes"
    strategy.close("Long")
if ta.rsi(low,14)<RSIdown and RSIexit == "Yes"
    strategy.close("Short")

// Draw stop loss 
plot(trailingStopLoss, "Stop Loss", color.red, 1, plot.style_linebr)