Chiến lược chéo stochastic đa khung thời gian

Tác giả:ChaoZhang, Ngày: 2023-10-24 14:44:00
Tags:

img

Tổng quan

Chiến lược chéo stochastic đa khung thời gian là một chiến lược theo xu hướng điển hình. Nó tính toán các giá trị lệch chuẩn trên các khung thời gian khác nhau (ví dụ: hàng ngày, hàng tuần, hàng tháng vv), xây dựng nhiều đường K và D, lấy trung bình của các đường này để xây dựng đường trung bình động và đi dài khi đường nhanh vượt qua đường chậm và đi ngắn khi đường nhanh vượt qua đường chậm. Bằng cách kết hợp các đường lệch chuẩn trên nhiều khung thời gian, chiến lược này có thể lọc hiệu quả tiếng ồn thị trường và nắm bắt xu hướng chiếm ưu thế.

Chiến lược logic

Logic cốt lõi của chiến lược này là tính toán độ lệch chuẩn trên nhiều khung thời gian và sau đó lấy trung bình để tạo ra tín hiệu giao dịch.

Đầu tiên, chiến lược tính toán các giá trị K của độ lệch chuẩn theo các thông số khác nhau trên 5 nhóm, tương ứng với khung thời gian hàng ngày, hàng tuần và hàng tháng:

smoothK = input(55)
SMAsmoothK = input(13)  
k = sma(stoch(price, high, low, smoothK), SMAsmoothK)

smoothK1 = input(89) 
SMAsmoothK1 = input(8)
k1 = sma(stoch(price, high, low, smoothK1), SMAsmoothK1) 

...

smoothK4 = input(377)
SMAsmoothK4 = input(2)
k4 = sma(stoch(price, high, low, smoothK4), SMAsmoothK4)

Sau đó nó tính toán D đường thẳng với các thông số khác nhau tương ứng:

smoothD = input(34)
d = sma(k, smoothD)  

...

smoothD4 = input(233) 
d4 = sma(k4, smoothD4)

Tiếp theo, nó tính toán trung bình của các đường K và D để có được đường nhanh Kavg và đường chậm Davg:

Kavg = avg(k,k1,k2,k3,k4)
Davg = avg(d,d1,d2,d3,d4)

Cuối cùng, nó sẽ dài khi Kavg vượt qua trên Davg, và ngắn khi Kavg vượt qua dưới Davg:

long = crossover(Kavg, Davg)  
short = crossunder(Kavg, Davg)

Bằng cách kết hợp các đường lệch chuẩn trên nhiều khung thời gian, chiến lược này có thể lọc tiếng ồn thị trường trong các khung thời gian lớn hơn và nắm bắt hướng xu hướng chiếm ưu thế.

Ưu điểm

  • Sử dụng sức mạnh dự đoán của độ lệch chuẩn trên nhiều khung thời gian để lọc ra tiếng ồn và nắm bắt xu hướng
  • Tính linh hoạt để điều chỉnh thời gian giữ bằng cách điều chỉnh các thông số khung thời gian
  • Phân lệch chuẩn tự nó có xu hướng mạnh mẽ sau các đặc điểm
  • Chuyển trung bình chéo tránh bị lừa bởi một đơn giả mạo breakouts
  • Dễ dàng tối ưu hóa thời gian trung bình động để ổn định hơn

Rủi ro và giải pháp

  • Crossover trung bình động nhiều khung thời gian có thể tạo ra nhiều tín hiệu sai, tối ưu hóa thời gian trung bình động
  • Sai lệch chuẩn dễ mắc lỗi do chuyển động dễ bay hơi, xem xét thêm bộ lọc
  • Thời gian cố định không thể thích nghi với sự thay đổi của thị trường, áp dụng thời gian thích nghi
  • Khoảng thời gian nắm giữ dài rủi ro theo đuổi đỉnh và đáy, sử dụng dừng lại để khóa lợi nhuận
  • Sự phụ thuộc vào chỉ số KDJ là hạn chế, kết hợp với các chỉ số khác

Giải pháp:

  1. Thêm bộ lọc để tránh tín hiệu thoát sai

  2. Sử dụng các giai đoạn thích nghi dựa trên biến động thị trường

  3. Sử dụng trailing stop để thoát khỏi giao dịch kịp thời

  4. Tối ưu hóa thời gian trung bình động để cân bằng tốt nhất

  5. Bao gồm nhiều chỉ số hơn để cải thiện độ bền

Cơ hội gia tăng

Chiến lược này có thể được cải thiện hơn nữa trong các lĩnh vực sau:

  1. Kết hợp các tín hiệu chỉ số khác như MACD, Bollinger Bands để cải thiện chất lượng tín hiệu

  2. Thêm các bộ lọc xu hướng như hướng SMA, ADX để tránh giao dịch ngược xu hướng

  3. Sử dụng các giai đoạn thích nghi dựa trên biến động thị trường

  4. Thực hiện trailing stops dựa trên các tham số chiến lược để thoát khỏi giao dịch

  5. Tối ưu hóa thời gian trung bình di chuyển nhanh và chậm cho các thông số tốt nhất

  6. Thêm bộ lọc nhập để tránh tín hiệu sai từ tiếng ồn ngắn hạn

  7. Đăng nhập đột phá thử nghiệm sau khi vượt qua các đường trung bình động

  8. Đánh giá các chiến lược thoát khác nhau như Chandelier Exit để tối ưu hóa lối ra

Kết luận

Chiến lược giao thoa chứng khoán đa khung thời gian kết hợp khả năng theo xu hướng của chỉ số chứng khoán và sự ổn định của các chiến lược trung bình động. Bằng cách lấy trung bình của các đường lệch chuẩn K và D nhiều giai đoạn để tạo ra tín hiệu, nó sử dụng hiệu quả sức mạnh dự đoán của lệch chuẩn trên các khung thời gian khác nhau, lọc tiếng ồn thị trường và nắm bắt xu hướng chiếm ưu thế. Chiến lược này có chỗ cho điều chỉnh tham số và cải tiến thêm như bộ lọc, dừng, vv. Nhìn chung, nó tích hợp các điểm mạnh của nhiều công cụ phân tích kỹ thuật và là một chiến lược theo xu hướng hiệu quả đáng để khám phá và tối ưu hóa.


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="Slow Stochastic Multi K&D Average Crossover Strategy", overlay=false, pyramiding=0, calc_on_order_fills=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, currency="USD", default_qty_value=100)


price = input(close)

///////////////////////////////
smoothK = input(55) 

SMAsmoothK = input(13)
k = sma(stoch(price, high, low, smoothK), SMAsmoothK)



smoothD = input(34)
d = sma(k, smoothD)


///////////////////////////

smoothK1 = input(89) 

SMAsmoothK1 = input(8)
k1 = sma(stoch(price, high, low, smoothK1), SMAsmoothK1)

smoothD1 = input(55)
d1 = sma(k1, smoothD1)

//////////////////////////////////////

smoothK2 = input(144) 

SMAsmoothK2 = input(5)
k2 = sma(stoch(price, high, low, smoothK2), SMAsmoothK2)

smoothD2 = input(89)
d2 = sma(k2, smoothD2)

/////////////////////////////////////

smoothK3 = input(233) 

SMAsmoothK3 = input(3)
k3 = sma(stoch(price, high, low, smoothK3), SMAsmoothK3)

smoothD3 = input(144)
d3 = sma(k3, smoothD3)

////////////////////////////////////////////////

smoothK4 = input(377) 

SMAsmoothK4 = input(2)
k4 = sma(stoch(price, high, low, smoothK4), SMAsmoothK4)

smoothD4 = input(233)
d4 = sma(k4, smoothD4)

/////////////////////////////////////////////////

Kavg = avg(k,k1,k2,k3,k4, k4)
plot(Kavg, color=green)

Davg = avg(d,d1,d2,d3,d4, d4)
plot(Davg, color=red)


///////////////////////////////////////
hline(50, color=gray)


long = crossover(Kavg, Davg)// and d < 50
short = crossunder(Kavg, Davg)// and d > 50


last_long = long ? time : nz(last_long[1])
last_short = short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short) 
short_signal = crossover(last_short, last_long)



strategy.entry("Long", strategy.long, when=long_signal)
strategy.entry("Short", strategy.short, when=short_signal) 

//len1 = input(3)

//closelong = d[1] < k[len1]
//closeshort = d[1] > k[len1]

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



Thêm nữa