Les ressources ont été chargées... Je charge...

Bibliothèques de modèles

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.Create template library page

Fonction d'exportation de la bibliothèque de modèles

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 Visualizationapproche 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 leJavaScriptlangue, é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
    }
*/

Paramètres de bibliothèque de modèle

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:

Template parameters

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 à testerparam1Paramè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ètreparam1et modifier le paramètreparam1.

Bibliothèque de modèles de référence

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.Screenshot of template reference

Cadre stratégique et fonctions de l'API Paramètres de stratégie