
Chiến lược này là một chiến lược quản lý rủi ro cơ chế thiết lập vị trí nhiều đầu với một ngày cụ thể được kích hoạt. Chiến lược này đặc biệt phù hợp với các nhà giao dịch muốn tự động hóa vị trí vào một ngày cụ thể theo lịch và quản lý vị trí bằng các phương pháp kiểm soát rủi ro động, chẳng hạn như theo dõi lỗ.
Chiến lược này đầu tiên nhập vào các ngày ra thị trường cụ thể, bao gồm ngày tháng, và sau đó tính toán thời gian ra thị trường chính xác dựa trên các ngày đó. Chiến lược cũng nhập các tham số phần trăm theo dõi lỗ dừng.
Trong ngày ra thị trường, chiến lược sẽ mở nhiều vị trí đầu. Đồng thời, ghi lại giá cao nhất và giá dừng lỗ. Trong đó, giá cao nhất sẽ được cập nhật liên tục trong thời gian tiếp theo, trong khi giá dừng lỗ là theo một tỷ lệ phần trăm của giá cao nhất.
Nếu giá thấp hơn giá dừng lỗ, bạn sẽ rút khỏi vị trí. Nếu không, vị trí vẫn được giữ, giá dừng lỗ sẽ theo dõi liên tục xuống theo giá cao nhất, do đó khóa lợi nhuận và kiểm soát rủi ro.
Chiến lược này có một số ưu điểm chính:
Chiến lược này cũng có một số rủi ro:
Các biện pháp tối ưu hóa:
Chiến lược này có thể được tối ưu hóa theo các hướng sau:
Chiến lược này dựa trên một ngày cụ thể và sử dụng phương pháp theo dõi dừng lỗ, có thể tự động hóa đầu vào và kiểm soát rủi ro một cách động. Chiến lược đơn giản, trực quan, dễ sử dụng và phù hợp với việc giữ vị trí dài. Bằng cách tối ưu hóa hơn nữa, nó có thể trở thành một chiến lược giao dịch định lượng rất thực tế.
/*backtest
start: 2024-01-24 00:00:00
end: 2024-01-31 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Trailing Stop Loss Percent",
overlay=true, pyramiding=1)
// Input for the specific entry date
entryDay = input.int(defval = 1, title = "Entry Day", minval = 1, maxval = 31)
entryMonth = input.int(defval = 1, title = "Entry Month", minval = 1, maxval = 12)
entryYear = input.int(defval = 2023, title = "Entry Year", minval = 1970)
// Calculate the entry date timestamp
entryDate = timestamp(entryYear, entryMonth, entryDay, 00, 00)
// Trailing Stop Loss Percentage
trailStopPercent = input.float(defval = 5.0, title = "Trailing Stop Loss (%)", minval = 0.1)
// Entry Condition
enterTrade = true
// Variables to track the highest price and stop loss level since entry
var float highestPrice = na
var float stopLoss = na
// Update the highest price and stop loss level
if strategy.position_size > 0
highestPrice := math.max(highestPrice, high)
stopLoss := highestPrice * (1 - trailStopPercent / 100)
// Enter the strategy
if enterTrade
strategy.entry("Long Entry", strategy.long)
highestPrice := high
stopLoss := highestPrice * (1 - trailStopPercent / 100)
// Exit the strategy if the stop loss is hit
if strategy.position_size > 0 and low <= stopLoss
strategy.close("Long Entry")
// Plotting the stop loss level for reference
plot(strategy.position_size > 0 ? stopLoss : na, "Trailing Stop Loss", color=color.red)