In den ersten Artikeln habe ich so viele grundlegende Konzepte des Kryptowährungskreises sowie des programmatischen und quantitativen Handels gelernt. Schließlich können wir zum Hauptthema kommen und über die Strategie selbst sprechen. Im Artikel werden wir lernen, eine einfache Strategie umzusetzen. Für [Grid Strategy] sollten Studenten, die Handel betreiben, davon gehört haben, aber es spielt keine Rolle, ob Sie es nicht getan haben.PlattformenDie meisten Unternehmen haben ihre eigenen programmatischen und quantitativen Handelsfunktionen eingeführt, und die am häufigsten und am leichtesten verwendete Strategie istNetzstrategieDa wir die Quantifizierung in den Kryptowährungskreis einführen wollen, warum implementieren wir dann nicht einfach eine Netzstrategie selbst?
Dann könnten einige Studenten sagen:
Ich kann keine Codes schreiben!
Das ist wahr. Es ist in der Tat ziemlich schwierig für Studenten, die keine Computersoftware studieren und sich nicht mit Programmierarbeiten beschäftigt haben, eine vollständige Handelsstrategie selbst zu entwickeln. Weil Sie eine Reihe von Vorarbeiten vom Docking der Plattformoberfläche ausführen müssen (vielleicht ist Ihr Handelslogikprogramm nur 100 Zeilen lang, aber die andere zu erledigende Codierungsarbeit ist ziemlich viel, und es ist schwieriger als das Schreiben von Handelslogik.)
Zu diesem Zeitpunkt, wenn Sie ein sehr praktisches Tool haben, wird es ziemlich einfach sein, zumindest wird die Schwierigkeit um 70% reduziert. Sie können sich vorstellen, wenn Sie nur die Handelslogik schreiben, andere Arbeit, einschließlich Docking-Plattform-Schnittstelle, Signaturüberprüfung, Konfigurationsdateien, Betriebsumgebung Konstruktion, UI-Schnittstelle Schreiben, interaktives Schreiben und andere Funktionen, ist alles fertig, wie bequem und schnell es ist.
Glaubst du das nicht? Versuchen wir's!
Das Werkzeug, das wir verwenden, ist: FMZ Quant Trading Platform (FMZ.COM) Der Kern der Netzstrategie ist eigentlich die Logik des Netzeinkaufs und Verkaufs, also muss dies vor der Strategieentwicklung geklärt werden.
Die grundlegenden Verfahren für die Ausarbeitung einer Strategie sind wie folgt:
1.Zusammenfassung der Anforderungen an die Strategie
Einfach ausgedrückt, sie sind, was Ihre Strategie tun wird, wie sie zu tun ist und welche Funktionen sie hat. Diese Informationen können in einem Dokument (etwas wie ein Notizbuch) geschrieben werden, bevor Sie den Strategiecode tatsächlich schreiben. Es ist sehr einfach, Strategien auf FMZ zu entwickeln. Die Plattform bietet Ihnen Lösungen für diese Anforderungen, und Sie müssen diese Anforderungen nicht in einem Notizbuch schreiben (was nicht sehr bequem zu verwalten ist).
Denken Sie daran, die Strategie zu speichern, wenn Sie mit dem Schreiben fertig sind, und dann schreiben wir die Strategieanforderungen weiter (diese Anforderungen sind nicht unverändert; Sie können gleichzeitig aufnehmen und entwickeln).
XXX_USDT
, wie zum BeispielBTC_USDT
.2.Konstruieren Sie die Datenstruktur des Netzwerks:
Für die unklaren Ideen können wir zu Beginn analysieren.
Grids können sowohl in Auf- als auch in Abwärtsrichtung vom Basispunkt, dem Anfangspreis am Anfang, konstruiert werden. Das sogenannte Gitter besteht aus Schichten von Bietlinien und Asklinien.
Codierung einer Funktion zur Konstruktion einer Netzdatenstruktur:
function createNet(begin, diff) { // begin and diff are parameters; begin is the initial price, and diff is the grid interval (the interval of the equal difference grid is a price)
var oneSideNums = 10 // The grid generates 10 lines on both upward and downward sides. The above image only shows the situation of generating 2 lines on both sides (A and B on on side; C and D on the other side), and you can imagine the situation of generating 10 lines.
var up = [] // used to store the data structure of the upward "grid lines"
var down = [] // used to store the data structure of the downward "grid lines"
for (var i = 0 ; i < oneSideNums ; i++) { // determine the number of times according to the number of oneSideNums; construct the "grid line" data structure by loop
var upObj = { // construct the data structure of a upward "grid line"
buy : false, // buy mark; the initial mark is false, which means no buying
sell : false, // sell mark ...
price : begin + diff / 2 + i * diff, // the price position represented by the "grid line", which can be observed and processed according to the loop; the price position is getting higher successively
}
up.push(upObj) // put the constructed "grid line" data structure into the up array
var j = (oneSideNums - 1) - i // when in the loop, j changes from 9 to 0
var downObj = {
buy : false,
sell : false,
price : begin - diff / 2 - j * diff,
}
if (downObj.price <= 0) { // the price cannot be less than or equal to 0
continue
}
down.push(downObj) // put the constructed "grid line" data structure into the down array
}
return down.concat(up) // add "up" after "down", forming a grid array structure with grid line prices from low to high
}
Sie können die Funktion einzeln ausführen, um das Ergebnis zu sehen. Das
Die konstruierten Daten können beobachtet werden.
[
{"buy":false,"sell":false,"price":5},
{"buy":false,"sell":false,"price":15},
{"buy":false,"sell":false,"price":25},
{"buy":false,"sell":false,"price":35},
{"buy":false,"sell":false,"price":45},
{"buy":false,"sell":false,"price":55},
{"buy":false,"sell":false,"price":65},
{"buy":false,"sell":false,"price":75},
{"buy":false,"sell":false,"price":85},
{"buy":false,"sell":false,"price":95},
{"buy":false,"sell":false,"price":105}, // 100 is the initial price, the first line goes up is from 105, and the interval is 10
{"buy":false,"sell":false,"price":115}, // ...
{"buy":false,"sell":false,"price":125},
{"buy":false,"sell":false,"price":135},
{"buy":false,"sell":false,"price":145},
{"buy":false,"sell":false,"price":155},
{"buy":false,"sell":false,"price":165},
{"buy":false,"sell":false,"price":175},
{"buy":false,"sell":false,"price":185},
{"buy":false,"sell":false,"price":195}
]
Nachdem wir die Datenstruktur des Gitterwerks analysiert haben, müssen wir die spezifische Handelslogik der Gitterstrategie berücksichtigen. Tatsächlich ist die Logik des Kaufs und Verkaufs auch sehr einfach. Wir haben sie bereits in der obigen Abbildung gezeichnet. Kaufen bedeutet, eine bestimmte Linie nach unten zu überqueren, und verkaufen bedeutet, eine bestimmte Linie nach oben zu überqueren. Wie drücken wir also Upcrossing und Downcrossing aus? Es ist auch sehr einfach, wir müssen nur die Preispositionen von zwei Momenten vergleichen, um zu beurteilen.
Ich zeige es Ihnen auf dem vorherigen Bild.
1 ist eine Zeit, t2 ist eine Zeit nach t1; um zu beurteilen, ob die Linie C nach oben gekreuzt ist oder nicht, müssen wir nur beurteilenP1 < C
undP2 > C
- Ich weiß.
Auf die gleiche Weise, um zu beurteilen, ob die Linie B nach unten gekreuzt ist, müssen wir nur zu beurteilenP1 > B
undP3 < B
- Ich weiß.
Zu diesem Zeitpunkt müssen wir nur jede Linie in der Raster-Array zu durchqueren (Traversing wird allgemein gesagt,Einer nach dem anderen überprüfenIch möchte Sie bitten, mir zu sagen, ob Sie sich für eine solche Entscheidung entscheiden.
Ich habe die Aktion des Preis-Upcrossing und Downcrossing erfasst. Kann ich eine Bestellung aufgeben, wenn diese Aktionen ausgelöst werden?
Wenn der Preis auf einer Linie wiederholt nach oben und unten geht, würde dies nicht die Handlinggebühr für wiederholte Trades zum selben Preis verschwenden? Daher gibt es nach Auslösung des Upcross und Downcross noch eine Reihe von Urteilsbedingungen, die die Verwendung der Kauf-/Verkaufsmarke in der gerade konstruierten Gitterlinie-Datenstruktur erfordern (z. B.: {
Vielen Dank, daß ihr gelesen habt, und lasst uns die Erklärung und das Studium im nächsten Artikel fortsetzen.