Sumber daya yang dimuat... Pemuatan...

Adaptive Trailing Drawdown Balanced Trading Strategy dengan Take Profit dan Stop Loss

Penulis:ChaoZhang, Tanggal: 2024-12-12 14:25:36
Tag:OCAGAP

img

Gambaran umum

Strategi ini adalah sistem perdagangan adaptif yang didasarkan pada kesenjangan dan pergerakan harga, mencapai pengembalian yang stabil melalui titik masuk yang fleksibel dan pengaturan take profit / stop-loss yang dinamis. Strategi ini menggunakan ukuran posisi piramida dikombinasikan dengan sistem manajemen pesanan OCA untuk pengendalian risiko. Sistem secara otomatis menyesuaikan arah posisi dan menutup posisi segera ketika sinyal pembalikan muncul.

Prinsip Strategi

Strategi ini beroperasi melalui beberapa mekanisme inti:

  1. Mekanisme perdagangan gap: Mengidentifikasi gap ke atas dan ke bawah, menempatkan stop order pada level gap
  2. Trend following: Menentukan arah tren berdasarkan hubungan antara harga pembukaan dan penutupan
  3. Pyramiding: Memungkinkan hingga 100 perintah dalam arah yang sama
  4. TP/SL dinamis: Menetapkan tingkat take profit dan stop loss secara dinamis berdasarkan harga posisi rata-rata
  5. Manajemen pesanan OCA: Menggunakan kelompok pesanan OCA untuk memastikan eksklusifitas order TP dan SL
  6. Batas perdagangan intraday: Mengontrol risiko melalui pengaturan maksimum pesanan intraday yang dipenuhi

Keuntungan Strategi

  1. Adaptifitas tinggi: Strategi secara otomatis menyesuaikan arah perdagangan dan ukuran posisi berdasarkan kondisi pasar
  2. Risiko terkontrol: Beberapa mekanisme pengendalian risiko termasuk stop loss, pesanan OCA dan batas intraday.
  3. Fleksibilitas tinggi: Mendukung piramida untuk menangkap lebih banyak keuntungan di pasar tren
  4. Efisiensi eksekusi yang tinggi: Menggunakan stop order untuk membangun posisi dengan cepat pada tingkat harga kunci
  5. Sistematisasi tinggi: Keputusan perdagangan yang sepenuhnya sistematis mengurangi gangguan emosional

Risiko Strategi

  1. Risiko slippage: Mungkin menghadapi slippage yang signifikan di pasar yang bergerak cepat
  2. Risiko overtrading: Masuk dan keluar yang sering dapat menyebabkan biaya transaksi yang tinggi
  3. Risiko sistematis: Mungkin mengalami kerugian yang lebih besar di pasar yang sangat volatile
  4. Risiko manajemen modal: Piramida dapat menyebabkan penggunaan modal yang berlebihan
  5. Risiko teknis: Interupsi program dapat menyebabkan masalah manajemen pesanan

Arah Optimasi Strategi

  1. Menggabungkan indikator volatilitas: Sesuaikan secara dinamis parameter TP/SL berdasarkan volatilitas pasar
  2. Mengoptimalkan mekanisme piramida: Merancang aturan ukuran posisi yang lebih rinci untuk menghindari penggunaan modal yang berlebihan
  3. Meningkatkan pengendalian risiko: Tambahkan lebih banyak indikator pengendalian risiko seperti batas maksimum penarikan intraday
  4. Meningkatkan eksekusi pesanan: Mengoptimalkan mekanisme kemajuan pesanan untuk mengurangi dampak slippage
  5. Tambahkan analisis sentimen pasar: Optimalkan waktu masuk dengan memasukkan volume dan indikator lainnya

Ringkasan

Ini adalah strategi perdagangan yang dirancang dengan baik dengan logika yang ketat, memastikan stabilitas dan keamanan perdagangan melalui beberapa mekanisme. Keuntungan utamanya terletak pada kemampuan beradaptasi dan pengendalian risiko, sementara perhatian harus diberikan pada risiko dari volatilitas pasar. Melalui optimalisasi dan perbaikan terus-menerus, strategi ini memiliki potensi untuk mempertahankan kinerja yang stabil di berbagai lingkungan pasar.


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


Berkaitan

Lebih banyak