Que linguagens de programação estão disponíveis para implementar a minha estratégia na plataforma de negociação FMZ Quant?A Plataforma de Negociação Quant FMZ suporta
JavaScript
,TypeScript
,Python
,C++
,PINE
,My Language
,Blockly
Visualização para escrever e conceber estratégias.
Ele suporta a linguagem JavaScript e integra as seguintes bibliotecas JavaScript:
JavaScript
estratégia de linguagem, quando ocorre um erro de exceção de programa ou erro de negócio da interface, o registro de erros exibirá o número de linha específico onde o erro ocorreu no código da estratégia, o que é conveniente para depuração de estratégia e solução de erros.SuportaTypeScript
linguagem, ainda o defina paraJavaScript
estratégia quando criamos estratégias, então escrevemos// @ts-check
no início do código da estratégia ou clique no botãoTypeScript
no canto superior direito da área de edição da estratégia para mudar paraTypeScript
A plataforma reconhecerá o código comoTypeScript
automaticamente e fornecer-lhe o apoio correspondente à compilação e à verificação de tipo para:
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#!python3
e#!python2
E 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#!python
como a versão do intérprete Python, e depois usar,
para manter separado; inserir o comando de criptografiaencrypt
Se 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á oPython
Có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")
A nossa plataforma suporta a linguagem de programação C++ e oC++ 11
Estraté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++ 11
Com 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:
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;
A plataforma suporta e é compatível com scripts em linguagem PINE deTrading View
A 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()
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.