Ngôn ngữ thuật toán QPILE để lập trình robot giao dịch cho QUIK.
Robot giao dịch có thể được viết bằng một ngôn ngữ cụ thể, tương tự như mã chương trình. QPILE là một trong số đó, bài viết này sẽ xem xét ngôn ngữ này, so sánh ngôn ngữ QPILE và
LUA , đồng thời đưa ra các ví dụ về robot bằng ngôn ngữ này.
- Thông tin chung về QPILE
- Làm việc với bàn
- Cấu trúc QPILE
- Loại dữ liệu
- Biểu thức
- Chức năng
- Chương trình gỡ lỗi
- QPILE hay LUA?
- Làm cách nào để tạo rô bốt giao dịch trên QPILE?
- Giao dịch rô bốt trên QPILE – giải pháp làm sẵn
- Robot di chuyển trung bình
- N. Moroshkin máy tính vị trí
- Bộ lọc âm lượng
- Tùy chọn Hy Lạp
- Robot giao dịch TRIX cho QUIK
- Bộ tiền xử lý M4
Thông tin chung về QPILE
QPILE là từ viết tắt của QUIK Programmable Interface and Logic Environment.
Đây là một loạt các lệnh được thông dịch bởi máy trạm QUIK. Nó chủ yếu được sử dụng để tính giá của danh mục đầu tư chứng khoán. Ngôn ngữ này cũng được sử dụng cho:
- tính toán lại năng động giá tài sản của khách hàng trên máy tính để bàn của nhà môi giới và trong danh mục đầu tư của họ. Trong trường hợp thứ hai, tổng giá của chúng cũng được tính toán lại;
- tìm kiếm các chỉ số còn thiếu bằng cách sử dụng các thuật toán và dữ liệu của riêng họ để cho vay ký quỹ;
- phát triển chiến lược giao dịch đúng đắn.
Ngôn ngữ mô tả cấu trúc của bảng: bổ nhiệm các cột và hàng, công thức. Sau đó, các phép toán, biến, dữ liệu từ các bảng khác có thể được sử dụng để tính toán. Mã chương trình được tải từ máy chủ QUIK hoặc từ đĩa của người dùng được xử lý bởi trình thông dịch ngôn ngữ, tính toán các giá trị trong công thức. Các bảng của một chương trình có một nguồn dữ liệu nhưng các phép tính không bị trùng lặp và không ảnh hưởng đến hiệu quả của hệ thống. Khi làm việc với bảng QUIK, các bảng trên QPILE có các chức năng tiêu chuẩn. QUIK tại nơi làm việc được trang bị trình gỡ lỗi mã QPILE. https://articles.opexflow.com/software-trading/torgovyj-terminal-quik.htm Ngôn ngữ này sẽ cho phép bạn mô tả các bảng mới với cấu trúc nhất định, đánh dấu các ô có giá trị nhất định, tính toán các trường dựa trên biểu thức toán học và logic. Người dùng sẽ nhận được thông báo dưới dạng tín hiệu âm thanh hoặc tin nhắn văn bản. Các bảng trên QPILE có thể được chỉnh sửa, in, sao chép, xuất thông qua máy chủ ODBC và DDE. Dữ liệu ban đầu là từ các bảng QUIK:
- giao dịch, bao gồm cả để thực hiện và không cần thiết;
- lệnh, bao gồm lệnh dừng, cho các giao dịch mua bán không cần kê đơn và lệnh – báo cáo cho các giao dịch trong giao dịch thanh toán;
- “danh mục khách hàng”, “mua / bán”
- dữ liệu từ các vị trí của người tham gia theo tiền, tài khoản giao dịch, công cụ.
Các bảng dựa trên QPILE không thể được sao chép sang tệp văn bản thông qua menu ngữ cảnh và xuất sang hệ thống phân tích kỹ thuật và không thể phát triển biểu đồ dựa trên chúng. Không thể lọc hoặc sắp xếp các bảng dựa trên QPILE.
Làm việc với bàn
Để tải mã chương trình, bạn cần chọn menu dịch vụ, sau đó chọn tập lệnh QPILE. Bạn cũng có thể sử dụng tổ hợp Ctrl + F11. Sau khi bạn cần nhấp vào “Thêm” và chọn tệp mong muốn. Nó có phần mở rộng .qpl và tên của nó sẽ xuất hiện trong danh sách Các tập lệnh Có sẵn.
- bảng tên;
- số lượng cột và khách hàng;
- danh sách các định danh và khách hàng;
- danh sách các tham số và mã nguồn của tệp.
Cấu trúc QPILE
Loại dữ liệu
- String – chuỗi.
- Double là một số dấu phẩy động.
- Bộ sưu tập – một bộ sưu tập.
- Bản đồ – một mảng kết hợp – một chuỗi các cặp cho phép bạn lấy thông tin theo khóa.
Biểu thức
Các phép toán cộng, trừ, nhân, chia đều được áp dụng. Các biểu thức logic “và”, “hoặc”, bằng, nhiều hơn, ít hơn, bất đẳng thức, cấu trúc có điều kiện “nếu… thì…” cũng được sử dụng.
Chức năng
Các hàm có thể được đặt ở bất kỳ đâu trong chương trình và có các tên khác nhau. Tổng cộng, 18 nhóm hàm và hàm toán học có sẵn để lấy giá trị của bảng và tham số, mảng kết hợp, danh sách bảng và các tác vụ khác. Lớp một:
- Các hàm toán học cho phép bạn trả về giá trị của sin, cosine, tiếp tuyến, cotang của đối số, tính toán số mũ của đối số, tạo một số ngẫu nhiên, v.v.
- Các lệnh chung : NEW_GLOBAL để khởi tạo một biến toàn cục và MESSAGE để mở thông báo.
Các chức năng để làm việc với:
- Bộ sưu tập của các đối tượng (Collection) . Chúng cho phép bạn tạo một bộ sưu tập mới, trả về số lượng phần tử cần thiết, thay thế hoặc chèn các giá trị mong muốn.
- Mảng liên kết (MAP) . Giúp tạo và quản lý mảng.
- Tệp – làm việc với tệp văn bản, duy trì nhật ký ghi của chương trình. Tên tệp có thể chứa đường dẫn đến nó.
- Các chuỗi .
- Đồ thị . Các hàm GET_CANDLE để truy cập dữ liệu nến và GET_CANDLE EX để trả về một mảng kết hợp.
- Các ứng dụng . Tạo lệnh và gửi chúng đến hệ thống giao dịch.
- Các thẻ . Cấu tạo và cài đặt của chúng trên biểu đồ. Thêm, xóa một hoặc tất cả các nhãn, lấy và thiết lập các thông số cho một nhãn cụ thể.
Ngoài ra còn có các chức năng cho:
- Để truy cập các hàng của bảng QUIK tùy ý và danh sách các tham số có sẵn . Quyền truy cập vào dữ liệu bảng nơi làm việc. Chúng bao gồm GET_ITEM để trả về MAP và GET_NUMBER_OF để trả về số lượng mục nhập.
- Để làm việc với một bảng có thể lập trình . Các lệnh này hoạt động trên bảng RIÊNG. Nó có thể đọc được bởi các chức năng tiêu chuẩn từ đoạn trước và bởi các chức năng này. Nhóm này bao gồm các lệnh để thêm, sửa đổi và xóa một hàng có chỉ mục, và xóa hoàn toàn bảng RIÊNG.
Để nhận các giá trị, hãy sử dụng:
- Bảng các giao dịch hiện tại . Nhận các tham số thông tin trao đổi bằng lệnh GET_PARAM (_EX).
- Trích dẫn các cửa sổ . Nhận các giá trị của báo giá công cụ.
- Bảng vị trí theo công cụ và tiền . Lấy dữ liệu về khách hàng, công ty, công cụ, tài khoản kho bằng mã.
Chức năng dịch vụ – trả về ngày của phiên giao dịch hiện tại, chuỗi liên kết, ngày và giờ hiện tại, xác định trạng thái kết nối, ngắt chế độ tính toán.
Chương trình gỡ lỗi
Kiểm soát từng bước hoạt động của chương trình được thực hiện trong cửa sổ “Gỡ lỗi”. Nó được mở từ menu ngữ cảnh “Bắt đầu tính toán trong chế độ gỡ lỗi”. Nó cũng có thể được mở bằng lệnh breakpoint () và dòng chương trình sẽ được tô màu đỏ. Cửa sổ chứa các trường có mã chương trình và các giá trị biến. Ở cuối cửa sổ có các nút “Bước tiếp theo”, “Tiếp tục thực hiện”, “Dừng tính toán”. Nhấn F5 sẽ tiếp tục thực hiện chương trình, tổ hợp Shift + F5 sẽ dừng gỡ lỗi, phím F10 sẽ hướng đến dòng tiếp theo.
QPILE hay LUA?
LUA là một ngôn ngữ lập trình mới để tạo rô bốt giao dịch. Giống như QPILE, nó được triển khai trong thiết bị đầu cuối QUIK. https://articles.opexflow.com/programming/lua.htm Một trang web dành riêng cho việc phát triển robot giao dịch để giao dịch cho thấy những ưu điểm của ngôn ngữ LUA so với QPILE. Vì vậy, nó có thể hoạt động như một tập lệnh không biên dịch và mã bytecode, được trang bị các công cụ dành cho nhà phát triển và cơ chế lập trình hướng đối tượng. Các đối tượng được viết bằng ngôn ngữ lập trình khác có thể được kết nối với các chương trình LUA. LUA cung cấp 8 kiểu dữ liệu, bao gồm cả các dữ liệu có thể đo được. Ngôn ngữ LUA đa luồng, nhanh chóng và các giao dịch và sự kiện đầu cuối là không đồng bộ. LUA phổ biến hơn QPILE và nhiều phần mở rộng đã được viết cho nó.
Ngôn ngữ QPILE hiện không được dùng nữa. Các chuyên gia trên các diễn đàn khuyên bạn nên sử dụng LUA. Mặc dù các chương trình hữu ích và hiệu quả vẫn đang được sử dụng.
Tuy nhiên, ngôn ngữ QPILE đơn giản so với LUA, vì vậy nếu bạn không có kinh nghiệm trong lập trình, tốt hơn là nên chọn QPILE. Bằng ngôn ngữ này, bạn có thể viết một robot đơn giản nếu bạn không cần thực hiện các phép tính phức tạp.
Làm cách nào để tạo rô bốt giao dịch trên QPILE?
Để tạo cố vấn giao dịch, bạn sẽ cần các chương trình sau:
- Quik của NÓ.
- Trình soạn thảo mã Notepad ++.
- Hướng dẫn về QPILE.
- Plugin XML để phát hiện mã trong Notepad ++.
Tải xuống và cài đặt các chương trình này. Bật cú pháp ngôn ngữ bằng cách đặt userDefineLang.xml trong đường dẫn C: \ Users \ User \ AppData \ Roaming \ Notepad ++ \
Khối “Cài đặt người dùng” được bổ sung với các biến NUMBER và INTERVAL, sẽ được sử dụng trong chức năng lấy N thanh cuối cùng. Hàm DATETIME đặt ngày và giờ của máy chủ, và các hàm ngày và giờ hiện tại CURDATE và CURTIME được gọi từ nó. Thời gian hiện tại được chuyển đổi thành một số trên dòng 24. Dòng 26 đặt thời gian để thuật toán chạy từ 10:00:01 đến 18:40:00 UTC.
Giao dịch rô bốt trên QPILE – giải pháp làm sẵn
Robot di chuyển trung bình
Robot demo không thích hợp để giao dịch thực.
N. Moroshkin máy tính vị trí
Một chương trình để tính toán các mức rút tiền tối đa cho phép và mục tiêu cho các vị thế mua và bán với giá bán và giá chào mua hiện tại. Các mức được tính cho 2 giá trị của khối lượng nhập lệnh. Robot tìm khối lượng vị trí cho phép khi ấn định lệnh dừng trong một bước từ giá mở cửa với tính toán mở vị trí theo hướng đi lên của thanh. Các mức tìm thấy được nhập vào cửa sổ đầu cuối, sau đó được phản ánh trong biểu đồ giá. Các giao dịch được cố định cho một công cụ nhất định. Nếu một vị trí được mở, rô bốt sẽ bắt đầu tính toán các thông số của nó. Tùy thuộc vào sự thay đổi của vị trí, các đơn hàng được giao được điều chỉnh.
Bộ lọc âm lượng
Danh mục đầu tư rô-bốt để tính giá trị trung bình cộng của khối lượng nến và so sánh với sản phẩm trung bình theo hệ số X. Hoạt động chính xác với các biểu đồ được vẽ trong một khoảng thời gian đã chọn.
Tùy chọn Hy Lạp
Danh mục đầu tư để tính toán và hiển thị “Hy Lạp” của các tùy chọn. Nó khác với phương pháp Black-Showers.
Robot giao dịch TRIX cho QUIK
Chương trình dựa trên Chỉ báo TRIX. Khi chỉ báo đóng trên vạch 0, mức được chỉ định, robot sẽ ở vị trí Long. Vị thế được đóng bằng Chốt lời, Cắt lỗ hoặc cắt lỗ.
Bộ tiền xử lý M4
Chương trình làm việc với QPILE và Lua. Bao gồm các tệp lưu trữ có tệp thực thi, tài liệu và tệp DLL với phân tích cú pháp biểu thức chính quy. Để sử dụng chương trình, bạn cần giải nén các tệp thực thi và đặt regexp2 vào đường dẫn C: \ Windows. Bài học về QPILE cho QUIK: https://youtu.be/vMTXwDUujpI Cài đặt tập lệnh trên QPILE trong thiết bị đầu cuối Quik: https://youtu.be/0B7qL8Svh7I Một phần trên github mô tả việc sử dụng ngôn ngữ thuật toán QPILE được tích hợp trong Hệ thống QUIK máy trạm đặt tại liên kết – https://euvgub.github.io/quik_user_manual/ch8.html. QPILE là một ngôn ngữ lỗi thời, nhưng khá đơn giản và dễ tiếp cận ngay cả đối với các nhà giao dịch mới làm quen. Robot giao dịch và các chương trình đã được chứng minh trong một thời gian dài vẫn tiếp tục hoạt động trên đó. Tuy nhiên, đối với các tác vụ phức tạp hơn thì tốt hơn nên sử dụng LUA.
0к