Blockchain Quantitative Investment Series - Dynamische Balance-Strategie

Schriftsteller:Gutes, Erstellt: 2019-03-26 11:52:11, aktualisiert:

Ursprung: FMZ Quantwww.fmz.com

Die "echte Sache" des quantitativen Handels ist der Ort, an dem man wirklich profitieren kann.

Nr. 1

Der Mentor von Warren Buffett, Benjamin Graham, erwähnte einmal in seinem Buch <> ein Handelsmodell, in dem Aktien und Anleihen dynamisch ausgeglichen sind.imgDieses Handelsmodell ist sehr einfach:

50% der in den Händen befindlichen Mittel werden in Aktienfonds und die restlichen 50% in Anleihenfonds investiert, d. h. Aktien und Anleihen machen jeweils die Hälfte aus.

Bei einer Neubalancierung der Vermögensposition, die auf festen Intervallen oder Marktveränderungen beruht, wird das Verhältnis von Aktienvermögen zu Anleihenvermögen wieder auf ein anfängliches 1:1 gesetzt.

Dies ist die ganze Logik der gesamten Strategie, einschließlich wann zu kaufen und zu verkaufen, und wie viel zu kaufen und zu verkaufen.

Nr. 2

Bei dieser Methode ist die Volatilität von Anleihenfonds tatsächlich sehr gering, weit unter der der Aktienvolatilität, so dass Anleihen hier als Referenzanker verwendet werden, d. h. Anleihen werden verwendet, um zu messen, ob die Aktien zu stark oder zu wenig steigen.

Wenn der Aktienkurs steigt, wird der Marktwert der Aktie größer als der Marktwert der Anleihe sein. Wenn das Marktwertverhältnis dieser beiden einen Schwellenwert überschreitet, wird die Gesamtposition angepasst, die Aktie verkauft und die Anleihe gekauft, um den Aktienwert zum Anleihewertverhältnis wieder auf das ursprüngliche 1:1 zu bringen.

Wenn der Marktwertverhältnis der beiden überschreitet den Satz einer Schwelle, wird die Gesamtposition angepasst, die Aktie wird gekauft, und die Anleihe wird verkauft, um das Marktkapitalisierungsverhältnis des Anleihewerts zum Aktienwert auf den ursprünglichen 1:1 wiederherzustellen.imgAuf diese Weise reicht das Verhältnis zwischen dem dynamischen Gleichgewicht von Aktien und Anleihen aus, um den Gewinn des Aktienwachstums zu genießen und die Volatilität von Vermögenswerten zu reduzieren.

Da dies eine komplette und gegenseitige Strategie ist, warum benutzen wir sie nicht auf dem Kryptowährungsmarkt?

Nr. 3

Strategie für die dynamische Balance von Blockchain-Assets in BTC

Strategie Logik

Gemäß dem aktuellen Wert von BTC beträgt der Kontostand 6400 USD Bargeld und 1 BTC, d. h. das anfängliche Verhältnis von Bargeld zum Marktwert von BTC beträgt 1:1.

Wenn der Preis der BTC auf $7400 steigt, d.h. der BTC-Marktwert größer ist als der Kontostand, und die Differenz zwischen ihnen überschreitet die festgelegte Schwelle, dann werden (7400-6400)/7400/2 Münzen verkauft. Das bedeutet, dass BTC aufgestiegen ist und wir das Bargeld zurücktauschen müssen.

Wenn der Preis der BTC auf 5400 fällt, d.h. der BTC-Marktwert kleiner ist als der Kontostand und die Differenz zwischen ihnen den festgelegten Schwellenwert übersteigt, kaufen Sie (6400-5400) / 5400/2 Münzen.

Auf diese Weise werden, unabhängig davon, ob der BTC geschätzt oder abgewertet wird, der Kontostand und der Marktwert des BTC immer dynamisch gleich gehalten.

Nr. 4

Wie implementiert man es mit Programmiercode?

Ein Beispiel dafür ist die Quantitative Trading Plattform FMZ.

// strategy parameter
var threshold = 0.05; // Threshold
var LoopInterval = 60; // Polling interval(seconds)
var MinStock = 0.001; // Minimum transaction volume
var XPrecision = 4; // Quantity accuracy
var ZPrecision = 8; // Price accuracy

// Withdrawal order function
function CancelPendingOrders() {

}

// Placing Order function
function onTick() {

}

// Main function
function main() {
    // Filter non-critical information
    SetErrorFilter("GetRecords:|GetOrders:|GetDepth:|GetAccount|:Buy|Sell|timeout");
    while (true) { // Polling mode
        if (onTick()) { // Execute the onTick function
            CancelPendingOrders(); // Cancel unexecuted pending orders
        }
        Sleep(LoopInterval * 1000); // Sleep
    }
}

Der gesamte Strategie-Rahmen ist eigentlich sehr einfach, eine main Funktion, eine onTick Bestellfunktion, eine CancelPendingOrders Funktion und die notwendigen Parameter.

Nr. 5

Auftragsmodul

// Placing Order function
function onTick() {
    var acc = _C(exchange.GetAccount); // Get account information
    var ticker = _C(exchange.GetTicker); // Get Tick data
    var spread = ticker.Sell - ticker.Buy; // Get the bid-ask spread of Tick data
    // 0.5 times the difference between the account balance and the current position value
    var diffAsset = (acc.Balance - (acc.Stocks * ticker.Sell)) / 2;
    var ratio = diffAsset / acc.Balance; // diffAsset / Account Balance
    LogStatus('ratio:', ratio, _D()); // Print ratio and current time
    if (Math.abs(ratio) < threshold) { // If the absolute value of ratio is less than the specified threshold
        return false; // return false
    }
    if (ratio > 0) { // If ratio is greater than 0
        var buyPrice = _N(ticker.Sell + spread, ZPrecision); // Calculate the order price
        var buyAmount = _N(diffAsset / buyPrice, XPrecision); // Calculate the order quantity
        if (buyAmount < MinStock) { // If the order quantity is less than the minimum transaction volume
            return false; // return false
        }
        exchange.Buy(buyPrice, buyAmount, diffAsset, ratio); // Buy order
    } else {
        var sellPrice = _N(ticker.Buy - spread, ZPrecision); // Calculate the order price
        var sellAmount = _N(-diffAsset / sellPrice, XPrecision); // Calculate the order quantity
        if (sellAmount < MinStock) { // If the order quantity is less than the minimum transaction volume
            return false; // return false
        }
        exchange.Sell(sellPrice, sellAmount, diffAsset, ratio); // Sell order
    }
    return true; // return true
}

Die Logik der Bestelltransaktion ist klar, und alle Kommentare wurden in den Code geschrieben.

Der Hauptprozess ist wie folgt:

Holen Sie sich Kontoinformationen.

Holen Sie die Tick-Daten.

Berechnen Sie den Tick-Daten-Bid-Ask-Spread.

Berechnen Sie den Kontostand und den BTC-Marktwertspread.

Berechnen Sie die Auslöserbedingungen für den Handel, den Auftragspreis und die Auftragsmenge.

Bestellen und zurückgeben.

Nr. 6

Modul für ausstehende Aufträge stornieren

// Withdrawal order function
function CancelPendingOrders() {
    Sleep(1000); // Sleep 1 second
    var ret = false;
    while (true) {
        var orders = null;
        // Continue to get an array of unexecuted orders, if an exception is returned, continue to get
        while (!(orders = exchange.GetOrders())) {
            Sleep(1000); // Sleep 1 second
        }
        if (orders.length == 0) { // If the order array is empty
            return ret; // Return to withdrawal status
        }
        for (var j = 0; j < orders.length; j++) { // Traversing the array of unexecuted orders
            exchange.CancelOrder(orders[j].Id); // Cancel unexecuted orders one by one
            ret = true;
            if (j < (orders.length - 1)) {
                Sleep(1000); // Sleep 1 second
            }
        }
    }
}

Das Modul für die Stornierung von ausstehenden Aufträgen ist noch einfacher, die Schritte sind wie folgt:

Warten Sie eine Sekunde, bevor Sie den Auftrag zurückziehen, da einige Börsen Serververzögerungen haben können.

Sie erhalten weiterhin eine Reihe von nicht ausgeführten Befehlen, und wenn eine Ausnahme zurückgegeben wird, versuchen Sie es weiter, bis sie erfolgreich ist.

Wenn das nicht ausgeführte Auftragsmatrix leer ist, wird der Rücknahmestatus sofort zurückgegeben.

Bei nicht ausgeführten Aufträgen wird das gesamte Array durchsucht und der Auftrag nach der Auftrags-ID zurückgezogen.

Nr. 7

Diese Strategie enthält alle Programmierquellcodes.img imgAuf der quantitativen Handelsplattform FMZ, mit nur 80 Zeilen Code, wurde eine vollständige Blockchain BTC Dynamic Balancing Strategie erfolgreich aufgebaut.

Nr. 8

Als nächstes testen wir diese einfache dynamische Balance-Strategie, um zu sehen, ob sie funktioniert.

Umgebung für BacktestsimgLeistung bei RückversuchenimgZurückversuchskurveimgEin weiterer, der gleiche Zeitraum BTC Preis-ChartimgIst das ein Schock für Sie?

Der BTC hat seinen achtmonatigen Rückgang fortgesetzt, und selbst der größte Rückgang hat 70% überschritten, was dazu geführt hat, dass viele Anleger das Vertrauen in Blockchain-Assets verlieren.

Die kumulierten Einnahmen dieser Strategie sind bis zu 160% und die jährliche Rendite-Risiko-Ratio übersteigt 5. Bei einer so einfachen Handelsstrategie übertrifft diese Rendite die Mehrheit der All-in-Spieler.

Nr. 9

Diese Ausgleichsstrategie mit nur einem Kernparameter (Schwellenwert) ist eine sehr einfache Anlagemethode, bei der nicht übermäßige Renditen, sondern solide Gewinne angestrebt werden.

Im Gegensatz zur Trendstrategie ist die dynamische Balance-Strategie gegen den Trend. Diese Strategie besteht darin, die Position zu reduzieren und abzukühlen, wenn der Markt zu heiß ist. Wenn der Markt verlassen ist, wird er versteckt, was der makroökonomischen Regulierung ähnelt.

In der Tat basiert die Strategie der dynamischen Balance auf der Idee, dass der Preis unvorhersehbar ist und gleichzeitig die Kursschwankungen erfasst.

Angesichts der Länge des Artikels ist es unmöglich, dass ein Artikel alles umfassend beschreibt. Wie ein altes Sprichwort sagt Gib einem Mann einen Fisch und du fütterst ihn für einen Tag. Lehre einem Mann zu fischen und du fütterst ihn für ein Leben lang.. Das Wichtigste an der dynamischen Balance-Strategie ist die Anlagegedanken. Sie können sogar die einzelnen BTC-Assets in diesem Artikel durch einen Korb Blockchain-Asset-Portfolios ersetzen.imgSchließlich wollen wir diesen Artikel mit einem Absatz aus Benjamin Grahams berühmtem Buch <> beenden:

Der Aktienmarkt ist kein "Wagen" der den Wert genau misst. Im Gegenteil, es ist eine "Wahlmaschine". Die Entscheidungen, die unzählige Menschen treffen, sind ein rationaler und emotionaler Dopant. Es gibt viele Zeiten, in denen diese Entscheidungen getroffen werden. Es ist weit entfernt vom Werturteil der Vernunft. Das Geheimnis der Investition besteht darin, zu investieren, wenn die Preise viel niedriger sind als der innere Wert, und zu glauben, dass sich die Markttrends verbessern werden.

  • Benjamin Graham

Für eine direkte Kopie des Quellcodes besuchen Sie bitte unseren Strategie-Bereich unter:https://www.fmz.com/strategy/110900

Es gibt viele Strategien, die man studieren, herunterladen, mieten oder kaufen kann.

NO.10

Über uns

Der Grund für den Betrieb dieser Website ist, den derzeitigen Status der quantitativen Handelswelt zu ändern, wo es an real stuff mangelt, wo es viele Betrügereien und kaum tiefe Kommunikation gibt, und eine reine quantitativer Handel Lern- und Kommunikationsplattform zu schaffen.www.fmz.com)

Ihre Weiterleitung wird uns die treibende Kraft sein, um weiter echte Dinge zu schaffen! Wenn Sie glauben, dass dieser Artikel Ihnen hilfreich ist, senden Sie ihn bitte an Ihren Freund weiter und unterstützen Sie uns.

Kontaktieren Sie uns

Telegramm: FMZ Quant

E-Mail:henry@fmz.com

Website:www.fmz.com


Mehr