Какие языки программирования доступны для реализации моей стратегии на FMZ Quant Trading Platform?Платформа FMZ Quant Trading поддерживает
JavaScript
,TypeScript
,Python
,C++
,PINE
,My Language
,Blockly
визуализация для написания и разработки стратегий.
Он поддерживает язык JavaScript и интегрирует следующие библиотеки JavaScript:
JavaScript
языковой стратегии, когда происходит ошибка исключения программы или ошибка интерфейса, журнал ошибок отображает конкретный номер строки, где произошла ошибка в коде стратегии, что удобно для отладки стратегии и устранения неполадок.Он поддерживаетTypeScript
язык, все еще установить его наJavaScript
стратегия когда мы создаем стратегии, то мы пишем// @ts-check
в начале кода стратегии или нажмите кнопку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++ 11
Стратегии в C++ предварительно компилируются и затем выполняются. Стратегии в C++ в системе бэкстестинга запускаются на сервере бэкстестинга C++ системы бэкстестинга; Стратегии в C++ в среде бота запускаются на основе докера после их компиляции.
Использование языка программирования C++ иC++ 11
Используя современные функции C++, вы можете создавать гибкие и масштабируемые торговые алгоритмы для автоматизированной торговли.
В C++ интегрированы следующие библиотеки:
Платформа поддерживает стратегию написания и проектирования в 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 редактор, пользователи могут выражать концепции кода, собирая вместе графические блоки (похожие на строительные блоки), такие как переменные, логические выражения, петли и т. Д. Таким образом, процесс программирования больше не нужно обращать слишком большого внимания на утомительные грамматические детали, и может напрямую следовать принципам программирования. путем расположения и объединения графических блоков, пользователи могут легко понять логику программирования и реализовать творческие идеи. Идеально подходит для развития интереса к разработке стратегии, чтобы быстро начать с программируемой, количественной торговли.