Setzen Sie den Python-Interpreter, der vom Python-Strategieprogramm verwendet wird
Strategien, die in Python geschrieben sind, bei Backtesting oder Live-Handel, wenn die Docker-Systemumgebung sowohl Python2 als auch Python3 installiert hat, können Sie die Python-Version so einstellen, dass sie zur Laufzeit auf der ersten Zeile der Strategie gestartet wird, z. B.#!python3
und#!python2
, so dass das System den Interpreter automatisch findet. Und Sie können auch einen absoluten Pfad angeben, wie:#!/usr/bin/python3
.
Strategie-Sicherheit auf Basis von Python
Wenn Handelsstrategien auf der FMZ Quant Trading Platform entwickelt werden, sind die Strategieinhalte nur für die FMZ-Kontoinhaber sichtbar.PythonDie Strategie-Inhalte werden in einem Paket, das in den Strategie-Code geladen wird, so dass die Strategie-Inhaltslokalisierung realisiert werden kann.
Die Sicherheit des Python-Codes:
Da Python eine Open-Source-Sprache ist, die extrem einfach zu dekompilieren ist, können Sie die Strategie auf Ihrem eigenen bereitgestellten Docker ausführen und in Form eines Unterkontos oder vollständigen Docker-Managements vermieten, wenn Sie sich Sorgen um das Leck der Strategie machen.
Die Verschlüsselung des Python-Strategiecodes:
Standardmäßig wird Python-Strategiecode nicht verschlüsselt, wenn er vom Autor verwendet wird, und verschlüsselt, wenn er an andere vermietet wird. Durch die Bearbeitung des folgenden Codes am Anfang der Python-Strategie können Sie angeben, ob Sie den Strategiecode für den persönlichen Gebrauch oder die Vermietung verschlüsseln möchten. Die Python-Versionen, die die Verschlüsselung von Strategiecodes unterstützen, sind wie folgt: Python 2.7, Python 3.5 und Python 3.6.
Wenn der Strategie-Autor sie selbst durchführt oder für andere über einen Registrierungscode verwendet, wird der Strategie-Code verschlüsselt:
Geben Sie an#!python
als die Version des Python-Interpreters, und dann verwenden,
um zu halten getrennt; Eingabe der Verschlüsselung Befehlencrypt
. Wenn Sie die Version von Python nicht angeben, können Sie hinzufügen#!,encrypt
directly.
#!python,encrypt
Oder...
#!encrypt
Es wird die Strategie-Codes nicht verschlüsseln, wenn Strategie-Autoren für ihren eigenen Gebrauch laufen und mit anderen über den Registrierungscode teilen:
#!python,not encrypted
Oder...
#!not encrypted
Code verwendenos.getenv('__FMZ_ENV__')
um festzustellen, ob der Verschlüsselungscode gültig ist; die Rückgabe der Zeichenfolge"encrypt"
Es ist nur im Live-Handel gültig, und der Backtest verschlüsselt diePython
Strategiecodes.
#!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")