Установите интерпретатор Python, используемый программой стратегии Python
Стратегии, написанные в Python, при бэкстестинге или живой торговле, если в среде системы докера установлены как Python2, так и Python3, вы можете установить версию Python, которая будет запущена во время выполнения на первой строке стратегии, например:#!python3
и#!python2
Вы также можете указать абсолютный путь, например:#!/usr/bin/python3
.
Стратегия безопасности на базе Python
Когда торговые стратегии разрабатываются на платформе FMZ Quant Trading, содержимое стратегии видно только владельцам счетов FMZ. А на платформе FMZ Quant Trading вы можете достичь полной локализации кода стратегии.ПитонПакет, который загружается в код стратегии, так что локализация контента стратегии может быть реализована.
Безопасность кода Python
Поскольку Python - это язык с открытым исходным кодом, который чрезвычайно легко декомпилировать, если стратегия предназначена не для личного использования, а для аренды, вы можете запустить стратегию на собственном развернутом докере и арендовать ее в виде подсчета или полного управления докером, если вы беспокоитесь о утечке стратегии.
Шифрование кода Python:
По умолчанию, код стратегии Python не шифруется при использовании автором и шифруется при сдаче в аренду другим. Изменив следующий код в начале стратегии Python, вы можете указать, хотите ли вы шифровать код стратегии для личного использования или аренды. Версии Python, которые поддерживают шифрование кодов стратегии, следуют: Python 2.7, Python 3.5 и Python 3.6.
Когда автор стратегии запускает ее сам или использует ее для других через регистрационный код, код стратегии шифруется:
Уточнить#!python
как версия интерпретатора Python, а затем использовать,
чтобы держать в стороне; введите команду шифрованияencrypt
Если вы не указали версию Python, вы можете добавить#!,encrypt
directly.
#!python,encrypt
Или...
#!encrypt
Он не будет шифровать коды стратегии, когда авторы стратегии работают для собственного использования и делиться с другими через регистрационный код:
#!python,not encrypted
Или...
#!not encrypted
Использовать кодos.getenv('__FMZ_ENV__')
чтобы определить, является ли код шифрования действительным; возвращение строки"encrypt"
Он действителен только в режиме реального времени, и обратный тест не будет шифроватьPython
стратегические коды.
#!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")