
Chiến lược phá vỡ đường K là một chiến lược theo dõi xu hướng đơn giản dựa trên đường K của đường K. Nó đánh giá xu hướng thị trường bằng cách quan sát mối quan hệ giữa giá đóng cửa và giá mở cửa của đường K ngày hôm trước, từ đó tạo ra tín hiệu giao dịch.
Lập luận cốt lõi của chiến lược này là:
Nếu một thực thể K-line ngày trước màu xanh lá cây ((chiếc giá đóng cửa cao hơn giá mở cửa), thì chiến lược sẽ được thực hiện vào ngày tiếp theo khi mở cửa. Nếu một thực thể K-line ngày trước màu đỏ ((chiếc giá đóng cửa thấp hơn giá mở cửa), thì chiến lược sẽ được thực hiện vào ngày tiếp theo khi mở cửa.
Bằng cách đơn giản này, chiến lược có thể xác định xu hướng thị trường trong một chu kỳ K gần đây nhất và giao dịch theo đó. Như vậy, nó có thể tuân theo xu hướng thị trường gần đây và thực hiện giao dịch theo xu hướng.
Cụ thể, các tín hiệu giao dịch của chiến lược được tạo ra như sau:
Với logic như vậy, chiến lược có thể nắm bắt xu hướng giá trong thời gian ngắn hơn để kiếm lợi nhuận.
Chiến lược này có một số ưu điểm:
Chiến lược này cũng có một số rủi ro và những điều có thể cải thiện:
Chiến lược phá vỡ đường K đánh giá xu hướng thị trường bằng cách so sánh đường K đơn giản và hiệu quả, có thể nắm bắt xu hướng ngắn hạn để giao dịch. Ưu điểm của chiến lược là đơn giản, rõ ràng và dễ vận hành, nhưng cũng có nguy cơ bị chặn bởi phản hồi. Bằng cách thiết lập tham số tối ưu hóa hơn nữa và thêm nhiều chỉ số kỹ thuật, bạn có thể tăng sự ổn định và độ tin cậy của chiến lược.
/*backtest
start: 2022-12-26 00:00:00
end: 2023-08-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Daily Candle Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=0.0)
// Input parameters
initialCapital = 10000
riskFactor = 3500
// Calculate the opening and closing values for the last day's candle
lastDayOpen = request.security(syminfo.tickerid, "D", open[1], lookahead=barmerge.lookahead_on)
lastDayClose = request.security(syminfo.tickerid, "D", close[1], lookahead=barmerge.lookahead_on)
// Determine the color of the last day's candle
lastDayColor = lastDayOpen < lastDayClose ? color.green : color.red
// Plot the last day's candle on the chart
plotshape(series=na, color=lastDayColor, style=shape.triangledown, location=location.abovebar)
// Calculate trade size based on available capital at last day's closing
availableCapital = strategy.equity
tradeSize = availableCapital / riskFactor
// Trading conditions
buyCondition = lastDayColor == color.green
sellCondition = lastDayColor == color.red
// Execute strategy orders with calculated trade size
strategy.entry("Buy", strategy.long, qty=tradeSize, when=buyCondition)
strategy.entry("Sell", strategy.short, qty=tradeSize, when=sellCondition)
// Exit strategy
stopLoss = 0.001 * lastDayOpen * tradeSize
strategy.exit("StopLoss/Profit", from_entry="Buy", loss=stopLoss)
strategy.exit("StopLoss/Profit", from_entry="Sell", loss=stopLoss)
// Plot stop loss level on the chart
plot(stopLoss, color=color.red, linewidth=2, title="Stop Loss")