Wie kann man eine eigene Bibliothek erweitern, um die visualisierten Strategien zu erweitern? Zum Beispiel möchte ich MA berechnen.Wie können wir diese Kennzahlen anpassen, indem wir etwas anpassungsfähigeres hinzufügen? Wir zeigen Ihnen, wie Sie die Visualisierungsmodule erweitern können, indem wir Ihnen ein Modul zur Berechnung von MA-Anzeigen hinzufügen, das Sie anpassen können.
Zunächst möchte ich über das Template für die digitale Währung "Cryptocurrency Cash Library" sprechen, das unter folgender Adresse erstellt wurde:https://www.fmz.com/strategy/10989Obwohl es sich um ein Template für die FMZ-Plattform JavaScript handelt, können Schüler, die das Template-Konzept nicht verstehen, die FMZ API-Dokumentation anfragen:https://www.fmz.com/api#模板类库Ich weiß nicht. Aber die Anmerkung zu Beginn der Vorlage enthält den Code, der definiert die Module zu visualisieren, und der Code, der definiert wird, kann auf den Code dieser JavaScript-Vorlage verweisen.
Die visualisierte Definition des ersten Teils der Online-Kassendatenbank für digitale Währungen:
/*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
}
*/
Die Module auf der visualisierten Bearbeitungsseite entsprechen:
Wenn Sie ein vorgefertigtes Beispiel haben, ist es einfacher, es selbst zu bauen, als es mit einem Faden zu tun ist.
Zunächst ein neues Template für die JavaScript-Sprache.
Schreiben Sie den Code der Vorlage.
/*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
}
*/
Diese neue Vorlage wird nach der Bearbeitung gespeichert. In der Politik, in der wir diese Vorlage verwenden müssen, wählen wir diese Vorlage.
Sie sehen, dass zwei weitere Module erscheinen:
Der Modul heißt testA, und wir schauen uns seinen Ausführungscode an:
function(){return 99;}()
Eine einfache JavaScript-Funktion, die einen Wert von 99 zurückgibt.
Der Modul mit dem Namen: MA Cycle, und wir schauen uns seinen Ausführungscode an:
(function(){var r = exchange.GetRecords(); return (!r || r.length < %1) ? false : TA.MA(r, %1); })()
Der Code ist ein anonymer Funktionsanruf, bei dem die Anonymfunktion zuerst eine Operation ausführt, um K-Linien-Daten zu erhalten, K-Linien-Daten.r
Und dann, je nachdem, ob das erhaltene r fürnull
Oderr
Die Länge ist kleiner als die Eingabeparameter der Module%1
Zurück zum Urteilfalse
Oder zurück.TA.MA(r, %1)
Die Ergebnisse der Berechnung der Indikatoren.
Ich habe eine Frage, die ich mir nicht stellen kann.
Die visualisierte Strategie wurde von:
Sie läuft:
Wie man oben sehen kann, wurden die Daten für die Berechnung des MA-Indikators, wenn Sie möchten, bezahlt.
Das ist nur ein Vorwurf, der sich selbst erweitern kann, wenn man Module visualisiert.