Hỏi cách nạp data cho Ami trực tiếp!

wisebull

Well-Known Member
Trước giờ, mình toàn nạp data vào Ami bằng The Dowloader của Metastock, rất oki, tuy nhiên, hình như còn có cách dùng trực tiếp Ami cũng được, bác nào rành hướng dẫn dùm với, tks!
 
Trước giờ, mình toàn nạp data vào Ami bằng The Dowloader của Metastock, rất oki, tuy nhiên, hình như còn có cách dùng trực tiếp Ami cũng được, bác nào rành hướng dẫn dùm với, tks!
Nếu bác có file định dạng meta rồi thì chọn thế này :
File -> Import metastock data .
Còn có file định dạng khác như kiểu notepad thì làm như hướng dẫn mà bác táo thổ
 
Trước giờ, mình toàn nạp data vào Ami bằng The Dowloader của Metastock, rất oki, tuy nhiên, hình như còn có cách dùng trực tiếp Ami cũng được, bác nào rành hướng dẫn dùm với, tks!

Amibroker cung cấp nhiều cách Import data. Dù sử dụng cách Import data nào, thì việc đầu tiên cần thực hiện: Khai báo cấu hình Database.

1. Khai báo cấu hình DataBase: Việc khai báo cấu hình có thể thực hiện khi mới tạo Database hoặc sau khi đã có Database trên Ami rồi.

a. Tạo mới database: Chọn từ menu FIle: File/New/Database (xem hình).

DataBaseNew.png

Khi đó hộp thoại Database Settings sẽ xuất hiện (hình dưới):

DataBaseSetting.png

+ Nhấp vào nút Browse (xem số 1 trên hình) để chọn 1 folder trống (empty) sẽ chứa Data cho Ami. Sau khi chọn folder chứa data cho Ami. sẽ quay lại hộp thoại này. Tên folder và đường dẫn được hiển thị trong text box database folder (xem số 2 trên hình).

Bạn có thể gõ thẳng tên folder và đường dẫn vào text box database folder (số 2 trên hình). Lưu ý folder chứa data bắt buộc phải trống (empty - không chứa files hoặc filoders còn nào trong đó). Bạn có thể chọn folder ở bất kỳ chỗ nào (không nhất thiết trên ổ đĩa C: và cũng không nhất thiết trong folder chứa phần mềm Amibroker).

+ Nhấp vào nút Create (xem số 3 trên hình) để tạo mới database. Sau khi Create xong thì Combo box Data Source sẽ hiện rõ hơn. Chúng ta sẽ để nguyên trạng thái đang hiển thị: Local database và các thành phần khác trên hộp thoại.

Lưu ý: Mục (check box) Load this database at startup (xem số 4 trên hình) đang được chọn có nghĩa là database sẽ được chọn mặc định hiển thị khi khởi động Ami. Nếu bạn dùng nhiều database khác nhau và không muốn mặc định chọn mở database này thì không chọn check box này.

b. Khai báo cấu hình cho database đã có sẵn: Trong trường hợp đã tạo database, nhưng trước đây không Import trực tiếp data vào Amibroker. mà thông qua Metastock (dùng downloader), bây giờ muốn chuyển sang import data trực tiếp vào Amibroker: Cần thiết lập lại cấu hình cho database, bằng cách chọn trên menu File: File/Database Settings... (số 2 trên hình bên dưới).

MenuFile.png

Hộp thoại Database Settings hiện ra, nhưng nếu data đang được lấy từ Metastock qua thì ở phần Data Source không phải Local database mà là Metastock data Plug-in

DataBaseSetting (2).png

Bây giờ chỉ việc chọn lại là local database ( xem trên hình).


2. Import Data:

a. Dùng chức năng Import Wizard: Khi Import lần đầu, bắt buộc phải sử dụng chức năng Import Wizard.
+ Chọn từ menu File trong Amibroker: FIle/Import Wizard. Ở mục khoanh màu xanh và có đánh số 3 màu xanh trên hình:

MenuFile.png

Hộp thoại Select files to Import xuất hiện (xem hình bên dưới):

SelectFiles.png

Hình bên trên là kết quả sau khi đã chọn files để import. Tuy nhiên, để chọn files cần import, cần chọn nút Pick files (trong khung đỏ trên hình trên) để mở hộp thoại Open.

Trong hộp thoại Open, tìm đến folder chứa data đã lấy về từ 1 nguồn nào đó. (Lưu ý: data được download về, không phải folder chứa database đã khai báo, mà cũng không phải folder chứa data đã convert vào Metastock). Chọn các files data. Rồi chọn nút Open, để quay trở lại hộp thoại Select files to Import.

Bây giờ, trong hộp thoại đã có tên các files đã chọn (trong mục You have selected the following file(s) Nội dung trong khung màu xanh (trên hình) là file (hoặc 1 số files) đã được chọn.

+ Chọn Next (trong khung đỏ ở phía dưới trên hình trên) để chuyển sang hộp thoại Define Fields:

DefineFields.png

- Phần dưới cùng (trên hình) là mẫu nguồn dữ liệu (mục Data file sample) của 1 trong các files đã chọn ở phần trước. Cụ thể, ở đây là 4 dòng đầu của file Data Dieu Chinh FIT Quyen Mua CP 100% (GDKHQ 10.04.2015).txt (tôi vừa upload hôm nay). Mọi khai báo chúng ta sẽ dựa vào mẫu này.
<Ticker>,<DTYYYYMMDD>,<Open>,<High>,<Low>,<Close>,<Volume>
FIT,20130726,4.12,4.68,4.09,4.61,6700046
FIT,20130729,4.65,4.91,4.12,4.8,4637986
FIT,20130730,4.8,5.17,4.76,4.98,6811256

- Phần phía trên (trên hình) cùng là phần chọn nội dung cho các cột dữ liệu (gồm từ Column 1 đến Column 7). Nếu data có nhiều hơn 7 cột thì nhấp chuột vào check box More columns, Amibroker sẽ hiển thị thêm các cột ra. Đây là ưu điểm của Amibroker cung cấp database có nhiều fields hơn so với Metastock.

Cần phải khai báo các fields (các columns ở phần phía trên) cho phù hợp với thực tế cấu trúc của data source (các fields của data thực tế hiển thị ở phần bên dưới).

- Mục Separator: Khai báo ký tự phân cách giữa các cột. Ở đây (mặc định và hầu hết thường được dùng trong các file data dùng cho Amibroker) là "dấu phẩy".

- Trong mục Skip first ... lines (được khoanh đỏ trên hình): Khai báo số dòng đầu (trong file data) không phải là data, cần bỏ qua không import vào Amibroker. Trên hình (được khoanh đỏ bên dưới), ta thấy 1 dòng đầu (<Ticker>,<DTYYYYMMDD>,<Open>,<High>,<Low>,<Close>,<Volume>) được dùng để ghi tiêu đề, nên cần khai báo Skip first 1 lines.

Trong trường hợp data không có dòng tiêu đề (như data của chứng khoán Úc trên trang http://www.asxhistoricaldata.com/) chúng ta sẽ khai báo Skip first 0 lines

* Hình bên dưới đây cho thấy trường hợp data có nhiều hơn 7 cột và khi chọn More columns (được khoanh đỏ trên hình), có 5 cột mới (từ 8 đến 12) được hiển thị thêm.

DefineFields(2).png

Trong hình trên minh họa trường hợp cần import data cung cầu và giao dịch nước ngoài (CCNNRR). Sau khi chọn More columns 5 cột mới (từ column 8 đến column 12) được hiển thị thêm. Tuy nhiên, chúng ta chỉ cần thêm 1 cột dành cho trường (field) OpenInt, nên chỉ chọn thêm OpenInt cho column 8 (khoanh màu xanh trên hình - chọn trong danh sách xổ xuống bên dưới column 8), các columns còn lại (từ column 9 đến column 12) để yên không làm gì cả (do không có data trong file nguồn, nên không cần khai báo).

* Trường hợp data có thêm những cột thừa, thí dụ trong data như sau:

<Ticker>,<Per>,<YYYYMMDD>,<Time>,<Open>,<High>,<Low>,<Close>,<Volume>
ABI,D,20110328,000000,7,7,7,7,100
ACC,D,20110328,000000,26.5,26.5,26.5,26.5,100
ACE,D,20110328,000000,14.6,14.6,14,14,1900

Trong data trên có 2 trường <Per> (cột thứ 2) và <Time> (cột thứ 4) chúng ta không cần import. Lúc này, ở phần khai báo cần chọn column 2 và column 3 giá trị Skip (giá trị Skip có sẵn trong danh sách mỗi column), để bỏ qua.

- Các mục còn lại, tạm thời ta giữ nguyên như hình trên, về sau có dịp sẽ nhắc đến.

- Sau khi khai báo xong, bước tiếp theo chọn Next, để chuyển đến hộp thoại Additional Settings. Nếu như chỉ cần dùng chức năng Import Wizard để Import data vào Amibroker thì chúng ta không cần làm gì với hộp thoại này mà chọn Finish, để kết thúc quá trình import data vào Amibroker.
 
Do diễn đàn không cho post bài quá dài nên tôi phải ngắt ra làm 2 phần


Rrõ ràng quá trình thao tác trên quá phức tạp! Dùng chức năng Import Wizard để add data vào Amibroker, nếu không quen sẽ là 1 quá trình thao tác quá phức tạp! Nhưng dù có quen rồi thì chúng ta cũng mất thời gian mỗi khi import data mới.

Do đó, chúng ta có thể dùng chức năng Import ASCII. Cách Import data vào Amibroker bằng Import ASCII sẽ nhanh chóng và tiện lợi hơn nhiều. Tuy nhiên, việc nghiên cứu ở trên cũng không phải là vô dụng. Vì nếu muốn dùng chức năng Import ASCII, trước tiên cần có 1 lần sử dụng chức năng Import Wizard để khai báo cấu hình, cấu trúc data và lưu lại cấu hình, cấu trúc đó. Việc lưu lại cấu hình đã khai báo được thực hiện trong hộp thoại Additional Settings, như dưới đây:

AdditionalSettings.png

* Trước hết, khi hộp thoại Additional Settings mở ra, cần khai báo như sau:

- Đánh dấu vào check box Add curent settings to ASCII Importer definitions (khoanh đỏ bên trên). Khi đó, các mục bên dưới sẽ sáng lên, cho phép bạn có thể sửa đổi.

- Gõ vào Text box Description: Một tên gợi nhớ nào đó cho loại data có cấu trúc vửa khai báo. Thí dụ: "Data EOD", "Data Cung Cau", "Data GDNN", ... hay như ở trên tôi gõ vào là "EOD format". Nội dung này bạn tự chọn.

- Gõ vào Text box File Mask: Tên đại diện của các files data sẽ import vào Amibroker. Thí dụ: *.*, *.txt, *.csv, ... Mục đích lọc bớt, chỉ cho phép những files có dạng khai báo hiển thị ra, những loại files khác không hiển thi ra -> danh sách files hiển thị ít đi dễ tìm files data.

*.* là tên đại diện tổng quát nhất (gồm tất cả các loại files). Nhưng nếu dùng tên này thì tất cả các files đều hiện ra -> FIle mask không còn là mask nữa (Lọc không còn lọc được gì).

*.txt là tên đại diện cho các files có tên mở rộng (phần đuôi của tên file, sau dấu chấm) là txt. Đây là loại tên files data chúng ta đang dùng.

*.csv là tên đại diện cho các files có tên mở rộng (phần đuôi của rên file, sau dấu chấm) là csv.

Đây là 2 loại tên files thường được dùng cho data Amibroker. Lưu ý: Data dùng cho Amibroker phải là dạng ASCII (text)

- Cuối cùng gõ vào Text box Format file: Tên file (lưu giữ cấu trúc đã khai báo) sẽ được lưu vào máy. Đây là file có dạng tên .forrmat.
Xong -> chọn Finish.

Lưu ý: Hàng ngày chúng ta dùng 2 loại data EOD và CCNNRR. Do đó, cần có 2 lần khai báo riêng cho 2 loại data này bằng Import Wizard
Bạn cũng có thể dùng cấu trúc của CCNNRR cho EOD (nhưng không dùng EOD cho CCNNRR được). Tuy nhiên, tôi khuyên dùng riêng để kiểm soát số liệu tốt hơn).

Hình dưới đây là hình hộp thoại Additional Settings khi khai báo cho data CCNNRR khi nhập data CCNNRR lần đầu bằng Import Wizard:

AdditionalSettings(2).png

Các mục Description và Format file là tự bạn chọn, nhưng không được trùng với cái đã có và không trùng nhau. Riêng File Mask, nếu dùng data trên VC, bạn nên khai báo *.txt.

b. Cách Import data vào Ami bằng Import ASCII:

Sau khi đã dùng Import Wizard khai báo cấu trúc và import lần đầu (có lưu lại ở bước cuối trong hộp thoại Additional Settings), việc import data bằng chức năng Import ASCII đơn giản hơn nhiều:

menufile-png.168

- Chọn từ menu FIle: File/Import ASCII (khoanh màu xanh và đánh số 4). Khi đó, hộp thoại Open hiện ra. Bây giờ chỉ cần chọn kiểu file trong danh sách (Files ò type) trước khi chọn files data và nút Open.

OpenFiles.png

Thí dụ cho trường hợp import data CCNNRR đã khai báo trên:

OpenFiles(2).png


Lưu ý: Chọn kiểu file (khoanh đỏ trên hình) trước khi chọn folder và chọn files data. Để mask lọc bớt files theo dạng đã được khai báo còn ít đi dễ tìm files mình cần.

Chúc bạn thành công!
 
3. Sử dụng nhiều databases:

Bạn có thể tạo nhiều databases trong Amibroker. Mỗi database có thể chứa data cho mỗi yêu cầu riêng của bạn. Thí dụ: Một database chứa số liệu chưa điều chỉnh, một database chứa số liệu đã điều chỉnh, một database khác chứa số liệu theo ticks hoặc intraday, một database chứa số liệu thị trường khác (mà bạn không muốn lưu chung với các thị trường đã lưu trong những databases khác),.. và nhiều dạng data khác của bạn...

Việc chọn database để sử dụng (xem chart) có thể bằng cách chọn trong tên database (tên folder chứa data cùng đường dẫn; trường hợp không có đường dẫn là folder data đó nằm trong folder hiện hành - thông thường là folder chứa Amibroker) trong danh sách các databases ở phần bên dưới của menu File (phần đóng khung được đánh số 5 trên hình bên dưới), tên lệnh Exit:

menufile-png.168

Trường hợp nếu số databases bạn đã tạo nhiều hơn số lượng mặc định databases hiển thị trong menu File nêu trên, sẽ có database không được hiện thị. Khi đó, bạn có thể dùng File/Open Database... (khoanh đỏ đánh số 1 trong hình trên)


 
* Chọn database mặc định:

Database mặc định là database sẽ được hiển thị ngay khi mở Amibroker, không cần dùng File/Open Database... hoặc chọn trong danh sách (như nêu trên). Ngoài cách khai báo khi tạo database mới (trong hộp thoại Database settings ở phần đầu), chúng ta có thể thay đổi database mặc định bằng cách chọn Tools/Preferences... để mở hộp thoại Preferences:

Preferences.png

Chọn tab Data như hình trên. Trong mục Default database path: Hoặc gõ trực tiếp đường dẫn đến folder chứa data (trong hình là D:\Documents\AmiData); hoặc chọn nút Pick... để tìm đến folder chứa data; hay chọn Current, nếu bạn muốn chọn database hiện hành (đang xem) làm mặc định.


* Lưu ý: Tất cả các lệnh và hộp thoại mà tôi dùng làm thí dụ bên trên đều lấy từ Amibroker 5.30 rc (tôi vẫn đang sử dụng phiên bản này). Ở các phiên bản khác có thể khác, nhưng về cơ bản vẫn tương tự.
 
* Thay đổi cấu trúc data (đã khai báo) để import vào Amibroker theo mong muốn:

Khi đã hiểu rõ cách khai báo và ý nghĩa các mục cần chọn trong quá trình khai báo cấu trúc data và đặc biệt hiểu rõ cách lưu giữ những khai báo đó trong Amibroker như thế nào, chúng ta có thể thay đổi những gì đã khai báo, thậm chí khai báo cấu trúc mới cho loại data khác mà không cần làm theo các bước như trên (dùng Import Wizard).

5. Amibroker lưu giữ cấu trúc data đã khai báo bằng Import Wizard như thế nào?
- Nếu như ở trên (khi sử dụng chức năng Import Wizard), ta đã khai báo trong hộp thoại Additional Settings:
Description: EOD format
File Mask: *.txt
Format file: EOD.format

Amibroker đã lưu giữ cấu trúc đã khai báo đó trong file có tên là EOD.format trong folder C:\Program Files\AmiBroker\Formats. Ngoài ra, để nhận biết có những khai báo này (Description, File Mask và Format file), Amibroker còn thêm vào file import.types (có sẵn trong folder C:\Program Files\AmiBroker\Formats) một dòng:

EOD format (*.txt)|*.txt|EOD.format

Chúng ta sẽ quay lại file import.types sau. Bây giờ thử dùng NotePad để mở file EOD.format (trong folder C:\Program Files\AmiBroker\Formats), chúng ta sẽ thấy nội dùng như sau:

# Format definition file generated automatically
# by AmiBroker's ASCII Import Wizard
$FORMAT Ticker, Date_YMD, Open, High, Low, Close, Volume
$SKIPLINES 1
$SEPARATOR ,
$GROUP 255
$AUTOADD 1

Hai dòng đầu dùng để chú thích (Hai dòng này do Amibroker - chính xác do lập trình viên viết code - tự động tạo ra, khi ta dùng Import Wizard để khai báo. Ký tự # đứng đầu mỗi dòng để thông báo cho Amibroker biết những nội dung đứng sau đó không phải là nội dung khai báo cấu trúc data).

Dòng thứ 3: $FORMAT Ticker, Date_YMD, Open, High, Low, Close, Volume cho biết có 7 trường (cột) đã được khai báo.

Dòng thứ 4: $SKIPLINES 1 báo cho Amibroker bỏ qua 1 dòng đầu, không xem là data khi import data bằng khai báo này. (Do chúng ta dùng làm dòng tiêu đề. Amibroker không cần biết mục đích này, mà chỉ biết không add data vào database).

Dòng thứ 5: $SEPARATOR , - Sử dụng dấu phẩy (,) làm ký tự phân cách data giữa 2 cột.

Dòng thứ 6: $GROUP 255 - là giá trị mặc định khi khai báo chúng ta đã không thay đổi (add data vào GROUP 255).

Dòng thứ 7: $AUTOADD 1 - Tự động thêm mã mới vào database, khi có mã đang import không tìm thấy trong số liệu cũ.

definefields-png.173


Hộp thoại Define Fields khi chúng ta khai báo cấu trúc cho data EOD.
Ý nghĩa các thành phần trong hộp thoại Define Fields có thể tham khảo thêm (lấy từ Help của Amibroker):

Group: here you should select to which group new symbols are added
Watch list: here you should select to which watch list new symbols are added (if empty - they are not added to any watch list)
Separator: here you should select the character used as a field separator (comma is the most often)
Skip lines: this tells AmiBroker how many initial lines should be skipped (ignored) - for example a few first lines of the file should contain a comment or other information that should be ignored, and this is the place to define this
Log errors: this tells AmiBroker that it should log all errors to the file (import.log). In case of any errors this log will be displayed to the user after finishing import process.
Automatically add new symbols: this tells AmiBroker to add the symbols that appear in the data file but do not exist yet in AmiBroker database.
Calculate composites: this tells AmiBroker to calculate advance/decline figures and volume for indexes after import (this requires composites to be set up properly before importing)
Allow negative prices: this tells AmiBroker to allow negative number in close, open, high, low fields. By default zero and negative values are NOT allowed.
No quotation data: allows to import data that do not contain prices. For example ticker lists and/or categories.

Cũng dùng NotePad để mở file import.types (cũng trong folder C:\Program Files\AmiBroker\Formats), ta sẽ thấy, thí dụ như sau:

Metastock ASCII (*.txt)|*.txt|metastock.format
EOD format (*.txt)|*.txt|EOD.format
CungCau format (*.txt)|*.txt|CungCau.format
Sector format (*.txt)|*.txt|Sector.format

Tôi dùng thí dụ như sau ở trên vì chỉ có dòng EOD format (*.txt)|*.txt|EOD.format là do ta khai báo được tạo ra. Những dòng khác có thể khác và cũng có thể có hoặc không có (phụ thuộc vào mặc định của Amibroker, hay do ai đó đã khai báo trước đó, hoặc cũng có thể bạn lấy bản Amibroker đã được bẻ khóa, mà trước đó người bẻ khóa đã khai báo,...).

Nếu như bạn thấy trên hình sau:

openfiles-2-png.188

Thì chắc chắn trong file import.types có những dòng sau:

Metastock ASCII (*.txt)|*.txt|metastock.format
EOD format (*.txt)|*.txt|EOD.format
CungCau format (*.txt)|*.txt|CCNNRR.format
FA format (*.csv)|*.csv|FnData.format
FA format 0(*.csv)|*.csv|FnData0.format
FA format 1(*.csv)|*.csv|FnData1.format
FA format 2(*.csv)|*.csv|FnData2.format
FA format 3(*.csv)|*.csv|FnData3.format
FA format 4(*.csv)|*.csv|FnData4.format
FullName(*.csv)|*.csv|CtyFullName.format
FullName (*.csv)|*.csv|FullName.format
Test (*.txt)|*.txt|test.format
TenBagger format (*.stk)|*.stk|stk.format
TQK_Nganh (*.txt)|*.txt|TQK_Nganh.format
TQK_EOD (*.txt*)|*.txt*|TQK_EOD.format
TQK_Intraday (*.txt*)|*.txt*|TQK_Intraday.format

Mỗi dòng là 1 cấu trúc đã khai báo. Nội dung trong mỗi dòng gồm 3 thành phần: EOD format (*.txt)|*.txt|EOD.format
- EOD format (*.txt) - Tên đã khai báo trong phần Description. Phần (*.txt) là phần khai báo trong File Mask.
- *.txt - kiểu file đã khai báo trong phần File Mask
- EOD.format - Tên file format đã khai báo trong phần Format file.
 
Cám ơn bác Trung Nghĩa nhiều nhiều, thật là 1 bài giảng rất công phu, tỉ mỉ, tiếc rằng học trò e nu quá, hix...
 
Cám ơn bác Trung Nghĩa nhiều nhiều, thật là 1 bài giảng rất công phu, tỉ mỉ, tiếc rằng học trò e nu quá, hix...

Bạn lần lượt thực hiện các bước như sau:
Bước 1. - Download data của Úc vào một folder nào đó. Có thể tạo mới một folder, thí dụ: AusData (trong D:\). Nên dowload ít nhất từ đầu năm, nhiều hơn càng tốt.

Xem nội dung file nguồn, thí dụ: 20150102.txt, chúng ta thấy nội dung:

1PG,20150102,1.195,1.24,1.16,1.215,607639
3PL,20150102,2.29,2.29,2.17,2.26,1863
8IH,20150102,0.34,0.345,0.34,0.34,112700
AAA,20150102,50.1,50.11,50.09,50.11,409863
AAC,20150102,1.455,1.47,1.45,1.47,90150
AAD,20150102,2.95,2.95,2.87,2.9,303624
AAX,20150102,0.43,0.43,0.42,0.43,70227
ABC,20150102,3.61,3.63,3.56,3.63,289654
ABL,20150102,0.01,0.01,0.01,0.01,2500
...

có cấu trúc giống như EOD trên VC với 1 điểm khác duy nhất: Không có dòng tiêu đề. Do đó, cần chọn Skip first 0 lines (nếu dùng File/Import Wizard). Còn nếu bạn muốn dùng File/Import ASCII thì trong file format cần bỏ dòng $SKIPLINES 1 hoặc sửa lại thành $SKIPLINES 0.

Do bạn sẽ sử dụng database này thường xuyên, nên tôi nghĩ bạn nên dùng File/Import ASCII. Như vậy bạn nên thực hiện bước 2 sau đây.

Bước 2.
a - Không chạy Amibroker (hoặc nếu Amibroker đang mở thì bạn hãy đóng lại). Bạn dùng notepad mở file EOD.format (hoặc file nào mà bạn đã khai báo để import data lấy từ Vietcurency), trong folder C:\Program Files\AmiBroker\Formats và sửa dòng
$SKIPLINES 1 thành $SKIPLINES 0. Rồi dùng lệnh File/Save (không phải lệnh Save) của Notepad để lưu vào C:\Program Files\AmiBroker\Formats với tên mới, thí dụ AusData.format.

Lưu ý: Không dùng lệnh File/Save hoặc Ctrl-S để lưu, nhằm tránh nội dung file cũ không bị thay đổi.

b - Lại dùng notepad mở file import.types (có sẵn trong folder C:\Program Files\AmiBroker\Formats) và thêm một dòng sau (bất kỳ vị trí nào, nếu bạn thường dùng thì đặt lên trên đầu):

AusData format (*.txt)|*.txt|AusData.format

rồi lưu lại và đóng file.

Bước 3. - Tạo một folder mới (tên tùy ý, vị trí cũng vậy). Thí dụ: ASXMarket trong D:\

Bước 4. - Vào Amibroker thực hiện tạo một database mới như đã hướng dẫn bên trên

databasesetting-png.167

Ở mục Database folder (đánh số 2 trong hình), có thể gõ thẳng vào: D:\ASXMarket và chọn Create
Tôi phải đưa thêm bước 1 vào, vì muốn bạn phân biệt 2 folder chứa data mới tải về chưa import (D:\AusData) và data đã import trong database của Amibroker (D:\ASXMarket).

Sau khi OK, Database mới được tạo và chưa có data = chart trắng.

Bước 5.- Import data từ D:\AusData vào database (hiện có tên D:\ASXMarket) bằng File/Import Wizard hoặc File/Import ASCII đều được. Khi dùng File/Import Wizard trong hộp thoại Open, bạn chọn kiểu file trong danh sách (Files of type) AusData format trước khi chọn các files dữ liệu và nút Open.

Lưu ý: Sau này mỗi khi import data Úc và EOD từ Vietcurrency, bạn phải chọn kiểu file trong danh sách (Files of type) cho đúng với nguồn dữ liệu. Nếu bạn chọn EOD format để import data Úc, bạn sẽ mất mã đầu tiên.


Tôi đã thử import data Úc và đã import một cách "trót lọt". Kết quả trên chart của mã 3PL như sau:

3PL.png
 
6. Thay đổi cấu trúc data đã khai báo và khai báo mới cấu trúc data (dùng để import data vào Amibroker):

Như vậy, chúng ta hoàn toàn có thể sửa đổi nội dung cấu trúc data đã khai báo hoặc khai báo hoàn toàn mới, bằng cách dùng notepad soạn thảo và lưu lại đúng với quy ước của Amibroker.

Thí dụ trên về việc sử dụng dữ liệu thị trường Úc cũng đã minh họa cho việc sửa hoặc tạo mới cấu trúc data.

a. Sửa đổi cấu trúc đã khai báo:

Việc sửa cấu trúc dữ liệu đơn giản hơn, chỉ cần mở file, sửa nội dung và lưu lại. Vấn đền quan trọng là bạn cần biết và hiểu cách dùng các lệnh trong file dạng *.format. Trong thí dụ bên trên, tôi nói sửa $SKIPLINES 1 thành $SKIPLINES 0 hoặc xóa dòng này vì mặc định (khi không có dòng lệnh) là 0. Tương tự, nhiều lệnh khác cũng có mặc định.

Dùng notepad để tìm mở file cấu trúc data (dạng *.format) đã có trong folder C:\Program Files\AmiBroker\Formats), thí dụ EOD.format:
# Format definition file generated automatically
# by AmiBroker's ASCII Import Wizard
$FORMAT Ticker, Date_YMD, Open, High, Low, Close, Volume
$SKIPLINES 1
$SEPARATOR ,
$GROUP 255
$AUTOADD 1

Chúng ta có thể xóa bớt lệnh, nhập thêm lệnh vào file nay, hoặc sửa theo yêu cầu của mỗi data cụ thể.

Trong thực tế có thể vì lý do nào đó mà có một số mã trong database Amibroker của bạn sai lệch. Bạn muốn cập nhật lại những mã sai này, nhưng nếu sửa từng mã và từng phiên sẽ mất nhiều công sức, còn xóa đi một số mã cũng thật không dễ dàng. Bạn có thể xóa đi toàn bộ database và import data mới. Tuy nhiên, có thể những data cũ của bạn có những ưu điểm nào đó mà không dễ tìm lại.

Giải pháp tốt nhất là "ghi đè" lên số liệu sai cũ bằng số liệu đúng của những phiên có sai sót. Khi đó chúng ta có thể thêm dòng lệnh:

$OVERWRITE 1

vào trong file EOD.format rồi lưu lại. Lệnh $OVERWRITE cho phép bạn cho phép ($OVERWRITE 1) hoặc không cho phép ($OVERWRITE 0) ghi đè lên số liệu cũ đã có trong database của bạn. Mặc định$OVERWRITE 0 (nếu không có lệnh này Amibroker xem như không cho phép ghi đè lên dữ liệu cũ)

Trong Amibroker còn nhiều lệnh để các bạn sử dụng (có thể tham khảo thêm trong Help của Amibroker)

b. Khai báo cấu trúc mới:

Gồm 2 bước:

Bước 1: Tạo file xxx.format với nội dung đáp ứng nhu cầu khai báo. xxx là tên do bạn tự đặt nên gởi nhớ đến loại data sử dụng đến nó.

Bước 2: Mở file import.types (trong folder C:\Program Files\AmiBroker\Formats) và thêm vào 1 dòng:

zzz format (*.yyy)|*.yyy|xxx.format

với zzz là tên mô tả data, có thể giống xxx.
yyy là phần tên mở rộng của file dữ liệu, có thể là txt, csv, ... hoặc bất kỳ miễn nội dung file phải là dạng text (các ký tự dạng ASCII)

khi dùng Import ASCII mở hộp thoại Open, tên cấu trúc data zzz format (*.yyy) sẽ hiển thị trong danh sách type of files (xem hình ở các bài trên)


Lưu ý: Tất cả những việc sửa chữa hoặc tạo mới phải được thực hiện khi Amibroker đang đóng. Lý do, khi Amibroker đang mở, những cấu hình của Amibroker được lấy ra và sẽ lưu lại khi đóng Amibroker (những thay đổi nếu có trong Amibroker sẽ được lưu lại lúc này).
 
Hi bác Trung Nghĩa!
Thấy cái Australia chart của bác mà e thèm ướt hết bàn phím, hix...
Mà chắc dzô tình, candle của e giống bác nên nhìn rất quen: cả xanh lẫn đỏ đều có đặc và rỗng...
Không phải Ami candle của ai cũng vậy, hì hì...
Tks bác rất nhiều, nay CN, e sẽ cố lọ mọ làm cho xong cái ASX Market, data thì e đã download từ 2011 tới nay, chỉ chưa biết xài thui!
 
Hi bác Trung Nghĩa!
Thấy cái Australia chart của bác mà e thèm ướt hết bàn phím, hix...
Mà chắc dzô tình, candle của e giống bác nên nhìn rất quen: cả xanh lẫn đỏ đều có đặc và rỗng...
Không phải Ami candle của ai cũng vậy, hì hì...
Tks bác rất nhiều, nay CN, e sẽ cố lọ mọ làm cho xong cái ASX Market, data thì e đã download từ 2011 tới nay, chỉ chưa biết xài thui!
Bạn thử import file này: AusData2015.zip
 
Hi bác Trung Nghĩa!
Thấy cái Australia chart của bác mà e thèm ướt hết bàn phím, hix...
Mà chắc dzô tình, candle của e giống bác nên nhìn rất quen: cả xanh lẫn đỏ đều có đặc và rỗng...
Không phải Ami candle của ai cũng vậy, hì hì...
Tks bác rất nhiều, nay CN, e sẽ cố lọ mọ làm cho xong cái ASX Market, data thì e đã download từ 2011 tới nay, chỉ chưa biết xài thui!
Nhìn nến giống của Metastock vẫn là đẹp nhất bác nhỉ.
 
Em làm theo hướng dẫn của anh Nạp dữ liệu vào amibroker, lấy dữ liệu EOD anh up lên hàng ngày thì bị lỗi: Không biết em làm sai ở đâu ạ?

Logging started for 'F:\tmp\AmiBroker\Data\EOD txt ngay 13.04.2015\Hnx13.04.2015.txt' file, using format definition file 'Formats\EOD.format'
Error in line <Ticker>,<DTYYYYMMDD>,<Open>,<High>,<Low>,<Close>,<Volume>
Invalid (close) price. Prices must be positive. If you want to import no quotation data please specify $NOQUOTES 1 ('no quotation data' box in Wizard)
Invalid date format/value

Em tìm được lỗi rồi. Do em ko chọn allow negative price. Giờ em đã dùng Import Wizard để import được rồi nhưng vẫn chưa thấy tra cứu được dữ liệu anh ạ. Màn hình hiện not enough data avaiable. em dùng dữ liệu EOD ngày 13/4

1. Lỗi trên là do không khai báo Skip first 1 lines (hoặc $SKIPLINES 1). Có nghĩa là không bỏ dòng đầu (dòng chứa tiêu đề):

<Ticker>,<DTYYYYMMDD>,<Open>,<High>,<Low>,<Close>,<Volume>

Khi đó Amibroker nghĩ rằng dòng đầu là data nên thông báo giá đóng cửa (Close) không hợp lệ:

Invalid (close) price. Prices must be positive.

2. Bạn dùng khai báo allow negative price sẽ không bị thông báo lỗi, nhưng trước mắt Amibroker vẫn nghĩ rằng dòng đầu là data và lâu dài khi gặp lỗi sai về giá (giá trị âm) vẫn được Amibroker import vào mà không thông báo lỗi để chúng ta biết mà xử lý. Do đó, nên khai báo Skip first 1 lines (trong file .format) hoặc $SKIPLINES 1 (khi dùng Import Wizard).

3. Bạn chỉ mới import ngày, sẽ không thấy được chart. Phải có dữ liệu của tối thiểu 3 phiên. Do đó, bạn nên import thêm càng nhiều ngày chart mới có ý nghĩa.

4. Theo khuyến cáo của thông báo lỗi trên:

If you want to import no quotation data please specify $NOQUOTES 1 ('no quotation data' box in Wizard)

Amibroker khuyên: Nếu bạn muốn import dữ liệu mà không thông báo lỗi thì nên khai báo $NOQUOTES 1 (chọn no quotation data trong Import Wizard)

Nhưng tôi lại khuyên là không nên chọn no quotation data ($NOQUOTES 1). Lý do: Khi dữ liệu có lỗi, Amibroker sẽ "lặng thinh". Khi đó, chúng sẽ không phát hiện lỗi để xử lý.

.
 
Back
Top