В процессе загрузки ресурсов... загрузка...

Языки программирования

Какие языки программирования доступны для реализации моей стратегии на FMZ Quant Trading Platform?Programming languages supportedПлатформа FMZ Quant Trading поддерживаетJavaScript, TypeScript, Python, C++, PINE, My Language, Blocklyвизуализация для написания и разработки стратегий.

JavaScript

Он поддерживает язык JavaScript и интегрирует следующие библиотеки JavaScript:

  • http://mathjs.org/ - http://mikemcl.github.io/decimal.js/ - http://underscorejs.org/ - http://ta-lib.org/Ошибка исключения программы, ошибка интерфейса в работеJavaScriptязыковой стратегии, когда происходит ошибка исключения программы или ошибка интерфейса, журнал ошибок отображает конкретный номер строки, где произошла ошибка в коде стратегии, что удобно для отладки стратегии и устранения неполадок.

TypeScript

Он поддерживаетTypeScriptязык, все еще установить его наJavaScriptстратегия когда мы создаем стратегии, то мы пишем// @ts-checkв начале кода стратегии или нажмите кнопкуTypeScriptв правом верхнем углу области редактирования стратегии перейти наTypeScriptПлатформа распознает код какTypeScriptавтоматически и предоставить вам соответствующую поддержку сборки и проверки типа для:

  • Безопасность типов: функция статической проверки типов TypeScript может помочь вам найти потенциальные ошибки при написании кода и улучшить качество кода.
  • Автоматическое завершение кода: Типовая система TypeScript позволяет быстрее находить атрибуты и методы, необходимые при написании кода, повышая эффективность разработки.
  • Более четкая структура кода: с помощью TypeScript вы можете лучше организовать и поддерживать свой код, делая его легким для чтения и понимания.
  • Мощные функции объектно-ориентированного программирования: TypeScript предоставляет мощные функции объектно-ориентированного программирования, такие как интерфейсы, классы, генерики и так далее, помогая вам писать более надежный и многоразовый стратегический код.

Питон

  • Установите интерпретатор Python, используемый программой стратегии Python

    Стратегии, написанные в Python, при бэкстестинге или живой торговле, если в среде системы докера установлены как Python2, так и Python3, вы можете установить версию Python, которая будет запущена во время выполнения на первой строке стратегии, например:#!python3и#!python2Вы также можете указать абсолютный путь, например:#!/usr/bin/python3.

  • Стратегия безопасности на базе Python

    Когда торговые стратегии разрабатываются на платформе FMZ Quant Trading, содержимое стратегии видно только владельцам счетов FMZ. А на платформе FMZ Quant Trading вы можете достичь полной локализации кода стратегии.ПитонПакет, который загружается в код стратегии, так что локализация контента стратегии может быть реализована.

    Безопасность кода Python

    Поскольку Python - это язык с открытым исходным кодом, который чрезвычайно легко декомпилировать, если стратегия предназначена не для личного использования, а для аренды, вы можете запустить стратегию на собственном развернутом докере и арендовать ее в виде подсчета или полного управления докером, если вы беспокоитесь о утечке стратегии.

    Шифрование кода Python:

    По умолчанию, код стратегии Python не шифруется при использовании автором и шифруется при сдаче в аренду другим. Изменив следующий код в начале стратегии Python, вы можете указать, хотите ли вы шифровать код стратегии для личного использования или аренды. Версии Python, которые поддерживают шифрование кодов стратегии, следуют: Python 2.7, Python 3.5 и Python 3.6.

    • Когда автор стратегии запускает ее сам или использует ее для других через регистрационный код, код стратегии шифруется:

      Уточнить#!pythonкак версия интерпретатора Python, а затем использовать,чтобы держать в стороне; введите команду шифрованияencryptЕсли вы не указали версию Python, вы можете добавить#!,encrypt directly.

      #!python,encrypt
      

      Или...

      #!encrypt
      
    • Он не будет шифровать коды стратегии, когда авторы стратегии работают для собственного использования и делиться с другими через регистрационный код:

      #!python,not encrypted
      

      Или...

      #!not encrypted
      

    Использовать кодos.getenv('__FMZ_ENV__')чтобы определить, является ли код шифрования действительным; возвращение строки"encrypt"Он действителен только в режиме реального времени, и обратный тест не будет шифроватьPythonстратегические коды.

    #!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++

Наша платформа поддерживает язык программирования C++ иC++ 11Стратегии в C++ предварительно компилируются и затем выполняются. Стратегии в C++ в системе бэкстестинга запускаются на сервере бэкстестинга C++ системы бэкстестинга; Стратегии в C++ в среде бота запускаются на основе докера после их компиляции. Использование языка программирования C++ иC++ 11Используя современные функции C++, вы можете создавать гибкие и масштабируемые торговые алгоритмы для автоматизированной торговли.

В C++ интегрированы следующие библиотеки:

MyLanguage

Платформа поддерживает стратегию написания и проектирования в MyLanguage, которая совместима с большинством грамматики, команд и функций Wenhua MyLanguage. MyLanguage поощряет программирование строительных блоков, которое разбивает сложные алгоритмы на функции. Она поддерживает сложные приложения финансовой логики с помощью лаконичной грамматики, специализированных структур данных и мощной библиотеки финансовых функций.

Пример стратегии MyLanguage: Система, основанная на трансляционном канале Боллинджера

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;

Язык сосны

Платформа поддерживает и совместима со сценариями на языке PINETrading ViewЯзык PINE - это легкий, но мощный язык программирования для разработки стратегий для создания проверенных индикаторов и стратегий, с процветающим форумом, который создал более 100 000 сценариев PINE. Пользователи могут легко получить доступ и применять широкий спектр технического анализа и торговых стратегий; пользователи могут быстро реализовать свои торговые идеи с помощью скриптов сообщества, устраняя необходимость написания кода с нуля и, таким образом, значительно сокращая время разработки; он помогает как начинающим, так и опытным трейдерам изучать и понимать различные технические индикаторы, стратегии и концепции программирования.

Пример языковой стратегии PINE: Стратегия супертенда

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()

Визуализация блока

Наша платформа поддерживает Blockly визуальный подход к программированию. С Blockly редактор, пользователи могут выражать концепции кода, собирая вместе графические блоки (похожие на строительные блоки), такие как переменные, логические выражения, петли и т. Д. Таким образом, процесс программирования больше не нужно обращать слишком большого внимания на утомительные грамматические детали, и может напрямую следовать принципам программирования. путем расположения и объединения графических блоков, пользователи могут легко понять логику программирования и реализовать творческие идеи. Идеально подходит для развития интереса к разработке стратегии, чтобы быстро начать с программируемой, количественной торговли.

Добро пожаловать на торговую платформу FMZ Quant Ключевая безопасность