Tài nguyên đang được tải lên... tải...

Ngôn ngữ lập trình

Những ngôn ngữ lập trình có sẵn để thực hiện chiến lược của tôi trên FMZ Quant Trading Platform?Programming languages supportedFMZ Quant Trading Platform hỗ trợJavaScript, TypeScript, Python, C++, PINE, My Language, Blocklyhình dung để viết và thiết kế các chiến lược.

JavaScript

Nó hỗ trợ ngôn ngữ JavaScript và tích hợp các thư viện JavaScript sau:

  • http://mathjs.org/ - http://mikemcl.github.io/decimal.js/ - http://underscorejs.org/ - http://ta-lib.org/Lỗi ngoại lệ chương trình, lỗi giao diện kinh doanhJavaScriptchiến lược ngôn ngữ, khi một lỗi ngoại lệ chương trình hoặc lỗi kinh doanh giao diện xảy ra, nhật ký lỗi sẽ hiển thị số dòng cụ thể nơi lỗi xảy ra trong mã chiến lược, thuận tiện cho việc gỡ lỗi chiến lược và khắc phục sự cố lỗi.

TypeScript

Nó hỗ trợTypeScriptngôn ngữ, vẫn đặt nó vàoJavaScriptchiến lược khi chúng ta tạo ra các chiến lược, sau đó chúng ta viết// @ts-checkở đầu mã chiến lược hoặc nhấp vào nútTypeScriptở góc trên bên phải của khu vực chỉnh sửa chiến lược để chuyển sangTypeScriptNền tảng sẽ nhận ra mã nhưTypeScripttự động và cung cấp cho bạn hỗ trợ biên soạn và kiểm tra kiểu tương ứng cho:

  • An toàn kiểu: Chức năng kiểm tra kiểu tĩnh của TypeScript có thể giúp bạn tìm ra các lỗi tiềm ẩn khi viết mã và cải thiện chất lượng mã.
  • Hoàn thành mã tự động: Hệ thống kiểu TypeScript giúp tìm nhanh hơn các thuộc tính và phương pháp bạn cần khi viết mã, cải thiện hiệu quả phát triển.
  • Cấu trúc mã rõ ràng hơn: Với TypeScript, bạn có thể tổ chức và duy trì mã của mình tốt hơn, làm cho nó dễ đọc và hiểu.
  • Các tính năng lập trình hướng đối tượng mạnh mẽ: TypeScript cung cấp các tính năng lập trình hướng đối tượng mạnh mẽ, chẳng hạn như giao diện, lớp học, chung và vân vân, giúp bạn viết mã chiến lược mạnh mẽ và có thể sử dụng nhiều lần hơn.

Python

  • Thiết lập trình diễn Python được sử dụng bởi chương trình chiến lược Python

    Các chiến lược được viết bằng Python, khi backtesting hoặc giao dịch trực tiếp, nếu môi trường hệ thống docker có cả Python2 và Python3 được cài đặt, bạn có thể đặt phiên bản Python được khởi chạy tại thời gian chạy trên dòng đầu tiên của chiến lược, chẳng hạn như#!python3#!python2Và bạn cũng có thể chỉ định một đường dẫn tuyệt đối, chẳng hạn như:#!/usr/bin/python3.

  • Bảo mật chiến lược dựa trên Python

    Khi các chiến lược giao dịch được phát triển trên nền tảng giao dịch FMZ Quant, nội dung chiến lược chỉ hiển thị cho chủ tài khoản FMZ. Và trên nền tảng giao dịch FMZ Quant, bạn có thể đạt được bản địa hóa hoàn toàn mã chiến lược. Ví dụ, một logic chiến lược có thể được đóng gói thành mộtPythongói, được tải trong mã chiến lược, để nội dung chiến lược nội dung có thể được thực hiện.

    An ninh của mã Python:

    Vì Python là một ngôn ngữ mã nguồn mở cực kỳ dễ giải mã, nếu chiến lược không phải để sử dụng cá nhân mà để thuê, bạn có thể chạy chiến lược trên docker được triển khai của riêng bạn và thuê nó dưới dạng tài khoản phụ hoặc quản lý docker đầy đủ nếu bạn lo lắng về rò rỉ chiến lược.

    Mã hóa mã chiến lược Python:

    Theo mặc định, mã chiến lược Python không được mã hóa khi sử dụng bởi tác giả và được mã hóa khi cho thuê cho người khác. Bằng cách chỉnh sửa mã sau đây ở đầu chiến lược Python, bạn có thể chỉ định xem có nên mã hóa mã chiến lược cho sử dụng cá nhân hay cho thuê. Các phiên bản Python hỗ trợ mã hóa mã chiến lược là như sau: Python 2.7, Python 3.5 và Python 3.6.

    • Khi tác giả chiến lược tự chạy nó hoặc sử dụng nó cho người khác thông qua mã đăng ký, mã chiến lược được mã hóa:

      Xác định#!pythonnhư phiên bản của trình diễn Python, và sau đó sử dụng,để giữ riêng biệt; nhập lệnh mã hóaencryptNếu bạn không chỉ định phiên bản của Python, bạn có thể thêm#!,encrypt directly.

      #!python,encrypt
      

      Hoặc

      #!encrypt
      
    • Nó sẽ không mã hóa các mã chiến lược khi nhà viết chiến lược chạy cho riêng mình và chia sẻ với những người khác thông qua mã đăng ký:

      #!python,not encrypted
      

      Hoặc

      #!not encrypted
      

    Sử dụng mãos.getenv('__FMZ_ENV__')để xác định xem mã mã hóa có hợp lệ hay không; trả lại chuỗi"encrypt"Nó chỉ có giá trị trong giao dịch trực tiếp, và backtest sẽ không mã hóaPythonmã chiến lược.

    #!encrypt
    def main():
        ret = os.getenv('__FMZ_ENV__')
        # If the print variable ret is the string "encrypt" or ret == "encrypt" is true, that means the encryption is valid. 
        Log(ret, ret == "encrypt")
    

C++

Nền tảng của chúng tôi hỗ trợ ngôn ngữ lập trình C ++ vàC++ 11Các chiến lược trong C++ được biên dịch trước và sau đó được thực thi. Các chiến lược trong C++ trong hệ thống backtesting được chạy trên máy chủ backtesting C++ của hệ thống backtesting; Các chiến lược trong C++ trong môi trường bot được chạy dựa trên docker sau khi chúng được biên dịch. Sử dụng ngôn ngữ lập trình C++ vàC++ 11Sử dụng các tính năng hiện đại của C ++, bạn có thể xây dựng các thuật toán giao dịch linh hoạt và có thể mở rộng cho giao dịch tự động.

Các thư viện C ++ sau đây được tích hợp:

MyLanguage

Nền tảng hỗ trợ viết và thiết kế chiến lược trong MyLanguage, tương thích với hầu hết các ngữ pháp, lệnh và chức năng của Wenhua MyLanguage. MyLanguage khuyến khích lập trình khối xây dựng, phá vỡ các thuật toán phức tạp thành các chức năng. Nó hỗ trợ các ứng dụng logic tài chính phức tạp thông qua ngữ pháp ngắn gọn, cấu trúc dữ liệu chuyên môn và thư viện chức năng tài chính mạnh mẽ. Xây dựng các ứng dụng theo cách mô-đun để cải thiện hiệu quả và khả năng duy trì.

Ví dụ về chiến lược MyLanguage: Hệ thống dựa trên kênh Bollinger chuyển dịch

M := 12; // Parameter range 1, 20
N := 3; // Parameter range 1, 10
SDEV := 2; // Parameter range 1, 10
P := 16; // Parameter range 1, 20
//The strategy is a trend-following trading strategy for larger periods, such as daily.
//This model is only used as a case study for model development, and entering the market accordingly will be at your own risk.
////////////////////////////////////////////////////////
//Panning BOLL Channel Calculation
MID:=MA(C,N);//Calculate the middle track       
TMP:=STD(C,M)*SDEV;//Calculate the standard deviation
DISPTOP:=REF(MID,P)+TMP;//Translate BOLL channel upper track
DISPBOTTOM:=REF(MID,P)-TMP;//Translate BOLL channel down track
//System admission
H>=DISPTOP,BPK;
L<=DISPBOTTOM,SPK;
AUTOFILTER;

Ngôn ngữ PINE

Nền tảng hỗ trợ và tương thích với các kịch bản bằng ngôn ngữ PINE củaTrading View. Ngôn ngữ PINE là một ngôn ngữ lập trình thiết kế chiến lược nhẹ nhưng mạnh mẽ để tạo ra các chỉ số và chiến lược giao dịch trực tiếp đã được kiểm tra, với một diễn đàn phát triển mạnh đã tạo ra hơn 100.000 kịch bản PINE. Người dùng có thể dễ dàng truy cập và áp dụng một loạt các phân tích kỹ thuật và chiến lược giao dịch; người dùng có thể nhanh chóng thực hiện ý tưởng giao dịch của họ với sự giúp đỡ của các kịch bản cộng đồng, loại bỏ sự cần thiết phải viết mã từ đầu và do đó giảm đáng kể thời gian phát triển; nó giúp cả thương nhân mới và có kinh nghiệm để tìm hiểu và hiểu các chỉ số kỹ thuật, chiến lược và khái niệm lập trình khác nhau.

Ví dụ về chiến lược ngôn ngữ PINE: Chiến lược siêu xu hướng

strategy("supertrend", overlay=true)

[supertrend, direction] = ta.supertrend(input(5, "factor"), input.int(10, "atrPeriod"))

plot(direction < 0 ? supertrend : na, "Up direction", color = color.green, style=plot.style_linebr)
plot(direction > 0 ? supertrend : na, "Down direction", color = color.red, style=plot.style_linebr)

if direction < 0
    if supertrend > supertrend[2]
        strategy.entry("entry long", strategy.long)
    else if strategy.position_size < 0
        strategy.close_all()
else if direction > 0
    if supertrend < supertrend[3]
        strategy.entry("entry short", strategy.short)
    else if strategy.position_size > 0
        strategy.close_all()

Hiển thị khối

Nền tảng của chúng tôi hỗ trợ cách tiếp cận trực quan Blockly cho lập trình. Với trình soạn Blockly, người dùng có thể thể hiện các khái niệm mã bằng cách ghép lại các khối đồ họa (tương tự như các khối xây dựng), chẳng hạn như biến, biểu thức logic, vòng lặp, vv. Bằng cách này, quá trình lập trình không còn cần phải chú ý quá nhiều đến các chi tiết ngữ pháp tẻ nhạt, và có thể trực tiếp tuân theo các nguyên tắc lập trình. Bằng cách sắp xếp và kết hợp các khối đồ họa, người dùng có thể dễ dàng hiểu logic lập trình và thực hiện các ý tưởng sáng tạo. Lý tưởng để phát triển sự quan tâm đến thiết kế chiến lược để nhanh chóng bắt đầu với giao dịch định lượng, lập trình.

Chào mừng đến với nền tảng giao dịch lượng tử FMZ Chăm sóc an toàn