En la carga de los recursos... Cargando...

Lenguajes de programación

¿Qué lenguajes de programación están disponibles para implementar mi estrategia en FMZ Quant Trading Platform?Programming languages supportedLa plataforma de negociación cuántica de FMZ apoyaJavaScript, TypeScript, Python, C++, PINE, My Language, Blocklyla visualización para escribir y diseñar estrategias.

JavaScript también

Apoya el lenguaje JavaScript e integra las siguientes bibliotecas JavaScript:

  • http://mathjs.org/ - http://mikemcl.github.io/decimal.js/ - http://underscorejs.org/ - http://ta-lib.org/Error de excepción del programa, error de negocio de la interfazJavaScriptestrategia 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.

Tipo de escritura

ApoyaTypeScriptlenguaje, todavía ponerlo aJavaScriptestrategia cuando creamos estrategias, entonces escribimos// @ts-checkal principio del código de estrategia o haga clic en el botónTypeScripten la esquina superior derecha del área de edición de la estrategia para cambiar aTypeScriptLa plataforma reconocerá el código comoTypeScriptautomáticamente y le proporcionará el apoyo correspondiente a la compilación y verificación de tipo para:

  • Seguridad de tipo: La función de comprobación de tipo estática de TypeScript puede ayudarlo a encontrar posibles errores al escribir código y mejorar la calidad del código.
  • Completación automática de código: El sistema de tipos de TypeScript hace que sea más rápido encontrar los atributos y métodos que necesita al escribir código, mejorando la eficiencia del desarrollo.
  • Una estructura de código más clara: con TypeScript, puede organizar y mantener mejor su código, lo que lo hace fácil de leer y entender.
  • Potentes características de programación orientada a objetos: TypeScript proporciona potentes características de programación orientada a objetos, como interfaces, clases, genéricos y así sucesivamente, lo que le ayuda a escribir un código de estrategia más robusto y reutilizable.

Python

  • 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#!python3y#!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#!pythoncomo la versión del intérprete de Python, y luego utilizar,para mantener separado; introduzca el comando de cifradoencryptSi 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á elPythonCó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")
    

C++

Nuestra plataforma soporta el lenguaje de programación C++ y elC++ 11Las 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++ 11En 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:

Mi Lenguaje

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;

Lenguaje PINE

La plataforma admite y es compatible con guiones en el lenguaje PINE deTrading ViewEl 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()

Visualización en bloques

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.

Bienvenido a la plataforma de comercio de FMZ Quant Seguridad clave