Welche Programmiersprachen stehen zur Verfügung, um meine Strategie auf der FMZ Quant Trading Platform umzusetzen?Die FMZ Quant Trading Platform unterstützt
JavaScript
,TypeScript
,Python
,C++
,PINE
,My Language
,Blockly
Visualisierung, um Strategien zu schreiben und zu entwerfen.
Es unterstützt die JavaScript-Sprache und integriert folgende JavaScript-Bibliotheken:
JavaScript
Wenn ein Programm-Ausnahmefehler oder ein Schnittstellen-Geschäftsfehler auftritt, wird das Fehlerprotokoll die spezifische Zeilennummer anzeigen, in der der Fehler im Strategiecode aufgetreten ist, was für die Debugging und Fehlerbehebung von Strategien praktisch ist.Es unterstütztTypeScript
Sprache, setzen Sie es noch aufJavaScript
Strategie, wenn wir Strategien erstellen, dann schreiben wir// @ts-check
am Anfang des Strategiecodes oder klicken Sie auf die SchaltflächeTypeScript
in der oberen rechten Ecke des Strategiebearbeitungsbereichs umzuschaltenTypeScript
Die Plattform erkennt den Code alsTypeScript
automatisch und bieten Ihnen entsprechende Kompilierungs- und Typprüfungsunterstützung für
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")
Unsere Plattform unterstützt die Programmiersprache C++ undC++ 11
Strategien in C++ werden vorkompiliert und dann ausgeführt. Strategien in C++ im Backtesting-System werden auf dem C++-Backtesting-Server des Backtesting-Systems ausgeführt; Strategien in C++ in der Bot-Umgebung werden basierend auf dem Docker ausgeführt, nachdem sie kompiliert wurden.
Die Verwendung der Programmiersprache C++ und derC++ 11
Mit den modernen Funktionen von C++ können Sie flexible und skalierbare Handelsalgorithmen für den automatisierten Handel erstellen.
Die folgenden C++-Bibliotheken sind integriert:
Die Plattform unterstützt die Schreib- und Designstrategie in MyLanguage, die mit den meisten Grammatik-, Befehl- und Funktionen der Wenhua MyLanguage kompatibel ist. MyLanguage fördert die Bausteinprogrammierung, die komplexe Algorithmen in Funktionen aufteilt. Sie unterstützt komplexe Finanzlogik-Anwendungen durch prägnante Grammatik, spezialisierte Datenstrukturen und eine leistungsstarke Bibliothek von Finanzfunktionsbibliotheken.
Beispiel für die MyLanguage-Strategie: System basierend auf dem translationalen Bollinger-Kanal
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;
Die Plattform unterstützt und ist mit Skripten in der PINE-Sprache vonTrading View
. Die PINE-Sprache ist eine leichte, aber leistungsstarke Strategie-Design-Programmiersprache zur Erstellung von backtested, live-trading-Indikatoren und Strategien, mit einem florierenden Forum, das mehr als 100.000 PINE-Skripte erstellt hat.
Benutzer können leicht auf eine breite Palette von technischen Analysen und Handelsstrategien zugreifen und sie anwenden; Benutzer können ihre Handelsideen mit Hilfe von Community-Skripten schnell umsetzen, wodurch die Notwendigkeit, Code von Grund auf zu schreiben, beseitigt wird und somit die Entwicklungszeit erheblich verkürzt wird. Es hilft sowohl Anfängern als auch erfahrenen Händlern, verschiedene technische Indikatoren, Strategien und Programmierkonzepte zu erlernen und zu verstehen.
Beispiel für eine PINE-Sprachstrategie: Super-Trend-Strategie
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()
Unsere Plattform unterstützt den Blockly-visuellen Ansatz zur Programmierung. Mit dem Blockly-Editor können Benutzer Code-Konzepte durch Zusammenfügen von grafischen Blöcken (ähnlich Bausteinen) wie Variablen, logischen Ausdrücken, Schleifen usw. ausdrücken. Auf diese Weise muss der Programmierungsprozess nicht mehr zu viel Aufmerksamkeit auf die langweiligen Grammatikdetails richten und kann direkt den Programmierprinzipien folgen. Durch die Anordnung und Kombination von grafischen Blöcken können Benutzer die Programmierlogik leicht verstehen und kreative Ideen verwirklichen. Ideal für die Entwicklung eines Interesses an Strategieentwicklung, um schnell mit programmatischem, quantitativen Handel zu beginnen.