Lập trình trực quan luôn là một mục tiêu tham vọng của các nhà phát triển phần mềm, ngay cả trong lĩnh vực giao dịch định lượng. Bởi vì phương pháp "những gì bạn thấy là những gì bạn nhận được" trong hình ảnh hóa làm giảm ngưỡng kỹ thuật của việc phát triển lập trình rất nhiều. Người dùng không còn phải đối phó với một đống mã nhàm chán, họ chỉ sử dụng trí tưởng tượng và suy nghĩ hợp lý để tập trung vào chính doanh nghiệp. Bạn có thể thực hiện bất cứ chương trình nào bạn muốn.
Hãy cùng nhau tham gia vào lĩnh vực lập trình hình ảnh của chiến lược giao dịch định lượng!
Sau khi đăng nhập vàohttps://www.fmz.com, đăng ký tài khoản của bạn (nếu bạn đã đăng ký, đăng nhập trực tiếp) và nhấp vào: Bảng điều khiển -> Chiến lược -> Thêm chiến lược.
Chúng ta có thể thấy một chiến lược hình dung ban đầu. Nó chỉ được sử dụng để xuất thông tin tài sản tài khoản của sàn giao dịch được cấu hình mặc định (đối tượng giao dịch đầu tiên được thêm vào backtest hoặc robot). (Xem hình bên dưới)
Bạn có thể kéo mô-đun
Các mô-đun tính toán gốc vuông như thế này đầu ra kết quả tính toán của mô-đun này.
Như bạn có thể thấy, nếu vị trí tham số đầu vào mặc định, giá trị mặc định 9 sẽ được sử dụng như là tham số đầu vào để tính căn vuông của 9.
Tất nhiên, nếu bạn muốn sử dụng mô-đun biến như là tham số đầu vào, bạn có thể ghép mô-đun biến vào vị trí tenon trực tiếp.
Bạn có thể thấy rằng có nhiều phân loại mô-đun ở phía bên trái của khu vực chỉnh sửa trực quan, và có nhiều mô-đun trực quan có sẵn trong mỗi dự án phân loại.
Có 11 loại.
Mô-đun sử dụng:
Bạn có thể nhập một chuỗi trong mô-đun văn bản, để khi bạn chạy mô-đun thông tin đầu ra, nội dung chuỗi trong mô-đun văn bản sẽ được in.
Kiểm tra hậu quả:
Giống như mã ngôn ngữ JavaScript:
function main(){
Log("Hello, Blockly!")
}
Giống như mã ngôn ngữ JavaScript:
function main () {
Log("WeChat Push!@")
}
Tương tự như vậy, trong chiến lược JavaScript, hàm chính thực hiện hàm throw
function main () {
throw "The first sentence throws an exception to stop the program!"
}
Kết quả kiểm tra hậu quả:
Nói chung, nó được sử dụng nhiều hơn khi gỡ lỗi. Ví dụ, nếu bạn muốn chương trình dừng lại trong một số điều kiện nhất định và in một số dữ liệu vào thời điểm đó để quan sát. Hoặc bạn có thể đặt một mô-đun ngoại lệ trong luồng mã nơi có thể xảy ra vấn đề, để chương trình báo cáo lỗi, và tìm một số lỗi.
Như trong chiến lược JavaScript:
function main () {
Sleep(1000 * 5)
}
Kiểm tra mô-đun ngủ:
Kết quả kiểm tra hậu quả:
Mô-đun này, giống như chức năng API LogProfit trên FMZ Quant Trading Platform, in nhật ký trả về và vẽ đường cong trả về theo các thông số đầu vào tự động.
Ví dụ:Việc thực hiện backtesting được hiển thị trong hình dưới đây:
Mã chiến lược JavaScript tương ứng là như sau:
function main () {
LogProfit(1)
Sleep(1000 * 5)
LogProfit(2)
Sleep(1000 * 5)
LogProfit(3)
Sleep(1000 * 5)
LogProfit(2)
Sleep(1000 * 5)
LogProfit(5)
}
Nó có thể được ghép ở bất kỳ vị trí nào mà bạn muốn xuất thông tin trả về.
Kiểm tra:Kết quả kiểm tra hậu quả:
Chúng ta có thể thấy rằng sự kết hợp mô-đun bao gồm
Thực hiện vòng lặp mỗi N giâyViệc sử dụng của mô-đun này về cơ bản giống như mô-đun vòng lặp.
Xử lý chính xácMô-đun này có thể được sử dụng khi mô-đun biến hoặc giá trị số cần kiểm soát độ chính xác. Giá trị số của phần tham số đầu vào sẽ được xuất ra như giá trị số của vị trí thập phân được chỉ định theo cài đặt.
Ví dụ, xử lý chính xác được thực hiện trên giá trị 3.1415926535897.
Hiển thị kiểm tra ngược:
Nó được sử dụng để xóa nhật ký. Một số nhật ký có thể được giữ lại theo các thông số đầu vào. Như trong tài liệu API:
LogReset()
Nó được sử dụng để xóa nhật ký trả về. Một số nhật ký có thể được giữ lại theo các thông số đầu vào. Như trong tài liệu API:
LogProfitReset()
Giống như mã chiến lược JavaScript:
function main () {
Log(exchange.GetTicker().Last)
}
Đầu tiên, chúng ta tạo ra một module biến có tên là K-line.Sau đó chúng ta lấy dữ liệu đường K, sử dụng mô-đun dữ liệu đường K để lấy nó, và gán giá trị cho mô-đun biến:
Mẫu thời gian của thanh K cuối cùng được in khi chạy backtest.
Giống như mã chiến lược JavaScript:
function main () {
Log(exchange.GetDepth().Asks[0])
}
Giống như mã chiến lược JavaScript:
function main () {
Log(exchange.GetAccount().Stocks)
}
Kết quả kiểm tra hậu quả:
Giống như mã chiến lược JavaScript:
function main () {
Log(exchange.GetDepth().Asks[0].Price)
}
Nó cũng có thể được sử dụng để lấy một thuộc tính trong thông tin đơn đặt hàng được trả về bởi
Sau khi học được rất nhiều, hãy kết hợp một hoạt động bảo hiểm, nghĩa là bảo hiểm cả hợp đồng ngắn hạn và tương lai.
Chúng tôi làm cho một rủi ro rủi ro arbitrage tích cực, đó là, mở một hợp đồng vị trí ngắn cho hợp đồng tương lai, và mở một hợp đồng vị trí dài cho hợp đồng gần đây.
Kết quả kiểm tra hậu quả:
Ví dụ về các chiến lược trực quan hóa:
https://www.fmz.com/strategy/121404 https://www.fmz.com/strategy/129895 https://www.fmz.com/strategy/123904 https://www.fmz.com/strategy/122318Để biết thêm các chiến lược, vui lòng tham khảo:https://www.fmz.com/square
Các bài viết khác trong loạt bài này
- Mô-đun trực quan hóa để xây dựng chiến lược giao dịchhttps://www.fmz.com/digest-topic/9509) - Mô-đun hiển thị để xây dựng chiến lược giao dịch - Hiểu cao hơn (https://www.fmz.com/bbs-topic/9815)
Việc lập trình nhàm chán có thể dễ dàng được hoàn thành bằng các khối xây dựng.