Chiến lược chỉ số trung bình động

Tác giả:ChaoZhang, Ngày: 2024-02-26 11:10:23
Tags:

img

Tổng quan

Chiến lược chỉ số trung bình động là một chiến lược giao dịch định lượng đánh giá xu hướng thị trường dựa trên trung bình động và thực hiện các giao dịch vị trí dài hoặc ngắn. Bằng cách tính giá đóng cửa trung bình trong một khoảng thời gian, chiến lược này xác định liệu thị trường có bị mua quá mức hay bán quá mức để nắm bắt các cơ hội đảo ngược giá.

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

Chỉ số cốt lõi của chiến lược này là Stochastic Oscillator. Phương pháp tính toán là:

Low = the lowest low of the most recent N days  
High = the highest high of the most recent N days
K value = (Current close – Low)/(High – Low)*100

Trong đó N là độ dài Length. Chỉ số này đại khái phản ánh vị trí của giá đóng hiện tại so với phạm vi giá trong N ngày gần đây nhất.

Khi giá trị K lớn hơn đường mua quá mức (BuyBand), nó chỉ ra rằng cổ phiếu có thể bị mua quá mức và sẽ có sự gọi lại. Khi giá trị K thấp hơn đường bán quá mức (SellBand), nó chỉ ra rằng cổ phiếu có thể bị bán quá mức và sẽ có sự hồi phục.

Theo quy tắc phán đoán này, chiến lược sẽ bán để mở một vị trí trong khu vực mua quá mức và mua để mở một vị trí trong khu vực bán quá mức. Điều kiện đóng là đường chỉ số quay trở lại khu vực trung gian ((SellBand, BuyBand)).

Phân tích lợi thế

Chiến lược này có những lợi thế sau:

  1. Sử dụng các chỉ số trung bình động để xác định xu hướng thị trường, kết quả backtesting tốt, dễ hình thành tín hiệu giao dịch
  2. linh hoạt để thích nghi với các chu kỳ và giống khác nhau bằng cách điều chỉnh các thông số
  3. Ý tưởng chiến lược là đơn giản và rõ ràng, dễ hiểu và tối ưu hóa

Phân tích rủi ro

Chiến lược này cũng đặt ra một số rủi ro:

  1. Đường trung bình di chuyển có xu hướng chạm sai, có thể được "đánh bại"
  2. Cài đặt tham số không chính xác có thể dẫn đến giao dịch thường xuyên hoặc tín hiệu không rõ ràng
  3. Chỉ có một chỉ số được xem xét, không gian tối ưu hóa hạn chế

Những rủi ro này có thể được giảm bằng cách tối ưu hóa các tham số chỉ số hoặc thêm các điều kiện lọc.

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

Các khía cạnh chính mà chiến lược này có thể được tối ưu hóa bao gồm:

  1. Thêm khối lượng hoặc ATR và các chỉ số khác để đảm bảo tín hiệu giao dịch đáng tin cậy hơn
  2. Thêm chỉ số Stoch của nhiều chu kỳ, tạo tín hiệu thông qua các hoạt động tổng hợp
  3. Tăng các chỉ số đánh giá bổ sung như MACD và KDJ để đạt được tổng hợp nhiều chỉ số
  4. Đi qua và tối ưu hóa các loại giao dịch, chu kỳ, tham số để tìm cấu hình tối ưu

Kết luận

Ý tưởng tổng thể của chiến lược chỉ số trung bình động là đơn giản và được sử dụng rộng rãi với kết quả kiểm tra lại tương đối ổn định, làm cho nó phù hợp như một chiến lược giao dịch định lượng của người mới bắt đầu. Tuy nhiên, chiến lược này có không gian tối ưu hóa hạn chế vì nó xem xét các yếu tố hạn chế và chỉ phù hợp với các hoạt động ngắn hạn.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/09/2017
// Simple Overbought/Oversold indicator
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Overbought/Oversold", shorttitle="OB/OS")
Length = input(10, minval=1)
BuyBand = input(0.92, step = 0.01)
SellBand = input(0.5, step = 0.01)
reverse = input(false, title="Trade reverse")
hline(BuyBand, color=green, linestyle=line)
hline(SellBand, color=red, linestyle=line)
xOBOS = stoch(close, high, low, Length)
nRes = iff(close > close[Length], xOBOS / 100, (100 - xOBOS) / 100)
pos = iff(nRes < SellBand, -1,
	   iff(nRes > BuyBand, 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="OB/OS")

Thêm nữa