
Chiến lược này là một hệ thống giao dịch dựa trên sự phán đoán xu hướng đồng bằng và phá vỡ giả của ngưỡng hỗ trợ. Chiến lược này phán đoán xu hướng thị trường bằng đường trung bình di chuyển đơn giản 50 chu kỳ và 200 chu kỳ, tạo ra tín hiệu giao dịch kết hợp với hình thức phá vỡ giả của ngưỡng hỗ trợ và sử dụng ATR (trung bình real amplitude) Định vị dừng lỗ động, đặt mục tiêu thu lợi nhuận tại điểm phá vỡ.
Lập luận cốt lõi của chiến lược bao gồm các yếu tố then chốt sau:
Chiến lược phá vỡ giả định hỗ trợ nhiều đường trung bình là một hệ thống giao dịch hoàn chỉnh kết hợp theo dõi xu hướng và hình dạng giá. Bằng cách đánh giá xu hướng của hệ thống đồng bằng và nhận dạng hình dạng phá vỡ giả định hỗ trợ, kết hợp với ATR động, xây dựng một chiến lược giao dịch có thể kiểm soát rủi ro. Điểm mạnh cốt lõi của chiến lược này nằm trong quy trình hoạt động có hệ thống và phương pháp quản lý rủi ro rõ ràng. Bằng cách tối ưu hóa và cải tiến liên tục, chiến lược có thể thích ứng tốt hơn với các môi trường thị trường khác nhau, nâng cao hiệu quả giao dịch. Trong ứng dụng thực tế, nhà đầu tư được khuyên nên điều chỉnh các tham số của chiến lược theo khả năng chịu rủi ro và đặc điểm của thị trường.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-26 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("False Break Trading Strategy", overlay=true)
// Define inputs for strategy parameters
sma50Length = input.int(50, title="SMA 50 Length")
sma200Length = input.int(200, title="SMA 200 Length")
atrLength = input.int(14, title="ATR Length")
lookbackPeriod = input.int(10, title="Swing High Lookback Period")
// Calculate SMAs
sma50 = ta.sma(close, sma50Length)
sma200 = ta.sma(close, sma200Length)
// Calculate ATR
atr = ta.atr(atrLength)
// Check if we are in an uptrend
isUptrend = sma50 > sma200
// Calculate Pivot, Support, and Target Profit (Swing High)
pivot = (high[1] + low[1] + close[1]) / 3
support = (2 * pivot) - high[1]
swingHigh = ta.highest(high, lookbackPeriod)
// Create signals for entry
var float entryPrice = na
var float stopLoss = na
var float targetProfit = na
longCondition = isUptrend and low[1] < support and close > support
if (longCondition)
entryPrice := open
stopLoss := low - atr
targetProfit := swingHigh
// Plot signals and lines on chart
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
// Plot levels for entry, stop loss, and target
plot(entryPrice, title="Entry Price", color=color.blue, linewidth=2, style=plot.style_linebr)
plot(stopLoss, title="Stop Loss", color=color.red, linewidth=2, style=plot.style_linebr)
plot(targetProfit, title="Target Profit", color=color.green, linewidth=2, style=plot.style_linebr)
// Backtest: Simulate exit points for the strategy
if (longCondition)
strategy.entry("Long", strategy.long)
if (na(stopLoss) == false and na(targetProfit) == false)
strategy.exit("Take Profit/Stop Loss", "Long", stop=stopLoss, limit=targetProfit)