Sử dụng cảnh báo dựa trên công thức trong AmiBroker
1. Giới thiệu
AmiBroker cho phép thiết lập cảnh báo dựa trên điều kiện công thức. Khi điều kiện được kích hoạt, hệ thống có thể:
- Hiển thị thông báo trong cửa sổ Alert Output.
- Phát âm thanh (bằng tệp WAV hoặc tiếng bíp).
- Gửi email đến địa chỉ được cấu hình.
- Khởi chạy ứng dụng ngoài hoặc mở liên kết web.
Tính năng này được quản lý thông qua hàm AlertIf(). Ngoài ra, người dùng có thể sử dụng Easy Alerts cho các cảnh báo đơn giản (không cần mã hóa).
Để xem cửa sổ cảnh báo, vào menu Window → Alert Output.
2. Cài đặt cảnh báo
Vào Tools → Preferences → Alerts để truy cập các thiết lập như:

- Cấu hình tài khoản email (hỗ trợ AUTH LOGIN, POP3-before-SMTP, CRAM-MD5, LOGIN PLAIN).
- Kiểm tra âm thanh đầu ra.
- Bật/tắt cảnh báo từ Automatic Analysis, Commentary/Interpretation, hoặc các chỉ báo tùy chỉnh.
AmiBroker 5.30 trở lên hỗ trợ SSL (hữu ích khi dùng Gmail). Để kích hoạt SSL:
- Tải và cài tiện ích SSL từ http://www.amibroker.com/bin/SSLAddOn.exe
- Bật SSL trong Preferences → Alerts
3. Cấu trúc hàm AlertIf
AlertIf( BOOLEAN_EXPRESSION, command, text, type = 0, flags = 1+2+4+8, lookback = 1 );

Thành phần:
- BOOLEAN_EXPRESSION: Biểu thức điều kiện. Nếu đúng (true), cảnh báo được kích hoạt.
- command: Hành động thực hiện:
- “”: chỉ hiển thị văn bản trong Alert Output
- SOUND path-to-WAV: phát tệp âm thanh WAV
- EMAIL: gửi email
- EXEC path-or-URL: chạy ứng dụng ngoài hoặc mở đường dẫn web
- text: Văn bản hiển thị hoặc gửi trong cảnh báo.
- type: Loại cảnh báo (0: mặc định, 1: Buy, 2: Sell, 3: Short, 4: Cover, >4: Other).
- flags: Tổng hợp các hành vi:
- 1: hiển thị văn bản
- 2: phát tiếng bíp
- 4: ngăn lặp cảnh báo cùng kiểu
- 8: ngăn lặp cảnh báo cùng thời điểm
- lookback: Số lượng thanh gần nhất để xét điều kiện cảnh báo
Ví dụ sử dụng:
Buy = Cross( MACD(), Signal() );
Sell = Cross( Signal(), MACD() );
Short = Sell;
Cover = Buy;
AlertIf( Buy, “EMAIL”, “Buy Signal on “+FullName(), 1 );
AlertIf( Sell, “SOUND C:\\Windows\\Media\\Ding.wav”, “Sell Alert”, 2 );
AlertIf( Short, “EXEC Calc.exe”, “Opening Calculator”, 3 );
AlertIf( Cover, “”, “Cover Signal”, 4 );
EXEC sử dụng ShellExecute, có thể chạy cả file .exe hoặc URL như http://…
4. Logic nội bộ của AlertIf
AlertIf sử dụng một máy trạng thái bên trong để tránh các cảnh báo lặp lại không cần thiết:
- Mỗi symbol sẽ lưu trạng thái cảnh báo cuối cùng theo type
- Chỉ cảnh báo mới khác loại hoặc thời gian mới được kích hoạt
Ghi chú nâng cao:
- Để cho phép cảnh báo lặp lại khi quét lại:
AlertIf( condition, “”, “Text”, 1, 1+2 );
- Để chỉ cảnh báo ở thanh hoàn thành (không phải thanh hiện tại):
barcomplete = BarIndex() < LastValue(BarIndex());
AlertIf( barcomplete AND condition, “”, “Text”, 1 );
- Nếu không cần logic trạng thái, dùng các hàm đơn giản hơn:
- SendEmail( subject, body )
- PlaySound( path-to-WAV )
- ShellExecute( path-or-URL )
5. Cửa sổ Alert Output
- Cho biết thời điểm cảnh báo, nội dung văn bản, và nguồn cảnh báo (từ Automatic Analysis, chỉ báo tùy chỉnh hay Commentary).
- Dễ dàng tra cứu và theo dõi nguồn tạo ra cảnh báo.
Tính năng cảnh báo trong AmiBroker giúp hệ thống giao dịch của bạn trở nên linh hoạt và chủ động hơn trong việc thông báo các điểm vào/ra lệnh, gửi thông tin hoặc kích hoạt các công cụ khác khi cần thiết.
&nbsNguồn: https://phaisinh.online/2025/09/18/su-dung-canh-bao-dua-tren-cong-thuc-trong-amibroker/