Wie erweitern Sie die benutzerdefinierte Bibliothek, die Sie für die visuellen Strategien benötigen? Zum Beispiel möchte ich den MA-Indikator berechnen, aber das System kommt nur mit:
Wie kann ich diesen Indikatoren einen benutzerdefinierten Code hinzufügen? Nehmen wir zum Beispiel das Hinzufügen eines benutzerdefinierten MA-Indikatorberechnungsmoduls, um zu erklären, wie das Visualisierungsmodul erweitert wird.
Lassen Sie uns über die Vorlage
Kryptowährungs-Spothandel Bibliothek; die Visualisierung Definition am Anfang:
/*blockly
{
"type": "ext_Trade",
"message0": "%1 symbol amount %2|%1 Coins %2",
"args0": [{
"type": "field_dropdown",
"options": [
["bid|Buy", "Buy"],
["ask|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": "cancel %1 orders|Cancel %1 Orders",
"args0": [{
"type": "field_dropdown",
"name": "TYPE",
"options": [
["all|All", " "],
["buy order|Buy", "ORDER_TYPE_BUY"],
["sell order|Sell", "ORDER_TYPE_SELL"]
]
}],
"previousStatement": null,
"nextStatement": null,
"template": "$.CancelPendingOrders(%1);",
"colour": 85
}, {
"type": "ext_Cross",
"message0": "calculate cross period %1 and %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": "obtain asset information|GetAccount",
"template": "$.GetAccount()",
"order": "ORDER_ATOMIC",
"output": null
}
*/
Entsprechend den Modulen in der visuellen (blockartigen) Bearbeitungsseite:
Mit dem vorgefertigten Beispiel ist es sehr einfach, es selbst zu konstruieren, genau wie man es mechanisch kopiert.
Zuerst erstellen Sie eine neue Vorlage in der JavaScript-Sprache.
Bearbeiten Sie den Vorlagecode.
/*blockly
{
"type": "ext_testA",
"message0": "testA|testA",
"template": "function(){return 99;}()",
"order": "ORDER_ATOMIC",
"output": "Number"
},{
"type": "ext_MA",
"message0": "MA period %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
}
*/
Nach der Bearbeitung der neuen Vorlage speichern Sie sie. In der Strategie, in der wir diese Vorlage verwenden müssen, überprüfen Sie die Vorlage.
Sie können sehen, dass es zwei zusätzliche Module gibt:
Das Modul heißt: testA. Schauen wir uns den Ausführungscode an:
function(){return 99;}()
Es ist eine sehr einfache JavaScript-Funktion, die beim Ausführen einen Wert von 99 zurückgibt.
Das Modul mit dem Namen: MA-Periode.
(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 die Operation aus, um die K-Liniendaten zu erhalten, nämlich die K-Liniendatenr
. Dann, je nachdem, ob die erlangte rnull
oder ob die Länge derr
ist kleiner als der Parameter%1
Importiert auf das Modul, Richter zurückfalse
oder das durchTA.MA(r, %1)
.
Es ist bereit für den nächsten Einsatz.
Visuelle Strategiebearbeitung:
Betrieb:
Es kann festgestellt werden, dass die durch den MA-Indikator berechneten Daten wie gewünscht ermittelt wurden.
Das obige ist nur ein Beispiel für das Design des Visualisierungsmoduls, so dass Sie die Vorlagefunktion verwenden können, um selbst zu erweitern.