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


Ngày tạo: 2024-02-26 11:10:23 sửa đổi lần cuối: 2024-02-26 11:10:23
sao chép: 0 Số nhấp chuột: 516
1
tập trung vào
1617
Người theo dõi

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

Tổng quan

Chiến lược chỉ số đường trung bình di chuyển là một chiến lược giao dịch định lượng dựa trên xu hướng thị trường dựa trên đường trung bình di chuyển và thực hiện các hoạt động vị trí dài hoặc ngắn. Chiến lược này đánh giá thị trường có đang mua quá mức hay bán quá mức bằng cách tính toán giá trung bình của một chu kỳ nhất định để nắm bắt cơ hội biến đổi giá.

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

Chỉ số cốt lõi của chiến lược này là chỉ số di chuyển trung bình ngẫu nhiên (Stochastic Oscillator).

低点 = 最近N天的最低价中的最低值 
高点 = 最近N天的最高价中的最高值
K值 = (当前close - 低点)/(高点 - 低点)* 100

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

Khi giá trị K lớn hơn BuyBand, cho thấy giá cổ phiếu có thể mua quá mức, sẽ xảy ra điều chỉnh lại; khi giá trị K nhỏ hơn SellBand, cho thấy giá cổ phiếu có thể bán quá mức, sẽ xảy ra hồi phục.

Theo quy tắc này, chiến lược này sẽ bán và mở vị trí trong vùng mua quá mức và mua và mở vị trí trong vùng bán quá mức. Điều kiện đặt giá thấp là đường chỉ số quay trở lại khu vực giữa (((SellBand, BuyBand))

Phân tích lợi thế

Chiến lược này có những ưu điểm sau:

  1. Sử dụng chỉ số trung bình di chuyển để đánh giá xu hướng thị trường, hiệu quả đánh giá lại tốt hơn, dễ dàng tạo ra tín hiệu giao dịch
  2. Có thể thích ứng linh hoạt với các chu kỳ và giống khác nhau bằng cách điều chỉnh các tham số
  3. Chiến lược đơn giản, 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 có một số rủi ro:

  1. Đường trung bình di chuyển dễ bị chạm nhầm, có thể có tín hiệu mua quá mức bị đánh lừa
  2. Thiết lập tham số không đúng 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ần xem xét một chỉ số duy nhất, không gian tối ưu hóa có thể hạn chế

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

Hướng tối ưu hóa

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

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

Tóm tắt

Chiến lược chỉ số đường trung bình di chuyển có ý tưởng tổng thể đơn giản, được sử dụng rộng rãi, hiệu quả đo lường lại khá ổn định, phù hợp với một trong những chiến lược nhập cảnh cho giao dịch định lượng. Tuy nhiên, chiến lược này xem xét các yếu tố đơn lẻ, có thể tối ưu hóa không gian giới hạn, chỉ phù hợp cho hoạt động ngắn hạn. Trong tương lai có thể được nâng cấp thông qua các phương tiện như tập hợp đa chỉ số, học máy.

Mã nguồn chiến lược
/*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")