Strategi henti untung dan henti rugi perdagangan baki trailing adaptif

OCA GAP
Tarikh penciptaan: 2024-12-12 14:25:36 Akhirnya diubah suai: 2024-12-12 14:25:36
Salin: 2 Bilangan klik: 413
1
fokus pada
1617
Pengikut

Strategi henti untung dan henti rugi perdagangan baki trailing adaptif

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan yang beradaptasi berdasarkan celah dan perubahan harga, untuk mencapai keuntungan yang stabil dengan menetapkan titik masuk yang fleksibel dan berhenti berhenti yang dinamik. Strategi ini menggunakan cara penambahan piramid, sambil menggabungkan sistem pengurusan pesanan OCA untuk mengawal risiko.

Prinsip Strategi

Strategi ini berfungsi melalui beberapa mekanisme utama:

  1. Mekanisme perdagangan celah: mengenal pasti celah ke atas dan ke bawah, dan tetapkan stop loss entry di lokasi celah
  2. Pengesanan trend: arah trend berdasarkan hubungan antara harga pembukaan dan harga penutupan
  3. Pemasaran piramid: dibenarkan untuk memegang sehingga 100 pesanan dalam satu arah
  4. Stop Loss Dinamik: Stop Loss yang ditetapkan secara dinamik berdasarkan harga purata pegangan
  5. Pengurusan pesanan OCA: menggunakan pesanan portfolio OCA untuk memastikan perintah hentian dan hentian saling menolak
  6. Had dagangan dalam sehari: mengawal risiko dengan menetapkan jumlah pesanan maksimum dalam sehari

Kelebihan Strategik

  1. Adaptif: Strategi dapat menyesuaikan arah perdagangan dan jumlah pegangan secara automatik mengikut keadaan pasaran
  2. Risiko boleh dikawal: Mengendalikan risiko melalui pelbagai mekanisme, termasuk halangan, perintah OCA dan sekatan perdagangan dalam sehari
  3. Fleksibiliti yang tinggi: menyokong kenaikan harga piramid untuk mendapatkan lebih banyak keuntungan dalam keadaan trend
  4. Kecekapan pelaksanaan yang tinggi: Pendaftaran dengan Stop Loss, boleh membuat pelaburan dengan cepat pada harga kritikal
  5. Tingkat sistematisasi yang tinggi: keputusan perdagangan sepenuhnya sistematis, mengurangkan kesan emosi dari campur tangan manusia

Risiko Strategik

  1. Risiko Tergelincir: Kemungkinan Tergelincir Dalam Perjalanan Cepat
  2. Risiko perdagangan berlebihan: sering masuk dan keluar boleh menyebabkan kos perdagangan yang lebih tinggi
  3. Risiko sistemik: kemungkinan kerugian yang lebih besar dalam pasaran yang bergolak
  4. Risiko pengurusan wang: Peningkatan harga saham seperti piramid boleh menyebabkan penggunaan wang yang berlebihan
  5. Risiko teknikal: gangguan dalam proses boleh menyebabkan masalah dalam pengurusan pesanan

Arah pengoptimuman strategi

  1. Pengenalan penunjuk kadar turun naik: penyesuaian parameter stop loss mengikut pergerakan kadar turun naik pasaran
  2. Optimumkan mekanisme pembiayaan: reka bentuk peraturan pembiayaan yang lebih terperinci untuk mengelakkan pembiayaan yang berlebihan
  3. Meningkatkan sistem kawalan angin: Menambah lebih banyak penunjuk kawalan angin, seperti had pengeluaran maksimum dalam sehari
  4. Peningkatan pelaksanaan pesanan: Optimumkan mekanisme penyampaian pesanan, mengurangkan kesan slippoint
  5. Peningkatan penilaian sentimen pasaran: penyesuaian masa kemasukan dengan menggabungkan metrik seperti jumlah pertukaran

ringkaskan

Ini adalah strategi perdagangan yang dirancang secara logik dan logik, yang menjamin kestabilan dan keselamatan perdagangan melalui pelbagai mekanisme. Kelebihan utama strategi adalah kemampuan untuk menyesuaikan diri dan mengawal risiko, tetapi juga perlu memperhatikan risiko yang timbul dari turun naik pasaran. Dengan pengoptimuman dan penyempurnaan berterusan, strategi dijangka dapat mengekalkan prestasi yang stabil dalam pelbagai keadaan pasaran.

Kod 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)