CẢI THIỆN CHIẾN LƯỢC CỦA BẠN VỚI CHỨC NĂNG XẾP HẠNG (Ranking) TRONG AMIBROKER

Chủ đề trong 'Thị trường chứng khoán' bởi AmiX, 19/09/2025.

131 người đang online, trong đó có 52 thành viên. 01:44 (UTC+07:00) Bangkok, Hanoi, Jakarta
  1. 1 người đang xem box này (Thành viên: 0, Khách: 1)
Chủ đề này đã có 396 lượt đọc và 0 bài trả lời
  1. AmiX

    AmiX Thành viên rất tích cực

    Tham gia ngày:
    17/01/2025
    Đã được thích:
    41
    [​IMG]
    ✅ 1. Xếp hạng là gì và tại sao hữu ích?
    Xếp hạng
    là một phép so sánh giữa các mục (cổ phiếu, hợp đồng, tín hiệu…), theo ba trạng thái:
    cao hơn – thấp hơn – bằng
    .
    Cách đơn giản nhất để xếp hạng là gán điểm (ví dụ: mức tăng/giảm giá sau 100 phiên) rồi sắp xếp:
    Giá cao → xếp hạng cao
    Giá thấp → xếp hạng thấp
    Ứng dụng thực tế
    : bạn có thể nhanh chóng chọn ra top cổ phiếu tăng nóng hoặc phát hiện nhóm kém tiềm năng bằng cách xếp hạng thông minh!
    2. 3 dạng xếp hạng mạnh mẽ trong AmiBroker
    2.1 PositionScore (Xếp hạng tín hiệu BUY/SELL)
    Khi hệ thống giao dịch tạo nhiều tín hiệu
    mua/bán khống
    vượt quá giới hạn vị thế, AmiBroker sẽ ưu tiên thực hiện lệnh bằng
    PositionScore
    .
    Cách hoạt động
    :
    Trong AFL, gán
    PositionScore = <điểm ưu tiên>
    AmiBroker sẽ tự động xếp hạng và chọn tín hiệu tốt nhất theo giá trị tuyệt đối
    Ứng dụng
    : cực kỳ hiệu quả khi backtest danh mục đầu tư, tối ưu hóa vốn sử dụng, hoặc khi hệ thống đưa ra quá nhiều tín hiệu cùng lúc.
    2.2 Xếp hạng trong bảng Exploration
    Dùng khi bạn muốn tạo report dạng danh sách và hiển thị thứ hạng trực tiếp bằng bảng.
    Cách làm
    :
    afl
    CopyEdit
    Filter = 1;
    AddColumn(Close, “Close”);
    AddColumn(Volume, “Volume”);
    SetSortColumns(-4); AddRankColumn(); // xếp hạng theo cột thứ 4 giảm dần
    SetSortColumns(-3); AddRankColumn(); // xếp hạng theo cột thứ 3 tăng dần
    Kết quả
    :
    Xuất ra bảng có thêm cột
    Rank
    , giúp bạn dễ dàng lọc ra top/bottom mong muốn
    2.3 Xếp hạng theo mã (Symbol Ranking) – mục đích chung
    Dành cho người dùng nâng cao cần tạo điểm và xếp hạng ngoài PositionScore.
    Sử dụng biến tĩnh (
    StaticVar
    ) và hàm
    StaticVarGenerateRanks
    :
    Tạo biến static lưu điểm của từng mã
    Chạy
    StaticVarGenerateRanks
    để tạo thứ hạng tương ứng
    Ví dụ đầy đủ
    :
    afl
    CopyEdit
    symlist = “AAPL,MSFT,GOOG,AMZN”;
    for(i=0; (sym = StrExtract(symlist,i)) != “”; i++){
    SetForeign(sym);
    score = ROC(C,10);
    RestorePriceArrays();
    StaticVarSet(“Score”+sym, score);
    }
    // Tạo thứ hạng toàn danh sách
    StaticVarGenerateRanks(“Rank”,”Score”,0,1224);
    // Lấy và hiển thị thứ hạng
    for(i=0; (sym=StrExtract(symlist,i)) != “”; i++){
    r = StaticVarGet(“RankScore”+sym);
    Plot(r, sym, colorCustom10+i);
    }
    Chế độ “top-N”
    : nếu bạn chỉ muốn danh sách top 3
    Chế độ “bottom-N”
    : nếu muốn bottom 3 mã yếu nhất
    ⚠️ 3. Lưu ý khi dùng
    StaticVarGenerateRanks
    Tốn tài nguyên
    : mất ~20 ms cho 15k bar – nên
    CHỈ chạy 1 lần/lần scan
    , không làm cho mỗi mã.
    Khuyến khích
    sử dụng khi:
    Cần xếp hạng
    nhiều mã cùng lúc
    Khó hoặc không thể dùng PositionScore để “chọn tín hiệu”
    Cách tối ưu hóa
    :
    Dùng
    if( Status(“stocknum”)==0 )
    để chạy thuật toán ranking chỉ đối với ký hiệu đầu tiên
    Loại bỏ biến static cũ bằng
    StaticVarRemove(“Score*”)
    trước mỗi lần ranking mới
    4. Kết hợp cả 3 công cụ để nâng cấp hệ thống
    Bạn có thể:
    Dùng
    PositionScore
    để
    quản lý tín hiệu ưu tiên
    trong backtest
    Sử dụng
    AddRankColumn
    trong bảng khám phá để
    hiển thị “top” mã theo điểm mạnh
    Dùng
    StaticVarGenerateRanks
    khi cần
    xếp hạng tùy biến
    , chẳng hạn:
    Dựa trên chỉ báo
    Kết hợp điểm kỹ thuật và cơ bản
    Kết hợp nhiều tiêu chí đa chiều
    ✅ Tổng kết – Thêm chiều sâu chiến lược với xếp hạng
    Công cụ
    Ứng dụng
    Điểm mạnh
    PositionScore
    Lọc tín hiệu BUY/SELL ưu tiên
    Tích hợp sẵn, siêu nhanh, ít tốn bộ nhớ
    AddRankColumn
    Xếp hạng trong bảng báo cáo
    Gọn nhẹ, trực quan
    StaticVarGenerateRanks
    Ranking toàn danh mục tùy chỉnh
    Linh hoạt, đa chiều – nhưng cần tối ưu
    Hướng dẫn áp dụng thực tế
    Mục tiêu rõ ràng
    :
    Chọn top cổ phiếu mạnh nhất? → dùng
    PositionScore
    + ranking
    Muốn khảo sát thị trường nhanh? → dùng
    AddRankColumn
    Cần ranking phức tạp (đa tiêu chí)? → dùng
    StaticVarGenerateRanks
    Hiệu suất phải đảm bảo
    :
    Dùng
    Status(“stocknum”)==0
    để tránh rank quá nhiều lần
    Xóa các biến static cũ trước khi xếp hạng mới
    Kết hợp xu hướng và xếp hạng
    :
    Ranking theo RSI, ROC, v.v.
    Dùng kết quả rank để tạo tín hiệu hoặc filter mã
    Kết luận
    Xếp hạng trong AmiBroker không chỉ là một tính năng – đó là
    vũ khí mạnh mẽ
    để tối ưu hóa hệ thống giao dịch theo cách linh hoạt, đa chiều và hiệu quả.

    Thử áp dụng Ranking ngay hôm nay
    – bạn sẽ bất ngờ về khả năng lựa chọn tín hiệu, lọc cổ phiếu và tối ưu hóa hệ thống!
    Nguồn: https://phaisinh.online/2025/09/19/...i-chuc-nang-xep-hang-ranking-trong-amibroker/
    sao_lai_the thích bài này.

Chia sẻ trang này