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

Discussion in 'Amibroker, Metatrader, MetaStock, TradeStation &' started by wisebull, Mar 29, 2015.

  1. wisebull

    wisebull Well-Known Member

    Joined:
    Nov 8, 2011
    Messages:
    94
    Likes Received:
    329
    Trophy Points:
    53
    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!
     
  2. Cloud

    Cloud Well-Known Member

    Joined:
    Jun 17, 2014
    Messages:
    529
    Likes Received:
    2,648
    Trophy Points:
    93
    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ổ
     
    wisebull likes this.
  3. trungnghia

    trungnghia Moderator

    Joined:
    Nov 1, 2011
    Messages:
    2,909
    Likes Received:
    7,998
    Trophy Points:
    113
    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.
    - 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:

    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.
     
    buncha99, vkc, wisebull and 4 others like this.
  4. trungnghia

    trungnghia Moderator

    Joined:
    Nov 1, 2011
    Messages:
    2,909
    Likes Received:
    7,998
    Trophy Points:
    113
    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:

    [​IMG]

    - 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!
     
    buncha99, TuanMinh, MrM and 9 others like this.
  5. dash177

    dash177 Well-Known Member

    Joined:
    Feb 16, 2014
    Messages:
    6,835
    Likes Received:
    31,916
    Trophy Points:
    113
    Cảm ơn bác @trungnghia có bài hướng dẫn cực chi tiết.:113:
     
    GÀ ĐỒI, wisebull and Cdg like this.
  6. wisebull

    wisebull Well-Known Member

    Joined:
    Nov 8, 2011
    Messages:
    94
    Likes Received:
    329
    Trophy Points:
    53
    Dạ, e tks anh TrungNghia nhiều nhiều ạ, hihihihihihi!
     
    GÀ ĐỒI likes this.
  7. GÀ ĐỒI

    GÀ ĐỒI Active Member

    Joined:
    Apr 8, 2015
    Messages:
    62
    Likes Received:
    218
    Trophy Points:
    33
    Cảm ơn bác TrungNghia.
     
  8. trungnghia

    trungnghia Moderator

    Joined:
    Nov 1, 2011
    Messages:
    2,909
    Likes Received:
    7,998
    Trophy Points:
    113
    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:

    [​IMG]

    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)


     
  9. trungnghia

    trungnghia Moderator

    Joined:
    Nov 1, 2011
    Messages:
    2,909
    Likes Received:
    7,998
    Trophy Points:
    113
    * 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ự.
     
  10. wisebull

    wisebull Well-Known Member

    Joined:
    Nov 8, 2011
    Messages:
    94
    Likes Received:
    329
    Trophy Points:
    53
    Chà, làm hoài chưa được bác Trung Nghĩa ơi, data Úc thì nó cho dạng notepad, lại rời từng ngày, lằng nhằng quá...
     
    GÀ ĐỒI and 11.12.2013 like this.
  11. trungnghia

    trungnghia Moderator

    Joined:
    Nov 1, 2011
    Messages:
    2,909
    Likes Received:
    7,998
    Trophy Points:
    113
    * 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:

    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ũ.

    [​IMG]

    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):

    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:

    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:

    [​IMG]

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

    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.
     
  12. wisebull

    wisebull Well-Known Member

    Joined:
    Nov 8, 2011
    Messages:
    94
    Likes Received:
    329
    Trophy Points:
    53
    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...
     
  13. trungnghia

    trungnghia Moderator

    Joined:
    Nov 1, 2011
    Messages:
    2,909
    Likes Received:
    7,998
    Trophy Points:
    113
    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:

    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

    [​IMG]

    Ở 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
     
  14. trungnghia

    trungnghia Moderator

    Joined:
    Nov 1, 2011
    Messages:
    2,909
    Likes Received:
    7,998
    Trophy Points:
    113
    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:
    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).
     
    chim_non and wisebull like this.
  15. wisebull

    wisebull Well-Known Member

    Joined:
    Nov 8, 2011
    Messages:
    94
    Likes Received:
    329
    Trophy Points:
    53
    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!
     
  16. trungnghia

    trungnghia Moderator

    Joined:
    Nov 1, 2011
    Messages:
    2,909
    Likes Received:
    7,998
    Trophy Points:
    113
    Bạn thử import file này: AusData2015.zip
     
    wisebull likes this.
  17. chim_non

    chim_non Moderator

    Joined:
    Nov 1, 2011
    Messages:
    22,314
    Likes Received:
    110,912
    Trophy Points:
    113
    Nhìn nến giống của Metastock vẫn là đẹp nhất bác nhỉ.
     
    wisebull and trungnghia like this.
  18. trungnghia

    trungnghia Moderator

    Joined:
    Nov 1, 2011
    Messages:
    2,909
    Likes Received:
    7,998
    Trophy Points:
    113
    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ý.

    .
     
    wisebull and 11.12.2013 like this.
  19. wisebull

    wisebull Well-Known Member

    Joined:
    Nov 8, 2011
    Messages:
    94
    Likes Received:
    329
    Trophy Points:
    53
    Đúng vậy bác nhỉ, khà khà...
     
  20. chim_non

    chim_non Moderator

    Joined:
    Nov 1, 2011
    Messages:
    22,314
    Likes Received:
    110,912
    Trophy Points:
    113
    Hình như phải ghép thêm 1 đoạn code nho nhỏ cho cái nến đẹp này chứ chọn trong preference của Ami là ko đủ. Bác @trungnghia hay @wisebull cho em xin nhé. Thanks
     
    Cdg likes this.

Share This Page

XenForo Add-ons by Brivium ™ © 2012-2013 Brivium LLC.