Chiến lược theo dõi xu hướng ngẫu nhiên chậm


Ngày tạo: 2023-12-28 17:50:36 sửa đổi lần cuối: 2023-12-28 17:50:36
sao chép: 0 Số nhấp chuột: 650
1
tập trung vào
1623
Người theo dõi

Chiến lược theo dõi xu hướng ngẫu nhiên chậm

Tổng quan

Chiến lược này dựa trên chiến lược theo dõi xu hướng của chỉ số ngẫu nhiên chậm. Nó sử dụng đường trung bình K dài để làm mịn các chỉ số ngẫu nhiên chậm, do đó lọc ra tiếng ồn thị trường và khóa xu hướng chính. Chiến lược này sử dụng đường mua quá mức của chỉ số ngẫu nhiên chậm để đánh giá thời gian vào và ra thị trường.

Nguyên tắc chiến lược

Chiến lược này đầu tiên tính một đường SMA K-value dài 400 chu kỳ, sau đó tính một đường SMA dài 275 chu kỳ để tiếp tục làm mịn đường K. Điều này làm cho đường K cuối cùng trở nên rất mịn, về cơ bản chỉ phản ánh chiều hướng xu hướng chính của thị trường. Chiến lược sử dụng giá trị K của chỉ số ngẫu nhiên siêu mịn này làm tín hiệu giao dịch.

Khi K-line đi qua vùng oversold 23 từ dưới lên, làm nhiều hơn; khi K-line đi qua vùng oversold 78.5 từ trên xuống, làm trống. Các tín hiệu trơn vị cho K-line đi qua các vùng oversold tương ứng một lần nữa. Như vậy, chiến lược sẽ có hiệu quả theo dõi xu hướng chính.

Phân tích lợi thế

Lợi thế lớn nhất của chiến lược này là sử dụng các chỉ số ngẫu nhiên chậm siêu mịn để khóa xu hướng thị trường chính, tránh bị phân tán bởi tiếng ồn thị trường. siêu mịn làm cho nó chỉ nhạy cảm với những thay đổi xu hướng lớn hơn, do đó lọc ra các biến động và biến động tần số cao.

Ngoài ra, chiến lược này có khả năng nắm bắt các điểm thay đổi xu hướng nhanh hơn so với các chiến lược trung bình di chuyển phổ biến và có cửa sổ lợi nhuận lớn hơn.

Phân tích rủi ro

Rủi ro chính của chiến lược này là thị trường có thể dao động lâu dài trong phạm vi mua bán quá mức, dẫn đến nhiều lần thua lỗ khi vào. Điều này cần điều chỉnh các tham số thích hợp để làm cho đường K mịn hơn hoặc mở rộng phạm vi mua bán quá mức.

Ngoài ra, nếu xu hướng đột biến, các đường K siêu mịn có thể trì hoãn nhận dạng tín hiệu, gây ra một phần lợi nhuận tiềm năng bị mất. Trong trường hợp này, cần phải rút ngắn tham số đường trung bình của đường K để làm cho nó nhạy cảm hơn.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Điều chỉnh chu kỳ làm mịn của giá trị K và giá trị D để tìm các tham số kết hợp tốt nhất

  2. Kiểm tra các đầu vào giá khác nhau, chẳng hạn như giá đóng cửa, giá điển hình.

  3. Tăng số lượng giao dịch hoặc kiểm soát vị trí, chẳng hạn như ATR dừng lỗ, kiểm soát tỷ lệ sử dụng tiền

  4. Thêm phán đoán phụ trợ cho các chỉ số như MACD để tránh sai lầm

  5. Sử dụng học máy để tối ưu hóa tham số

Tóm tắt

Chỉ số ngẫu nhiên chậm này theo dõi xu hướng chiến lược, thông qua xử lý siêu mịn để nắm bắt xu hướng chính của thị trường, tránh nhiễu giao dịch do tiếng ồn thị trường tần số cao. Đồng thời, có một số rủi ro của tín hiệu nhận dạng trễ. Chúng ta có thể tối ưu hóa chiến lược bằng cách điều chỉnh tham số hoặc thêm các điều kiện hỗ trợ để tăng sự ổn định và lợi nhuận của chiến lược.

Mã nguồn chiến lược
/*backtest
start: 2023-12-20 00:00:00
end: 2023-12-27 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Slow Stochastic OB/OS Strategy", overlay=false )

smoothK = input(400, step=5) 
price = input(ohlc4)
SMAsmoothK = input(275, step=5)
k = sma(stoch(price, high, low, smoothK), SMAsmoothK)
plot(k, color=white)


smoothD = input(10, step=2)
d = sma(k, smoothD)
plot(d, color=red)


OB = input(78.5, step=0.5)
OS = input(23, step=0.5)
hline(OB, linewidth=1, color=red)
hline(OS,linewidth=1, color=green)
hline(50,linewidth=1, color=gray)


long = crossover(d, OS)
short = crossunder(d, OB)

strategy.entry("Long", strategy.long, when=long) //_signal or long) //or closeshort_signal)
strategy.entry("Short", strategy.short, when=short) //_signal or short) // or closelong_signal)

//If you want to try to play with exits you can activate these!

closelong = crossover(d, OB)
closeshort = crossunder(d, OS)

strategy.close("Long", when=closelong)
strategy.close("Short", when=closeshort)