Chiến lược Bressert Stochastic Smoothed hai lần

Tác giả:ChaoZhang, Ngày: 2024-02-05 15:57:37
Tags:

img

Tổng quan

Chiến lược Bressert Stochastic Dual Smooth được thiết kế bởi William Blau. Nó cố gắng kết hợp các phương pháp trung bình động với các nguyên tắc dao động.

Chiến lược này tạo ra tín hiệu giao dịch bằng cách tính toán một loạt các chỉ số chứng khoán trơn tru kép. Cụ thể, nó đầu tiên tính toán chỉ số chứng khoán trơn tru của giá cả, và sau đó áp dụng trung bình trơn tru cho chỉ số chứng khoán này một lần nữa để có được chỉ số chứng khoán trơn tru kép. Khi đường kích hoạt vượt qua chỉ số chứng khoán trơn tru kép, tín hiệu mua hoặc bán được tạo ra.

Nguyên tắc

  1. Tính toán chỉ số stochastic xPreCalc của giá PDS
  2. Áp dụng một EMAlen biểu thức trung bình di chuyển để xPreCalc để có được xDSS, tức là doual smoothed stochastic index
  3. Tính toán đường kích hoạt xTrigger, đó là một đường EMA khác của xDSS
  4. Tạo tín hiệu giao dịch:
    • Đi dài khi xTrigger dưới xDSS và dưới đường bán quá mức
    • Đi ngắn khi xTrigger là trên xDSS và trên đường mua quá mức
  5. Xác định đường cong của chỉ số stochastic xSS và đường kích hoạt xTrigger

Ưu điểm

Chiến lược kết hợp khả năng theo xu hướng của các đường trung bình động và khả năng xác định mua quá mức / bán quá mức của chỉ số stochastic.

  1. Đơn giản hóa hai lần lọc tín hiệu sai và cải thiện độ ổn định
  2. Đường kích hoạt tạo ra tín hiệu giao dịch và tránh giao dịch thường xuyên
  3. Các tham số có thể tùy chỉnh thích nghi với các điều kiện thị trường khác nhau
  4. Biểu đồ trực quan để dễ hiểu và xác nhận chiến lược

Rủi ro

Chiến lược Bressert Stochastic Smoothed đôi cũng có một số rủi ro:

  1. Nhiều tín hiệu sai của chỉ số Bressert trong thị trường biến động thấp
  2. Đơn giản hóa hai lần có thể gây ra sự chậm trễ tín hiệu, mất điểm chuyển đổi giá
  3. Cài đặt tham số không chính xác có thể không xác định biến động giá
  4. Rủi ro giao dịch vẫn tồn tại

Các biện pháp đối phó:

  1. Tối ưu hóa các tham số để cải thiện độ chính xác
  2. Các tín hiệu lọc với các chỉ số khác
  3. Sử dụng kích thước vị trí để phòng ngừa rủi ro

Tối ưu hóa

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

  1. Điều chỉnh các tham số chu kỳ của chỉ số làm mịn kép để tối ưu hóa hiệu ứng làm mịn
  2. Thêm các cơ chế dừng lỗ để kiểm soát lỗ đơn
  3. Thêm các chỉ số đánh giá xu hướng để tránh hoạt động ngược
  4. Sử dụng kích thước vị trí để tối đa hóa không gian lợi nhuận

Kết luận

Chiến lược Bressert Stochastic Lượt đôi kết hợp các lợi thế của các đường trung bình động và chỉ số stochastic để xác định các điểm mua quá mức / bán quá mức và theo xu hướng.


/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/04/2017
// Double Smoothed Stochastics (DSS) is designed by William Blaw. 
// It attempts to combine moving average methods with oscillator principles. 
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="DSS Bressert (Double Smoothed Stochastic)", shorttitle="DSS Bressert")
PDS = input(10, minval=1)
EMAlen = input(9, minval=1)
TriggerLen = input(5, minval=1)
Overbought = input(80, minval=1)
Oversold = input(20, minval=1)
reverse = input(false, title="Trade reverse")
hline(Overbought, color=green, linestyle=line)
hline(Oversold, color=red, linestyle=line)
xPreCalc = ema(stoch(close, high, low, PDS), EMAlen)
xDSS = ema(stoch(xPreCalc, xPreCalc, xPreCalc, PDS), EMAlen)
//xDSS = stoch(xPreCalc, xPreCalc, xPreCalc, PDS)
xTrigger = ema(xDSS, TriggerLen)
pos = iff(xTrigger < xDSS and xTrigger < Oversold, -1,
	     iff(xTrigger > xDSS and xTrigger > Overbought, 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(xDSS, color=blue, title="DSS")
plot(xTrigger, color=red, title="Trigger")

Thêm nữa