Xây dựng hệ thống lọc cổ phiếu tiềm năng bằng SQL và phân tích kỹ thuật

Trong việc phân tích dữ liệu thị trường chứng khoán, việc sử dụng SQL để truy vấn và lọc các mã cổ phiếu dựa trên các tiêu chí kỹ thuật giúp nhà đầu tư tối ưu hóa thời gian và tăng độ chính xác trong quyết định giao dịch. Dưới đây là các phương pháp xây dựng hệ thống lọc cổ phiếu dựa trên các chỉ số về dòng tiền, động lực tăng trưởng và các chỉ báo kỹ thuật phổ biến.

1. Truy vấn lọc cổ phiếu có dòng tiền mạnh và tín hiệu kỹ thuật tích cực

Chiến lược này tập trung vào các cổ phiếu có chuỗi tăng trần (streak), dòng tiền lớn (DDE) và chỉ số RSI mạnh, đồng thời ưu tiên những mã khớp lệnh sớm trong phiên sáng.

SELECT TOP 1000 * 
FROM Market_Data_Daily 
WHERE Consecutive_Limit_Ups >= 1 
  AND Big_Order_Net_Volume > 0 
  AND Retail_Investor_Change < 0 
  AND RSI_Indicator > 80 
  AND Multi_Indicator_Convergence > 0 
  AND CAST(Last_Limit_Up_Time AS DATETIME) < CAST('09:33' AS DATETIME)
ORDER BY Consecutive_Limit_Ups DESC, CAST(Buy_Order_Volume AS FLOAT) DESC;

2. Lọc cổ phiếu theo thanh khoản và vốn hóa thấp

Để tìm kiếm các mã có độ nhạy cao, chúng ta kết hợp điều kiện về tổng giá trị giao dịch lớn nhất và dòng tiền lớn đổ vào, đi kèm với giới hạn về vốn hóa lưu hành.

SELECT * 
FROM (
    SELECT TOP 100 * 
    FROM Stock_Pool_Daily 
    ORDER BY Total_Transaction_Amount DESC
) AS High_Liquidity
WHERE Stock_Code IN (
    SELECT TOP 100 Stock_Code 
    FROM Stock_Pool_Daily 
    ORDER BY DDE_Big_Order_Amount DESC
) 
AND Floating_Market_Cap < 6000000000;

3. Giải thuật hội tụ đa chỉ báo kỹ thuật

Sử dụng sự kết hợp giữa các chỉ báo động lượng và xu hướng như KDJ, MACD, OBV và CCI để xác định điểm mua bùng nổ.

SELECT 
    Stock_Code, 
    Stock_Name, 
    Limit_Up_Gene, 
    Streak_Days, 
    Profit_Chips, 
    DDE_Net_Volume 
FROM Stock_Analysis_Table
WHERE (K_Val > D_Val AND J_Val > K_Val AND D_Val > 0) -- KDJ Golden Cross
  AND OBV > MA_OBV -- OBV Trend
  AND (MACD_Val > 0 AND DIF_Val > DEA_Val AND DEA_Val > 0) -- MACD Strong
  AND RSI_Indicator > 50
  AND CCI_Indicator > 100
  AND Current_Close > BBI_Price
  AND New_Low_5_Day > New_Low_60_Day
  AND Price_Increase_Rate > 0
ORDER BY DDE_Net_Volume DESC;

4. Chiến lược lọc cổ phiếu tăng trần sớm (Limit Up Strategy)

Lọc các cổ phiếu đạt trạng thái tăng trần trước 09:45 với khối lượng lệnh đặt mua (buy orders) lớn nhất để xác định dẫn dắt thị trường.

SELECT 
    Stock_Code, 
    Price_Change_Ratio, 
    Stock_Name, 
    Streak_Days, 
    Last_Limit_Up_Time, 
    Total_Amount, 
    Order_Pending_Amount
FROM Market_Data_Daily
WHERE Streak_Days >= 1
  AND Stock_Code IN (
      SELECT TOP 20 Stock_Code
      FROM Market_Data_Daily
      WHERE Streak_Days >= 1
        AND CAST(Last_Limit_Up_Time AS DATETIME) <= CAST('09:45' AS DATETIME)
      ORDER BY Last_Limit_Up_Time ASC
  )
  AND Stock_Code IN (
      SELECT TOP 100 Stock_Code
      FROM Market_Data_Daily
      ORDER BY CAST(Order_Pending_Amount AS FLOAT) DESC
  )
ORDER BY CAST(Order_Pending_Amount AS FLOAT) DESC;

5. Quản trị danh mục và mô hình giao dịch

Hệ thống giao dịch cần dựa trên sự phân loại rõ ràng giữa cổ phiếu theo chủ đề (Theme) và cổ phiếu theo xu hướng (Trend). Các yếu tố nhận diện bao gồm:

  • Tâm lý thị trường: Xác định các nhóm ngành nóng (AIGC, Huawei Concept, Năng lượng mới, v.v.).
  • Vị thế cổ phiếu: Phân loại cổ phiếu dẫn dắt (Leader), cổ phiếu trung quân (Main Force) và cổ phiếu đi theo (Follower).
  • Điểm bán: Thoát vị thế khi xuất hiện hiệu ứng thua lỗ trong ngành hoặc các mã dẫn dắt bắt đầu giảm sàn.
  • Quản lý tỷ trọng:
    • Thị trường yếu: 20% tỷ trọng hoặc đứng ngoài.
    • Thị trường đi ngang: 50% tỷ trọng.
    • Thị trường mạnh: 80% - 90% tỷ trọng.

6. Lọc cổ phiếu vượt đỉnh (Breakout)

Xác định các mã có giá hiện tại đạt mức cao nhất trong 5 phiên gần nhất đi kèm với chỉ số RSI cực mạnh.

SELECT TOP 100 
    Stock_Code, 
    Stock_Name, 
    Streak_Days, 
    Profit_Chips, 
    Order_Pending_Amount
FROM Stock_Analysis_Table
WHERE Streak_Days >= 1 
  AND Stock_Code IN (
      SELECT Stock_Code 
      FROM Price_History_Stats 
      WHERE Max_5H_Price = Current_Price 
        AND Technical_RSI > 90
  )
ORDER BY CAST(Order_Pending_Amount AS FLOAT) DESC;

Việc kết hợp chặt chẽ giữa các câu lệnh truy vấn dữ liệu và kỷ luật quản lý vốn sẽ giúp nhà đầu tư duy trì lợi thế cạnh tranh trên thị trường chứng khoán đầy biến động.

Thẻ: sql data-analysis FinTech Stock-Trading Technical-Analysis

Đăng vào ngày 10 tháng 7 lúc 13:53