Chiến lược này đánh giá hướng xu hướng dựa trên mối quan hệ giữa tỷ lệ biến động và trung bình di chuyển của nó bằng cách tính toán các trung bình di chuyển của phạm vi biến động thực sự, phản ánh tỷ lệ biến động của thị trường. Nhìn cao khi tỷ lệ biến động vượt qua trung bình di chuyển, nhìn nhiều khi đi xuống, và thiết lập tracking stop loss.
Sử dụng hàm ATR để tính toán phạm vi biến động thực tế trong một chu kỳ nhất định. Sau đó, tính toán trung bình di chuyển đơn giản của ATR, làm trung bình di chuyển của tỷ lệ biến động. Khi ATR vượt qua trung bình di chuyển của nó, cho rằng tỷ lệ biến động của thị trường tăng lên, sử dụng chiến lược nhìn xa; Khi ATR vượt qua trung bình di chuyển của nó, cho rằng tỷ lệ biến động của thị trường giảm đi, sử dụng chiến lược nhìn xa.
Khi giữ vị trí, một vị trí dừng theo dõi tỷ lệ cố định sẽ được thiết lập, điều chỉnh động vị trí dừng theo biến động giá, bảo vệ lợi nhuận trong khi ngăn chặn lỗ hổng.
Chiến lược này đánh giá xu hướng thị trường thông qua chỉ số biến động, tránh bị lừa bởi tiếng ồn. Khi biến động tăng, hãy nhìn thấp, khi giảm, hãy nhìn nhiều, thực hiện hoạt động bảo hiểm. Theo dõi dừng có thể điều chỉnh vị trí dừng lỗ theo biến động giá trong thời gian thực, có thể giảm lỗ dừng không cần thiết trong khi bảo vệ lợi nhuận.
Chiến lược này chỉ dựa trên một chỉ số biến động, có một số chậm trễ. Và theo dõi dừng lỗ chỉ xem xét sự thay đổi của giá theo hướng bất lợi, không thể bảo vệ lợi nhuận quay trở lại. Khi giá dao động mạnh, đường dừng lỗ có thể bị phá vỡ, gây ra tổn thất lớn.
Các tham số chu kỳ của ATR và đường trung bình có thể được tối ưu hóa thích hợp, hoặc các chỉ số khác có thể được thêm vào để đưa ra phán đoán tổng hợp. Phương pháp dừng lỗ cũng có thể được thay đổi thành dừng động, điều chỉnh mức độ dừng lỗ theo mức độ biến động của thị trường.
Kiểm tra các kết hợp tham số khác nhau của ATR và chu kỳ trung bình để tìm tham số tối ưu.
Thêm các chỉ số đánh giá khác, tạo ra danh mục chiến lược, tăng độ chính xác của chiến lược.
Thiết lập chiến lược dừng lỗ động, điều chỉnh mức dừng lỗ theo mức độ biến động của thị trường.
Tối ưu hóa chiến lược quản lý vốn, các loại khác nhau có thể được thiết lập với kích thước vị trí khác nhau.
Ứng dụng công nghệ học máy, hỗ trợ đánh giá các điểm biến động của thị trường.
Kết hợp các chỉ số đường trung bình cấp cao để xác định xu hướng ở cấp độ lớn hơn.
Chiến lược này sử dụng chỉ số biến động để đánh giá xu hướng thị trường đơn giản và trực tiếp, nhưng dễ bị giới hạn chỉ bằng một chỉ số duy nhất. Việc đưa ra nhiều chỉ số đánh giá và tối ưu hóa tham số một cách thích hợp có thể giúp tăng sự ổn định của chiến lược. Nhìn chung, chiến lược này cung cấp một cách suy nghĩ để giao dịch dựa trên biến động của thị trường.
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 20/08/2018
// The Volatility function measures the market volatility by plotting a
// smoothed average of the True Range. It returns an average of the TrueRange
// over a specific number of bars, giving higher weight to the TrueRange of
// the most recent bar.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Volatility Backtest", shorttitle="Volatility")
Length = input(10, minval=1)
LengthMA = input(26, minval=1)
reverse = input(false, title="Trade reverse")
xATR = atr(Length)
nRes = ((Length - 1) * nz(nRes[1], 0) + xATR) / Length
xMARes = sma(nRes, LengthMA)
pos = iff(nRes < xMARes, 1,
iff(nRes > xMARes, -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=blue, title="Volatility")
plot(xMARes, color=red, title="MA")