Die Ressourcen sind geladen. Beförderung...

Bibliotheken mit Vorlagen

Bibliotheken mit Vorlagensind wiederverwendbare Code-Module in der FMZ Quant Trading Platform, einer Kategorie von Strategie-Code.JavaScript, Python, C++, undBlocklyWenn die Kategorie bei der Erstellung einer Strategie auf Template Class Library gesetzt ist, wird eine Template-Bibliothek in der Strategie-Bibliothek des aktuell angemeldeten Kontos der FMZ Quant Trading Platform erstellt, und es ist nicht möglich, die Kategorie nach der Erstellung auf eine normale Strategie zu ändern.Create template library page

Exportfunktion der Vorlagenbibliothek

Die Exportfunktion ist eine Schnittstellenfunktion der Template-Bibliothek und kann durch die Strategie aufgerufen werden, die sich auf die Template-Bibliothek bezieht.

/*
-- 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");
}

Die Template-Bibliothek ist für verschiedene Programmiersprachen in einem anderen Format geschrieben. Ein Beispiel für den Export von Funktionen, die in der Template-Bibliothek deklariert und implementiert werden sollen, ist wie folgt: DieBlockly VisualizationDie Funktionalität der Strategie-Nutzung Bibliothek kann durch Schreiben einer Vorlage-Klasse-Bibliothek in derJavaScriptSprache, geschrieben mit dem folgenden Schreibformat.

/*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
    }
*/

Parameter der Template-Bibliothek

Die Template-Bibliothek kann auch eigene Schnittstellenparameter festlegen, die in Form globaler Variablen im Code der Template-Bibliothek verwendet werden. Zum Beispiel setzen wir die Parameter einer Template-Klassenbibliothek:

Template parameters

Variablename des Parameters im Strategiecode Name des auf dem Strategiebildschirm angezeigten Parameters Typ Standardwert
Parameter 1 Parameter 1 Zahl 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 der Klassenbibliothek zur Prüfung der Vorlageparam1Parameter:

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());
}

Verweisen Sie auf den Strategiekodex der Vorlage-Klassenbibliothek Beispiel oben und verwenden Sie die Exportfunktion der Vorlage-Klassenbibliothek, um den Parameter zu erhaltenparam1und ändern Sie den Parameterparam1.

Bibliothek der Referenzvorlagen

Wenn eine Strategie auf eine Vorlagebibliothek verweist, muss das derzeit eingeloggte FMZ Quant Trading Platform-Konto eine verfügbare Vorlagebibliothek in seiner Strategiebibliothek haben.Strategiebearbeitungsseite, die Strategie retten.Screenshot of template reference

Strategierahmen und API-Funktionen Strategieparameter