[TOC]

Việc phát triển các chiến lược trên Nền tảng giao dịch định lượng Inventor không thể tách rời khỏi việc thiết kế các tham số chiến lược và tương tác chiến lược. Nền tảng giao dịch định lượng Inventor cam kết cung cấp các công cụ giao dịch định lượng đơn giản, dễ sử dụng và mạnh mẽ, đồng thời liên tục cải tiến thiết kế và chức năng của sản phẩm. Bằng cách nâng cấp “tham số chiến lược” và “kiểm soát tương tác”, tính linh hoạt trong thiết kế tham số và tương tác trong thiết kế chiến lược đã được tăng cường hơn nữa. Chức năng của các tham số chiến lược và điều khiển tương tác đã được cải tiến để giúp đạt được một số yêu cầu thiết kế dễ dàng hơn. Trong bài viết này, chúng ta hãy cùng xem xét hai khía cạnh thiết yếu của thiết kế chiến lược: “thiết kế tham số chiến lược” và “thiết kế tương tác chiến lược”.
Các loại tham số chiến lược trong Inventor Quant không tăng lên và vẫn có năm loại tham số mà chúng ta quen thuộc:
Khi đó chắc chắn bạn sẽ hỏi tôi, nội dung nào đã được thêm vào và tối ưu hóa trong bản cập nhật nền tảng này?
Bản nâng cấp này bổ sung “cấu hình thành phần” cho các điều khiển ràng buộc tham số, đơn giản hóa các chức năng “nhóm” và “phụ thuộc tham số” và tích hợp hai chức năng này vào “cấu hình thành phần”. Đối với giá trị mặc định của tham số, tùy chọn “tùy chọn”/“bắt buộc” được thêm vào để xác định xem chiến lược có đủ điều kiện để vận hành hay không. Nếu tham số được đặt thành “bắt buộc” nhưng không có giá trị cụ thể nào được ghi trong điều khiển tham số khi chiến lược được thực thi, Tham số, chiến lược không thể chạy tại thời điểm này. Bây giờ chúng ta đã hiểu chung về những thay đổi khi nâng cấp, hãy cùng kiểm tra chúng một cách chi tiết.

Chúng ta đã nói sơ qua về các chức năng “tùy chọn”/“bắt buộc” trước đó, nên tôi sẽ không đi sâu vào chi tiết ở đây. Sau đây chủ yếu giải thích “cấu hình thành phần”. Cài đặt cấu hình thành phần có thể được hiểu đơn giản là:
Thiết lập các thuộc tính, kiểu và quy tắc khác nhau của các điều khiển mà các tham số tương ứng với (được ràng buộc với). Kiểm soát ràng buộc mặc định cho các tham số kiểu số (kiểu số) là hộp nhập. Bạn có thể thiết lập các quy tắc cho dữ liệu nhận được bởi hộp nhập, tức là sử dụng các điều khiển “giá trị tối thiểu” và “giá trị tối đa” trong hình để thiết lập họ.
Ngoài hộp điều khiển nhập liệu mặc định, nền tảng này đã bổ sung:

Các tham số kiểu Boolean đặc biệt ở chỗ chúng chỉ có một điều khiển tương ứng. Đây là công tắc điều khiển mặc định. Và giá trị mặc định của tham số cũng là bắt buộc.
Vì giá trị Boolean có thể là đúng hoặc sai nên chúng là tùy chọn nhị phân. Do đó, việc sử dụng điều khiển chuyển mạch để tương ứng với loại tham số này là rất phù hợp.
Nhìn chung, các tham số kiểu Boolean được sử dụng để kiểm soát xem một số chức năng chiến lược nhất định có được bật trên nền tảng hay không.

Ngoài hộp điều khiển nhập liệu mặc định, nền tảng này đã bổ sung:
chữ Trong “Loại thành phần”, chọn cài đặt: Văn bản. Hộp điều khiển nhập liệu trên giao diện chiến lược tương ứng với tham số hiện tại sẽ thay đổi thành hộp văn bản lớn hơn. Sự khác biệt giữa điều khiển văn bản và điều khiển hộp nhập liệu thông thường là: văn bản nhập vào hộp văn bản có thể tự động ngắt dòng và hộp văn bản có thể điều chỉnh kích thước của điều khiển. Giá trị biến của tham số giao diện là: chuỗi.
Bộ chọn thời gian Trong “Loại thành phần”, chọn cài đặt là: Bộ chọn thời gian. Hộp điều khiển đầu vào trên giao diện chiến lược tương ứng với các tham số hiện tại sẽ trở thành nút điều khiển để thiết lập thời gian và ngày tháng. “Time Selector for Component Type with String Type Parameter” khác với “Time Selector for Component Type with Numeric Type Parameter”. Time selection for string type parameter có thêm tùy chọn “Time Format” có thể thiết lập Select của control. Định dạng:
Bộ chọn màu Trong “Loại thành phần”, chọn cài đặt là: Bộ chọn màu. Hộp điều khiển đầu vào trên giao diện chiến lược tương ứng với tham số hiện tại sẽ trở thành điều khiển chọn màu. Thường được sử dụng để thiết kế các thông số cho việc cài đặt màu sắc. Giá trị biến của tham số giao diện là: chuỗi (giá trị màu tương ứng với màu đã chọn, ví dụ: #7e1717).

Kiểm soát mặc định tương ứng với tham số loại hộp thả xuống là hộp thả xuống, nhưng lần này có rất nhiều nâng cấp được thực hiện cho hộp thả xuống chọn đơn giản trước đây:
Ngoài hộp điều khiển thả xuống mặc định, lần này nền tảng còn bổ sung:

Tham số kiểu chuỗi được mã hóa cũng đặc biệt và chỉ có một điều khiển tương ứng. Đây là hộp điều khiển nhập liệu được mã hóa mặc định.
Trên nền tảng này, các điều khiển kiểu chuỗi được mã hóa thường được sử dụng để thiết lập một số thông tin nhạy cảm, chẳng hạn như khóa bí mật, mật khẩu, v.v. Các giá trị tham số đầu vào này sẽ được truyền đi sau khi được mã hóa cục bộ.
Giá trị biến của tham số giao diện là: chuỗi.
Đối với tất cả các loại tham số giao diện chiến lược nêu trên, bản nâng cấp này tích hợp các chức năng “nhóm tham số” và “phụ thuộc tham số” trước đó vào “cấu hình thành phần”. Có các thiết lập “Nhóm” và “Bộ lọc” trong cấu hình thành phần của tất cả các tham số giao diện.
Nhóm Bạn có thể nhập trực tiếp nhãn bạn muốn nhóm vào hộp điều khiển thả xuống nhóm và sử dụng phím Enter để xác nhận nhập nhóm. Hệ thống sẽ ghi lại nhãn hiện đang nhập vào các tùy chọn nhóm. Sau đó, bạn có thể gán nhóm cho các tham số giao diện hiện tại. Sau khi nhóm, trên giao diện kiểm tra chiến lược/giao dịch thực tế, các tham số được đánh dấu là một nhóm sẽ được hiển thị trong vùng nhóm.
Bộ lọc Nhập một số biểu thức vào bộ điều khiển bộ lọc để xác định xem tham số hiện tại có cần được kích hoạt và hiển thị hay không. Chức năng này có thể thực hiện việc hiển thị hoặc ẩn tham số hiện tại tùy thuộc vào cài đặt tham số nhất định. Ví dụ về biểu thức lọc:
过滤器格式: a>b , a==1 , a , !a , a>=1&&a<=10 , a>b
Tại đây, a và b đều biểu diễn các biến của tham số giao diện chiến lược.
Nếu những giải thích trên có vẻ hơi khó hiểu, cách tốt nhất để hiểu chúng là thực sự sử dụng và kiểm tra các hàm tham số này:
Lấy chính sách ngôn ngữ JavaScript làm ví dụ:
function main() {
Log("---------------------------开始测试数字类型参数---------------------------")
Log("变量pNum1:", pNum1, ", 变量值类型:", typeof(pNum1))
Log("变量pNum2:", pNum2, ", 变量值类型:", typeof(pNum2))
Log("变量pNum3:", pNum3, ", 变量值类型:", typeof(pNum3))
Log("变量pNum4:", pNum4, ", 变量值类型:", typeof(pNum4))
Log("---------------------------开始测试布尔类型参数---------------------------")
Log("变量pBool1:", pBool1, ", 变量值类型:", typeof(pBool1))
Log("变量pBool2:", pBool2, ", 变量值类型:", typeof(pBool2))
Log("---------------------------开始测试字符串类型参数---------------------------")
Log("变量pStr1:", pStr1, ", 变量值类型:", typeof(pStr1))
Log("变量pStr2:", pStr2, ", 变量值类型:", typeof(pStr2))
Log("变量pStr3:", pStr3, ", 变量值类型:", typeof(pStr3))
Log("变量pStr4:", pStr4, ", 变量值类型:", typeof(pStr4))
Log("---------------------------开始测试下拉框类型参数---------------------------")
Log("变量pCombox1:", pCombox1, ", 变量值类型:", typeof(pCombox1))
Log("变量pCombox2:", pCombox2, ", 变量值类型:", typeof(pCombox2))
Log("变量pCombox3:", pCombox3, ", 变量值类型:", typeof(pCombox3))
Log("---------------------------开始测试加密串类型参数---------------------------")
Log("变量pSecretStr1:", pSecretStr1, ", 变量值类型:", typeof(pSecretStr1))
}

Chiến lược kiểm tra tham số hoàn chỉnh: https://www.fmz.com/strategy/455212
Có một thiết kế phụ thuộc tham số ẩn trong các tham số trên. Nhiều chiến lược có yêu cầu kích hoạt một loạt các thiết lập dựa trên một tham số nhất định, có thể đạt được với các phụ thuộc tham số như thế này.
Ngoài ra còn có năm loại điều khiển tương tác chiến lược trong Nền tảng giao dịch định lượng Inventor và các điều khiển tương tác này cũng đã được tối ưu hóa và nâng cấp lần này. Đã thêm “cấu hình thành phần” để đơn giản hóa chức năng nhóm.

Các điều khiển tương tác về cơ bản giống như “cấu hình thành phần” của các tham số giao diện chiến lược. Ngoài các điều khiển hộp nhập mặc định, các loại thành phần cũng hỗ trợ:
Cách sử dụng cũng giống như các loại thành phần khác của tham số giao diện chiến lược, do đó sẽ không nhắc lại ở đây.

Các điều khiển tương tác về cơ bản giống như “cấu hình thành phần” của các tham số giao diện chiến lược.

Ngoài hộp điều khiển nhập liệu mặc định, loại thành phần này cũng hỗ trợ:

Hộp thả xuống của điều khiển tương tác cũng đã được nâng cấp: “hỗ trợ nhiều lựa chọn”, “giá trị mặc định tùy chỉnh”, tùy chọn liên kết với dữ liệu cụ thể, v.v.
Ngoài thành phần hộp thả xuống mặc định, các thành phần sau đây được thêm vào:

Điều khiển tương tác kiểu nút không có bất kỳ mục nhập nào. Khi được kích hoạt, lệnh tương tác được gửi chỉ chứa tên điều khiển nút.
Cách tốt nhất để hiểu là kiểm tra thủ công. Một chiến lược kiểm tra cũng được chuẩn bị ở đây.
Cần lưu ý rằng các điều khiển tương tác không thể được kiểm tra trong hệ thống kiểm tra ngược và chỉ có thể tạo thử nghiệm thời gian thực.
function main() {
var lastCmd = ""
while (true) {
var cmd = GetCommand() // 接收交互控件产生的消息
if (cmd) {
Log(cmd)
lastCmd = cmd
}
LogStatus(_D(), lastCmd)
Sleep(500)
}
}
Nhập ngẫu nhiên một số thông tin, thiết lập một số tùy chọn, sau đó nhấp vào nút điều khiển tương tác để tạo tin nhắn tương tác. Chiến lược này sẽ ghi lại các tin nhắn và in chúng ra.


Hoàn thành chiến lược kiểm tra kiểm soát tương tác: https://www.fmz.com/strategy/455231



function main() {
Log("参数test1使用币种控件选择后,test1的值为:", test1)
Log("参数test2使用交易代码控件选择后,test2的值为:", test2)
}

参数test1使用币种控件选择后,test1的值为: BTC

参数test2使用交易代码控件选择后,test2的值为: ETH_USDT.next_quarter

function main() {
while (true) {
var cmd = GetCommand()
if (cmd) {
Log(cmd)
}
Sleep(2000)
}
}

test1:SOL

test2:XRP_USDT.swap