Thứ Năm, 12/11/202612/11/2026

Hiểu Cách Thức Hoạt Động của AFL – Ngôn Ngữ Lập Trình trong AmiBroker

Hiểu Cách Thức Hoạt Động của AFL – Ngôn Ngữ Lập Trình trong AmiBroker
Hiểu Cách Thức Hoạt Động của AFL – Ngôn Ngữ Lập Trình trong AmiBroker
Mục lục
Mục lục

AFL (AmiBroker Formula Language)

là ngôn ngữ lập trình cốt lõi của AmiBroker – một phần mềm phân tích kỹ thuật được sử dụng rộng rãi bởi nhà đầu tư cá nhân và tổ chức. Để tận dụng tối đa sức mạnh của AmiBroker, nhà đầu tư cần hiểu rõ cách mà AFL xử lý dữ liệu và tạo ra tín hiệu giao dịch.

1. AFL là ngôn ngữ xử lý mảng

Khác với các ngôn ngữ lập trình tuần tự như C hay Python, AFL hoạt động theo mô hình
_
vectorized
_
– tức là
xử lý toàn bộ dữ liệu lịch sử dưới dạng mảng (array)
cùng một lúc.

Trong AmiBroker, mỗi loại dữ liệu như Open, High, Low, Close, Volume, Open Interest… đều được lưu thành
một mảng
, với mỗi phần tử tương ứng với một cây nến (bar) trong biểu đồ.

Ví dụ:

afl

Copy code

MyVar = (High + Low) / 2;

Câu lệnh trên không phải chỉ thực hiện tại 1 thời điểm, mà là
thực hiện đồng thời trên toàn bộ các thanh giá
, tạo thành một mảng mới.

2. Các hàm cơ bản trong AFL

Một số hàm thường gặp khi viết chiến lược:

  • MA(array, period)

    : Trung bình động đơn giản

  • Ref(array, shift)

    : Dịch mảng lên hoặc xuống

  • IIF(condition, truePart, falsePart)

    : Câu lệnh điều kiện trả về mảng

  • SelectedValue

    ,

    BeginValue

    ,

    EndValue

    ,

    LastValue

    : Trích xuất 1 giá trị cụ thể trong mảng

AFL cũng hỗ trợ các toán tử logic và số học như

AND

,

OR

,

>

,

<

,

,

-

,

*

,

/

… có thể áp dụng trực tiếp lên toàn mảng.

3. Tạo tín hiệu giao dịch: Ví dụ đơn giản

afl

Copy code

Cond1 = Close > MA(Close, 3);

Cond2 = Volume > Ref(Volume, -1);

Buy = Cond1 AND Cond2;

Sell = High > 1.30;

Giải thích:

  • Buy

    xảy ra khi giá đóng cửa lớn hơn trung bình động 3 ngày
    _
    và
    _
    khối lượng tăng so với ngày hôm trước.

  • Sell

    xảy ra khi giá cao nhất trong phiên vượt 1.30

4. Vòng lặp và logic nâng cao

Từ phiên bản 4.40, AmiBroker cho phép sử dụng vòng lặp

for

,

while

,

if…else

để xử lý tùy biến – thích hợp cho các chiến lược phức tạp như:

afl

Copy code

for(i = 1; i < BarCount; i++) {

Factor = 2 / (Period[i] + 1);

AMA[i] = Factor * Close[i] + (1 - Factor) * AMA[i - 1];

}

Tuy nhiên, với đa số chiến lược phổ biến,
xử lý mảng vẫn là cách tối ưu về tốc độ và đơn giản hóa code.

5. AMA – Adaptive Moving Average

Hàm

AMA(array, factor)

được sử dụng để tạo đường trung bình động hàm mũ điều chỉnh theo điều kiện thị trường (tức là hệ số làm mịn thay đổi). AMA là ví dụ điển hình cho cách AFL xử lý đệ quy.

Đây là một công cụ mạnh mẽ để phát triển chiến lược “đu bám xu hướng” nhưng hạn chế tín hiệu nhiễu trong giai đoạn sideway.

Kết luận

  • AFL không khó nếu bạn quen với tư duy mảng và hiểu cách nó thao tác dữ liệu như Excel.

  • Việc học và viết AFL giúp nhà đầu tư chủ động xây dựng hệ thống giao dịch, kiểm thử chiến lược, và tự động hóa quá trình đầu tư.

  • Nền tảng như
    phái sinh
    ,
    chứng khoán cơ sở
    , hay
    ETF
    đều có thể tận dụng AFL để tạo edge (lợi thế) phân tích.

Gợi ý cho nhà đầu tư mới:

Bạn có thể kết hợp AFL với
Ami X
– công cụ cung cấp dữ liệu thời gian thực miễn phí và hỗ trợ đẩy lệnh trực tiếp tới DNSE & Entrade.

Tải Ami X tại:

https://www.dnse.com.vn/san-pham/ami-x

Nguồn tài liệu gốc

: Cảm ơn Geoff Mulhall với bài viết nền tảng cho hướng dẫn này.

_
Biên soạn & Việt hóa bởi phaisinh.online | Fireant Blog | DNSE Learn
_

Thông tin trong bài chỉ mang tính tham khảo, không phải khuyến nghị mua bán. Giao dịch phái sinh có rủi ro cao do sử dụng đòn bẩy; nhà đầu tư tự chịu trách nhiệm với quyết định của mình.

Nguyễn Hà Anh

Biên tập viên mảng thị trường phái sinh, theo dõi VN30F1M và dòng tiền khối ngoại hằng ngày.

AMI X BY DNSE
100 CHIẾN THUẬTmiễn phí khi tải Ami X

Tự động đặt lệnh theo tín hiệu AmiBroker thẳng vào tài khoản chứng khoán.

* Phần mềm chạy trên máy tính Windows. Giao dịch tự động vẫn có rủi ro mất vốn.

Cộng đồng