Tính năng Nhập ASCII trong AmiBroker cho phép người dùng linh hoạt đưa dữ liệu từ nhiều nguồn bên ngoài vào phần mềm để phục vụ việc phân tích kỹ thuật. Bằng cách sử dụng tập lệnh định dạng (format), người dùng có thể cấu hình chi tiết cách mà dữ liệu văn bản được diễn giải và xử lý.
1. Cơ Chế Hoạt Động
Dữ liệu ASCII là các tệp văn bản (thường có đuôi .txt, .csv,…) chứa dữ liệu giá (giống như các file tải từ Yahoo Finance hoặc các nguồn dữ liệu thủ công). Tuy nhiên, do sự khác biệt giữa định dạng các tệp, AmiBroker không thể tự động hiểu hết tất cả – do đó cần người dùng chỉ dẫn bằng các lệnh $FORMAT, $SEPARATOR, $SKIPLINES, v.v.
Những lệnh này có thể:
- Nhúng trực tiếp vào tệp dữ liệu
- Hoặc lưu trong một tệp định dạng riêng (thường là default.format) trong thư mục Formats\ của AmiBroker
Nếu không có định nghĩa rõ ràng, AmiBroker sẽ áp dụng định dạng mặc định:
plaintext
Copy code
$FORMAT DATE_USA, OPEN, HIGH, LOW, CLOSE, VOLUME
$SEPARATOR
2. Tệp Định Dạng – Các Lệnh Quan Trọng
$FORMAT
Chỉ định thứ tự và loại dữ liệu trên mỗi dòng của tệp ASCII. Các trường phổ biến:
- TICKER, DATE_MDY, OPEN, HIGH, LOW, CLOSE, VOLUME
- SKIP (bỏ qua trường không cần)
- FULLNAME, SECTORNAME, INDUSTRYNAME, ICB, GICS, CURRENCY…
Ví dụ:
plaintext
Copy code
$FORMAT TICKER, DATE_INT, CLOSE, VOLUME
$SEPARATOR
Xác định ký tự phân tách giữa các trường.
plaintext
Copy code
$SEPARATOR ,
$SKIPLINES
Chỉ định số dòng đầu tiên cần bỏ qua (thường là tiêu đề).
plaintext
Copy code
$SKIPLINES 1
$NAME hoặc $TICKER
Gán tên mã cho dữ liệu (nếu không có thì dùng tên tệp).
$AUTOADD và $OVERWRITE
- $AUTOADD 1: Tự động thêm mã mới
- $OVERWRITE 1: Ghi đè thông tin nếu mã đã tồn tại
$NOQUOTES
Cho biết đây không phải dữ liệu giá (ví dụ: cấu trúc ngành/ngành).
$DEBUG và $BREAKONERR
- $DEBUG 1: Ghi nhật ký lỗi vào import.log
- $BREAKONERR 1: Dừng ngay nếu có lỗi
3. Một Số Lệnh Đặc Biệt Khác
- $TIMESHIFT: Dịch thời gian nội dung
- $ALLOWNEG 1: Cho phép giá âm
- $ALLOW99SECONDS 1: Sửa lỗi dữ liệu giây > 59
- $ROUNDADJ: Làm tròn giá đã điều chỉnh
- $GICS, $ICB: Gán mã ngành chuẩn quốc tế
- $CLEANSECTORS, $SORTSECTORS: Dọn và sắp xếp lại ngành/ngành nghề
4. Ví Dụ Cụ Thể
4.1. Nhập CSV từ Yahoo Finance
csv
Copy code
Date,Open,High,Low,Close,Volume
01-02-00,104,105,100,100.25,2839600
Tệp định dạng:
plaintext
Copy code
$FORMAT Date_DMY,Open,High,Low,Close,Volume
$SKIPLINES 1
$SEPARATOR ,
$DEBUG 1
$AUTOADD 1
$BREAKONERR 1
4.2. Dữ liệu từ Metastock ASCII
csv
Copy code
AAP,D,1/17/2000,5483.33,5332.01,5362.3,0
Tệp định dạng:
plaintext
Copy code
$FORMAT Ticker,Skip,Date_MDY,High,Low,Close,Volume
$SKIPLINES 1
$SEPARATOR ,
$DEBUG 1
$AUTOADD 1
$BREAKONERR 1
4.3. Omega SuperCharts ASCII
csv
Copy code
AAP,20000117,5333.01,5483.33,5332.01,5362.3,3433450
Tệp định dạng:
plaintext
Copy code
$FORMAT Name,Date_Int,Open,High,Low,Close,Volume
$SEPARATOR ,
$DEBUG 1
$SKIPLINES 1
$AUTOADD 1
$BREAKONERR 1
4.4. Tệp DMBOS
csv
Copy code
0,29-02-00,12:05,WIG20,2300.3,,,+1.1,336002000,
Tệp định dạng:
plaintext
Copy code
$FORMAT Skip,Date_DMY,Skip,Name,Close,Skip,Skip,Skip,Turnover
$SEPARATOR ,
$DEBUG 1
4.5. Nhập Cấu Trúc Ngành/Lĩnh Vực
csv
Copy code
“DDD”, “3D Systems Corporation”, “Technology”, “Computer Software: Prepackaged Software”
Tệp định dạng:
plaintext
Copy code
$FORMAT Ticker, FullName, SectorName, IndustryName
$SEPARATOR ,
$AUTOADD 1
$NOQUOTES 1
$OVERWRITE 1
$CLEANSECTORS 1
$SORTSECTORS 1
5. Lưu Ý Khi Nhập Dữ Liệu
- Bạn có thể dùng –, / hoặc không có dấu cho ngày tháng (YYYYMMDD)
- Dữ liệu giá có thể dùng số thập phân hoặc phân số thực (ví dụ: 5 1/3)
- Dòng bắt đầu bằng *, #, ; là dòng chú thích
6. Kết Luận
Trình nhập ASCII trong AmiBroker là công cụ cực kỳ mạnh mẽ và linh hoạt cho người dùng muốn tích hợp dữ liệu giá, cấu trúc ngành nghề hoặc thông tin tài chính từ nguồn bên ngoài. Nắm vững cú pháp định dạng, biết cách kết hợp các lệnh $FORMAT, $SEPARATOR, $AUTOADD, $NOQUOTES… sẽ giúp bạn tiết kiệm thời gian và tối ưu quy trình phân tích kỹ thuật của mình.
Nếu bạn thường xuyên làm việc với dữ liệu tự thu thập hoặc từ bên thứ ba (như dữ liệu chứng khoán Việt Nam, dữ liệu hợp đồng tương lai…), việc làm chủ tính năng Nhập ASCII là điều bắt buộc.