O recurso está a ser carregado... Carregamento...

Línguas de programação

Que linguagens de programação estão disponíveis para implementar a minha estratégia na plataforma de negociação FMZ Quant?Programming languages supportedA Plataforma de Negociação Quant FMZ suportaJavaScript, TypeScript, Python, C++, PINE, My Language, BlocklyVisualização para escrever e conceber estratégias.

JavaScript

Ele suporta a linguagem JavaScript e integra as seguintes bibliotecas JavaScript:

TypeScript

SuportaTypeScriptlinguagem, ainda o defina paraJavaScriptestratégia quando criamos estratégias, então escrevemos// @ts-checkno início do código da estratégia ou clique no botãoTypeScriptno canto superior direito da área de edição da estratégia para mudar paraTypeScriptA plataforma reconhecerá o código comoTypeScriptautomaticamente e fornecer-lhe o apoio correspondente à compilação e à verificação de tipo para:

  • Segurança de tipo: A função de verificação de tipo estático do TypeScript pode ajudá-lo a encontrar possíveis erros ao escrever código e melhorar a qualidade do código.
  • Completação automática de código: o sistema de tipos do TypeScript torna mais rápido encontrar os atributos e métodos necessários ao escrever código, melhorando a eficiência do desenvolvimento.
  • Estrutura de código mais clara: Com o TypeScript, você pode organizar e manter melhor seu código, tornando-o mais fácil de ler e entender.
  • Potentes recursos de programação orientada a objetos: TypeScript fornece recursos de programação orientados a objetos poderosos, como interfaces, classes, genéricos e assim por diante, ajudando você a escrever código de estratégia mais robusto e reutilizável.

Python

  • Configure o intérprete Python usado pelo programa de estratégia Python

    Estratégias escritas em Python, quando backtesting ou negociação ao vivo, se o ambiente do sistema docker tem Python2 e Python3 instalado, você pode definir a versão Python para ser lançado no tempo de execução na primeira linha da estratégia, tais como#!python3e#!python2E você também pode especificar um caminho absoluto, como:#!/usr/bin/python3.

  • Segurança de estratégia baseada em Python

    Quando as estratégias de negociação são desenvolvidas na plataforma de negociação FMZ Quant, os conteúdos da estratégia são visíveis apenas para os titulares da conta FMZ.PythonO pacote, que é carregado no código da estratégia, para que a localização do conteúdo da estratégia possa ser realizada.

    A segurança do código Python:

    Como o Python é uma linguagem de código aberto que é extremamente fácil de descompilar, se a estratégia não é para uso pessoal, mas para aluguel, você pode executar a estratégia em seu próprio docker implantado e alugá-lo na forma de sub-conta ou gerenciamento completo do docker se você estiver preocupado com vazamento de estratégia.

    A criptografia do código de estratégia Python:

    Por padrão, o código de estratégia do Python não é criptografado quando usado pelo autor e criptografado quando alugado a outros. Editando o código a seguir no início da estratégia do Python, você pode especificar se deseja criptografar o código de estratégia para uso pessoal ou aluguel. As versões do Python que suportam a criptografia de códigos de estratégia são as seguintes: Python 2.7, Python 3.5 e Python 3.6.

    • Quando o autor da estratégia a executa ou a utiliza para outros através de um código de registo, o código da estratégia é encriptado:

      Especificar#!pythoncomo a versão do intérprete Python, e depois usar,para manter separado; inserir o comando de criptografiaencryptSe você não especificar a versão do Python, você pode adicionar#!,encrypt directly.

      #!python,encrypt
      

      Ou...

      #!encrypt
      
    • Não criptografará os códigos de estratégia quando os escritores de estratégia executarem para seu próprio uso e compartilharem com outros através do código de registro:

      #!python,not encrypted
      

      Ou...

      #!not encrypted
      

    Usar códigoos.getenv('__FMZ_ENV__')para determinar se o código de criptografia é válido; o retorno da cadeia"encrypt"Indica que entrou em vigor. É válido apenas na negociação em tempo real, e o backtest não criptografará oPythonCódigos de estratégia.

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

A nossa plataforma suporta a linguagem de programação C++ e oC++ 11Estratégias em C++ são pré-compiladas e depois executadas. Estratégias em C++ no sistema de backtesting são executadas no servidor de backtesting C++ do sistema de backtesting; Estratégias em C++ no ambiente de bot são executadas com base no docker depois de serem compiladas. Utilizando a linguagem de programação C++ e oC++ 11Com base no padrão, você pode desenvolver estratégias de negociação poderosas e eficientes na plataforma de negociação FMZ Quant. Usando os recursos modernos do C ++, você pode construir algoritmos de negociação flexíveis e escaláveis para negociação automatizada.

As seguintes bibliotecas C++ estão integradas:

MyLanguage

A plataforma suporta a estratégia de escrita e design em MyLanguage, que é compatível com a maioria da gramática, comandos e funções do Wenhua MyLanguage.

Exemplo de estratégia MyLanguage: Sistema baseado no canal de Bollinger translacional

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;

Língua PINE

A plataforma suporta e é compatível com scripts em linguagem PINE deTrading ViewA linguagem PINE é uma linguagem de programação de design de estratégia leve, mas poderosa, para criar indicadores e estratégias de negociação ao vivo e testados, com um fórum próspero que criou mais de 100.000 scripts PINE. Os usuários podem acessar e aplicar facilmente uma ampla gama de análises técnicas e estratégias de negociação; os usuários podem implementar rapidamente suas ideias de negociação com a ajuda de scripts comunitários, eliminando a necessidade de escrever código do zero e, assim, reduzindo significativamente o tempo de desenvolvimento; ajuda tanto os traders iniciantes quanto os experientes a aprender e entender diferentes indicadores técnicos, estratégias e conceitos de programação.

Exemplo de estratégia linguística PINE: Super estratégia de tendência

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

Visualização em blocos

Nossa plataforma suporta a abordagem visual Blockly para programação. Com o editor Blockly, os usuários podem expressar conceitos de código juntando blocos gráficos (similares a blocos de construção), como variáveis, expressões lógicas, loops, etc. Desta forma, o processo de programação não precisa mais prestar muita atenção aos detalhes gramaticais tediosos e pode seguir diretamente os princípios de programação. Ao organizar e combinar blocos gráficos, os usuários podem facilmente entender a lógica de programação e realizar ideias criativas. Ideal para desenvolver um interesse no design de estratégia para começar rapidamente com negociação programática e quantitativa.

Bem-vindos à plataforma de negociação quântica FMZ Segurança fundamental