❗ Lỗi 26: File handle không hợp lệ (null)
Nguyên nhân:
File handle truyền vào hàm là 0 (null), thường do mở file thất bại.
Ví dụ sai:
afl
Copy code
fh = fopen(“nonexistingfile.txt”, “r”); // file không tồn tại
fputs(“Test”, fh); // lỗi do fh là null
fclose(fh); // lỗi tiếp theo
Ví dụ đúng:
afl
Copy code
fh = fopen(“nonexistingfile.txt”, “r”);
if (fh)
{
fputs(“Test”, fh);
fclose(fh);
}
❗ Lỗi 27: Số lượng đối số không hợp lệ trong lệnh gọi DLL
Nguyên nhân:
Plugin gọi hàm nội bộ của AmiBroker với số lượng đối số sai.
❗ Lỗi 28: Hết bộ nhớ (Out of memory)
Nguyên nhân:
Bộ nhớ bị tràn khi phân tích công thức. Hiếm gặp.
❗ Lỗi 29: Biến sử dụng trước khi khởi tạo
Nguyên nhân:
Biến được đọc mà không gán giá trị trước đó.
Ví dụ sai:
afl
Copy code
x = 1;
z = x + y; // y chưa khởi tạo
Ví dụ đúng:
afl
Copy code
x = 1;
y = 2;
z = x + y;
❗ Lỗi 30: Lỗi cú pháp tổng quát
Nguyên nhân:
Sai cú pháp như thiếu dấu ngoặc, dấu chấm phẩy.
Ví dụ:
afl
Copy code
z = x * (7 + y ; // thiếu dấu ngoặc đóng
❗ Lỗi 31: Syntax Error, Expecting
Nguyên nhân:
Parser mong đợi token hợp lệ nhưng không nhận được.
Ví dụ:
afl
Copy code
while i < 5 // sai, thiếu dấu ngoặc
❗ Lỗi 32: Có thể thiếu dấu chấm phẩy dòng trước
Nguyên nhân:
Thiếu dấu ; ở cuối dòng hoặc ký tự không hợp lệ đầu dòng mới.
Ví dụ:
afl
Copy code
a = 5
b = 4; // lỗi ở đây
❗ Lỗi 33: Trình nhận dạng đã bị dùng cho hàm
Nguyên nhân:
Cố gán giá trị cho định danh đã dùng làm hàm.
Ví dụ sai:
afl
Copy code
function Test(x)
{
Test = 2 * x; // sai
}
Ví dụ đúng:
afl
Copy code
function Test(x)
{
return 2 * x;
}
❗ Lỗi 34: Định danh đã được dùng cho biến
Nguyên nhân:
Dùng tên hàm trùng với biến toàn cục.
Ví dụ:
afl
Copy code
Test = 5; // biến toàn cục
function Test(x) // sai
{
return 2 * x;
}
❗ Lỗi 35: Nhấn Shift + BREAK dừng vòng lặp
Nguyên nhân:
Người dùng thủ công dừng thực thi bằng tổ hợp phím.
❗ Lỗi 36: Đối số N chưa được gán giá trị
Nguyên nhân:
Gọi hàm từ plugin với đối số rỗng hoặc chưa khởi tạo.
❗ Lỗi 37: Trường không được hỗ trợ trong SetOption()
Ví dụ:
afl
Copy code
SetOption(“NoSuchOption”, 1); // sai
❗ Lỗi 38: Trường không được hỗ trợ trong GetOption()
Ví dụ:
afl
Copy code
x = GetOption(“NoSuchOption”); // sai
❗ Lỗi 39: CategoryAddSymbol – thiết lập ngành không hỗ trợ
Nguyên nhân:
Chỉ được gán biểu tượng vào nhóm ngành, không phải ngành.
Ví dụ sai:
afl
Copy code
CategoryAddSymbol(“”, categorySector, 2);
Ví dụ đúng:
afl
Copy code
CategoryAddSymbol(“”, categoryIndustry, 2);
❗ Lỗi 40: CategoryRemoveSymbol – không thể xóa khỏi ngành
Ví dụ sai:
afl
Copy code
CategoryRemoveSymbol(“”, categorySector, 2);
Ví dụ đúng:
afl
Copy code
CategoryRemoveSymbol(“”, categoryIndustry, 2);
❗ Lỗi 41: Trường không được hỗ trợ trong GetRTData()
Ví dụ sai:
afl
Copy code
GetRTData(“EPSRank”); // EPSRank không hợp lệ
❗ Lỗi 42: #include thất bại do không tìm thấy tệp
Nguyên nhân:
Đường dẫn sai hoặc file không tồn tại.
Ví dụ:
afl
Copy code
#include “not\\existing\\file.afl”
❗ Lỗi 43: Biến dừng động không hỗ trợ cho chế độ giao dịch xoay vòng
Ví dụ sai:
afl
Copy code
EnableRotationalTrading();
ApplyStop(stopTypeLoss, stopModePoint, H – L);
❗ Lỗi 44: SectorID ngoài phạm vi 0..63
Nguyên nhân:
Plugin trả về ID sai.
❗ Lỗi 45: Không thể khởi động giao diện giao dịch
Nguyên nhân:
Giao diện chưa được cài đặt đúng hoặc không tồn tại.
Ví dụ:
afl
Copy code
ti = GetTradingInterface(“DUMMY”);
❗ Lỗi 46: Thiếu dấu phẩy trong định nghĩa hàm
Ví dụ sai:
afl
Copy code
function MyFun(x y)
{
return x * y;
}
❗ Lỗi 47: Ngoại lệ hệ thống trong công thức AFL
Ví dụ:
afl
Copy code
fclose(123); // fh không hợp lệ
❗ Lỗi 48: Dữ liệu N-khối lượng lớn hơn khung thời gian gốc
Nguyên nhân:
Khối lượng thanh quá nhỏ gây tràn dữ liệu.
Ví dụ:
afl
Copy code
TimeFrameMode(2);
TimeFrameSet(20); // lỗi 48 có thể xảy ra
❗ Lỗi 49: Tên tham số tối ưu hóa bị để trống
Ví dụ sai:
afl
Copy code
period = Optimize(“”, 10, 10, 20, 1);
❗ Lỗi 50: Tham số tối ưu hóa sai quy tắc
Nguyên nhân:
Giá trị tối thiểu lớn hơn tối đa hoặc bước ≤ 0.
Ví dụ sai:
afl
Copy code
period = Optimize(“Period”, 20, 10, 10, 1); // min > max
period2 = Optimize(“Period2”, 1, 10, 20, 0); // bước = 0