Mô hình AI/ML

Mô hình AI để phân tích giá cổ phiếu trong lịch sử

Sử dụng các mô hình LLM với data của FiinQuant để hỗ trợ trong việc tìm ra các insight theo yêu cầu của người dùng

import requests
import google.generativeai as genai
import pandas as pd

from FiinQuantX import FiinSession
from bs4 import BeautifulSoup

GOOGLE_GEMINI_API_KEY = 'YOUR_GOOGLE_GEMINI_API_KEY'
genai.configure(api_key=GOOGLE_GEMINI_API_KEY)
model = genai.GenerativeModel("gemini-1.5-flash")

username = 'REPLACE_WITH_YOUR_USER_NAME'
password = 'REPLACE_WITH_YOUR_PASS_WORD'

client = FiinSession(
    username=username,
    password=password
).login()

VCB_data = client.Fetch_Trading_Data(
    tickers=['VCB'],
    fields=['close'],
    realtime=False,
    adjusted=True,
    by='1d', 
    from_date='2020-01-01',
    to_date='2025-01-29').get_data()

Output:

Mô Hình Machine Learning dự đoán giá cổ phiếu

Lấy dữ liệu cổ phiếu từ thư viện Fiinquant

1. Linear Regression

Linear Regression (Hồi quy tuyến tính)

  • Ý tưởng chính: Mô hình dự đoán giá cổ phiếu bằng cách tìm một đường thẳng phù hợp nhất với dữ liệu quá khứ. Công thức tổng quát: y=w0+w1x1+w2x2+...+wnxn+ϵy = w_0 + w_1 x_1 + w_2 x_2 + ... + w_n x_n + \epsilony=w0​+w1​x1​+w2​x2​+...+wn​xn​+ϵ với yyy là giá cổ phiếu, xix_ixi​ là các yếu tố ảnh hưởng như giá mở cửa, khối lượng giao dịch,...

  • Ưu điểm: Đơn giản, dễ hiểu, tính toán nhanh.

  • Nhược điểm: Giả định mối quan hệ tuyến tính giữa các biến, khó bắt được sự phi tuyến của giá cổ phiếu.

Chuẩn bị dữ liệu và chạy mô hình

Mô hình Linear Regression dự đoán so với giá thực tế

2. Random Forest/ XG Boost

  • Ý tưởng chính: Mô hình sử dụng nhiều cây quyết định (Decision Trees) để đưa ra dự đoán trung bình từ các cây đó, giúp giảm overfitting.

  • Ưu điểm:

    • Không yêu cầu dữ liệu phải có quan hệ tuyến tính.

    • Mạnh mẽ với dữ liệu có nhiều yếu tố tác động.

  • Nhược điểm:

    • Chậm hơn so với Linear Regression khi dữ liệu lớn.

    • Không tốt trong việc dự đoán chuỗi thời gian do không có khả năng ghi nhớ thông tin quá khứ.

Giá dự đoán so với giá thực tế

3. Long short-term memory network (LSTM)

  • Ý tưởng chính: Là một biến thể của mạng Recurrent Neural Network (RNN), giúp ghi nhớ thông tin trong thời gian dài nhờ cơ chế cổng kiểm soát.

  • Ứng dụng trong dự đoán giá cổ phiếu: Mô hình có thể học được xu hướng và các mẫu từ dữ liệu giá quá khứ để dự đoán giá tương lai.

  • Ưu điểm:

    • Tốt trong việc xử lý chuỗi thời gian.

    • Có thể học được xu hướng dài hạn.

  • Nhược điểm:

    • Yêu cầu dữ liệu lớn để đạt hiệu quả tốt.

    • Độ phức tạp tính toán cao, cần GPU để huấn luyện nhanh.

Mạng LSTM cần thêm features ngoài Open High Low Volume để học được tính chất giá của cổ phiếu

  • Tạo cột Label chính là giá 'Close' của ngày hôm trước

  • Tạo thêm feature

  • Chuẩn hoá dữ liệu

  • Model

.....

Last updated