Type/to search
8
Follow
1364
Followers
Benutzerdefinierte Bibliothek für die Erweiterung der visuellen Bearbeitungsstrategie
Original
Created 2020-10-17 11:27:43  Updated 2024-12-06 22:23:25
 0
 2007

img

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:
img
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%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:
img

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.
img

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.
img

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

  • img

    Schauen wir uns den Ausführungscode des Moduls mit dem Namen testA an:
    img

    function(){return 99;}()

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

  • img

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

    img

    (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:
img

laufen:
img

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.

Related Recommendations
Comment
All comments (0)
No data
No data
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)