Strategi stop-profit dan stop-loss perdagangan keseimbangan trailing retracement adaptif

OCA GAP
Tanggal Pembuatan: 2024-12-12 14:25:36 Akhirnya memodifikasi: 2024-12-12 14:25:36
menyalin: 2 Jumlah klik: 413
1
fokus pada
1617
Pengikut

Strategi stop-profit dan stop-loss perdagangan keseimbangan trailing retracement adaptif

Ringkasan

Strategi ini adalah sistem perdagangan yang beradaptasi berdasarkan celah dan perubahan harga, untuk mendapatkan keuntungan yang stabil dengan pengaturan titik masuk yang fleksibel dan stop loss yang dinamis. Strategi ini menggunakan metode penambahan posisi piramida, sekaligus dikombinasikan dengan sistem manajemen pesanan OCA untuk mengendalikan risiko.

Prinsip Strategi

Strategi ini bekerja melalui beberapa mekanisme utama:

  1. Gap trading mechanism: mengidentifikasi gap ke atas dan ke bawah, mengatur stop loss entry di posisi gap
  2. Pelacakan tren: menentukan arah tren berdasarkan hubungan antara harga buka dan harga tutup
  3. Peningkatan posisi piramida: maksimum 100 pesanan di satu arah
  4. Stop Loss Dinamis: Stop Loss yang diatur secara dinamis berdasarkan harga rata-rata posisi
  5. Manajemen pesanan OCA: menggunakan pesanan portofolio OCA untuk memastikan perintah stop dan stop loss saling menolak
  6. Pembatasan transaksi intraday: Mengontrol risiko dengan mengatur jumlah order maksimum dalam sehari

Keunggulan Strategis

  1. Adaptif: Strategi dapat secara otomatis menyesuaikan arah perdagangan dan volume posisi sesuai dengan kondisi pasar
  2. Kontrol risiko: Mengontrol risiko melalui beberapa mekanisme, termasuk stop loss, OCA order, dan pembatasan perdagangan intraday
  3. Fleksibilitas tinggi: Dukungan untuk menaikkan posisi piramida untuk mendapatkan lebih banyak keuntungan dalam situasi tren
  4. Efisiensi Eksekusi: Menggunakan Stop Loss Entry untuk membangun posisi dengan cepat pada harga kunci
  5. Tingkat sistematisasi yang tinggi: keputusan perdagangan sepenuhnya sistematis, mengurangi dampak emosional dari intervensi manusia

Risiko Strategis

  1. Risiko Tergelincir: Tergesa-gesa di Perjalanan Cepat
  2. Risiko over-trading: sering masuk dan keluar dapat menyebabkan biaya transaksi yang lebih tinggi
  3. Risiko sistemik: kemungkinan kerugian yang lebih besar dalam pasar yang sangat bergejolak
  4. Risiko Manajemen Uang: Peningkatan hipotek piramida dapat menyebabkan pemanfaatan dana yang terlalu tinggi
  5. Risiko teknis: gangguan dalam proses dapat menyebabkan masalah dalam pengelolaan pesanan

Arah optimasi strategi

  1. Memperkenalkan indikator volatilitas: penyesuaian parameter stop loss sesuai dengan dinamika volatilitas pasar
  2. Mengoptimalkan mekanisme penambahan saham: merancang aturan penambahan saham yang lebih rinci, menghindari penggunaan dana yang berlebihan
  3. Perbaikan sistem pengendalian angin: Menambahkan lebih banyak indikator pengendalian angin, seperti batas maksimum penarikan dalam sehari
  4. Meningkatkan eksekusi pesanan: Optimalkan mekanisme pengiriman pesanan, mengurangi dampak slippage
  5. Meningkatkan penilaian sentimen pasar: Mengoptimalkan waktu masuk dengan menggabungkan indikator seperti volume transaksi

Meringkaskan

Ini adalah strategi perdagangan yang dirancang secara rasional dan logis untuk menjamin stabilitas dan keamanan perdagangan melalui beberapa mekanisme. Keunggulan inti dari strategi ini adalah kemampuan untuk beradaptasi dan mengendalikan risiko, tetapi juga perlu memperhatikan risiko yang ditimbulkan oleh fluktuasi pasar. Dengan terus-menerus mengoptimalkan dan memperbaiki, strategi ini diharapkan dapat mempertahankan kinerja yang stabil di berbagai lingkungan pasar.

Kode Sumber Strategi
/*backtest
start: 2024-12-04 00:00:00
end: 2024-12-11 00:00:00
period: 10m
basePeriod: 10m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Greedy Strategy - maclaurin", pyramiding = 100, calc_on_order_fills=false, overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
backtestStartDate = input(timestamp("1 Jan 1990"),
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " +
     "where the chart's instrument trades. It doesn't use the time " +
     "zone of the chart or of your computer.")
backtestEndDate = input(timestamp("1 Jan 2023"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end date is in the time zone of the exchange " +
     "where the chart's instrument trades. It doesn't use the time " +
     "zone of the chart or of your computer.")
inTradeWindow = true
tp = input(10)
sl = input(10)
maxidf = input(title="Max Intraday Filled Orders", defval=5)
// strategy.risk.max_intraday_filled_orders(maxidf)
upGap = open > high[1]
dnGap = open < low[1]
dn = strategy.position_size < 0 and open > close
up = strategy.position_size > 0 and open < close
if inTradeWindow and upGap
    strategy.entry("GapUp", strategy.long, stop = high[1])
else
    strategy.cancel("GapUp")
if inTradeWindow and dn
    strategy.entry("Dn", strategy.short, stop = close)
else
    strategy.cancel("Dn")
if inTradeWindow and dnGap
    strategy.entry("GapDn", strategy.short, stop = low[1])
else
    strategy.cancel("GapDn")
if inTradeWindow and up
    strategy.entry("Up", strategy.long, stop = close)
else
    strategy.cancel("Up")
XQty = strategy.position_size < 0 ? -strategy.position_size : strategy.position_size
dir = strategy.position_size < 0 ? -1 : 1
lmP = strategy.position_avg_price + dir*tp*syminfo.mintick
slP = strategy.position_avg_price - dir*sl*syminfo.mintick
float nav = na
revCond = strategy.position_size > 0 ? dnGap : (strategy.position_size < 0 ? upGap : false)
if inTradeWindow and not revCond and XQty > 0
    strategy.order("TP", strategy.position_size < 0 ? strategy.long : strategy.short, XQty, lmP, nav, "TPSL",  "TPSL")
    strategy.order("SL", strategy.position_size < 0 ? strategy.long : strategy.short, XQty, nav, slP, "TPSL", "TPSL")
if XQty == 0 or revCond
    strategy.cancel("TP")
    strategy.cancel("SL")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)