Chiến lược này cho thấy điều gì sẽ xảy ra nếu bạn mù quáng theo dõi chỉ số Supertrend. Như chúng ta biết, Supertrend không xuất hiện ngay lập tức và chúng ta cần phải chờ đợi thanh tiếp theo để quyết định có nên nhập vị trí hay không. Vì vậy bạn có thể thấy điều gì sẽ xảy ra nếu bạn lấy vị trí sau khi Supertrend cuối cùng được hình thành. Chỉ số này cực kỳ nguy hiểm nếu không có các công cụ khác và có thể đưa ra những drawdown rất nghiêm trọng.
Chiến lược này sử dụng chỉ số Supertrend để xác định xu hướng giá.
Khi giá đóng trên đường ray trên, nó đại diện cho xu hướng tăng bền vững; khi giá đóng dưới đường ray dưới, nó đại diện cho xu hướng giảm bền vững.
Chiến lược này đặt ra hai thông số: Factor và Pd. Factor kiểm soát chiều rộng của kênh Supertrend, và Pd kiểm soát thời gian để tính ATR. Dựa trên hai thông số này, các đường ray trên và dưới có thể được xây dựng.
Công thức đường sắt trên: hl2 - (Đại tố * ATR(Pd)) Công thức đường sắt dưới: hl2 + (Factor * ATR(Pd))
Trong đó hl2 đại diện cho điểm trung bình của giá cao và giá thấp.
Sau đó so sánh giá đóng cửa hiện tại với các đường ray trên và dưới để xác định xem đó là xu hướng tăng hay giảm, và đầu ra một biến xu hướng Boolean.
Chụp các đường ray trên và dưới của Supertrend dựa trên xu hướng và đặt tín hiệu vào và ra khi tình trạng xu hướng thay đổi.
Đặt chiến lược logic đầu vào dựa trên các tín hiệu.
Chiến lược này có những lợi thế sau:
Sử dụng chỉ số Supertrend, có thể xác định rõ xu hướng giá và các điểm pivot.
Thiết lập logic vào và ra rõ ràng.
Hiển thị thời gian nhập bằng mũi tên.
Đơn giản và dễ hiểu về chiến lược logic.
Chiến lược này có những rủi ro sau:
Theo dõi Supertrend mù quáng mà không có các chỉ số phụ trợ khác và quản lý tiền có thể dẫn đến giảm lớn.
Không có thiết lập stop loss, không thể kiểm soát single loss.
Các tín hiệu có thể bị chậm trễ, không thể đi vào đúng thời gian xung quanh các điểm biến.
Cài đặt tham số không chính xác có thể khiến kênh Supertrend quá rộng hoặc quá hẹp.
Các biện pháp quản lý rủi ro:
Kết hợp với các chỉ số khác như MACD, KDJ để xác nhận hiệu quả, tránh đi mù.
Thiết lập stop loss hợp lý để tối đa hóa kiểm soát lỗ đơn.
Điều chỉnh các thông số để làm cho kênh Supertrend hợp lý, ngăn chặn quá rộng hoặc quá hẹp.
Chiến lược này có thể được tối ưu hóa trong các khía cạnh sau:
Thêm các chỉ số phụ để xác nhận hiệu quả để ngăn chặn thất bại. Ví dụ, chỉ số MACD có thể được xem xét.
Thiết lập logic stop loss hợp lý. Có thể thiết lập tỷ lệ stop loss dựa trên ATR.
Tối ưu hóa các tham số siêu Factor và Pd để tìm kết hợp tham số tốt nhất. Ví dụ, các phương pháp đi qua có thể được sử dụng để tìm các tham số tối ưu.
Tối ưu hóa thời gian đầu vào để tránh sự chậm trễ của tín hiệu. Ví dụ, các chỉ số động lực có thể được giới thiệu để điều chỉnh thời gian đầu vào dựa trên sức mạnh và điểm yếu.
Thêm các chiến lược kích thước vị trí. Ví dụ, kích thước vị trí phân số cố định có thể được áp dụng.
Chiến lược này sử dụng chỉ số Supertrend để xác định xu hướng giá và tìm điểm chuyển đổi. Theo dõi Supertrend mù quáng mà không có chỉ số phụ trợ và phương tiện dừng lỗ mang lại rủi ro lớn. Chúng tôi đề xuất cải tiến các khía cạnh như quản lý rủi ro, chiến lược dừng lỗ, tối ưu hóa tham số, thời gian nhập cảnh, vv, có thể cải thiện đáng kể sự ổn định và lợi nhuận của chiến lược.
/*backtest start: 2022-12-06 00:00:00 end: 2023-12-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Supertrend blind follow", overlay=true) Factor=input(3, minval=1,maxval = 100) Pd=input(7, minval=1,maxval = 100) Up=hl2-(Factor*atr(Pd)) Dn=hl2+(Factor*atr(Pd)) TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1) Tsl = Trend==1? TrendUp: TrendDown linecolor = Trend == 1 ? green : red plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend") plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0) plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0) //plot(Trend==1 and Trend[1]==-1,color = linecolor, style = circles, linewidth = 3,title="Trend") plotarrow(Trend == 1 and Trend[1] == -1 ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0) plotarrow(Trend == -1 and Trend[1] == 1 ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0) longCondition = cross(close,Tsl) and close>Tsl if (longCondition) strategy.entry("long", strategy.long) shortCondition = cross(Tsl,close) and close<Tsl if (shortCondition) strategy.entry("short", strategy.short)