Phần 3: VBScriptRunner và index ngành trên Amibroker

Index ngành là gì?

Chúng ta đều biết VN-Index là chỉ số index của sàn HCM và HNXindex là chỉ số index của sàn Hà nội. Các chỉ số index này cũng có ý nghĩa tương tự như chỉ các chỉ số Dow Jones, NASDAQ tại thị trường chứng khoán Mỹ vậy. Nói cách khác, chỉ số index được dùng để phản ánh sự biến động của thị trường chứng khoán cũng như tâm lý của nhà đầu tư. Tuy nhiên cách xây dựng chỉ số index ở mỗi thị trường có thể giống hoặc khác nhau. Theo tìm hiểu của bản thân tôi, chỉ số VN-Index được tính toán theo phương pháp chỉ số Paasche. Ý nghĩa của cách tính cũng như phương pháp tính các bạn có thể tham khảo tại links sau:

http://vi.wikipedia.org/wiki/Vn-Index

http://www.ssc.gov.vn/portal/pls/por...&p_language=us

Bạn cũng có thể tham khảo một ví dụ về cách tính VN-Index từ đề tài nghiên cứu của một bạn khi bạn ấy còn là sinh viên trên một website (xin lỗi vì tôi ko nhớ tên bạn ấy cũng như đã lấy từ nguồn website nào vì lúc đó tôi chỉ dùng google để tìm ví dụ về cách tính index nhưng lại quên lưu lại website cũng như người gửi. Thành thật xin lỗi bạn ấy). Bạn có thể tham khảo ví dụ của bạn ấy thông qua bản sao tôi giữ tại links:

http://cid-24b045babe1439c1.office.l...ts/vnindex.ppt

http://cid-24b045babe1439c1.office.l...%20Vnindex.xls

Như vậy tôi đã quyết định xây dựng index theo phương pháp xây dựng VN-Index và từ những hiểu biết mà tôi góp nhặt được ở trên. Như bạn đã biết ở bài viết trước, tôi đang gặp khó khăn ở việc sắp xếp các cp vào trong một ngành nhất định. Để vượt qua khó khăn này tôi tạm lấy 3 cổ phiếu có ngày giao dịch ít là MIH, NHSLCS làm nguồn dữ liệu đầu vào để tôi phát triển bộ ứng dụng của mình. Đầu tiên tôi đưa dữ liệu từ ami của 3 cp trên ra excel để tính toán thử bằng tay. Sau khi viết chương trình, chạy thử và so sánh với kết quả trong excel thì thấy khớp với nhau. Nếu bạn muốn tham khảo cách tính index của tôi bạn có thể down file excel đó về qua link sau:

http://cid-24b045babe1439c1.office.l...20vnindex.xlsx

Như vậy tôi đã trình bày cho bạn về phương pháp xây dựng vn-index và nó cũng chính là phương pháp tôi dùng để xây dựng index ngành của mình. Còn về hệ chương trình tôi viết để giúp tôi thực hiện được việc đó thì gồm những phần như sau:

- Chương trình VBScriptRunner đươc dùng để làm nền chạy các VBScript mà tôi viết. Và thông qua các script đó, tôi tương tác với các OLE của Ami để xây dựng các chỉ số index. Tôi sẽ có một bài viết khác để nói chi tiết hơn về chương trình này cũng như những đặc điểm của nó. Theo đánh giá của bản thân, tôi thấy nó rất có ích ko chỉ cho người sử dụng Amibroker mà còn cho cả những ai viết và chạy các VBScript cho bất kỳ mục đích nào khác. Chương trình này cũng cho phép chạy các đoạn VBScript đã được mã hóa. Tại sao lại phải mã hóa các đoạn VBScript? Có một số lý do để làm thực hiện việc mã hóa đó. Khi bạn viết chương trình bằng Script và muốn chia sẽ nó với những người khác, bạn ắt hẳn là bạn muốn người ta ko được thay đổi các script bạn viết vì bạn muốn nhận được phản hồi một cách chính xác các lỗi có thể xãy ra. Việc mã hóa sẽ giúp người khác ko thể sửa chữa or thêm bớt gì vào code của bạn vì nếu họ làm như vậy thì đoạn script mã hóa đó sẽ bị hỏng và trở nên vô dụng. Việc thay đổi script đã mã hóa cũng giống như bạn thay đổi nội dung của một file .exe vậy. Nó sẽ làm hỏng cấu trúc của file exe và vì vậy sẽ ko chạy được file ấy. Một lý do nữa là có thể bạn muốn chia sẽ thành quả làm việc của mình nhưng lại muốn đảm bảo quyền sở hữu trí tuệ của bạn và việc mã hóa code bạn viết là một trong những cách giúp bạn làm được điều đó. Trong tương lai, tôi sẽ nâng cấp chương trình ấy để nó có thể hỗ trợ cả JScript và như vậy nó sẽ giúp cho những bạn vốn ko biết nhiều về VBScript nhưng lại giỏi về JScript sẽ chạy được các Jscript đó và an toàn chia sẽ các chúng với người khác. Bạn có thể download chương trình này tại link sau:

http://cid-24b045babe1439c1.office.l...riptRunner.rar

- Một file VBScript thực hiện các tác vụ để xây dựng index ngành (đã được đính kèm trong gói cài đặt)

- Một file text tên danhsach.txt chứa danh sách ngành và các cổ phiếu tương ứng với ngành đó theo một format được quy định (đã được đính kèm trong gói cài đặt). Format này như sau:

<Industry ID>::<Industry name>::<TickerList>

Một ví dụ cho file text này có 2 dòng như sau:

115::Testing::MIH,LCS,NHS

3::KHAI THAC NUOI TRONG THUY SAN::AGF,ABT

Như vậy bạn đã có trong tay tất cả những công cụ cần thiết để tiến hành tạo index ngành cho riêng mình. Sau đây là các bước hướng dẫn để bạn có thể thực hiện được việc đó.

1. Cài đặt chương trình VBScriptRunner.

Bạn chạy file setup.exe từ files mà bạn download về với quyền Administrator và theo các hướng dẫn trên màn hình để hoàn thành việc cài đặt này. Việc cài đặt này hoàn toàn tương tự như việc cài đặt các chương trình khác trước đây của bạn. Trong trường hợp bạn chương trình cài đặt thông báo lỗi không thể copy file .dll or .ocx vào hệ thống, cứ click ignore để bỏ qua việc copy đó vì hệ thống của bạn đã có sẳn rồi. Một trường hợp khác là chương trình cài đặt thông báo có sẳn file trong hệ thống của bạn (xãy ra khi bạn cài đặt nhiều lần) và nó hỏi bạn có giử những file có sẵn trong hệ thống của bạn ko thì bạn cứ chọn “no to all” để cài đè lên tất cả. Nếu hệ thống yêu cầu phải khởi động lại để cập nhật thì bạn cứ khởi động lại (hầu hết các trường hợp cài đặt không yêu cầu phải khởi động lại)

2. Sau khi cài đặt xong, bạn nên kiểm tra xem là file danhsach.txt và IndustryIndexUpdating.vbs.vbn đã có trong thư mục mà bạn vừa cài đặt xong hay ko. Nếu vẫn chưa có thì bạn có thể download 2 file trên và lưu vào thư mục cài đặt đó. Links để bạn download 2 file trên là:

http://cid-24b045babe1439c1.office.l...s/DanhSach.txt

http://cid-24b045babe1439c1.office.l...dating.vbs.vbn

3. Sau khi thực hiện các bước trên xong, chạy chương trình Amibroker.

3. Chạy chương trình VBScriptRunner bạn sẽ thấy xuất hiện mạng hình sau:



4. Click nút “Read Script” và chọn file type là vbn như hình vẽ và chọn file IndustryIndexUpdating.vbs.vbn để Open





5. Sau đó click nút “Run Script” để tiến hành tạo index ngành. Khi hoàn thành màn hình sẽ báo cho bạn biết là đã hoàn thành





Một số lưu ý:

- Trong trường hợp danh sách ngành của bạn dài và có nhiều cố phiếu. Trong lần chạy đầu tiên có thể bạn sẽ đợi lâu một chút vì chương trình file tao index ngành kể từ ngày cổ phiếu đầu tiên trong ngành đó được niêm yết. Do đó số liệu chương trình phải xử lý là khá lớn. Tuy nhiên ở những lần chạy sau thì sẽ rất nhanh vì chương trình chỉ phải cập nhật những ngày mới mà thôi. Do đó bạn cũng có thể customize file danh sách để nó chỉ tạo index cho những ngành mà bạn quan tâm

- Trong trường hợp bạn loại bỏ một cổ phiếu ra khỏi 1 ngành nào đó (vì lý do nào đó như cổ phiếu ko còn niêm yết nữa) thì bạn phải cập nhật lại file danhsach.txt và xóa index ngành đó đi. Sau đó bạn chạy chương trình để tạo lại index mới cho ngành đó.

- Trường hợp bạn thêm mới một cổ phiếu vào một ngành thì bạn cũng thực hiện tương tự như trên ( cập nhật lại danhsach.txt, xóa index ngành đó và chạy lại chương trình để tạo lại index mới).

- Index ngành được tạo ra được gắn ticker (symbol) theo dạng “~industry id” và có fullname chính là tên ngành trong file danhsach.txt mà bạn tạo.

Như vậy bạn đã có được danh sách index ngành như bạn muốn rồi đó. Hi vọng rằng chương trình này sẽ có ích cho bạn. Rất mong nhận được sự phản hồi của mọi người để tôi có thể hoàn thiện chương trình ngày càng tốt hơn.

Thân mến