Bi-directional Crossing Zero Axis Qstick Indicator Backtest Strategy (Hệ thống kiểm tra ngược)

Tác giả:ChaoZhang, Ngày: 2024-01-24 14:14:07
Tags:

img

Tổng quan

Chiến lược kiểm tra lại chỉ số Qstick là một chiến lược theo dõi xu hướng và tạo tín hiệu dựa trên chỉ số kỹ thuật Qstick được phát triển bởi Tushar Chande. Chiến lược này tính toán chênh lệch trung bình động giữa giá mở và đóng của một cổ phiếu để đánh giá áp lực mua và bán trên thị trường và tạo ra tín hiệu giao dịch khi chỉ số chênh lệch này vượt qua trục không.

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

Chỉ số cốt lõi của chiến lược Qstick trục không qua hai chiều là Qstick. Chỉ số Qstick được lấy bằng cách tính trung bình động của sự khác biệt giữa giá đóng và giá mở trong một khoảng thời gian nhất định. Khi Qstick lớn hơn 0, điều đó có nghĩa là giá đóng nói chung cao hơn giá mở trong khoảng thời gian này, và sức mạnh tăng chiếm ưu thế; khi Qstick nhỏ hơn 0, điều đó có nghĩa là giá mở nói chung cao hơn giá đóng trong khoảng thời gian này, và sức mạnh giảm chiếm ưu thế.

Các tín hiệu giao dịch của chiến lược này đến từ khi chỉ số Qstick vượt qua trục không. Một tín hiệu mua được tạo ra khi Qstick vượt qua trên không từ dưới, cho thấy áp lực mua bắt đầu vượt quá áp lực bán và một vị trí dài có thể được thiết lập; ngược lại, một tín hiệu bán được tạo ra khi Qstick vượt qua dưới không từ trên, cho thấy áp lực bán bắt đầu tăng và các vị trí hiện có nên được đóng. Ngoài ra, một trung bình động của các giá trị Qstick có thể được vẽ như một đường tín hiệu, và các tín hiệu giao dịch cũng có thể được tạo ra khi chỉ số Qstick vượt qua đường tín hiệu này.

Chiến lược này cho phép giao dịch đảo ngược. nghĩa là, khi một tín hiệu mua ban đầu được cho là được tạo ra, một hoạt động bán thực tế được thực hiện; khi một tín hiệu bán ban đầu được cho là được tạo ra, một hoạt động mua thực tế được thực hiện. Điều này có thể được sử dụng để đảo ngược theo dõi các nhà đầu tư chính thống trên thị trường.

Phân tích lợi thế

Chiến lược Qstick vượt qua trục không hai chiều có những ưu điểm sau:

  1. Sử dụng các chỉ số đơn giản và trực quan để xác định áp lực mua và bán thị trường, với việc tạo ra tín hiệu rõ ràng
  2. Sử dụng chỉ số chênh lệch trung bình động có thể lọc hiệu quả tiếng ồn thị trường
  3. Các đường tín hiệu có thể được vẽ để tránh các tín hiệu sai
  4. Hỗ trợ giao dịch đảo ngược, có thể được sử dụng để theo dõi các nhà đầu tư chính thống
  5. Các tham số có thể tùy chỉnh phù hợp với các cổ phiếu và môi trường thị trường khác nhau

Phân tích rủi ro

Chiến lược Qstick băng qua trục không hai chiều cũng có một số rủi ro:

  1. Chỉ số Qstick có một sự chậm trễ trong việc nhận ra các điểm chuyển đổi, có thể bỏ lỡ điểm đầu vào tốt nhất
  2. Các tín hiệu thường xuyên dẫn đến chi phí giao dịch tương đối cao
  3. Giao dịch đảo ngược có rủi ro cao hơn và cần được sử dụng thận trọng

Các phương pháp sau đây có thể được sử dụng để giảm rủi ro:

  1. Tối ưu hóa các thông số chu kỳ Qstick để giảm sự chậm trễ của chỉ báo
  2. Tăng các thông số chu kỳ đường tín hiệu để giảm tín hiệu sai
  3. Chỉ áp dụng giao dịch đảo ngược trong các giai đoạn cụ thể và kiểm soát kích thước vị trí

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

Chiến lược Qstick băng qua trục không hai chiều có thể được tối ưu hóa trong các khía cạnh sau:

  1. Kết hợp các chỉ số khác để lọc tín hiệu, chẳng hạn như chỉ số khối lượng, chỉ số biến động, vv, để tránh tạo ra các tín hiệu sai trong môi trường không có xu hướng
  2. Thêm các chiến lược dừng lỗ để dừng lỗ khi lỗ đạt đến một tỷ lệ phần trăm nhất định
  3. Nghiên cứu thêm để xác định sự kết hợp tối ưu của Qstick và các tham số chu kỳ đường tín hiệu
  4. Sử dụng các phương pháp học máy để tự động xác định các thông số tối ưu
  5. Kiểm tra hiệu quả của chiến lược này trong các ngành công nghiệp cụ thể hoặc các cổ phiếu riêng lẻ

Kết luận

Chiến lược Qstick vượt trục không hai chiều sử dụng các chỉ báo đơn giản để xác định những thay đổi trong áp lực mua và bán, và tạo ra các tín hiệu giao dịch khi chỉ báo Qstick vượt qua trục không, có thể nắm bắt hiệu quả xu hướng giá. Chiến lược này trực quan và dễ hiểu, phù hợp cho người mới bắt đầu, và cũng có thể được tối ưu hóa theo nhiều cách để đáp ứng nhu cầu của các nhà giao dịch tiên tiến. Tuy nhiên, chiến lược này cũng có một số khuyết điểm nhất định và cần được sử dụng cẩn thận. Nói chung, đây là một chiến lược theo dõi xu hướng và tạo tín hiệu rất thực tế.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/04/2018
// A technical indicator developed by Tushar Chande to numerically identify 
// trends in candlestick charting. It is calculated by taking an 'n' period 
// moving average of the difference between the open and closing prices. A 
// Qstick value greater than zero means that the majority of the last 'n' days 
// have been up, indicating that buying pressure has been increasing. 
//
// Transaction signals come from when the Qstick indicator crosses through the 
// zero line. Crossing above zero is used as the entry signal because it is indicating 
// that buying pressure is increasing, while sell signals come from the indicator 
// crossing down through zero. In addition, an 'n' period moving average of the Qstick 
// values can be drawn to act as a signal line. Transaction signals are then generated 
// when the Qstick value crosses through the trigger line.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Qstick Indicator Backtest")
Length = input(14, minval=1)
reverse = input(false, title="Trade reverse")
xR = close - open
xQstick = sma(xR, Length)
clr = iff(xQstick >= 0, green, red)
pos = iff(xQstick > 0, 1,
       iff(xQstick < 0, -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 ) 
p1 = plot(0, color=black, title="0")
p2 = plot(xQstick, color=blue, title="Qstick")
fill(p1, p2, color=clr)

Thêm nữa