Bỏ qua

Mã AFL và trình soạn

Thẻ Mã AFL ở khung bên phải là trình soạn thảo mã AmiBroker Formula Language (AFL) — nơi Quant AI viết mã, và bạn cũng có thể tự viết, dán hoặc sửa mã.

Thẻ Mã AFL

Số Nút Tác dụng
1 Lưu Lưu mã thành một phiên bản trong Thư viện chiến lược (Ctrl+S)
2 Explore Chạy bộ lọc trên AmiBroker — xem Chạy Explore, Backtest, Tối ưu
3 Backtest Kiểm tra hiệu quả trên dữ liệu lịch sử
4 Tối ưu Quét các tham số khai báo bằng Optimize()
5 Đẩy sang AmiBroker Lưu công thức, mở Analysis, tạo watchlist — xem Đưa sang AmiBroker
6 v2 (hoặc Phiên bản) Danh sách các phiên bản đã lưu
7 So sánh Bật/tắt so sánh mã hiện tại với phiên bản đã lưu
8 Trạng thái kiểm tra Không có lỗi, hoặc N lỗi · N cảnh báo · N gợi ý — bấm để tới vấn đề đầu tiên
9 Trạng thái nháp Đã lưu nháp, Nháp đồng bộ, Bản nháp mới…

Viết mã

Trình soạn hỗ trợ:

  • Tô màu cú pháp AFL, gập/mở khối _SECTION_BEGIN … _SECTION_END.
  • Gợi ý tên hàm, biến dựng sẵn, biến trong công thức khi gõ (hoặc Ctrl+Space); gợi ý tham số khi gõ (.
  • Rê chuột lên tên hàm để xem mô tả, cú pháp và giá trị trả về.
  • Mẫu mã trong danh sách gợi ý: gõ explore (khung bộ lọc), backtest (khung backtest theo giả định thị trường VN), section, for, if, function rồi chọn.
  • Phím tắt quen thuộc của VS Code: Ctrl+F tìm, Ctrl+H thay thế, Ctrl+/ comment, Alt+Up / Alt+Down di chuyển dòng, Ctrl+Z / Ctrl+Y hoàn tác/làm lại.

Mã được lưu nháp tự động

Khi đang ở một hội thoại, mọi thay đổi trong editor được lưu nháp sau 1 giây — mở lại hội thoại là thấy mã. Lưu nháp không tạo phiên bản trong thư viện; muốn giữ lại một mốc, bấm Lưu.

Kiểm tra lỗi khi gõ

MetaKit kiểm tra mã ngay khi bạn ngừng gõ — không cần chạy thử trên AmiBroker mới biết lỗi:

Lỗi AFL được gạch chân

  • Chỗ lỗi được gạch chân (đỏ: lỗi, vàng: cảnh báo, xanh: gợi ý). Rê chuột lên để đọc thông báo.
  • 1 Thanh trạng thái cho biết số lỗi; bấm vào (hoặc nhấn F8 trong editor) để tới lỗi tiếp theo.
  • Nhiều lỗi có sửa nhanh: bấm biểu tượng bóng đèn (hoặc Ctrl+.) và chọn Sửa nhanh: … — ví dụ đổi SMA thành MA, đổi a ? b : c thành IIf(), đổi AddColumn thành AddTextColumn.

Danh sách toàn bộ lỗi/cảnh báo của mã hiện tại nằm ở thẻ Nhật ký › Chẩn đoán mã hiện tại; bấm một dòng để nhảy tới vị trí đó:

Chẩn đoán mã hiện tại

MetaKit kiểm tra những gì

Mã Kiểm tra
AFL000 Lỗi cú pháp: thiếu ;, ngoặc, chuỗi chưa đóng…
AFL001 Hàm không tồn tại (gợi ý tên đúng gần nhất)
AFL002 Hàm của ngôn ngữ khác (Pine Script, MetaStock…) không có trong AFL, ví dụ SMA → dùng MA
AFL003 Sai số lượng tham số
AFL004 Toán tử ? : — AFL không có; dùng IIf() hoặc if … else
AFL005 Gán giá trị cho biến chỉ đọc (ví dụ BarCount)
AFL006 Biến dùng trước khi gán giá trị
AFL007 Nhìn trước tương lai: Ref(x, +n), Zig, Peak, Trough… trong tín hiệu
AFL008 Điều kiện if/while/for là mảng — dùng IIf, LastValue() hoặc x[i]
AFL009 Thiếu thành phần theo mục đích: bộ lọc chưa có Filter, backtest chưa có Buy/Sell…
AFL010 AddColumn với chuỗi (phải dùng AddTextColumn) và ngược lại
AFL011 Hàm truy cập file, mạng, chương trình ngoài (fopen, ShellExecute…) — chỉ chạy khi tin tưởng mã
AFL012 Trường GetFnData không có trong dữ liệu FireAnt
AFL013 Đặt tên biến trùng tên hàm
AFL014 Vòng lặp vượt quá BarCount
AFL015 Chỉ số mảng âm
AFL016 Tên trường SetOption không hợp lệ (ví dụ SetOption("RoundLotSize", …) — hãy gán RoundLotSize = 100;)

Lưu và phiên bản

  1. Bấm Lưu (hoặc Ctrl+S). Lần đầu, MetaKit hỏi Tên chiến lược trong hộp thoại Lưu vào thư viện chiến lược — nhập tên rồi Lưu.
  2. Những lần sau, mỗi lần lưu tạo phiên bản mới (không hỏi lại). Mã không đổi thì không tạo phiên bản.
  3. Khi hội thoại gắn với một chiến lược đã lưu, mỗi lần Quant AI sửa mã cũng tạo một phiên bản (nguồn AI).

Bấm nút phiên bản (v2…) để xem lịch sử:

Danh sách phiên bản

Mỗi dòng cho biết số phiên bản, nguồn (AI, Bạn, Nhập file, AmiBroker), thời gian và ghi chú. Chọn một phiên bản để mở chế độ so sánh:

  • Xem khác biệt giữa phiên bản đó và mã hiện tại (song song hoặc một cột).
  • Khôi phục phiên bản này — đưa mã về phiên bản cũ. Nút Hoàn tác trên thanh công cụ xuất hiện ít giây để quay lại nếu bấm nhầm.
  • Đóng so sánh — quay lại trình soạn.

Dùng mã có sẵn

  • Dán mã AFL vào editor rồi hỏi Quant AI ("Giải thích code đang mở", "Sửa giúp lỗi dòng 12"…).
  • Đính kèm file .afl trong khung nhập — xem Trò chuyện với Quant AI.
  • Nhập file ở Thư viện chiến lược để lưu thẳng thành chiến lược, rồi Mở trong Studio.