Giới thiệu về quá trình điểm trong tài chính
Introduction to Point Processes in Finance
Tổng quan về chuỗi bài học
Chào các bạn sinh viên, chào mừng đến với chuỗi bài học chuyên sâu về một trong những chủ đề hấp dẫn nhất của kinh tế lượng tài chính hiện đại: mô hình hóa dữ liệu tần suất cao. Trong thế giới tài chính, các giao dịch không xảy ra theo từng phút hay từng giờ một cách đều đặn. Thay vào đó, chúng đến theo từng cụm, lúc dồn dập, lúc lại thưa thớt. Khoảng thời gian giữa các giao dịch này, hay còn gọi là durations, chứa đựng những thông tin vô cùng quý giá về động lực của thị trường, thanh khoản và biến động. Tuy nhiên, các mô hình chuỗi thời gian truyền thống như ARMA hay GARCH, vốn được xây dựng cho dữ liệu có khoảng cách thời gian đều nhau, lại không thể xử lý hiệu quả loại dữ liệu đặc biệt này.
Đây chính là lúc Quá trình điểm (Point Processes) tỏa sáng. Thay vì nhìn thời gian như một chuỗi các điểm rời rạc cách đều, quá trình điểm coi các sự kiện (như một giao dịch, một thay đổi giá) là các điểm ngẫu nhiên trên một trục thời gian liên tục. Cách tiếp cận này cho phép chúng ta mô hình hóa trực tiếp sự bất thường trong thời gian, nắm bắt được hiện tượng “phân cụm sự kiện” (event clustering) – khi một giao dịch có khả năng cao sẽ kéo theo các giao dịch khác ngay sau đó. Trong chuỗi bài học này, chúng ta sẽ cùng nhau khám phá từ những khái niệm cơ bản nhất đến các mô hình ứng dụng phức tạp, giúp các bạn trang bị một bộ công cụ mạnh mẽ để phân tích thế giới thực của tài chính tần suất cao.
CẤU TRÚC CHUỖI BÀI HỌC
- Nền tảng lý thuyết về quá trình điểmXây dựng nền tảng lý thuyết vững chắc, từ các khái niệm cốt lõi như hàm cường độ, hàm bù đến các công cụ thống kê quan trọng.
- Mô hình khoảng thời gian động (ACD)Khám phá họ mô hình ACD phổ biến để nắm bắt sự phân cụm và động lực học của khoảng thời gian giữa các giao dịch tài chính.
- Mô hình cường độ động (Hawkes & ACI)Tìm hiểu các mô hình thời gian liên tục nâng cao, cho phép phân tích các sự kiện tài chính một cách linh hoạt và chính xác hơn.
- Thực hành phân tích với mô hình ACDVận dụng Stata để ước lượng và diễn giải mô hình ACD(1,1) qua một case study thực tế về khoảng thời gian giao dịch chứng khoán.
- Tổng hợp và so sánh các phương phápTổng kết kiến thức, so sánh các cách tiếp cận và định hướng các chủ đề nghiên cứu nâng cao trong lĩnh vực tài chính tần suất cao.
MỤC TIÊU HỌC TẬP
Sau khi hoàn thành chuỗi bài học này, bạn sẽ có thể:
- Hiểu được tại sao dữ liệu tài chính tần suất cao đòi hỏi các phương pháp mô hình hóa đặc biệt.
- Phân biệt được sự khác nhau giữa các cách tiếp cận dựa trên khoảng thời gian (duration-based) và cường độ (intensity-based).
- Nắm vững lý thuyết và cơ chế hoạt động của mô hình Autoregressive Conditional Duration (ACD).
- Vận dụng thành thạo phần mềm Stata để ước lượng mô hình ACD cho dữ liệu thực tế.
- Diễn giải một cách có ý nghĩa các kết quả từ mô hình và rút ra các kết luận kinh tế phù hợp.
TÀI LIỆU THAM KHẢO
- Bauwens, L., & Hautsch, N. (2009). Modelling Financial High Frequency Data Using Point Processes. In Handbook of Financial Time Series. Springer. (Tài liệu gốc của chuỗi bài học).
- Engle, R. F., & Russell, J. R. (1998). Autoregressive conditional duration: A new model for irregularly spaced transaction data. Econometrica, 66(5), 1127-1162. (Bài báo kinh điển khai sinh ra mô hình ACD).
- Wooldridge, J. M. (2019). Introductory Econometrics: A Modern Approach. Cengage learning. (Sách giáo khoa nền tảng về kinh tế lượng).
PHỤ LỤC: Dữ liệu mô phỏng cho chuỗi bài học
Để giúp các bạn thực hành, tôi đã chuẩn bị một đoạn code Stata để tạo ra bộ dữ liệu mô phỏng về thời gian giao dịch của một cổ phiếu trong một ngày. Dữ liệu này được thiết kế để có đặc tính “phân cụm” (clustering) – có những lúc giao dịch rất sôi động và có những lúc thị trường yên ắng – rất phù hợp để ứng dụng mô hình ACD.
Mô tả dữ liệu:
trade_time: Thời điểm diễn ra giao dịch, tính bằng giây từ lúc mở cửa (9:00 AM = 0).duration: Khoảng thời gian (tính bằng giây) giữa giao dịch hiện tại và giao dịch trước đó. Đây là biến phụ thuộc chính của chúng ta.
Các bạn có thể chạy đoạn code dưới đây trong Stata để tự tạo dữ liệu và lưu lại dưới dạng file trade_durations.dta để sử dụng cho bài thực hành.
* ==================================================
* MỤC ĐÍCH: Tạo dữ liệu mô phỏng cho chuỗi bài học
* ĐẶC TÍNH: Dữ liệu có tính phân cụm biến động
* TÁC GIẢ: Giáo sư Kinh tế lượng
* ==================================================
clear all
set obs 1000
set seed 123
* Bước 1: Tạo một quá trình GARCH(1,1) để mô phỏng cường độ (nghịch đảo của duration)
* Cường độ cao -> duration thấp (giao dịch dồn dập)
* Cường độ thấp -> duration cao (giao dịch thưa thớt)
gen double h = 1
gen double epsilon = rnormal()
gen double u = epsilon * sqrt(h)
* Giả định các tham số GARCH cho thấy sự bền bỉ cao
scalar omega = 0.1
scalar alpha = 0.1
scalar beta = 0.85
* Vòng lặp tạo chuỗi phương sai có điều kiện (cường độ)
forvalues i = 2/1000 {
replace h = omega + alpha * u[_n-1]^2 + beta * h[_n-1] in `i'
replace u = rnormal() * sqrt(h) in `i'
}
* Bước 2: Tạo duration từ nghịch đảo của cường độ
* Thêm nhiễu phân phối mũ để đảm bảo duration > 0
gen double duration = (1/h) * rexponential(1)
* Bước 3: Tạo biến thời gian giao dịch tích lũy
gen double trade_time = sum(duration)
* Bước 4: Dọn dẹp và mô tả dữ liệu
keep trade_time duration
describe
summarize duration
* Gợi ý: Vẽ biểu đồ để xem tính phân cụm
tsset trade_time
line duration trade_time, title("Khoảng thời gian giữa các giao dịch")
* Lưu dữ liệu để thực hành
save "trade_durations.dta", replace
export delimited using "trade_durations.csv", replace
📚 Bài tiếp theo: Nền tảng lý thuyết về quá trình điểm
💡 Lưu ý: Hãy đảm bảo đã nắm vững các khái niệm chính trong bài này trước khi tiếp tục.
🎯 Self-check: Bạn có thể giải thích cho một người bạn tại sao mô hình GARCH không phù hợp với dữ liệu giao dịch chứng khoán không?