
Gambaran keseluruhan
Ini adalah strategi perdagangan pecah selang berdasarkan harga yang tinggi atau rendah pada hari perdagangan sebelumnya. Strategi ini mencari peluang perdagangan dengan mengenal pasti harga yang melampaui atau jatuh pada hari sebelumnya, dan hanya melakukan satu perdagangan untuk setiap arah pecah atau jatuh. Strategi ini menggunakan tetapan stop loss 50 yang tetap dan menetapkan semula penanda perdagangan pada awal setiap hari perdagangan untuk memastikan perdagangan dilakukan secara teratur.
Prinsip Strategi
Logik utama strategi ini merangkumi:
- Penjanaan isyarat perdagangan: Sistem menentukan arah perdagangan dengan menilai sama ada harga penutupan semasa telah menembusi paras tertinggi atau terendah pada hari perdagangan sebelumnya. Apabila harga penutupan telah menembusi paras tertinggi pada hari sebelumnya, sistem akan mengeluarkan isyarat berganda; apabila harga penutupan telah jatuh pada paras rendah pada hari sebelumnya, sistem akan mengeluarkan isyarat kosong.
- Kawalan kekerapan perdagangan: Strategi menggunakan titik tanda (atau bendera) untuk memastikan bahawa setiap arah hanya menjalankan satu perdagangan setiap hari. Reka bentuk ini dapat mengelakkan perdagangan berulang dalam zon harga yang sama, mengurangkan kos transaksi.
- Pengurusan risiko: Setiap dagangan mempunyai 50 titik berhenti yang ditetapkan. Pengurusan risiko simetri ini dapat mengawal risiko dagangan tunggal dengan berkesan.
- Mekanisme reset dalam hari: Pada permulaan setiap hari perdagangan, sistem akan menetapkan semula penanda perdagangan untuk bersedia untuk hari perdagangan baru. Mekanisme ini memastikan bahawa strategi dapat menangkap peluang perdagangan baru.
Kelebihan Strategik
- Logik perdagangan yang jelas: Strategi berdasarkan teori terobosan harga yang mudah, peraturan perdagangan jelas, mudah difahami dan dilaksanakan.
- Kawalan risiko yang ketat: Mengendalikan risiko setiap dagangan dengan berkesan melalui titik berhenti dan penghadaman perdagangan satu arah yang tetap.
- Mengelakkan perdagangan berlebihan: Hanya satu perdagangan dibenarkan setiap hari untuk setiap arah, untuk mengelakkan kerugian yang disebabkan oleh perdagangan yang kerap dalam pasaran yang bergolak.
- Tingkat automasi yang tinggi: Strategi boleh dilaksanakan secara automatik tanpa campur tangan manusia.
- Kebolehan beradaptasi: Strategi boleh digunakan dalam pelbagai keadaan pasaran, terutamanya dalam pasaran yang jelas trend.
Analisis risiko
- Risiko penembusan palsu: Pasaran mungkin mengalami penembusan palsu yang menyebabkan kerugian perdagangan. Ia disyorkan untuk disahkan bersama-sama dengan petunjuk teknikal lain.
- Risiko pasaran goyah: Dalam pasaran goyah berliku, penembusan dan penurunan yang kerap boleh menyebabkan kerugian berturut-turut. Ia boleh diperbaiki dengan menambah syarat penapisan.
- Risiko Hentian Tetap: Nombor titik hentian tetap mungkin tidak sesuai untuk semua keadaan pasaran, dan mungkin berhenti terlalu awal di pasaran yang lebih bergolak.
- Risiko tergelincir: Apabila pasaran bergelincir, tergelincir boleh menyebabkan titik berhenti sebenar terbelah dari jangkaan.
Arah pengoptimuman
- Tetapan Hentikan Kerosakan Dinamis: Jumlah titik hentikan hentikan boleh disesuaikan secara dinamik mengikut turun naik pasaran (seperti penunjuk ATR).
- Menambah penapis trend: Menapis isyarat perdagangan dengan menggunakan penunjuk trend (seperti purata bergerak atau ADX).
- Optimumkan pengesahan penembusan: Anda boleh menambah pengesahan jumlah pesanan atau petunjuk teknikal lain untuk meningkatkan kebolehpercayaan penembusan.
- Penapisan masa: Syarat penapisan masa boleh ditambah untuk mengelakkan dagangan pada masa yang bergelombang.
- Pengendalian kedudukan yang dioptimumkan: saiz kedudukan boleh disesuaikan secara dinamik mengikut turun naik pasaran dan kemampuan menanggung risiko akaun.
ringkaskan
Strategi ini adalah sistem perdagangan klasik yang berasaskan penembusan jarak sunset, yang sesuai untuk mengesan keadaan trend satu arah di pasaran melalui pengurusan perdagangan dan kawalan risiko yang ketat. Walaupun terdapat beberapa risiko yang wujud, tetapi dengan pengoptimuman dan penambahbaikan yang munasabah, kestabilan dan keuntungan strategi dapat ditingkatkan.
Kod sumber strategi
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("US 30 Daily Breakout Strategy (Single Trade Per Breakout/Breakdown, New York Time)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, trim_orders = true)
// Set pip size for US 30 (1 pip = 1 point)
var float pip = 1.0
// Set take profit and stop loss in points (1 pip = 1 point)
take_profit_pips = 50
stop_loss_pips = 50
// Calculate the previous day's high and low (assumes chart timezone is set to New York)
prevDayHigh = request.security(syminfo.tickerid, "D", high[1])
prevDayLow = request.security(syminfo.tickerid, "D", low[1])
// Initialize flags to track if a breakout/breakdown trade has been taken
var bool breakout_traded = false
var bool breakdown_traded = false
// Reset flags at the start of a new day in New York timezone (as per chart setting)
if (ta.change(time("D")))
breakout_traded := false
breakdown_traded := false
// Condition for a long entry: candle closes above the previous day's high and no breakout trade has been taken
longCondition = close > prevDayHigh and strategy.opentrades == 0 and not breakout_traded
// Condition for a short entry: candle closes below the previous day's low and no breakdown trade has been taken
shortCondition = close < prevDayLow and strategy.opentrades == 0 and not breakdown_traded
// Execute long trade if the condition is met, and set the breakout flag
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Take Profit/Stop Loss", "Long", limit=close + take_profit_pips * pip, stop=close - stop_loss_pips * pip)
breakout_traded := true // Set breakout flag
// Execute short trade if the condition is met, and set the breakdown flag
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Take Profit/Stop Loss", "Short", limit=close - take_profit_pips * pip, stop=close + stop_loss_pips * pip)
breakdown_traded := true // Set breakdown flag
// Plotting the previous day's high and low for visualization
plot(prevDayHigh, color=color.green, linewidth=1, title="Previous Day High")
plot(prevDayLow, color=color.red, linewidth=1, title="Previous Day Low")