¿Qué lenguajes de programación están disponibles para implementar mi estrategia en FMZ Quant Trading Platform?La plataforma de negociación cuántica de FMZ apoya
JavaScript
,TypeScript
,Python
,C++
,PINE
,My Language
,Blockly
la visualización para escribir y diseñar estrategias.
Apoya el lenguaje JavaScript e integra las siguientes bibliotecas JavaScript:
JavaScript
estrategia de lenguaje, cuando se produce un error de excepción de programa o un error de negocio de interfaz, el registro de errores mostrará el número de línea específico donde se produjo el error en el código de estrategia, lo que es conveniente para la depuración de estrategias y la resolución de errores.ApoyaTypeScript
lenguaje, todavía ponerlo aJavaScript
estrategia cuando creamos estrategias, entonces escribimos// @ts-check
al principio del código de estrategia o haga clic en el botónTypeScript
en la esquina superior derecha del área de edición de la estrategia para cambiar aTypeScript
La plataforma reconocerá el código comoTypeScript
automáticamente y le proporcionará el apoyo correspondiente a la compilación y verificación de tipo para:
Establecer el intérprete Python utilizado por el programa de estrategia Python
Estrategias escritas en Python, cuando backtesting o comercio en vivo, si el entorno del sistema docker tiene tanto Python2 y Python3 instalado, se puede establecer la versión de Python para ser lanzado en tiempo de ejecución en la primera línea de la estrategia, tales como#!python3
y#!python2
, para que el sistema encuentre el intérprete automáticamente. Y también puede especificar una ruta absoluta, como:#!/usr/bin/python3
.
Seguridad estratégica basada en Python
Cuando se desarrollan estrategias comerciales en la plataforma de trading de FMZ Quant, el contenido de la estrategia solo es visible para los titulares de la cuenta de FMZ.PythonEl paquete, que se carga en el código de la estrategia, de modo que la localización de contenido de la estrategia se puede realizar.
La seguridad del código Python:
Debido a que Python es un lenguaje de código abierto que es extremadamente fácil de descompilar, si la estrategia no es para uso personal sino para alquiler, puede ejecutar la estrategia en su propio docker desplegado y alquilarla en forma de subcuenta o administración completa de docker si le preocupa la fuga de estrategia.
El cifrado del código de estrategia de Python:
Por defecto, el código de estrategia de Python no se encripta cuando es utilizado por el autor y se encripta cuando se alquila a otros. Al editar el siguiente código al comienzo de la estrategia de Python, puede especificar si desea encriptar el código de estrategia para uso personal o alquiler. Las versiones de Python que admiten el cifrado de los códigos de estrategia son las siguientes: Python 2.7, Python 3.5 y Python 3.6.
Cuando el autor de la estrategia la ejecuta él mismo o la utiliza para otros a través de un código de registro, el código de estrategia está cifrado:
Especificar#!python
como la versión del intérprete de Python, y luego utilizar,
para mantener separado; introduzca el comando de cifradoencrypt
Si no especifica la versión de Python, puede agregar#!,encrypt
directly.
#!python,encrypt
¿ O qué?
#!encrypt
No cifrará los códigos de estrategia cuando los escritores de estrategia corran para su propio uso y comparten con otros a través del código de registro:
#!python,not encrypted
¿ O qué?
#!not encrypted
Utilice el códigoos.getenv('__FMZ_ENV__')
para determinar si el código de cifrado es válido; la devolución de la cadena"encrypt"
Indica que ha entrado en vigor. es sólo válido en el comercio en vivo, y la backtest no cifrará elPython
Códigos de estrategia.
#!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")
Nuestra plataforma soporta el lenguaje de programación C++ y elC++ 11
Las estrategias en C++ se compilan previamente y luego se ejecutan. Las estrategias en C++ en el sistema de backtesting se ejecutan en el servidor de backtesting C++ del sistema de backtesting; las estrategias en C++ en el entorno de bot se ejecutan basadas en el docker después de haber sido compiladas.
Utilizando el lenguaje de programación C++ y elC++ 11
En la plataforma de trading FMZ Quant, puede desarrollar estrategias de trading potentes y eficientes utilizando las características modernas de C++, puede construir algoritmos de trading flexibles y escalables para el trading automatizado.
Las siguientes bibliotecas de C++ están integradas:
La plataforma admite la estrategia de escritura y diseño en MyLanguage, que es compatible con la mayoría de la gramática, comandos y funciones de Wenhua MyLanguage. MyLanguage fomenta la programación de bloques de construcción, que descompone algoritmos complejos en funciones.
Ejemplo de estrategia MyLanguage: Sistema basado en el canal de Bollinger traslacional
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;
La plataforma admite y es compatible con guiones en el lenguaje PINE deTrading View
El lenguaje PINE es un lenguaje de programación de diseño de estrategias ligero pero potente para crear indicadores y estrategias de trading en vivo, con un foro próspero que ha creado más de 100,000 scripts de PINE.
Los usuarios pueden acceder y aplicar fácilmente una amplia gama de análisis técnicos y estrategias comerciales; los usuarios pueden implementar rápidamente sus ideas comerciales con la ayuda de scripts comunitarios, eliminando la necesidad de escribir código desde cero y, por lo tanto, reduciendo significativamente el tiempo de desarrollo; ayuda a los operadores novatos y experimentados a aprender y comprender diferentes indicadores técnicos, estrategias y conceptos de programación.
Ejemplo de estrategia lingüística PINE: Super estrategia de tendencia
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()
Nuestra plataforma admite el enfoque visual Blockly para la programación. Con el editor Blockly, los usuarios pueden expresar conceptos de código uniendo bloques gráficos (similares a los bloques de construcción), como variables, expresiones lógicas, bucles, etc. De esta manera, el proceso de programación ya no necesita prestar demasiada atención a los tediosos detalles gramaticales, y puede seguir directamente los principios de programación. Al organizar y combinar bloques gráficos, los usuarios pueden comprender fácilmente la lógica de programación y realizar ideas creativas. Ideal para desarrollar un interés en el diseño de estrategias para comenzar rápidamente con el comercio programático y cuantitativo.