Hiểu Cách Thức Hoạt Động của AFL – Ngôn Ngữ Lập Trình trong AmiBroker
Amibroker
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.
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.



