avatar of 发明者量化-小小梦 发明者量化-小小梦
konzentrieren Sie sich auf Private Nachricht
4
konzentrieren Sie sich auf
1271
Anhänger

Benutzerdefinierte Bibliothek für die Erweiterung der visuellen Bearbeitungsstrategie

Erstellt in: 2020-10-17 11:27:43, aktualisiert am: 2024-12-06 22:23:25
comments   0
hits   1742

Benutzerdefinierte Bibliothek für die Erweiterung der visuellen Bearbeitungsstrategie

Benutzerdefinierte Bibliothek für die Erweiterung der visuellen Bearbeitungsstrategie

Wie erweitern Sie die Visualisierungsstrategie mit der benötigten benutzerdefinierten Klassenbibliothek? Ich möchte beispielsweise den MA-Indikator berechnen, aber das System bietet nur Folgendes: Benutzerdefinierte Bibliothek für die Erweiterung der visuellen Bearbeitungsstrategie Wie kann ich diesen Indikatoren benutzerdefinierte Codes hinzufügen? Nehmen wir als Beispiel das Hinzufügen eines benutzerdefinierten MA-Indikatorberechnungsmoduls, um zu erklären, wie das Visualisierungsmodul erweitert wird.

Bibliothek für den Spothandel mit digitalen Währungen

Lassen Sie uns zunächst über die Vorlage [Cryptocurrency Spot Trading Library] sprechen. Die Adresse lautet: https://www.fmz.com/strategy/10989 Obwohl diese Vorlage eine JavaScript-Sprachvorlage der FMZ-Plattform ist (Studenten, die das Konzept von Vorlagen nicht verstehen, können für Abfragen das FMZ-API-Dokument aufrufen: https://www.fmz.com/api#%E6%A8%A1 %E6%9D%BF% E7%B1%BB%E5%BA%93) Die Kommentare am Anfang der Vorlage enthalten jedoch Code, der das Visualisierungsmodul definiert, und auf den Code dieser JavaScript-Vorlage kann im definierten Code verwiesen werden. Dies macht es für uns sehr bequem, es selbst zu erweitern (gibt uns ein gutes Beispiel, das wir nachahmen können).

Bibliothek für den Spothandel mit digitalen Währungen, die visuelle Definition am Anfang:

/*blockly
    {
        "type": "ext_Trade",
        "message0": "%1 币数 %2|%1 Coins %2",
        "args0": [{
            "type": "field_dropdown",
            "options": [
                ["买入|Buy", "Buy"],
                ["卖出|Sell", "Sell"]
            ]
        }, {
            "type": "input_value",
            "check": "Number"
        }],
        "template": "(function(){var r = $.%1(%2); return r ? r.amount : 0; })()",
        "order": "ORDER_ATOMIC",
        "output": "Number",
        "colour": 85
    }, {
        "type": "ext_CancelPendingOrders",
        "message0": "取消 %1 订单|Cancel %1 Orders",
        "args0": [{
            "type": "field_dropdown",
            "name": "TYPE",
            "options": [
                ["所有|All", " "],
                ["买单|Buy", "ORDER_TYPE_BUY"],
                ["卖单|Sell", "ORDER_TYPE_SELL"]
            ]
        }],
        "previousStatement": null,
        "nextStatement": null,
        "template": "$.CancelPendingOrders(%1);",
        "colour": 85
    }, {
        "type": "ext_Cross",
        "message0": "计算交叉 周期 %1 与 %2|Cross Period %1 and %2",
        "inputsInline": true,
        "args0": [{
            "type": "input_value"
        }, {
            "type": "input_value"
        }],
        "template": "$.Cross(%1,%2)",
        "order": "ORDER_ATOMIC",
        "output": "Number"
    }, {
        "type": "ext_GetAccount",
        "message0": "获取资产信息|GetAccount",
        "template": "$.GetAccount()",
        "order": "ORDER_ATOMIC",
        "output": null
    }
*/

Sie entsprechen jeweils den Modulen auf der Seite zur visuellen Bearbeitung: Benutzerdefinierte Bibliothek für die Erweiterung der visuellen Bearbeitungsstrategie

Erstellen Sie ein selbstdefiniertes Modul zur Berechnung von MA-Indikatoren

Mit vorgefertigten Beispielen ist es sehr einfach, diese selbst zu konstruieren. Folgen Sie einfach dem Beispiel.

Erstellen Sie zunächst eine neue Vorlage in der Sprache JavaScript. Benutzerdefinierte Bibliothek für die Erweiterung der visuellen Bearbeitungsstrategie

Bearbeiten Sie den Vorlagencode.

/*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
    }
*/
  • Typ: Das Attribut definiert den Modultyp, Sie können es durch einen eigenen Namen definieren.
  • message0: Der auf dem Modul angezeigte Text.
  • Vorlage: Der vom Modul ausgeführte Code.
  • Ausgabe: Der Typ der Modulausgabe.
  • args0: Eingabeparameter des Moduls. Im Moduldefinitionscode stellt %1 den ersten Eingabeparameter und %2 den zweiten dar.

Nachdem Sie die neue Vorlage bearbeitet haben, speichern Sie sie. Aktivieren Sie diese Vorlage in der Richtlinie, in der wir diese Vorlage verwenden müssen. Benutzerdefinierte Bibliothek für die Erweiterung der visuellen Bearbeitungsstrategie

Sie können sehen, dass es zwei weitere Module gibt:

  • Benutzerdefinierte Bibliothek für die Erweiterung der visuellen Bearbeitungsstrategie

Schauen wir uns den Ausführungscode des Moduls mit dem Namen testA an: Benutzerdefinierte Bibliothek für die Erweiterung der visuellen Bearbeitungsstrategie

  function(){return 99;}()

Es handelt sich um eine sehr einfache JavaScript-Funktion, die bei Ausführung den Wert 99 zurückgibt.

  • Benutzerdefinierte Bibliothek für die Erweiterung der visuellen Bearbeitungsstrategie

Schauen wir uns den Ausführungscode des Moduls mit dem Namen „MA-Zyklus“ an:

Benutzerdefinierte Bibliothek für die Erweiterung der visuellen Bearbeitungsstrategie

  (function(){var r = exchange.GetRecords(); return (!r || r.length < %1) ? false : TA.MA(r, %1); })()

Der Code ist ein anonymer Funktionsaufruf. Die anonyme Funktion führt zuerst den Vorgang zum Abrufen der K-Line-Daten aus.r. Dann, abhängig davon, ob das erhaltene r istnulloderrIst die Länge kleiner als der Eingabeparameter des Moduls?%1Um die Rendite zu beurteilenfalseOder zurückTA.MA(r, %1)Berechnete Indikatorergebnisse.

Dann können Sie es verwenden.

Testberechnung des MA-Indikators

Visueller Strategie-Editor: Benutzerdefinierte Bibliothek für die Erweiterung der visuellen Bearbeitungsstrategie

laufen: Benutzerdefinierte Bibliothek für die Erweiterung der visuellen Bearbeitungsstrategie

Es ist ersichtlich, dass die vom MA-Indikator berechneten Daten wie gewünscht erzielt wurden.

Das Obige stellt nur einen Ausgangspunkt dar. Das Design des Visualisierungsmoduls kann mithilfe der Vorlagenfunktion erweitert werden.