Chiến lược thoát giá Z-Score

Tác giả:ChaoZhang, Ngày: 2023-12-07 15:17:43
Tags:

img

Tổng quan

Chiến lược đột phá giá Z-Score sử dụng chỉ số giá z-score để xác định xem giá hiện tại có ở trạng thái bất thường hay không, để tạo ra tín hiệu giao dịch. Khi điểm z-score của giá cao hơn hoặc thấp hơn ngưỡng, điều đó có nghĩa là giá đã bước vào trạng thái bất thường, tại thời điểm đó có thể có các vị trí dài hoặc ngắn.

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

Chỉ số cốt lõi của chiến lược này là điểm số z của giá, được tính như sau:

Z_score = (C - SMA(n)) / StdDev(C,n)

Trong đó C là giá đóng cửa, SMA (n) là trung bình di chuyển đơn giản của n giai đoạn và StdDev (C,n) là độ lệch chuẩn của giá đóng cửa cho n giai đoạn.

Điểm số z phản ánh mức độ lệch của giá hiện tại so với giá trung bình. Khi điểm số z của giá lớn hơn một ngưỡng dương tính nhất định (ví dụ +2), nó có nghĩa là giá hiện tại cao hơn giá trung bình 2 độ lệch chuẩn, đó là một mức độ tương đối cao. Khi thấp hơn một ngưỡng âm nhất định (ví dụ -2), nó có nghĩa là giá hiện tại thấp hơn giá trung bình 2 độ lệch chuẩn, đó là một mức độ tương đối thấp.

Chiến lược này đầu tiên tính toán điểm số z của giá, sau đó thiết lập ngưỡng dương và âm (ví dụ 0 và 0). Khi điểm số z cao hơn ngưỡng dương, nó tạo ra tín hiệu mua. Khi thấp hơn ngưỡng âm, nó tạo ra tín hiệu bán.

Phân tích lợi thế

  • Sử dụng điểm số giá z để đánh giá sự bất thường về giá là một phương pháp định lượng phổ biến và hiệu quả
  • Dễ dàng đạt được cả giao dịch dài và ngắn
  • Cài đặt tham số linh hoạt, chu kỳ điều chỉnh, ngưỡng, vv.
  • Có thể kết hợp với các chỉ số khác để tạo thành một hệ thống giao dịch

Phân tích rủi ro

  • Chiến lược điểm số z là thô và dễ bị tín hiệu sai
  • Cần thiết lập các thông số thích hợp như chu kỳ và ngưỡng
  • Cần xem xét các chiến lược dừng lỗ để kiểm soát rủi ro

Hướng dẫn tối ưu hóa

  • Tối ưu hóa các tham số chu kỳ để tìm chu kỳ tốt nhất
  • Tối ưu hóa ngưỡng dương và âm để giảm tín hiệu sai
  • Thêm điều kiện bộ lọc, kết hợp với các chỉ số khác
  • Thêm các chiến lược dừng lỗ

Tóm lại

Chiến lược thoát giá z-score đánh giá giá liệu giá hiện tại có ở trạng thái bất thường hay không, và giao dịch theo điểm tích cực và âm của điểm số giá z. Chiến lược này đơn giản và dễ thực hiện, cho phép giao dịch hai chiều, nhưng cũng có một số rủi ro. Bằng cách tối ưu hóa các tham số, thêm stop loss và kết hợp với các chỉ số khác, chiến lược này có thể được nâng cao để tạo thành một hệ thống giao dịch định lượng hoàn chỉnh.


/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-04 19:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/01/2017
// The author of this indicator is Veronique Valcu. The z-score (z) for a data 
// item x measures the distance (in standard deviations StdDev) and direction 
// of the item from its mean (U):
//     z = (x-StdDev) / U
// A value of zero indicates that the data item x is equal to the mean U, while 
// positive or negative values show that the data item is above (x>U) or below 
// (x Values of +2 and -2 show that the data item is two standard deviations 
// above or below the chosen mean, respectively, and over 95.5% of all data 
// items are contained within these two horizontal references (see Figure 1).
// We substitute x with the closing price C, the mean U with simple moving 
// average (SMA) of n periods (n), and StdDev with the standard deviation of 
// closing prices for n periods, the above formula becomes:
//     Z_score = (C - SMA(n)) / StdDev(C,n)
// The z-score indicator is not new, but its use can be seen as a supplement to 
// Bollinger bands. It offers a simple way to assess the position of the price 
// vis-a-vis its resistance and support levels expressed by the Bollinger Bands. 
// In addition, crossings of z-score averages may signal the start or the end of 
// a tradable trend. Traders may take a step further and look for stronger signals 
// by identifying common crossing points of z-score, its average, and average of average. 
//
// 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="Z-Score Strategy", shorttitle="Z-Score Strategy")
Period = input(20, minval=1)
Trigger = input(0)
reverse = input(false, title="Trade reverse")
hline(Trigger, color=purple, linestyle=line)
xStdDev = stdev(close, Period)
xMA = sma(close, Period)
nRes = (close - xMA) / xStdDev
pos = iff(nRes > Trigger, 1,
	   iff(nRes < Trigger, -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="Z-Score")

Thêm nữa