Bibliothèques de modèlessont des modules de code réutilisables dans la plateforme de trading FMZ Quant, une catégorie de code de stratégie.JavaScript
, Python
, C++
, etBlockly
. Si la catégorie est définie sur Template Class Library lors de la création d'une stratégie, une bibliothèque de modèle sera créée dans la bibliothèque de stratégie du compte actuellement connecté à la plateforme de trading FMZ Quant, et il n'est pas possible de changer la catégorie à une stratégie normale après la création.
La fonction d'exportation est une fonction d'interface de la bibliothèque de modèles, et elle peut être appelée par la stratégie qui renvoie à la bibliothèque de modèles.
/*
-- After the strategy references the template, call this method directly with $.Test()
-- The main function is not triggered in the strategy, it is only the entry point for template debugging
*/
$.Test = function() {
Log('Test')
}
function main() {
$.Test()
}
def Test():
Log("template call")
# Export the Test function, the main strategy can be called via ext.Test().
ext.Test = Test
// After the strategy references the template, call this method directly with ext::Test()
void Test() {
Log("template call");
}
La bibliothèque de modèles est écrite dans un format différent pour différents langages de programmation.
LeBlockly Visualization
approche de la fonctionnalité de bibliothèque d'utilisation de stratégie peut être mise en œuvre en écrivant une bibliothèque de classe modèle dans leJavaScript
langue, écrite selon le format d'écriture suivant.
/*blockly
{
"type": "ext_testA",
"message0": "testA|testA",
"template": "function(){return 99;}()",
"order": "ORDER_ATOMIC",
"output": "Number"
},{
"type": "ext_MA",
"message0": "MA 周期 %1| MA Period %1",
"args0": [{
"type": "input_value",
"check": "Number"
}],
"template": "(function(){var r = exchange.GetRecords(); return (!r || r.length < %1) ? false : TA.MA(r, %1); })()",
"order": "ORDER_ATOMIC",
"output": null,
"colour": 85
}
*/
La bibliothèque de modèles peut également définir ses propres paramètres d'interface, qui sont utilisés sous forme de variables globales dans le code de la bibliothèque de modèles. Par exemple, nous définissons les paramètres d'une bibliothèque de classes de modèle:
Nom de la variable du paramètre dans le code de stratégie | Nom du paramètre affiché sur l'écran de stratégie | Le type | Valeur par défaut |
---|---|---|---|
param1 | param1 | Numéro | 99 |
$.SetParam1 = function(p1) {
param1 = p1
}
$.GetParam1 = function() {
Log("param1:", param1)
return param1
}
def SetParam1(p1):
global param1
param1 = p1
def GetParam1():
Log("param1:", param1)
return param1
ext.SetParam1 = SetParam1
ext.GetParam1 = GetParam1
void SetParam1(float p1) {
param1 = p1;
}
float GetParam1() {
Log("param1:", param1);
return param1;
}
Code de bibliothèque de classes modèle à testerparam1
Paramètres:
function main () {
Log("Call $.GetParam1:", $.GetParam1())
Log("Call $.SetParam1:", "#FF0000")
$.SetParam1(20)
Log("Call $.GetParam1:", $.GetParam1())
}
def main():
Log("Call ext.GetParam1:", ext.GetParam1())
Log("Call ext.SetParam1:", "#FF0000")
ext.SetParam1(20)
Log("Call ext.GetParam1:", ext.GetParam1())
void main() {
Log("Call ext::GetParam1:", ext::GetParam1());
Log("Call ext::SetParam1:", "#FF0000");
ext::SetParam1(20);
Log("Call ext::GetParam1:", ext::GetParam1());
}
Reportez-vous au code de stratégie de l'exemple de bibliothèque de classe modèle ci-dessus et utilisez la fonction d'exportation de la bibliothèque de classe modèle pour obtenir le paramètreparam1
et modifier le paramètreparam1
.
Lorsqu'une stratégie renvoie à une bibliothèque de modèles, elle exige que le compte FMZ Quant Trading Platform actuellement connecté ait une bibliothèque de modèles disponible dans sa bibliothèque de stratégies.page d'édition de stratégie, économisez la stratégie.
Cadre stratégique et fonctions de l'API Paramètres de stratégie