Đây là một bài báo cho bạn biết mọi thứ bạn cần biết về việc sử dụng AmiBroker để giao dịch trên thị trường NGOẠI HỐI.
I. DỮ LIỆU
AmiBroker rất linh hoạt liên quan đến các nguồn dữ liệu có thể được sử dụng để cung cấp dữ liệu cho chương trình.
1) Dữ liệu thời gian thực
Các nhà giao dịch ngoại hối thường yêu cầu nguồn dữ liệu thời gian thực và với AB, bạn có nhiều lựa chọn.
Quá trình cấu hình chính xác phụ thuộc vào nguồn cụ thể – nhấp vào liên kết thích hợp để tìm hiểu cách định cấu hình nguồn bạn chọn:
– eSignal – http://www.amibroker.com/video/esignal.html
– IQFeed – http://www.amibroker.com/iqfeed.html
– Nhà môi giới tương tác – http://www.amibroker.com/video/ib.html
– bất kỳ nguồn nào hỗ trợ chuẩn DDE (đây là giao diện truyền thông chung, hãy kiểm tra xem ứng dụng của nhà môi giới của bạn có hỗ trợ DDE) không – http://www.amibroker.com/dde.html
– bất kỳ nguồn nào cung cấp dữ liệu ở định dạng MetaStock – xem:
http://www.amibroker.com/guide/h_extsources.html
2) Trình tải xuống AmiQuote
Nếu bạn không yêu cầu trích dẫn thời gian thực, nhưng đủ để bạn có dữ liệu lịch sử (ví dụ để kiểm tra lại chiến lược) – thì bạn cũng có thể sử dụng chương trình tải xuống AmiQuote (chương trình đồng hành được cài đặt với AmiBroker) và nó sẽ cho phép bạn nhận dữ liệu ngoại hối MIỄN PHÍ (cả EOD và trong ngày: 1-, 3-, 5-, 15-, 30-, 60- và 120 phút).
AmiQuote có thể tải xuống các trích dẫn cho các cặp tiền tệ sau:
EURCHF, EURGBP, EURJPY, EURUSD, GBPUSD, USDCHF, USDJPY
Quá trình tải xuống được hiển thị trong video:
http://www.amibroker.net/video/forex.html
Bạn cần phải làm như sau:
– thiết lập cơ sở dữ liệu trong AmiBroker (File -> New Database, cơ sở dữ liệu cục bộ, cơ sở
khoảng thời gian, ví dụ: EOD)
– chạy AmiQuote (START -> Chương trình -> AmiBroker -> AmiQuote)
– thêm biểu tượng ngoại hối trong AQ: (Chỉnh sửa -> Thêm mã)
– chọn FOREX làm nguồn dữ liệu
– chọn phạm vi thời gian
– chọn trường “Nhập tự động”
– chọn: Tệp -> Bắt đầu tải xuống
Các báo giá ngoại hối trong ngày chỉ có sẵn trong phiên bản Đăng ký của AmiQuote.
Mặc dù toàn bộ phạm vi dữ liệu là rất dài, bạn phải nhớ rằng trong trường hợp báo giá trong ngày, cách tốt nhất là lấy dữ liệu trong các phần nhỏ, vài tuần tại một thời điểm.
Nếu không, yêu cầu có thể quá lớn để máy chủ dữ liệu xử lý nó và kết quả là nó sẽ từ chối yêu cầu.
Điều quan trọng khác cần nhớ là dữ liệu không có sẵn để tải xuống từ 13:00 – 22:00 giờ GMT (7:00 – 16:00 EST) – trong những giờ này, máy chủ của nhà cung cấp dữ liệu chỉ từ chối tất cả các yêu cầu trong ngày báo giá.
3) Tập tin văn bản.
Bạn cũng có thể sử dụng bất kỳ dữ liệu nào có trong tệp văn bản. Nhà nhập khẩu ASCII có sẵn trong AmiBroker là rất linh hoạt và chấp nhận thực tế bất kỳ tiêu chuẩn dữ liệu nào.
Để nhập các trích dẫn – thuận tiện nhất là sử dụng File -> Import Wizard.
Để tìm hiểu thêm về cách nhập dữ liệu từ các tệp ASCII (văn bản) – vui lòng đọc hướng dẫn sau:
http://www.amibroker.com/guide/w_impwizard.html
II. HƯỚNG DẪN SYMBOL
Khi bạn cấu hình cơ sở dữ liệu (để đọc dữ liệu thời gian thực), thì tất cả những gì bạn cần làm là thêm biểu tượng qua: Biểu tượng -> Trình đơn mới và AmiBroker sẽ tự động đọc dữ liệu cho biểu tượng đã chọn. Xin lưu ý rằng các nguồn dữ liệu khác nhau có mã vạch khác nhau, vì vậy hãy luôn tham khảo hướng dẫn Biểu tượng của nhà cung cấp dữ liệu để tìm hiểu về định dạng biểu tượng được yêu cầu.
Ở đây bạn sẽ tìm thấy các liên kết đến các hướng dẫn nhà cung cấp phổ biến nhất:
– eSignal:
http://www.esignalcentral.com/support/symbol/symbol_format.asp#forexGarban
http://www.esignalcentral.com/support/symbol/forex.asp
– IQFeed:
http://www.iqfeed.net/symbolguide/index…
– Môi giới tương tác:
http://www.amibroker.com/ib.html
Trong trường hợp của các nhà môi giới tương tác – nếu bạn có bất kỳ nghi ngờ gì định dạng để sử dụng –
bạn có thể dễ dàng kiểm tra bất kỳ biểu tượng nào trong IB.
Chỉ cần nhập biểu tượng trong tương tác
Nhà môi giới TWS, sau đó thay đổi chế độ xem thành chế độ Biểu tượng
(Xem -> Chế độ biểu tượng). Bây giờ bạn có thể soạn biểu tượng thực tế trong số ba
lĩnh vực:
SYMBOL-EXCHANGE-TYPE
Ở đâu:
SYMBOL giống như cột biểu tượng như được hiển thị trong TWS trong khi dưới
chế độ biểu tượng
EXCHANGE là trao đổi d trong TWS khi đang ở chế độ biểu tượng
LOẠI là một trong những điều sau đây: STK – cổ phiếu, FUT – tương lai, FOP – tùy chọn trên
tương lai, OPT – tùy chọn, IND – chỉ mục, CASH -cash (FX lý tưởng)
III. CHARTING
Vì hầu hết các cặp tiền tệ yêu cầu 4 số thập phân để hiển thị mức giá hợp lý, cần thiết phải thiết lập AmiBroker cho phù hợp. Số vị trí thập phân có thể được xác định trong hộp thoại Tùy chọn trong:
Công cụ -> Tùy chọn -> Khác

Những thay đổi này cũng sẽ ảnh hưởng đến các công cụ như các công cụ vẽ Fibonacci Extension hoặc Retracement.
IV. KIỂM TRA VÀ DỮ LIỆU DỮ LIỆU
AmiBroker cho phép bạn thực hiện các thao tác quét và khám phá dữ liệu phức tạp (cả trong thời gian thực và sử dụng các dấu ngoặc kép lịch sử). Để thực hiện phân tích dữ liệu và hiển thị các giá trị của các chỉ số đã chọn trong bảng tùy chỉnh – chúng tôi có thể sử dụng cửa sổ Phân tích Tự động. Mô tả chi tiết về cách thực hiện các khám phá có sẵn tại:
http://www.amibroker.com/guide/h_exploration.html
Như một ví dụ ngắn – chúng ta sẽ tìm thấy sự giao nhau của MACD và đường Signal của nó và các giá trị hiển thị bổ sung của ký hiệu mà chúng ta thử nghiệm. Tham số thứ 3 của hàm AddColumn () cho phép tùy chỉnh số lượng vị trí sau dấu thập phân, vì vậy có thể xác định nếu chúng ta cần 2 hoặc 4 chữ số thập phân. Nếu chúng ta sử dụng:
AddColumn (Đóng, “Đóng”, 1.4);
sau đó – 4 chữ số thập phân sẽ được hiển thị. Mặt khác – nếu chúng ta sử dụng:
AddColumn (Đóng, “Đóng”, 1.2);
thì AB sẽ chỉ hiển thị 2 số thập phân.
Để thực hiện kiểm tra – cần thực hiện các thao tác sau:
– mở Trình soạn thảo công thức (Phân tích -> Trình soạn thảo công thức)
– nhập công thức:
Buy = Cross( MACD(), Signal() ); Sell = Cross( Signal(), MACD() ); Filter = Buy OR Sell; AddColumn( Close, "Close", 1.4);
– Công cụ -> Gửi tới phân tích tự động
– chọn khoảng thời gian thăm dò
– nhấn EXPLORE
Kết quả là – chúng ta sẽ nhận được một danh sách các điểm giao nhau giữa MACD / Signal và giá trị của biểu tượng được chọn trên thanh đó.
V. BACKTESTING
LƯU Ý: Trừ khi có ghi chú khác, tất cả các ví dụ dưới đây cho rằng bạn giao dịch các hợp đồng có kích thước đầy đủ.
Trước hết, cần nhập thông tin biểu tượng cụ thể vào Biểu tượng -> Trang thông tin (riêng cho từng mã). Trong trường hợp tiền tệ bằng đô la Mỹ (như EURUSD), các cài đặt sau sẽ được sử dụng:

– Kích thước lô tròn phải bằng 1
– Kích thước đánh dấu phải được đặt thành giá trị pip bằng 0,0101 cho các loại tiền tệ có bốn chữ số thập phân và 0,01 cho các đơn vị tiền tệ có hai chữ số thập phân (vì vậy trong trường hợp EURUSD là 0,0001).
– Giá trị điểm biểu diễn giá trị của lãi / lỗ bằng 1 chuyển động giá toàn điểm. Nó có thể được tính toán bằng cách chia giá trị lợi nhuận theo chuyển động giá. Vì vậy, nếu bạn giao dịch toàn bộ hợp đồng EURUSD +0.0001 chuyển động giá (một pip) thể hiện lợi nhuận 10 đô la:
PointValue = lợi nhuận / chuyển động = 10 $ / 0,0001 = 100000
– Đặt cọc ký quỹ trong hầu hết các trường hợp phải được đặt thành 1000 (tỷ lệ ký quỹ 1% từ $ 100’000)
1) Đơn vị tiền tệ bằng USD
Hãy phân tích các kết quả được tạo ra bởi một công thức đơn giản (một sự giao nhau giữa giá trung bình động 12 và 24 ngày của giá đóng cửa, giao dịch 3 hợp đồng tại một thời điểm). Để thực hiện một backtest – nó cần thiết để làm như sau:
– mở Trình soạn thảo công thức (Phân tích -> Trình soạn thảo công thức)
– nhập công thức:
Buy = Cross( MA(Close, 12) , MA( Close, 24) ); Sell = Cross( MA(Close, 24) , MA( Close, 12) ); SetPositionSize(3, spsShares );
– chọn: Công cụ -> Gửi tới phân tích tự động
Kết quả là – cửa sổ Phân tích Tự động sẽ mở ra. Trong hộp thoại cài đặt (nút SETTNGS), bạn cần bật FUTURES MODE (để sử dụng thông tin được nhập vào hộp thoại Thông tin) và xác định Giá trị ban đầu.

sau đó – bấm OK. Trong màn hình chính của cửa sổ AA, cần xác định phạm vi thời gian của backtest và các ký hiệu được bao gồm trong thử nghiệm. Ví dụ của chúng tôi sẽ là: Biểu tượng hiện tại, Tất cả các trích dẫn
Sau đó – khi tất cả mọi thứ được cấu hình – nhấn nút BACKTEST . Bây giờ chúng ta hãy xem danh sách kết quả.
Lợi nhuận được tính như sau:
NumContracts * (SellPrice – BuyPrice) * PointValue

Trong giao dịch đầu tiên:
– Giá nhập bằng 1.2154
– Giá thoát bằng 1.2304
– NumContracts = 3 (vì chúng tôi giao dịch 3 hợp đồng).
– chúng tôi giao dịch trên biên độ 1%, do đó, khoản tiền gửi là 1.000 đô la x 3 = 3.000 đô la (được thể hiện bằng Giá trị vị trí )
Lợi nhuận = 3 * (1.2304 – 1.2154) * 100’000 = 4’500
Vì vậy – lợi nhuận khớp với kết quả chúng tôi nhận được bằng cách tính toán thủ công.
2) Đơn vị tiền tệ được tính bằng đơn vị tiền tệ khác với USD (giả sử tài khoản của bạn bằng USD)
AmiBroker cho phép bạn xác định đơn vị tiền tệ cơ sở và tỷ giá hối đoái (cố định hoặc động) cho các loại tiền tệ khác nhau và kết quả là – để có được kết quả chính xác khi kiểm tra chứng khoán bằng tiền tệ khác với tiền tệ danh mục cơ sở của bạn.
Các cài đặt này có thể được xác định trong: Công cụ -> Tuỳ chọn -> Hộp thoại tiền tệ .

AmiBroker cho phép sử dụng cả báo giá cố định và năng động (lịch sử) cho mục đích backtesting (sử dụng báo giá động sẽ cho phép bạn kiểm tra ảnh hưởng thực sự của các thay đổi tỷ giá tiền tệ cho các giao dịch của bạn bằng tiền tệ khác nhau).
Có các yêu cầu sau để sử dụng điều chỉnh tiền tệ:
a) Trường Symbol-> Information, ” Currency ” hiển thị đơn vị tiền tệ khác với tiền tệ BASE
b) Đơn vị tiền tệ phù hợp (được định nghĩa trong Ký hiệu-> Thông tin) có mục nhập phù hợp trong trang Tuỳ chọn-> Đơn vị tiền tệ
c) tỷ lệ động “FX SYMBOL” được định nghĩa trong các ưu tiên EXISTS trong cơ sở dữ liệu của bạn và HAS QUOTES cho mỗi ngày theo phạm vi phân tích.
Hộp kiểm “INVERSE” trong các ưu tiên cần được kiểm tra, khi kiểm tra tỷ giá ngoại tệ như USDJPY hoặc USDCHF – không được tính bằng đồng tiền cơ sở của danh mục đầu tư.
Vì lý do tương tự – nếu chúng ta xem xét ví dụ về EURUSD – khi “USD” là đồng tiền BASE của bạn thì tỷ giá EUR sẽ là “thẳng” EURUSD fx (ví dụ ~ 1.25). Nhưng khi “EUR” là tiền tệ BASE của bạn thì tỷ giá USD sẽ là INVERSE của EURUSD (nghĩa là ~ 1 / 1.25).

Leave a Reply
You must be logged in to post a comment.