
Ý tưởng cốt lõi của chiến lược phá vỡ K-line liên tục là nắm bắt cơ hội giao dịch khi giá cổ phiếu có tín hiệu đảo ngược và phá vỡ ngưỡng kháng cự quan trọng sau một thời gian giảm liên tục. Chiến lược này bằng cách đặt các tham số như số lượng K-line liên tục giảm, số lượng K-line liên tục tăng và điều kiện dừng lỗ, mở thêm khi một điều kiện cụ thể được đáp ứng và đóng cửa khi điều kiện dừng lỗ được kích hoạt.
Điều quan trọng trong chiến lược là xác định đúng tín hiệu đảo ngược và đặt các tham số thích hợp. Bao nhiêu đường K liên tục giảm và bao nhiêu đường K liên tục tăng là hai tham số quan trọng cần được tối ưu hóa dựa trên kết quả đo đạc. Ngoài ra, thiết lập các điều kiện dừng lỗ cũng rất quan trọng, để kiểm soát rủi ro và không dừng lỗ quá sớm dẫn đến cơ hội bị mất.
Chiến lược phá vỡ đường K liên tục để đưa ra quyết định giao dịch bằng cách nắm bắt tín hiệu đảo ngược sau khi giá cổ phiếu giảm liên tục. Chiến lược này đơn giản và dễ hiểu, phù hợp để sử dụng trong thị trường chấn động và xu hướng ban đầu, có thể thích ứng linh hoạt với các tình trạng thị trường khác nhau bằng cách đặt các tham số như số lượng đường K liên tục và điều kiện dừng lỗ. Tuy nhiên, chiến lược này cũng có một số hạn chế, chẳng hạn như khả năng thích ứng với xu hướng dài hạn, thiếu quản lý vị trí và quản lý vốn.
Trong ứng dụng thực tế, cần phải tối ưu hóa và cải thiện chiến lược tùy thuộc vào đặc điểm của thị trường và sở thích rủi ro của riêng bạn. Ví dụ: tối ưu hóa số lượng đường K liên tiếp và thiết lập điều kiện dừng lỗ, thêm giao dịch hai chiều đa luồng, giới thiệu quản lý vị trí và quản lý vốn, và kết hợp với các chỉ số kỹ thuật và tín hiệu giao dịch khác.
Nhìn chung, chiến lược phá vỡ liên tục K-line là một chiến lược giao dịch thực tế đơn giản, đáng để khám phá và tối ưu hóa hơn nữa trong thực tế. Tuy nhiên, không có chiến lược nào là tất cả mọi thứ, nhà đầu tư cũng cần kết hợp kinh nghiệm và phán đoán của riêng mình, quyết định thận trọng và thực hiện nghiêm ngặt để có thể đứng vững trong thị trường lâu dài.
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bottom Out Strategy", overlay=true)
consecutiveBarsUp = input(2)
consecutiveBarsDown = input(3)
price = close
ups = 0.0
ups := price > price[1] ? nz(ups[1]) + 1 : 0
dns = 0.0
dns := price < price[1] ? nz(dns[1]) + 1 : 0
var entry_bar_index = 1000000
var active = false
var stop_loss = 0.0
// === INPUT BACKTEST RANGE ===
i_from = input(defval = timestamp("01 Jan 2023 00:00 +0000"), title = "From")
i_thru = input(defval = timestamp("01 Mar 2024 00:00 +0000"), title = "Thru")
// === FUNCTION EXAMPLE ===
date() => true
entry_condition() =>
date() and dns[2] >= consecutiveBarsDown and ups >= consecutiveBarsUp and not active
exit_condition() =>
date() and active and (close < nz(stop_loss) or close < high - 2 * ta.atr(7))
if (entry_condition())
strategy.entry("ConsDnLong", strategy.long, comment="CDLEntry")
entry_bar_index := bar_index
active := true
stop_loss := math.min(close, close[1], close[2])
// log.info("Entry at bar {0}, close={1}, stop_loss={2} ", entry_bar_index, close, stop_loss)
if (exit_condition())
strategy.close("ConsDnLong", comment = "CDLClose")
// log.info("Close at bar {0}", bar_index)
entry_bar_index := 1000000
active := false
// if (dns >= consecutiveBarsDown)
// strategy.entry("ConsDnSE", strategy.short, comment="ConsDnSE")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
plot(high - 2* ta.atr(7))