
Chiến lược này sử dụng các kênh leo lên và xuống được hình thành bởi các chỉ số sóng thực trung bình và giá được tính toán để tạo ra tín hiệu giao dịch khi giá vượt qua kênh. Chiến lược có khả năng theo dõi xu hướng nổi bật.
Chiến lược này đầu tiên tính toán chỉ số ATR như là một thước đo của biến động giá, sau đó kết hợp giá cao nhất, giá thấp nhất, giá đóng cửa với giá trung bình, tính toán lên và xuống đường. Khi giá tăng phá vỡ đường đi xuống, tạo ra tín hiệu mua; Khi giá giảm phá vỡ đường đi lên, tạo ra tín hiệu bán. Như vậy, tạo ra một kênh tăng tự thích nghi, theo dõi xu hướng giá.
Sau khi đưa ra thị trường, chiến lược sẽ đặt mục tiêu điểm lợi nhuận và điểm dừng lỗ, dừng khi giá đạt mục tiêu điểm và dừng nếu rút lại đạt điểm dừng lỗ.
Ưu điểm lớn nhất của chiến lược này là khả năng theo dõi xu hướng tuyệt vời của nó. Các kênh leo thang có thể điều chỉnh một cách thích nghi để nắm bắt sự thay đổi của xu hướng giá. Đồng thời, việc sử dụng chỉ số ATR cũng cung cấp một số bảo đảm về hoạt động thuận lợi. Ngoài ra, cơ chế dừng lỗ trong chiến lược cũng làm cho kiểm soát lợi nhuận thua lỗ rõ ràng hơn.
Một trong những rủi ro chính của chiến lược này là dễ tạo ra nhiều khoảng trống. Khi giá đang dao động, thường dẫn đến việc các kênh lên xuống được kích hoạt thường xuyên, sẽ tạo ra nhiều giao dịch không hiệu quả. Ngoài ra, thiết lập số điểm dừng lỗ cũng có thể ảnh hưởng trực tiếp đến thu nhập cuối cùng.
Để giảm những rủi ro này, bạn có thể xem xét tối ưu hóa tham số ATR hoặc điều chỉnh chiều rộng của kênh để nó gần gũi hơn với xu hướng thực. Ngoài ra, bạn cũng có thể kết hợp các chỉ số khác để lọc thời gian ra thị trường.
Chính sách này có thể được tối ưu hóa theo các khía cạnh sau:
Tối ưu hóa tham số ATR. Các tham số khác nhau có thể được thử nghiệm để ATR phản ánh tốt hơn sự biến động thực tế.
Tối ưu hóa chiều rộng đường dẫn. Bạn có thể thử nghiệm các giá trị nhân khác nhau để xác định tham số tối ưu.
Thêm bộ lọc các chỉ số khác. Ví dụ, kết hợp với chỉ số MACD để xác định điểm mua và bán, có thể làm giảm một số giao dịch không hiệu lực.
Tối ưu hóa điểm dừng và điểm dừng. Kiểm tra ảnh hưởng của các tham số khác nhau đối với tỷ lệ lợi nhuận cuối cùng.
Xem xét tỷ lệ Sharpe hoặc tỷ lệ lợi nhuận là mục tiêu tối ưu hóa. Để đánh giá toàn diện hơn về chất lượng chiến lược.
Chiến lược này thực hiện theo dõi xu hướng tuyệt vời bằng cách thích ứng với các kênh leo lên và các nguyên tắc đột phá. Đồng thời, nó có logic dừng và dừng lỗ tương đối rõ ràng. Bằng cách tối ưu hóa một số tham số và quy tắc, chúng tôi hy vọng sẽ tăng cường hơn nữa khả năng theo dõi động của chiến lược, giúp nó có thể áp dụng cho môi trường thị trường rộng lớn hơn.
/*backtest
start: 2024-02-26 00:00:00
end: 2024-02-26 20:20:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend Strategy", overlay=true)
// Input parameters
atr_length = input.int(10, title="ATR Length")
multiplier = input.float(3.0, title="Multiplier")
target_points = input.int(100, title="Target Points")
stop_loss_points = input.int(50, title="Stop Loss Points")
// Calculate ATR and Supertrend
atr = ta.atr(atr_length)
upper_band = hlc3 + (multiplier * atr)
lower_band = hlc3 - (multiplier * atr)
is_uptrend = close > lower_band
is_downtrend = close < upper_band
trend_changed = (is_uptrend[1] and is_downtrend) or (is_downtrend[1] and is_uptrend)
// Strategy logic
long_condition = is_uptrend and trend_changed
short_condition = is_downtrend and trend_changed
// Plot Supertrend
plot(is_uptrend ? lower_band : na, color=color.green, title="Supertrend Up", style=plot.style_linebr)
plot(is_downtrend ? upper_band : na, color=color.red, title="Supertrend Down", style=plot.style_linebr)
// Strategy entry and exit
if long_condition
strategy.entry("Long", strategy.long)
if short_condition
strategy.entry("Short", strategy.short)
// Calculate target and stop loss levels
long_target = strategy.position_avg_price + target_points
long_stop_loss = strategy.position_avg_price - stop_loss_points
short_target = strategy.position_avg_price - target_points
short_stop_loss = strategy.position_avg_price + stop_loss_points
// Strategy exit
strategy.exit("Long Exit", "Long", limit=long_target, stop=long_stop_loss)
strategy.exit("Short Exit", "Short", limit=short_target, stop=short_stop_loss)