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