Das erste Mal, dass ich ein Konzept für die Konstruktion und das Zusammenfügen von Visualisierungsmodulen gelernt habe, war, dass ich ein Konzept für die Konstruktion und das Zusammenfügen von Visualisierungsmodulen hatte. Es ist einfach, andere Module zu lernen. Es gibt viele verschiedene Funktionen, die mit einer Kombination von komplexeren Funktionen kombiniert werden können.
In früheren Lern- und Tests haben wir einige Module der "Transaktionskategorie" behandelt. Zum Beispiel: Modul "Börsen, die Märkte erwerben" "Börsen erhalten K-Line" Modul Ich bin nicht derjenige.
Die meisten von ihnen sind nicht in der Lage, sich zu bewegen.
Bei der Erstellung von Strategien mit Roboterhandel kann mehr als ein Austauschobjekt hinzugefügt werden, z. B. eine Strategie zur Absicherung. Es kann auch sein, dass Sie die Börse durchsuchen müssen, wenn Sie eine Börse besuchen. Das bedeutet, dass wir die Module benötigen, um die Anzahl der Börsen zu ermitteln.
Wir können zunächst die Anzahl der aktuell konfigurierten Börsen mit einer einfachen Struktur drucken:
Das ist, als würde man diesen JavaScript-Strategiekode aufrufen:
function main () {
Log(exchanges.length)
}
Die Ergebnisse dieser Kombination von Modulen:
Man kann sehen, dass wir 3 Exchange-Objekte hinzugefügt haben, die drei verschiedene Exchange-Konten repräsentieren, und dass die Log-Ausgabe 3 ist.
Wenn Sie drei Börsenobjekte hinzufügen, zeigt das Dropdown-Boxen drei Optionen an. Lernen Sie im Voraus ein Loop-Modul, in einem Loop-Typ.
Das ist eine sehr schwierige Aufgabe, aber es ist wichtig, dass Sie sich mit dem Thema beschäftigen.Die Urteilsvoraussetzungen können folgendermaßen sein:
Wir haben die Namen der Börsen, die wir mit dem Kreislauf-Module über die ganze Welt hinzugefügt haben. Die Module werden von Conditional Judgement verwendet, um zu bestimmen, ob die aktuelle Zykluszählung den Namen der Börse entspricht, die gedruckt werden soll.
Die Ergebnisse des Tests:
Das ist ein Beispiel für JavaScript-Strategiekode:
function main () {
for (var i = 1 ; i <= exchanges.length ; i++) {
if (i == 1) {
Log(exchanges[0].GetName())
} else if (i == 2) {
Log(exchanges[1].GetName())
} else {
Log(exchanges[2].GetName())
}
}
}
Ein einfaches Beispiel ist, dass das erste Exchange-Objekt mit dem aktuell eingestellten Transaktionspaar erworben und der Variable text (vorab in der Variablenkategorie erstellt) einen Wert zugewiesen wird.
Die Ergebnisse:
Wenn Sie JavaScript-Strategiekode aufrufen:
function main () {
var text = exchange.GetCurrency()
Log(text)
}
Das Modul ist sehr wichtig für die Bestelloperationen, wobei die erste Position "
Zum Beispiel haben wir ein Beispiel zusammengestellt, bei dem der letzte Preis basierend auf den aktuellen Ticketdaten, plus 10 US-Dollar Schiebepreis bezahlt wird, die nächste Ordermenge auf 0.1 Cent gesetzt wird und die Order-ID gedruckt wird.
Die Ergebnisse des Tests:
Das ist ein Beispiel für den folgenden JavaScript-Strategiekode:
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last + 10, 0.1)
Log(id)
}
Das Modul gibt alle Auftragsbestellungen zurück, die in der aktuellen Transaktionspaare in unvollendetem Zustand sind, und gibt eine Listestruktur (Array) zurück, die mit einem Modul des Listentyps (Streaming-Operation usw.) bearbeitet werden kann. Zum Beispiel: Wir haben das oben beschriebene Modulmodell für die Ein- und Ausschreibung von P4 und P4 leicht geändert, um den Preis von 10 US-Dollar bei der Bestellung auf 10 US-Dollar minus 10 US-Dollar zu ändern. Die Bestellung wird nicht sofort abgewickelt, sondern hängt in der Kauf- und Verkaufstiefe (d. h. auf einem der Rangstufen von 1 / 2 / 2 / N), so dass die Bestellung in der Pending-Liste steht. Dann nutzen wir das Modul "Erhalten aktueller Transaktionen auf Auftragsbestellungen", um eine Liste von Bestellungen zu erhalten, die im PENDING-Status sind. Um zu verhindern, dass die Auftragsvergabe in der nachfolgenden Börse die letzte Beobachtung beeinflusst, drucken wir nach der Ausführung des Moduls "Aktuelle Transaktion auf Auftragsbestellungen erhalten" die Liste der Aufträge aus und stoppen den Prozess sofort mit dem Modul "Ausfall werfen".
Die Ergebnisse zeigen:
Der nächste Kaufpreis ist niedriger als der aktuelle Preis von 10 US-Dollar und wird daher nicht sofort abgewickelt. Dann erhält man die Pending Orders und druckt sie aus. Schließlich wird eine Ausnahme ausgelöst, um das Programm zu stoppen.
Das ganze zusammengesetzte Modul ist wie ein Anruf einer JavaScript-Strategie:
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
Log(id)
Log(exchange.GetOrders())
throw "stop"
}
Das Modul wird für die Stornierung von Bestellungen verwendet.
Es gibt viele Szenarien, in denen man bei der Erstellung einer Strategie so handeln muss:
Ich habe eine Liste von Bestellungen, die ich nicht mehr habe, und ich habe eine Liste von Bestellungen, die ich nicht mehr habe.
Dies ist zweifellos mit dem "Widerrufsmodul" zu tun, und während wir den Widerrufsmodul lernen, können wir mit dem Modul von 5Ton, um den aktuellen Handel mit Auftragsbestellungen zu erhalten, die Kombination nutzen, um diese Funktion zu realisieren.
Zuerst, um zu testen, ob alle Bestellungen widerrufen werden, ist es nicht offensichtlich, eine Bestellung aufzuhängen, wir beginnen, zwei Male zu bestellen, wobei unterschiedliche Preise verwendet werden, um die beiden Bestellungen zu unterscheiden.
Verwenden Sie den Modul "Jedes Element der Liste durchsuchen" im Modul Loop-Typ, um die Bestellungen in der aktuellen Auflistung zu durchsuchen.Beim Durchlaufen wird jede entnommene Bestellung dem Variablenmodul ord ((in dem Variablenmodultyp erstellt, wie in der Abbildung unten:)In den Modulen mit Tooltypen:Erhebt die Order-ID, leitet sie an die Position der Annullierungs-Module weiter und führt die Annullierungs-Order durch.
Die Wiederholung läuft:
Beschreibung mit JavaScript-Strategien:
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
Log(id)
var id2 = exchange.Buy(_C(exchange.GetTicker).Last - 12, 0.2)
Log(id2)
var orders = exchange.GetOrders()
Log(orders)
for (var i in orders) {
var order = orders[i]
Log(exchange.CancelOrder(order.Id))
}
}
Das Modul ist in der Lage, einen Modul mit einer Order-ID-Variablen zu erreichen, um die Orderdetails zurückzugeben.
Hier sind einige der Bestellungen, die nach dem Start zurückgegeben wurden:
Ein Vergleich der Ergebnisse der Ausführung in den 5 Tonnen-Prägen zeigt, dass die gedruckte Bestellung eine separate Bestellnachricht ist, ohne dass die Daten über die Ausgabe von Bestellungen in der Datenbank gespeichert werden.[]
In den Zwischenklammern verpackt.
Da in Beispiel 5 die Liste zurückgegeben wird, wird in diesem Fall eine separate Bestellmeldung zurückgegeben (modulbasierte Erfassung der ID-Variablen an der Position der Zwiebel, an der das Modul übermittelt wurde).
Die folgenden Beispiele zeigen, wie man JavaScript-Strategien ausführt:
function main () {
var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
Log(exchange.GetOrder(id))
}
In den Modulen oben lernen wir einzeln, wie wir die Börsen testen, die wir als Commodity-Futures einrichten.
Wiederholung:Die folgenden Beispiele werden nach dieser Einstellung getestet.
Beurteilen Sie den Status eines CTP-Kommoditäts-Futures mit dem Server der Futures-Firma
Die Commodity-Futures haben eine offene Börsenzeit, während der offenen Börse ist die Verbindung nicht möglich.
Einrichten eines Vertragsmoduls
Wenn ein Objekt einer Börse als Futures-Börse konfiguriert wird, wird der Fehler zurückgegeben, wenn der Kontrakt nicht eingerichtet und direkt auf den Markt zugegriffen wird:
Wir haben den Vertrag für MA909 eingerichtet, Methanol ist der derzeitige Hauptvertrag.So wird der aktuelle Tick für den MA909-Vertrag mit dem aktuellsten Preiswert in der Box abgerufen.
Einrichtung eines Moduls unter Futures Trading
Unterordnungsmodul ausgeführt
Es ist notwendig, eine Richtung anzugeben, da die Futures:
Buy: mehr als eine Aktie
Verkaufen: Leerstand
closebuy: Plötzlich mehr Lager
Closesell: Leerstand
Vier Richtungen (kommoditäre Futures: zwei weitere Richtungen: closebuy_today, closeesell_today, offene Position)
Zum Beispiel, wenn man das Modul als Einkauf einstellt, dann gibt es zwei Bedeutungen, mehrere Lager und flache Lager, was zweideutigkeit erzeugt. Es ist daher notwendig, die Module "Einzelrichtung für den Futures-Handel einstellen" zu verwenden, um eine eindeutige Unterrichtung zu setzen.
Die Nachforschungen zeigen:
Das ist ein Beispiel für JavaScript-Strategiekode:
function main () {
while (true) {
if (exchange.IO("status")) {
exchange.SetContractType("MA909")
Log(exchange.GetTicker().Last)
exchange.SetDirection("buy")
Log(exchange.Buy(1000, 1))
throw "stop"
} else {
Log("未连接商品期货前置机")
}
Sleep(1000)
}
}
Die Verwendung von Futures für digitale Währungen ist im Wesentlichen die gleiche wie die Verwendung von Commodity Futures in den oben aufgeführten 8 Futures.
Der Vertragskodex in OKEX kann folgendermaßen sein:
BitMEX:
Setzen Sie das Hebelmodul ein
Die Anwendungen werden von den Anbietern der digitalen Währung verwendet, um Futures-Leverage zu setzen.
# 注意 : 回测不支持。
Das ist ein Beispiel für die JavaScript-Politik:
function main () {
exchange.SetMarginLevel(10)
}
Die Strategie zur Visualisierung von Beispielen:
Weitere Strategien finden Sie unter:https://www.fmz.com/square
Weitere Artikel in dieser Serie
- Ich weiß nicht.Ich habe einen Monat lang programmiert und kann keine Strategien schreiben, aber jetzt bin ich auf Steine angewiesen!
Die Erfinder quantifizieren - Kleine TräumeDank der Unterstützung werden wir diese Serie fortsetzen. In der Tat ist es sehr einfach, mit JS-Strategien zu schreiben, basierend auf dem entsprechenden JavaScript-Strategiekode hinter jedem Parameter.