Tài nguyên đang được tải lên... tải...

Chiến lược định lượng điểm số Z-Score Binomial lai

Tác giả:ChaoZhang, Ngày: 2024-05-28 17:38:08
Tags:SMABB

img

Tổng quan

Chiến lược này sử dụng phương pháp phân tích định lượng lai, kết hợp mô hình phân phối nhị phân và phân tích hồi quy, để xác định các chế độ thị trường khác nhau. Chiến lược đầu tiên tính toán chỉ số Đường trung bình di chuyển đơn giản (SMA) và Bollinger Bands (BB), sau đó tính điểm số Z dựa trên mức trung bình và độ lệch chuẩn của lợi nhuận lịch sử. Khi điểm số Z thấp hơn ngưỡng dưới và giá thấp hơn, chiến lược đi vào một vị trí dài; khi điểm số Z cao hơn ngưỡng trên và giá cao hơn băng trên, chiến lược đóng vị trí.

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

Nguyên tắc cốt lõi của chiến lược này là sử dụng điểm số Z để đo vị trí của lợi nhuận hiện tại tương đối với sự phân phối lợi nhuận lịch sử. Công thức tính toán điểm số Z là: (Tổng lợi nhuận hiện tại - Trung bình lợi nhuận lịch sử) / Phản lệch tiêu chuẩn lợi nhuận lịch sử. Điểm số Z cao hơn chỉ ra rằng lợi nhuận hiện tại cực đoan hơn và xác suất mua quá cao hơn; Điểm số Z thấp hơn chỉ ra rằng lợi nhuận hiện tại cực đoan hơn và xác suất bán quá cao hơn. Đồng thời, chiến lược cũng kết hợp chỉ số Bollinger Bands, sử dụng sự đột phá giá trên hoặc dưới cả hai băng như một xác nhận thứ cấp. Chiến lược chỉ tạo ra các tín hiệu giao dịch khi điểm số Z và các điều kiện tiếp cận Bollinger Band được đáp ứng đồng thời. Sự kết hợp này có thể làm giảm hiệu quả sự xuất hiện của các tín hiệu.

Ưu điểm chiến lược

  1. Phân tích định lượng: Chiến lược hoàn toàn dựa trên các chỉ số định lượng, với các quy tắc rõ ràng dễ thực hiện và kiểm tra hậu quả.
  2. Xác nhận kép: Chiến lược sử dụng cả chỉ số Z-score và Bollinger Bands, tạo thành một cơ chế lọc kép để cải thiện độ chính xác tín hiệu.
  3. Cơ sở thống kê: Điểm số Z bắt nguồn từ lý thuyết phân bố bình thường trong thống kê, với nền tảng lý thuyết vững chắc, và có thể đo lường khách quan mức độ cực của các lợi nhuận hiện tại.
  4. Tính linh hoạt của các thông số: Người dùng có thể điều chỉnh các thông số như thời gian SMA, nhân Bollinger Bands và ngưỡng điểm Z theo nhu cầu của họ, thích nghi linh hoạt với các thị trường khác nhau.

Rủi ro chiến lược

  1. Độ nhạy của tham số: Các cài đặt tham số khác nhau có thể dẫn đến sự khác biệt đáng kể trong hiệu suất chiến lược, đòi hỏi tối ưu hóa tham số và thử nghiệm ổn định rộng rãi.
  2. Rủi ro xu hướng: Khi thị trường thể hiện xu hướng mạnh, điểm số Z có thể ở lại các khu vực cực trong một thời gian dài, dẫn đến tín hiệu chiến lược hiếm khi hoặc hoàn toàn vắng mặt.
  3. Nguy cơ quá phù hợp: Nếu các thông số chiến lược được tối ưu hóa quá mức, nó có thể dẫn đến quá phù hợp và hiệu suất kém ngoài mẫu.
  4. Rủi ro Swan đen: Trong điều kiện thị trường cực đoan, các mô hình thống kê lịch sử có thể thất bại, khiến chiến lược bị rủi ro rút vốn đáng kể.

Hướng dẫn tối ưu hóa chiến lược

  1. Các thông số động: Xem xét điều chỉnh động các ngưỡng điểm Z và nhân Bollinger Bands dựa trên các chỉ số như biến động thị trường và sức mạnh xu hướng để cải thiện khả năng thích nghi.
  2. Bộ lọc xu hướng: Lắp chồng các chỉ số xác định xu hướng, chẳng hạn như giao thoa MA hoặc DMI, trên cơ chế hiện có để tránh các tín hiệu không hợp lệ quá mức trong thời gian xu hướng mạnh.
  3. Tối ưu hóa danh mục đầu tư: Kết hợp chiến lược này với các chiến lược định lượng khác (chẳng hạn như động lực, đảo ngược trung bình, vv) để tận dụng điểm mạnh tương ứng của họ và cải thiện độ bền.
  4. Dừng lỗ và lấy lợi nhuận: Đưa ra các cơ chế dừng lỗ và lấy lợi nhuận hợp lý để kiểm soát rủi ro cho mỗi giao dịch và cải thiện lợi nhuận điều chỉnh rủi ro.

Tóm lại

Chiến lược định lượng điểm số Z hai chữ cái lai là một chiến lược giao dịch định lượng dựa trên các nguyên tắc thống kê, xác định các cơ hội mua quá nhiều và bán quá nhiều tiềm năng bằng cách so sánh lợi nhuận hiện tại với sự phân phối lợi nhuận lịch sử. Ngoài ra, chiến lược sử dụng chỉ số Bollinger Bands để xác nhận thứ cấp, tăng độ tin cậy tín hiệu. Các quy tắc chiến lược rõ ràng và dễ thực hiện và tối ưu hóa, nhưng nó cũng phải đối mặt với những thách thức như độ nhạy của tham số, rủi ro xu hướng, rủi ro quá phù hợp, vv. Trong tương lai, chiến lược có thể được tối ưu hóa về các tham số năng động, lọc xu hướng, tối ưu hóa danh mục đầu tư, cơ chế dừng lỗ và lấy lợi nhuận, vv, để cải thiện khả năng thích nghi và độ bền của nó. Nhìn chung, chiến lược này cung cấp một cách tiếp cận đơn giản nhưng hiệu quả cho giao dịch định lượng, xứng đáng được khám phá và tinh chỉnh hơn nữa.


/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Estratégia Híbrida Quantitativa", overlay=true)

// Definição de parâmetros
sma_length = input.int(20, title="Período da SMA")
threshold_high = input.float(1.5, title="Threshold Alto")
threshold_low = input.float(-1.5, title="Threshold Baixo")
lookback_period = input.int(252, title="Período de Retorno Histórico (dias)")

// Funções auxiliares
f_sma(source, length) =>
    ta.sma(source, length)

f_bollinger_band(source, length, mult) =>
    basis = ta.sma(source, length)
    dev = mult * ta.stdev(source, length)
    [basis + dev, basis - dev]

// Cálculo dos indicadores
sma = f_sma(close, sma_length)
[upper_band, lower_band] = f_bollinger_band(close, sma_length, 2)

// Regime de Mercado: Binomial
retornos = ta.change(close, 1)
media_retornos = ta.sma(retornos, lookback_period)
desvio_padrao_retornos = ta.stdev(retornos, lookback_period)

// Indicador de Regime: Z-Score
z_score = (retornos - media_retornos) / desvio_padrao_retornos

// Sinal de Compra e Venda
sinal_compra = z_score < threshold_low and close < lower_band
sinal_venda = z_score > threshold_high and close > upper_band

// Execução de Ordem
if (sinal_compra)
    strategy.entry("Long", strategy.long)
if (sinal_venda)
    strategy.close("Long")

// Plotagem dos Indicadores
plot(sma, title="SMA", color=color.blue)
plot(upper_band, title="Upper Bollinger Band", color=color.red)
plot(lower_band, title="Lower Bollinger Band", color=color.green)
hline(threshold_high, "Threshold Alto", color=color.red, linestyle=hline.style_dashed)
hline(threshold_low, "Threshold Baixo", color=color.green, linestyle=hline.style_dashed)
plot(z_score, title="Z-Score", color=color.purple)


Có liên quan

Thêm nữa