Spätes Teilen: Bitcoin-Hochfrequenz-Roboter mit täglicher Rendite von 5% im Jahr 2014

Schriftsteller:Lydia., Erstellt: 2023-01-17 16:12:15, aktualisiert: 2023-09-20 09:27:14

img

Spätes Teilen: Bitcoin-Hochfrequenz-Roboter mit täglicher Rendite von 5% im Jahr 2014

Einführung der Strategie

Die Strategie wurde von:https://www.fmz.com/strategy/1088Die Strategie ist meine Hauptstrategie, seit ich mit der digitalen Währung angefangen habe. Nach kontinuierlicher Verbesserung und Modifikation ist sie komplizierter geworden, aber die Hauptidee hat sich nicht geändert. Die freigegebene Version ist die ursprüngliche Version ohne offensichtliche Fehler. Sie ist die einfachste und klarste. Es gibt kein Positionsmanagement. Jede Transaktion ist voll und es gibt keinen Neustart, aber es reicht aus, um das Problem zu erklären. Die Strategie lief von August 2014 bis Anfang dieses Jahres, als die Börse Gebühren. Während des Zeitraums war der Betrieb ziemlich gut, und die Zeit des Verlusts war sehr gering. Das Kapital ist von 200 Yuan auf 80 Bitcoin gestiegen. Der spezifische Prozess kann in gesehen werdenDer Weg der automatisierten Transaktion mit virtueller WährungArtikelreihe inXiaocaos Sina-Blog- Ich weiß. Die folgende Abbildung ist die Rendite-Kurve der OKcoin-Plattform, die ich speziell gezählt habe. Das Anfangskapital beträgt 1000 Yuan. Sie können sehen, dass das Anfangskapital stetig zugenommen hat. Die mittlere Linie ist, dass meine Strategie gestoppt hat. Später, weil die Strategie in eine Währung verdienen Strategie geändert wurde, schwankt die Rendite in RMB stark. Der spezifische Prozess wird im Artikel der zweijährigen Zusammenfassung des Strategiehandels beschrieben.

img

Die folgende Grafik zeigt die in Währung umgerechnete Kurve der gesamten Vermögenswerte:

img

Warum diese Strategie teilen?

  1. Nachdem der Austausch aufgeladen wurde, wurden fast alle Hochfrequenzstrategien getötet, und meine ist keine Ausnahme.
  2. Ich habe schon lange nichts weitergegeben. Ich wollte diesen Artikel schon lange schreiben.
  3. Kommunizieren und lernen mit euch allen.

Strategieprinzip

Das Prinzip dieser Strategie ist sehr einfach. Es kann als quasi-hohe Frequenz-Marktmachungsstrategie verstanden werden. Sie möchten vielleicht nach dem Lesen Leute treffen, kann es Geld verdienen?! Zu dieser Zeit konnte fast jeder es schreiben. Ich habe nicht erwartet, dass es am Anfang so effektiv sein würde. Es kann gesehen werden, dass wir der Praxis Aufmerksamkeit schenken sollten, sobald wir Ideen im Kopf haben. Wie alle Hochfrequenzstrategien basiert auch diese Strategie auf dem Auftragsbuch.

img

Wir können auf der linken Seite den Kaufbefehl sehen, der die Anzahl der Aufträge zu verschiedenen Preisen anzeigt, und auf der rechten Seite ist der Verkaufsbefehl. Man kann sich vorstellen, dass, wenn jemand Bitcoin kaufen möchte, wenn er nicht den Auftrag abwarten und warten möchte, er nur den Auftrag entgegennehmen kann. Wenn er eine große Anzahl von Aufträgen hat, wird dies dazu führen, dass eine große Anzahl von Transaktionen den Auftrag und die Liste verkaufen, was sich auf den Preis auswirken wird. Dieser Einfluss wird jedoch nicht anhalten. Einige Leute wollen den Auftrag entgegennehmen und verkaufen, und der Preis wird sich wahrscheinlich in sehr kurzer Zeit erholen. Umgekehrt ist es ähnlich wie zu verstehen, dass jemand Münzen verkaufen möchte. Nehmen wir zum Beispiel den ausstehenden Auftrag in der Abbildung. Wenn Sie 5 Münzen direkt kaufen möchten, wird der Preis 10377 erreichen. Wenn jemand 5 Münzen direkt verkaufen möchte, wird der Preis 10348 erreichen. Der Preisunterschied ist die Gewinnspanne. Die Strategie wird einen Auftrag zu einem etwas niedrigeren Preis als 10377, z. B. 10376,99, ausstecken und zu einem etwas höheren Preis als 10348, z. B. 10348,01 kaufen. Dies liegt daran, dass, wenn die Situation einfach passiert ist, der Unterschied offensichtlich verdient wird. Obwohl es nicht jedes Mal so perfekt sein wird, sind die Chancen, tatsächlich Geld zu verdienen, angesichts der Wahrscheinlichkeiten unglaublich hoch. Erklären Sie die spezifische Operation mit den Parametern der aktuellen Strategie. Dieser Parameter ist natürlich nicht verfügbar, nur zur Veranschaulichung. Er sucht nach einem Preis mit einer kumulierten Menge von 8 Münzen, hier ist 10377, dann ist der Verkaufspreis zu diesem Zeitpunkt der Preis minus 0.01 (der Betrag kann zufällig sein). Ähnlich wird er nach unten nach einer kumulierten Menge von 8 Münzen suchen, hier ist 10348, dann ist der Verkaufspreis zu diesem Zeitpunkt 10348.01, und die Differenz zwischen dem Kauf- und Verkaufspreis zu diesem Zeitpunkt ist 10376.99-10348.01 = 28.98, was größer ist als die voreingestellte Preisdifferenz von 1.5, also wird er einen Auftrag finden, auf die Transaktion mit diesen beiden Preisen zu warten, wenn die Preisdifferenz kleiner als 1.5 ist, wird er auch einen Auftrag finden, wie den Eröffnungspreis plus oder minus 10 und warten Sie weiter (es ist angemessen, die Tiefe des Abwarts zu verfolgen). Darüber hinaus ist zu beachten, dass diese Strategie nur mit den aktuellen tiefen ausstehenden Aufträgen zusammenhängt und sich nicht um den historischen Markt und seine eigene historische Transaktion kümmert. Die Strategie hat auch kein Konzept von Einzelverlusten. Tatsächlich ist die Gewinnrate einer einzelnen Transaktion sehr hoch.

Weitere Erläuterungen

    1. Was soll ich tun, wenn mir das Geld oder das Geld ausgeht? Diese Situation ist sehr häufig, wenn ich weniger Geld habe. Meistens warte ich nur auf eine Seite der Bestellung, aber es ist kein großes Problem. Tatsächlich können wir die Logik des Ausgleichs von Währung und Geld hinzufügen, aber es ist unvermeidlich, im Prozess des Ausgleichs zu verlieren. Schließlich ist jede Transaktion eine Frage der Wahrscheinlichkeit. Ich wähle es, auf der einen Seite auf die Transaktion zu warten. Natürlich verschwendet dies auch die Transaktionsmöglichkeit auf der anderen Seite.
    1. Wie werden Positionen verwaltet? Zu Beginn standen sie alle in voller Kauf- und Verkaufsposition, später wurden sie nach verschiedenen Parametern in verschiedene Gruppen unterteilt und nicht gleichzeitig vollständig geschlossen.
    1. Gibt es einen Stop-Loss? Die Strategie hat eine vollständige Logik der Kauf- und Verkaufsbestellungen. Ich denke, es gibt keine Notwendigkeit, Stop-Loss (was diskutiert werden kann), und es gibt auch die Präferenz der Wahrscheinlichkeit. Die Transaktion ist eine Gelegenheit, und der Stop-Loss ist ein Jammer.
    1. Wie passt man sich an die Strategie des Geldverdienen an? In diesem Moment sind die Parameter symmetrisch, dh die kumulativen Verkaufsorders von 8 Münzen nach oben und die kumulativen Kauforders von 8 Münzen nach unten sind leicht unausgewogen. Zum Beispiel machen die kumulativen Verkaufsorders von 15 Münzen nach oben die Verkaufsmöglichkeiten schwieriger und es besteht eine größere Chance, dass sie zu einem niedrigeren Preis zurückgegeben werden, was Währung macht und wiederum Geld verdient. Tatsächlich ist die frühe Strategie so effektiv, dass sowohl Währung als auch Geld erhöht werden.
    1. Wie geht man mit schwimmenden Verlusten um? Natürlich gibt es Verluste in einer einzigen Transaktion, wie zum Beispiel den Anstieg des Währungspreises nach dem Verkauf und den Rückgang des Währungspreises nach dem Kauf. Solche schwimmenden Verluste müssen nicht behandelt werden, da die Transaktionen häufig sind und es täglich tausende Male normal ist. Schwimmende Verluste sind normal, solange die Gewinnwahrscheinlichkeit größer ist.
    1. Wie kann man schwarze Schwäne verhindern? Bitcoin hat eine Menge Black Swan-Zeit, manchmal geht es einfach ganz runter, und es gibt keine Chance, es zu verkaufen. Diese Situation sollte nicht zu besorgt sein, weil die Black Swan-Zeit oft hohe Volatilität bringt, und die Strategie macht genau diesen Teil des Geldes, und der Verlust kann auch schnell zurückverdient werden.

Erläuterung des Codes

Der vollständige Code kann in meinem Strategie-Sharing unterwww.fmz.com. Hier werden nur die Kernlogikfunktionen erklärt. Ohne Änderungen funktioniert der Simulationsbot, der mit botvs geliefert wird, tatsächlich perfekt. Dies ist eine Strategie vor mehr als drei Jahren, und die Plattform unterstützt sie noch heute. Es ist sehr bewegend. Zunächst einmal müssen Sie die Ordertiefeninformationen von verschiedenen Plattformen erhalten, und selbst wenn alle Aufträge durchlaufen werden, gibt es immer noch keine erforderliche Menge (diese Situation wird durch viele 0,01 Gitterorders in der späteren Phase verursacht). Der Aufruf ist GetPrice (Buy), der den Kaufpreis erhalten soll.

function GetPrice(Type) {
   //_C() is the fault-tolerant function of the platform
    var depth=_C(exchange.GetDepth);
    var amountBids=0;
    var amountAsks=0;
    //Calculate the buy price and get the cumulative depth to a preset price
    if(Type=="Buy"){
       for(var i=0;i<20;i++){
           amountBids+=depth.Bids[i].Amount;
           //The parameter floatamountbuy is the preset accumulated depth
           if (amountBids>floatamountbuy){
               //Add 0.01 to make the order in the front
              return depth.Bids[i].Price+0.01;}
        }
    }
    //Calculate the selling price similarly
    if(Type=="Sell"){
       for(var j=0; j<20; j++){
    	   amountAsks+=depth.Asks[j].Amount;
            if (amountAsks>floatamountsell){
            return depth.Asks[j].Price-0.01;}
        }
    }
    //After traversing the full depth but still not meeting the demand, a price is returned to avoid bugs
    return depth.Asks[0].Price
}

Die Hauptfunktion jeder Schleife ist onTick(). Die hier eingestellte Schleifezeit beträgt 3,5 Sekunden. Jede Schleife annulliert die ursprüngliche Bestellung und verlängert die Bestellung. Je einfacher sie ist, desto weniger wird sie auf einen Fehler stoßen.

function onTick() {
    var buyPrice = GetPrice("Buy");
    var sellPrice= GetPrice("Sell");
    //diffprice is the preset spread, if the bid/ask spread is less than the preset spread, it will pend a relatively deeper price.
    if ((sellPrice - buyPrice) <= diffprice){
            buyPrice-=10;
            sellPrice+=10;}
    //Cancel all the original orders. In fact, the new price is often the same as the price of the order. At this time, it is not necessary to cancel.
    CancelPendingOrders() 
    //Get account information to determine how much money and how many currencies are currently in the account.
    var account=_C(exchange.GetAccount);
    //The amount of Bitcoins that can be bought, _N() is the precision function of the platform.
    var amountBuy = _N((account.Balance / buyPrice-0.1),2); 
    //The amount of Bitcoin that can be sold, note that there is no position limit, buy and sell as much as you can, as I had very little money at the time.
    var amountSell = _N((account.Stocks),2); 
    if (amountSell > 0.02) {
        exchange.Sell(sellPrice,amountSell);}
    if (amountBuy > 0.02) {
        exchange.Buy(buyPrice, amountBuy);}
    //Sleep and enter the next loop
    Sleep(sleeptime);
}

Ende

Das gesamte Programm ist nur über 40 Zeilen lang, was sehr einfach erscheint, aber es dauerte auch mehr als eine Woche, zu der Zeit, die auf der botvs-Plattform war. Der größte Vorteil ist, dass es früh begann. Im Jahr 2014 wurde der Markt von beweglichen Ziegeln dominiert, und die Hochfrequenz-Strategie des Netzwerks und der Bestandsaufnahme war nicht zu viele, was die Strategie wie ein Fisch im Wasser machte. Später wurde die Konkurrenz immer heftiger, und ich hatte mehr Geld und stand vor vielen Herausforderungen. Ich musste jedes zweite Mal große Änderungen vornehmen, um damit umzugehen, aber es war im Allgemeinen glatt. Unter der Bedingung, dass die Handelsplattform nicht berechnet wird, ist es ein Paradies für den programmierten Handel. Weil Einzelhändler dazu neigen, zu operieren, wenn es keine Gebühr gibt, bietet es Gelegenheit für Hochfrequenz- und Arbitragegebühren. All dies endet im Grunde mit den zwei-Wege-Gebühren von 0,1-0,2%. Es gibt jedoch noch viel Raum für hochfrequente quantitative Strategien.


Verwandt

Mehr