Xây dựng hàm và thực hiện tính toán

Một phần của tài liệu Nghiên cứu ứng dụng kỹ thuật học máy để dự đoán chứng khoán bằng ngôn ngữ R (Trang 33)

Trong phần này, chúng ta sẽ trình bày một số xử lý cần thiết phục vụ cho việc xây dựng mô hình dự báo biến động giá của S&P500 trong tương lai ở một thời điểm cụ thể dựa trên dữ liệu giao dịch đã có trong quá khứ. Qua đó giúp nhà đầu tư có được các tín hiệu trợ giúp ra quyết định mua vào, bán ra, hay giữ lại phù hợp.

Trước hết ta thực hiện tính toán tỷ lệ biến đổi giá p% (mức cáo hơn hay thấp hơn so với giá hiện hành). Giá trung bình hàng ngày tính theo công thức (4.1) bên dưới.

= (4.1)

Trong đó Ci, Hi và Li lần lượt là giá đóng cửa (Close), giá cao nhất (High), và giá thấp nhất (Low) cho ngày thứ i.

Gọi Vi là tỷ lệ biến đổi giá trung bình so với giá đóng cửa ngày thứ i của k

ngày:

=

(4.2)

Gọi T là biến chỉ báo có giá trị là tổng các biến đổi trên só với tỷ lệ biến đổi biên p%.

= ∑ { ∈ : > % ∨ < − %} (4.3)

Giá trị T là tín hiệu trong khoảng k ngày. Giá trị dương của T tương ứng với một số ngày có biến động giá lớn hơn giá đóng cửa. Trong tình huống đó là tín hiệu tốt để mua vào (giá sẽ biến đổi tăng trong tương lai). Trường hợp ngược lại, T âm là tín hiệu tốt cho việc bán ra (giá sẽ có xu hướng giảm). Trường hợp có biến động nhỏ

xung quanh 0 tín hiệu cho thấy giá sẽ giữ ổn định, khi đó nên giữ, không bán ra hay mua vào.

Hàm dưới đây được lập trong R sẽ biểu diễn cài đặt của các công thức trên:

> Technicals <- function(stocks,p=0.0025,day=7) { + v <- apply(HLC(stocks),1,mean)

+ r <- matrix(NA,ncol=day,nrow=NROW(stocks)) + for(x in 1:day) r[,x] <- Next(Delt(v,k=x),x)

+ x <- apply(r,1,function(x) sum(x[x > p | x < -p])) + if (is.xts(stocks)) xts(x,time(stocks)) else x + }

Hàm Technicals được xây dựng ở trên sử dụng hàm HLC() có sẵn để lấy ra thành phần giá cao nhất (High), thấp nhất (Low) và giá đóng cửa trong ngày (Close). Hàm Next() cho phép mỗi lần chuyển một giá trị kế tiếp trong chuỗi dữ liệu thời gian xử lý. Hàm Delt() dùng để tính toán tỷ lệ phần trăm biến đổi theo hàm log của chuỗi giá. Cuối cùng hàm thực hiện tính tổng và trả về giá trị tuyệt đối vượt ngoài biên p. Trong nghiên cứu này, chúng tôi dựa vào lịch sử giao dịch của 7 ngày trước đó để dự đoán xu hướng cho ngày tiếp theo, với giá trị biên p= 0.0025.

Một phần của tài liệu Nghiên cứu ứng dụng kỹ thuật học máy để dự đoán chứng khoán bằng ngôn ngữ R (Trang 33)