Quels langages de programmation sont disponibles pour mettre en œuvre ma stratégie sur la plateforme de trading FMZ Quant?La plateforme de négociation quantitative FMZ prend en charge
JavaScript
,TypeScript
,Python
,C++
,PINE
,My Language
,Blockly
visualisation pour écrire et concevoir des stratégies.
Il prend en charge le langage JavaScript et intègre les bibliothèques JavaScript suivantes:
JavaScript
stratégie de langage, lorsqu'une erreur d'exception de programme ou une erreur d'interface d'entreprise se produit, le journal d'erreur affichera le numéro de ligne spécifique où l'erreur s'est produite dans le code de stratégie, ce qui est pratique pour le débogage de stratégie et le dépannage de bugs.Il soutientTypeScript
Le langage, toujours réglé surJavaScript
la stratégie quand nous créons des stratégies, alors nous écrivons// @ts-check
au début du code de stratégie ou cliquez sur le boutonTypeScript
dans le coin supérieur droit de la zone d'édition de la stratégie pour passer àTypeScript
La plateforme reconnaîtra le code commeTypeScript
automatiquement et vous fournir le support de compilation et de vérification de type correspondant pour:
Définir l'interpréteur Python utilisé par le programme Python
Stratégies écrites en Python, lors du backtesting ou du trading en direct, si l'environnement du système docker a installé Python2 et Python3, vous pouvez définir la version Python à lancer à l'exécution sur la première ligne de la stratégie, telle que#!python3
et#!python2
Vous pouvez également spécifier un chemin absolu, comme:#!/usr/bin/python3
.
Sécurité stratégique basée sur Python
Lorsque les stratégies de trading sont développées sur la plateforme de trading FMZ Quant, le contenu de la stratégie n'est visible que par les titulaires de compte FMZ.PythonLe code de stratégie est chargé dans le package, de sorte que la localisation du contenu de la stratégie puisse être réalisée.
La sécurité du code Python:
Comme Python est un langage open-source extrêmement facile à décompiler, si la stratégie n'est pas pour un usage personnel mais pour la location, vous pouvez exécuter la stratégie sur votre propre docker déployé et la louer sous forme de sous-compte ou de gestion complète du docker si vous craignez une fuite de stratégie.
Le chiffrement du code de stratégie Python:
Par défaut, le code de stratégie Python n'est pas chiffré lorsqu'il est utilisé par l'auteur et chiffré lorsqu'il est loué à d'autres. En éditant le code suivant au début de la stratégie Python, vous pouvez spécifier si vous voulez chiffrer le code de stratégie pour un usage personnel ou pour la location. Les versions Python qui prennent en charge le chiffrement des codes de stratégie sont les suivantes: Python 2.7, Python 3.5 et Python 3.6.
Lorsque l'auteur de la stratégie l'exécute lui-même ou l'utilise pour d'autres par le biais d'un code d'enregistrement, le code de stratégie est crypté:
Spécifier#!python
comme la version de l'interpréteur Python, puis utiliser,
pour garder à l'écart; entrez la commande de chiffrementencrypt
Si vous ne spécifiez pas la version de Python, vous pouvez ajouter#!,encrypt
directly.
#!python,encrypt
Ou alors...
#!encrypt
Il ne crypte pas les codes de stratégie lorsque les rédacteurs de stratégie courent pour leur propre usage et partagent avec d'autres par le code d'enregistrement:
#!python,not encrypted
Ou alors...
#!not encrypted
Utiliser le codeos.getenv('__FMZ_ENV__')
pour déterminer si le code de chiffrement est valide; le retour de la chaîne"encrypt"
Il n'est valable que dans le commerce en direct, et le backtest ne chiffrera pas lePython
les codes stratégiques.
#!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")
Notre plateforme prend en charge le langage de programmation C++ et leC++ 11
Les stratégies en C++ sont pré-compilées puis exécutées. Les stratégies en C++ dans le système de backtesting sont exécutées sur le serveur de backtesting C++ du système de backtesting; les stratégies en C++ dans l'environnement bot sont exécutées sur la base du docker après avoir été compilées.
L'utilisation du langage de programmation C++ et duC++ 11
En utilisant les fonctionnalités modernes de C++, vous pouvez créer des algorithmes de trading flexibles et évolutifs pour le trading automatisé.
Les bibliothèques C++ suivantes sont intégrées:
La plateforme prend en charge la stratégie d'écriture et de conception dans MyLanguage, qui est compatible avec la plupart des grammaires, commandes et fonctions de Wenhua MyLanguage.
Exemple de stratégie MyLanguage: Système basé sur le canal de Bollinger translationnel
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;
La plateforme prend en charge et est compatible avec des scripts en langage PINE deTrading View
. Le langage PINE est un langage de programmation de conception de stratégie léger mais puissant pour la création d'indicateurs et de stratégies de trading en direct testés, avec un forum florissant qui a créé plus de 100 000 scripts PINE.
Les utilisateurs peuvent facilement accéder et appliquer un large éventail d'analyses techniques et de stratégies de trading; les utilisateurs peuvent rapidement mettre en œuvre leurs idées de trading à l'aide de scripts communautaires, éliminant le besoin d'écrire du code à partir de zéro et réduisant ainsi considérablement le temps de développement; il aide les traders débutants et expérimentés à apprendre et à comprendre différents indicateurs techniques, stratégies et concepts de programmation.
Exemple de stratégie linguistique PINE: Stratégie de super tendance
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()
Notre plateforme prend en charge l'approche visuelle de la programmation Blockly. Avec l'éditeur Blockly, les utilisateurs peuvent exprimer des concepts de code en assemblant des blocs graphiques (similaires aux blocs de construction), tels que des variables, des expressions logiques, des boucles, etc. De cette façon, le processus de programmation n'a plus besoin de prêter trop d'attention aux détails grammaticaux fastidieux et peut suivre directement les principes de programmation. En disposant et en combinant des blocs graphiques, les utilisateurs peuvent facilement comprendre la logique de programmation et réaliser des idées créatives. Idéal pour développer un intérêt pour la conception de stratégies afin de commencer rapidement avec le trading programmatique et quantitatif.