Mô hình Đối tượng Tự động hóa OLE của AmiQuote

ha.anh
3 Min Read

Ngoài AmiBroker, AmiQuote cũng hỗ trợ mô hình đối tượng OLE giúp bạn có thể tự động hóa các thao tác như tải dữ liệu, thêm/xóa mã chứng khoán, và nhập dữ liệu vào AmiBroker. AmiQuote hoạt động theo kiến trúc SDI (Single Document Interface) nên chỉ có một lớp chính là Document.

Tạo đối tượng AmiQuote.Document

Bạn có thể khởi tạo đối tượng bằng một trong các cách sau:

js

Copy code

  • // JScript
  • AQ = new ActiveXObject(“AmiQuote.Document”);
  • // VB/VBScript
  • Set AQ = CreateObject(“AmiQuote.Document”);
  • // AFL (trong AmiBroker, dùng với caution)
  • AQ = CreateObject(“AmiQuote.Document”);

Cấu trúc Đối tượng AmiQuote.Document

Phương pháp (Methods):

Phương thức Chức năng
AddSymbols(symbols) Thêm danh sách mã vào danh sách tải (dạng chuỗi, cách nhau bằng dấu phẩy)
RemoveSymbols(symbols) Xóa mã khỏi danh sách tải
RemoveAllSymbols() Xóa toàn bộ danh sách
GetSymbolsFromAmiBroker() Tự động lấy mã từ AmiBroker
Download() Bắt đầu tải dữ liệu
Import() Nhập dữ liệu đã tải vào AmiBroker
Open(fileName) Mở tệp dự án AmiQuote (.aqh)
Save() Lưu dự án hiện tại
SaveAs(fileName) Lưu dự án với tên khác
MoveWindow(x, y, width, height) Di chuyển cửa sổ AmiQuote

 

Thuộc tính (Properties):

Thuộc tính Mô tả
DownloadInProgress True nếu quá trình tải đang diễn ra
ImportInProgress True nếu đang nhập dữ liệu
Source Nguồn dữ liệu (ví dụ: Yahoo, Google, v.v.)
From Ngày bắt đầu tải (dưới dạng số nguyên: YYYYMMDD)
To Ngày kết thúc tải (dưới dạng số nguyên: YYYYMMDD)
AutoImport True nếu được thiết lập để tự động nhập dữ liệu sau khi tải
AllSessions True để bao gồm cả phiên giao dịch ngoài giờ
Interval Khoảng thời gian: 1 – daily, 2 – weekly, 3 – monthly,…
RunEvery Tần suất chạy tự động (nếu có lập lịch)
TargetFolder Thư mục đích để lưu dữ liệu tải xuống

 

Ví dụ tự động tải dữ liệu và nhập vào AmiBroker

js

Copy code

  • AQ = new ActiveXObject(“AmiQuote.Document”);
  • AQ.RemoveAllSymbols();
  • AQ.AddSymbols(“AAPL,MSFT,GOOG”);
  • AQ.Source = 0; // 0: Yahoo Finance (tuỳ vào thiết lập hệ thống)
  • AQ.From = 20230101;
  • AQ.To = 20250701;
  • AQ.AutoImport = true;
  • if (AQ.Download()) {
  •     while (AQ.DownloadInProgress) WScript.Sleep(500);
  •     if (!AQ.ImportInProgress) AQ.Import();
  • }

 

Ghi chú quan trọng

  • AmiQuote không hỗ trợ đa tài liệu như AmiBroker, nên không có tập hợp Documents. 
  • Các thao tác thường được sử dụng trong script theo lô (batch) để tự động tải và nhập dữ liệu hàng ngày. 
  • Chỉ nên điều khiển AmiQuote từ bên ngoài, không nhúng trong AFL. 

Kết luận

Với mô hình OLE Automation, bạn có thể:

  • Lập lịch tải dữ liệu tự động mỗi ngày 
  • Viết script để thực hiện kiểm tra ngược sau khi nhập dữ liệu 
  • Tích hợp vào quy trình xử lý dữ liệu tài chính phức tạp 
TAGGED:
Share This Article
Leave a Comment