
Chiến lược này là một hệ thống giao dịch dựa trên sự phá vỡ đường xu hướng, kết hợp các khái niệm về đường trung bình di chuyển và đường giá. Cốt lõi của chiến lược là tạo ra tín hiệu giao dịch bằng cách giám sát giá đóng cửa phá vỡ đường trung bình di chuyển và đặt các điểm dừng dựa trên mức thấp gần đây và tỷ lệ 2: 1 để quản lý rủi ro.
Chiến lược sử dụng đường trung bình di chuyển đơn giản (SMA) 20 chu kỳ làm chỉ số xu hướng. Hệ thống sẽ tạo ra nhiều tín hiệu khi giá đóng cửa phá vỡ từ dưới đường trung bình lên trên. Địa điểm dừng lỗ được đặt ở điểm thấp nhất của 7 đường K trước đây để tránh quá gần điểm vào.
Đây là một chiến lược theo xu hướng có cấu trúc, logic rõ ràng. Nó tạo ra tín hiệu bằng cách phá vỡ đường trung bình di chuyển, kết hợp với cơ chế quản lý rủi ro hợp lý, có tính thực tế tốt. Mặc dù có một số rủi ro vốn có, nhưng hướng tối ưu hóa được đề xuất có thể nâng cao hơn nữa sự ổn định và lợi nhuận của chiến lược.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Trend Breakout with SL and TP", overlay=true)
// Parametrlar
length = input(25, title="Length for SL Calculation")
trendLength = input(20, title="Trend Line Length")
// Trend chizig'ini hisoblash
trendLine = ta.sma(close, trendLength)
// Yopilish narxi trend chizig'ini yorib o'tganda signal
longSignal = close > trendLine and close[1] <= trendLine
// Oxirgi 7 shamning minimumini hisoblash
lowestLow = ta.lowest(low, 7)
// Stop Loss darajasini belgilash
longSL = lowestLow // SL oxirgi 7 shamning minimumiga teng
// Take Profit darajasini SL ga nisbatan 2 baravar ko'p qilib belgilash
longTP = longSL + (close - longSL) * 2 // TP 2:1 nisbatida
// Savdo bajarish
if longSignal
strategy.entry("Long", strategy.long)
strategy.exit("Take Profit", "Long", limit=longTP)
strategy.exit("Stop Loss", "Long", stop=longSL)
// Grafikda trend chizig'ini chizish
plot(trendLine, title="Trend Line", color=color.blue, linewidth=2)
// Signal chizish
plotshape(longSignal, style=shape.labelup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
// SL va TP darajalarini ko'rsatish
// if longSignal
// // SL chizig'i
// line.new(bar_index, longSL, bar_index + 1, longSL, color=color.red, width=2, style=line.style_dashed)
// // TP chizig'i
// line.new(bar_index, longTP, bar_index + 1, longTP, color=color.green, width=2, style=line.style_dashed)
// // SL va TP label'larini ko'rsatish
// label.new(bar_index, longSL, "SL: " + str.tostring(longSL), color=color.red, style=label.style_label_down, textcolor=color.white, size=size.small)
// label.new(bar_index, longTP, "TP: " + str.tostring(longTP), color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)