Sumber daya yang dimuat... Pemuatan...

Perhentian Trailing Dinamis Lanjutan dengan Strategi Penargetan Risiko-Penghargaan

Penulis:ChaoZhang, Tanggal: 2024-12-11 14:57:09
Tag:RSIATRSMA

img

Gambaran umum

Strategi ini adalah sistem perdagangan canggih yang menggabungkan trailing stop dinamis, rasio risiko-imbalan, dan exit ekstrim RSI. Sistem ini mengidentifikasi pola tertentu (pola bar paralel dan pola pin bar) untuk masuk ke perdagangan, sambil memanfaatkan ATR dan level terendah baru-baru ini untuk penempatan stop loss dinamis, dan menentukan target keuntungan berdasarkan rasio risiko-imbalan yang telah ditetapkan sebelumnya. Sistem ini juga menggabungkan mekanisme keluar pasar overbought / oversold berbasis RSI.

Prinsip Strategi

Logika inti mencakup beberapa komponen utama:

  1. Sinyal masuk didasarkan pada dua pola: pola bar paralel (bar bullish besar mengikuti bar bearish besar) dan pola bar double pin.
  2. Stop trailing dinamis menggunakan ATR multiplier disesuaikan dengan N-bar low baru-baru ini, memastikan tingkat stop loss beradaptasi dengan volatilitas pasar.
  3. Target keuntungan ditetapkan berdasarkan rasio risiko-manfaat tetap, yang dihitung dengan menggunakan nilai risiko ® untuk setiap perdagangan.
  4. Posisi yang diukur secara dinamis berdasarkan jumlah risiko tetap dan nilai risiko per perdagangan.
  5. RSI ekstrim mekanisme keluar memicu penutupan posisi di pasar ekstrim.

Keuntungan Strategi

  1. Manajemen Risiko Dinamis: Tingkat stop loss menyesuaikan secara dinamis dengan volatilitas pasar melalui kombinasi ATR dan level terendah baru-baru ini.
  2. Kontrol Posisi yang Tepat: Ukuran Posisi berdasarkan jumlah risiko tetap memastikan risiko yang konsisten per perdagangan.
  3. Mekanisme Keluar Multidimensional: Menggabungkan trailing stops, target keuntungan tetap, dan RSI ekstrem.
  4. Fleksibel Trading Direction: Opsi untuk trading hanya long, hanya short, atau bidirectional.
  5. Pengaturan Risiko-Reward yang jelas: Rasio risiko-imbalan yang ditentukan sebelumnya menentukan target keuntungan yang jelas untuk setiap perdagangan.

Risiko Strategi

  1. Risiko akurasi pengenalan pola: Potensi identifikasi palsu dari batang paralel dan batang pin.
  2. Risiko slippage dalam Stop Loss: Mungkin menghadapi slippage yang signifikan di pasar yang tidak stabil.
  3. RSI Exit yang dini: Bisa menyebabkan exit awal di pasar tren yang kuat.
  4. Keterbatasan Rasio Risiko-Reward yang tetap: Rasio risiko-Reward yang optimal dapat bervariasi di berbagai kondisi pasar.
  5. Optimasi Parameter Risiko Overfitting: Kombinasi beberapa parameter dapat menyebabkan over-optimasi.

Arah Optimasi Strategi

  1. Peningkatan Sinyal Masuk: Tambahkan lebih banyak indikator konfirmasi pola seperti indikator volume dan tren.
  2. Rasio Risiko-Penghasilan Dinamis: Mengatur rasio risiko-penghasilan berdasarkan volatilitas pasar.
  3. Adaptasi Parameter Cerdas: Memperkenalkan algoritma pembelajaran mesin untuk optimasi parameter dinamis.
  4. Konfirmasi multi-frame: Tambahkan mekanisme konfirmasi sinyal di beberapa timeframe.
  5. Klasifikasi Lingkungan Pasar: Menggunakan set parameter yang berbeda untuk kondisi pasar yang berbeda.

Ringkasan

Ini adalah strategi perdagangan yang dirancang dengan baik yang menggabungkan beberapa konsep analisis teknis yang matang untuk membangun sistem perdagangan yang lengkap. Kekuatan strategi terletak pada sistem manajemen risiko yang komprehensif dan aturan perdagangan yang fleksibel, sementara perhatian perlu diberikan pada optimasi parameter dan kemampuan beradaptasi pasar. Melalui arah optimasi yang disarankan, ada ruang untuk peningkatan strategi lebih lanjut.


/*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)

Berkaitan

Lebih banyak