Trong các bài viết trước đây, chúng ta đã biết rằng giao dịch định lượng là một chương trình kịch bản dựa trên dữ liệu thu được từ sàn giao dịch, sau một loạt các tính toán, phán đoán và kích hoạt để thực hiện một số hoạt động để điều hành tài khoản sàn giao dịch. Những hành động thu dữ liệu này, hoạt động tài khoản được thực hiện thông qua giao diện API sàn giao dịch. Nói đơn giản, kịch bản và sàn giao dịch tương tác, vì đó là tương tác, chắc chắn sẽ có sự tương tác bình thường, tương tác bất thường. Khi xảy ra sự tương tác bất thường, giao diện trả về thông tin bất thường.
Tất nhiên, các chương trình trên thị trường, hệ thống giao dịch định lượng, hoặc các chương trình tự phát triển sẽ có nhiều loại thông báo lỗi, thông báo lỗi. Thông tin lỗi này không chỉ giới hạn trong giao diện API của sàn giao dịch.
Những thông tin sai trên các nền tảng giao dịch định lượng của các nhà phát minh cũng có thể được chia thành một vài loại:
Lỗi ngữ pháp chiến lược Những lỗi này thường xảy ra nhiều nhất, thường là do người mới không quen với lập trình và lỗi ngữ pháp trong việc viết mã trong giai đoạn thử nghiệm. Ví dụ:
Mã viết ít ký tự như dấu ngoặc. Những lỗi như vậy thường được hiển thị trong trang chính sách chỉnh sửa, và chính sách cũng không chạy (đã trả về lỗi trực tiếp khi chạy, như hình dưới).
Vì vậy, sau khi viết chính sách, hãy nhìn vào thói quen chỉnh sửa trang chính sách của nền tảng để xem có phải có một số chữ số màu đỏ nhỏ, nếu có, chắc chắn sẽ có một lỗi rõ ràng.
Chương trình bất thường khi chạy do chương trình chính sách BUG Chương trình có BUG, khi chương trình đang chạy, việc kích hoạt bất thường sẽ khiến chương trình ngừng bất thường, hiển thị thông báo lỗi như vậy.
Những lỗi như vậy sẽ dẫn đến sự bất thường của chương trình và chương trình sẽ ngừng chạy.
Các lỗi gây ra bởi cấu hình, cài đặt không đúng
Trong FMZ, giao dịch được định nghĩa chung là:X_Y
Trong định dạng này, X là tên của đồng tiền giao dịch, Y là tên của đồng tiền tính toán (ví dụ, đồng tiền tính toán của cặp giao dịch hợp đồng tại chỗ tiền tệ thường được biểu thị bằng USD, được giới thiệu trong một số bài viết trước đây).BTC_USDT
Và nếu tôi viết nhầm các giao dịch,BTC-USDT
。
Một lỗi được báo cáo trong hệ thống FMZ:
Một số người cho rằng:
Ngoài ra, một sai lầm thường gặp của Deng Xiaoping là:
Những lỗi như vậy là do thay đổi mật khẩu của tài khoản nền tảng FMZ, dẫn đến các đối tượng giao dịch được cấu hình.API KEY
Không hiệu quả (API KEY của người dùng được cấu hình trên nền tảng FMZ sau khi được mã hóa ở phía trình duyệt), chính sách không thể khởi động, sau đó báo cáo lỗi.
Giao diện gọi lỗi
Trong các bài viết trước đây, chúng tôi đã tìm hiểu về các giao diện trên nền tảng FMZ.Giao diện tạo yêu cầu mạng、Giao diện không tạo yêu cầu mạngCác báo cáo lỗi giao diện không gây ra sự dừng lại của chương trình chính sách, thường là do sự bất thường của cuộc gọi giao diện, trả về dữ liệu sai, sau đó chính sách không thực hiện lỗi, sử dụng dữ liệu sai gây ra lỗi bất thường của chương trình gây ra lỗi của chương trình (khái niệm lỗi được đề cập trong một số bài viết trước).
Dưới đây là một số thông báo lỗi giao diện tạo ra các yêu cầu mạng:
Thời gian qua mạng
Một trong những thông báo sai thường gặp của những người mới bắt đầu là họ đang sử dụng thiết bị trên mạng nội địa (máy tính của riêng họ hoặc máy chủ trong nước). Vì hầu hết các sàn giao dịch đều bị tường, nên hầu hết các sàn giao dịch trên mạng nội địa không thể truy cập được, và các giao diện truy cập sẽ báo cáo trễ.
http 429 lỗi
Một trong những thông báo sai lầm cổ điển là việc gọi giao diện giao dịch quá thường xuyên, vượt quá giới hạn giao dịch.
Một số bạn học mới có thể nói rằng tôi đã đăng ký nhiều hơn một vài sàn giao dịch.API KEY
Hoặc tôi đã yêu cầu một số tài khoản giao dịch không hoạt động. Chúng ta cần biết rằng giao dịch giới hạn tần suất truy cập giao diện thường dựa trên địa chỉ IP, đơn giản là chỉ khi yêu cầu được gửi đến một địa chỉ IP được tổng hợp trên địa chỉ IP đó, máy chủ giao dịch sẽ từ chối truy cập nếu vượt quá giới hạn này.
Báo cáo lỗi ở cấp giao diện giao dịch
Các lỗi trên là lỗi cấp mạng. Các vấn đề cấp giao diện giao dịch cũng sẽ báo cáo lỗi, ví dụ như tôi muốn truy cập thị trường hiện tại, nhưng tôi đã thiết lập một cặp giao dịch không tồn tại. Tôi đã thử nghiệm trong công cụ chuẩn bị trên nền tảng FMZ, công cụ chuẩn bị là một công cụ kiểm tra rất tiện dụng, rất phù hợp với các nhu cầu gọi chức năng, thu thập dữ liệu và các nhu cầu khác.
Kết quả thực hiện của công cụ debugging, thực hiện công cụ debugging và thực hiện đĩa không có sự khác biệt.
Huobi 错误 GetTicker: Invalid ticker: {"Info":{"err-code":"invalid-parameter","err-msg":"invalid symbol","status":"error","ts":1620872079355},"High":0,"Low":0,"Sell":0,"Buy":0,"Last":0,"Volume":0,"OpenInterest":0,"Time":0}
Thông báo lỗi ở đây có nghĩa là giao dịch không hiệu quả (như bạn có thể thấy ở đây)."err-msg":"invalid symbol"
(Tạm dịch:
Có rất nhiều trường hợp về các lỗi liên quan đến kinh doanh, ví dụ như một số sàn giao dịch không hỗ trợ giá trị dẫn phần nhỏ khi đặt dẫn phần nhỏ, trong đó giá trị dẫn phần nhỏ cũng sẽ dẫn đến lỗi gọi giao diện.
Danh sách một cuộc gọi giao diện không tạo yêu cầu mạng
Thiết lập mã hợp đồng tương lai Một số giao diện chỉ thiết lập một số biến toàn cầu trong hệ thống mà không tạo ra các yêu cầu mạng, ví dụ:
Tuy nhiên, các thông số được chuyển nhượng sai hoặc viết sai cũng có thể gây ra lỗi.
Tuy nhiên, bất kể loại lỗi nào, thông tin lỗi hiển thị là thông tin quan trọng để tìm ra vấn đề, thường có thể thấy vấn đề từ thông tin lỗi. Bạn có thể sử dụng công cụ dịch thuật, dịch thông tin lỗi và trích xuất thông tin quan trọng; ví dụ như trong ví dụ trên."err-msg":"invalid symbol"
Có lẽ bạn sẽ biết rằng giao dịch cặp được đặt sai, vì thường được sử dụng các biểu tượng tiếng Anh để đại diện cho mã giao dịch, cặp giao dịch.
Về thông tin thông tin sai sót, chúng tôi sẽ chỉ nói về những điều sau đây, và một bài viết về các câu hỏi thường gặp sẽ được thu thập liên tục để hỏi:https://www.fmz.com/bbs-topic/1427
Hệ thống kiểm tra lại cũng là một trọng tâm trong các công cụ định lượng, hệ thống kiểm tra lại có thể tạo ra các nguyên mẫu chiến lược thử nghiệm thuận tiện, các lỗi tiềm ẩn trong chiến lược thử nghiệm ban đầu, các vấn đề logic, v.v.
Dưới đây là một mô tả đơn giản về các cấp độ ngôn ngữ chiến lược khác nhau được hỗ trợ bởi FMZ về hệ thống kiểm tra trên nền tảng FMZ.
JavaScript
Các công cụ này được sử dụng trong các ứng dụng khác nhau.
Python
Trong Host Overview, bạn có thể chọn cụ thể được phân bổ cho nhà quản lý nào (cả nhà quản lý được triển khai của riêng bạn, nhà quản lý công cộng của nền tảng FMZ đều chạy). Vì tải trọng của nhà quản lý công cộng trên nền tảng FMZ lớn, nên sử dụng trình quản lý nội bộ (đây cũng sẽ nhanh hơn, khi nhà quản lý công cộng lặp lại, khi nhiều nhiệm vụ hơn tải trọng, sẽ hủy bỏ một số nhiệm vụ lặp lại, dẫn đến sự gián đoạn lặp lại).
C++
Không giống như các ngôn ngữ kịch bản, các chính sách C++ cần được biên dịch trước khi thực hiện. Các chính sách của ngôn ngữ C++ được biên dịch trước trên nền tảng FMZ (bộ chủ) (nếu có vấn đề trong việc viết mã, có thể không được biên dịch, chỉ báo lỗi trực tiếp) (nếu được biên dịch sau đó được kiểm tra lại trên nền tảng FMZ (bộ chủ)).
Ngôn ngữ Ma
Các triển khai dưới cùng là JavaScript, cũng được thực hiện ở phía cuối trình duyệt.
Hình ảnh hóa
Các triển khai dưới cùng là JavaScript, cũng được thực hiện ở phía cuối trình duyệt.
Các nhà phát minh đã phân chia các mô hình kiểm tra lại của hệ thống kiểm tra lại của nền tảng giao dịch định lượng thành hai (một ngôn ngữ không phân biệt chiến lược, một ngôn ngữ là cài đặt kiểm tra lại, các ngôn ngữ khác nhau đều kiểm tra lại chiến lược).
Thông tin về hệ thống kiểm tra lại có thể được xem trong hướng dẫn của nền tảng:
1, thử nghiệm lại ở mức độ tương tự Phân tích lần lượt ở cấp độ tương tự đơn giản là dữ liệu giá được tạo ra theo từng nút thời gian dựa trên dữ liệu K-line.
K线中一根柱子不是有高开低收么,构成了一个价格框架,在这个K线代表的时间范围内,价格都在这个价格框架内,所以只要生成的价格在这个K线高开低收框架范围内,这个模拟出来的价格就是合理的。
Một số người cho rằng, "Điều này không phải là một vấn đề lớn".https://www.fmz.comDĩ nhiên, khi hệ thống hồi âm thực tế thực hiện mô phỏng này, tình hình phức tạp hơn một chút so với hình trên, không cần phải đi sâu vào đây, chỉ cần hiểu cơ chế hồi âm ở cấp độ tương tự. Biết được nguyên tắc này, bạn cần phải chú ý đến nhược điểm của việc lặp lại ở cấp độ tương tự, mặc dù tốc độ lặp lại ở cấp độ tương tự rất nhanh (vì giá được tạo ra bởi tương tự không phải là giá thực tế mỗi giây được phát hành một lần) nhưng nếu chiến lược phù hợp.Mô phỏng xu hướng thay đổi dấu hiệuTrong trường hợp này, giá có thể không phải là xu hướng này trong thực tế, mặc dù giá đều nằm trong khuôn khổ của cột K). Dòng K được sử dụng để tạo ra dữ liệu tick tương tự được gọi là đường K dưới cùng, và chu kỳ của đường K được gọi làChu kỳ đường K dưới cùngTrong trang cài đặt chính sách, bạn có thể cài đặt như sau:
Ở đây đặt 1 phút, nghĩa là sử dụng dữ liệu đường K với chu kỳ 1 phút làm nguồn dữ liệu để tạo tick tương tự.
Một điểm khác là sử dụng phép kiểm tra ở mức độ tương tự rõ ràng là không phù hợp với chiến lược tần số cao. Tuy nhiên, đối với chiến lược xu hướng, việc sử dụng phép kiểm tra ở mức độ tương tự vẫn có thể phản ánh hiệu suất của chiến lược.
2 Kiểm tra lại ở mức độ thực Nói về tính toán lại ở cấp độ tương tự, chúng ta hãy nói về tính toán lại ở cấp độ thực. Nói đơn giản, tính toán lại ở cấp độ thực là việc phát hành dữ liệu giá theo giây thực tế khi tính toán lại. Cho phép chiến lược tính toán lại giá mỗi giây trong thị trường. Nhược điểm là lượng dữ liệu tái đo ở mức đĩa thực quá lớn, không thể tái đo trong khoảng thời gian lớn hơn (thường là dưới 1 ngày); có thể được tắt bằng cách tắt.Dữ liệu phân khúc, Giảm độ sâu dữ liệu (dữ liệu giao dịch từng ký tự, dữ liệu độ sâu giao dịch cũng có ảnh chụp nhanh từng giây trong việc kiểm tra ở cấp độ đĩa thực, vì vậy lượng dữ liệu kiểm tra ở cấp độ đĩa thực là lớn), để tăng phạm vi kiểm tra phù hợp, ví dụ:
Các nhà phát minh định lượng sàn giao dịch có nguồn dữ liệu nào? Hệ thống kiểm tra thông thường sử dụng dữ liệu từ trung tâm dữ liệu của nền tảng FMZ, trung tâm dữ liệu của nền tảng FMZ tự động thu thập dữ liệu thị trường về các loại tiền tệ của các sàn giao dịch được thiết lập tốt và cung cấp cho hệ thống kiểm tra trên nền tảng.
1, sử dụng dữ liệu FMZ theo mặc định Một số bài viết trước đã đề cập đến:https://www.fmz.com/bbs-topic/6857#量化交易平台Dữ liệu phản hồi được cung cấp bởi nền tảng chỉ hỗ trợ một số lượng giao dịch hạn chế (dữ liệu phản hồi toàn thị trường, toàn loại tiền tệ là một con số thiên văn, tất cả đều không thực tế, nền tảng thu thập dữ liệu thị trường của các sàn giao dịch chính, các loại tiền tệ chính).
2, sử dụng dữ liệu nguồn dữ liệu tùy chỉnh Bạn có thể sử dụng các tùy chọn trên trang xem lại để thiết lập nguồn dữ liệu tùy chỉnh, đơn giản là nếu bạn có dữ liệu của một sàn giao dịch, bạn có thể cung cấp hệ thống xem lại cho nền tảng FMZ để xem lại theo yêu cầu định dạng của nền tảng FMZ.
Một số thông tin về các nguồn dữ liệu tùy chỉnh trong tài liệu FMZ API:https://www.fmz.com/api#自定义数据源
Một số chương trình khác trong thư viện FMZ:
Những người mới tham gia có thể tìm hiểu các tài liệu tham khảo.
Làm theo quy trình, định lượng giao dịchHọc tập、Kiểm tra、Suy nghĩ‖ Suy nghĩ về vấn đề không phải là suy nghĩ trong không gian, nó là không hiệu quả.Tìm kiếm thông tinVà rồiHãy thử.、suy nghĩ và phân tíchNếu vấn đề không được giải quyết, hãy lặp lại các bước trên.
Tuy nhiên, thường khi gặp vấn đề, bạn sẽ cảm thấy:
Ồ, rất khó để lập trình, định lượng, viết các chiến lược. Ngươi nhìn nửa ngày rồi, ngươi vẫn còn ngây ngô! Bố không muốn bỏ cuộc! ...
Trong thực tế, việc truy cập FMZ rất đơn giản, bạn chỉ cần tìm kiếm thông tin.
Sau đó là khả năng tự động, sử dụng hệ thống kiểm tra, các công cụ chỉnh sửa có thể rất thuận tiện để kiểm tra, không phải là để kiểm tra một chiến lược hoàn chỉnh. Trên thực tế, nếu bạn hoàn toàn là nền tảng 0, bạn thậm chí có thể học các nền tảng của chương trình JavaScript trên hệ thống kiểm tra định lượng FMZ.
Đây là trang web hướng dẫn mà tôi thường học về JS:https://www.runoob.com/js/js-loop-for.htmlKhông chỉ giới hạn trong JS, tất cả các kiến thức về CNTT đều có thể được tìm hiểu và học hỏi tại đây. Ví dụ, tôi không biết cách sử dụng biểu thức chính thức của JS. Tất nhiên, hãy kiểm tra thông tin trước, và sau đó tự tay thử.
Tôi thấy một ví dụ:Tôi muốn thử nghiệm và thậm chí có thể học hỏi bằng hệ thống kiểm tra lại của nền tảng FMZ.
Thiết lập một sàn giao dịch trên hệ thống kiểm tra
Hãy thử mã sau đây:
function IsEmail(str) {
var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;
return reg.test(str);
}
function main() {
var strEmailAddress1 = "13512345678"
Log(strEmailAddress1, " 是邮件地址么 ? ", " 回答:", IsEmail(strEmailAddress1))
var strEmailAddress2 = "123456789@qq.com"
Log(strEmailAddress2, " 是邮件地址么 ? ", " 回答:", IsEmail(strEmailAddress2))
}
Nhìn kìa, một công cụ học tập tuyệt vời! Ví dụ, nếu tôi muốn học cách viết logic vòng lặp trong ngôn ngữ JavaScript, hãy thử:
Theo thứ tự trong mảng, vòng lặp in từng phần tử trong một biến số mảng:
function main() {
var arr = [{coinName: "BTC", price: 10000}, {coinName: "LTC", price: 100}, {coinName: "ETH", price: 2000}, {coinName: "ETC", price: 500}]
for (var i = 0 ; i < arr.length ; i++) {
Log(arr[i])
}
}
Có phải ngay lập tức là cảm giác được thúc đẩy để học? Trên thực tế, trên FMZ, bạn hoàn toàn có thể xem hướng dẫn JavaScript, và học cơ bản JavaScript trên hệ thống truy vấn. Ngôn ngữ JavaScript gần như được nắm vững, bước vào giai đoạn tiếp theo cần thực sự sử dụng giao diện giao dịch để lấy dữ liệu thử nghiệm, cũng có thể sử dụng nền tảng FMZ.Công cụ chỉnh sửaMột số người dùng đang sử dụng các ứng dụng này.
Sau đó là suy nghĩ nhiều hơn, đưa một đối với ba, kiểm tra xác minh, phân tích so sánh, v.v.
nhịuCảm ơn