Währungsübergreifende Absicherungsstrategien beim quantitativen Handel mit Blockchain-Assets

Schriftsteller:Lydia., Erstellt: 2022-12-27 10:11:48, Aktualisiert: 2023-09-20 10:02:24

img

Währungsübergreifende Absicherungsstrategien beim quantitativen Handel mit Blockchain-Assets

Bei Hedging-Strategien gibt es verschiedene Arten der Absicherung: Cross-Market-Hedging, Cross-Period-Hedging usw. Heute werden wir über Cross-Währungs-Hedging sprechen, die genau die Cross-Währungs-Hedging-Strategie im quantitativen Handel mit Blockchain-Assets ist. Im Allgemeinen ist das Thema einer Hedging-Transaktion dasselbe, während Cross-Währungs-Hedging den Kauf und Verkauf verschiedener Gegenstände beinhaltet. Bei der Absicherung derselben Sorte können wir den Preisunterschied als Kauf- und Verkaufspreis in der Hedging-Transaktion verwenden. Bei der einfachsten Cross-Markt-Hedging derselben Sorte schwankt der Preisunterschied wiederholt innerhalb eines bestimmten Bereichs. Der Preisunterschied kann nicht als Kauf- und Verkaufspreis für Cross-Währungs-Hedging verwendet werden, da der Preisunterschied verschiedener Währungen nicht sehr intuitiv zu beobachten ist und das Preisverhältnis normalerweise als Kauf- und Verka

Zum Beispiel: Handelspaar A: LTC_USDT Handelspaar B: ETH_USDT

Verteilung der Eröffnungspositionen nach dem Preisverhältniswert vonPrice of Trading pair A/Price of Trading pair B. Je größer der Anteil ist, desto mehr werden wir A verkaufen und B kaufen. Wenn der Anteil sinkt, kaufen Sie A und verkaufen Sie B. Der entsprechende USDT-Betrag jeder Absicherung ist tatsächlich eine Strategie für den Netzhandel auf der Grundlage des relativen Preises von LTC/ETH. Die Strategieidee ist nicht kompliziert. Allerdings sollte beachtet werden, dass diese Art von Absicherungsportfolio tatsächlich ETH als Ankerpreiswährung verwendet, um LTC zu bewerten. Der verankerte Preis wird wahrscheinlich aus dem einseitigen Trend ausgehen. Obwohl es sich meistens um einen volatilen Trend handelt, muss dieses Risiko berücksichtigt und beachtet werden.

Es ist einfach, einen Strategieprototyp mit der FMZ Quant Trading Plattform zu schreiben: Wenn der Strategie-Code ausgeführt wird, muss er aufimgundimgPlot-Bibliothek:https://www.fmz.com/strategy/27293Digital currency spot trading library: Dies wird mit der Vorlageleiste geliefert, wenn jeder Benutzer eine neue Strategie erstellt.

/*backtest
start: 2019-05-01 00:00:00
end: 2019-11-04 00:00:00
period: 1m
exchanges: [{"eid":"OKEX","currency":"LTC_USDT","balance":100000,"stocks":30},{"eid":"OKEX","currency":"ETH_USDT","balance":100000,"stocks":30}]
*/

/*
A exchanges[0] : EOS_USDT   
B exchanges[1] : ETH_USDT
*/

var Interval = 500

// parameters
var numPoint = 100        // Number of nodes
var distance = 0.08       // Proportional distance
var amountPoint = 100     // Node amount in USDT
var arrHedgeList = []

function main () {
    var isFirst = true
    while(true) {
        var rA = exchanges[0].Go("GetTicker")
        var rB = exchanges[1].Go("GetTicker")

        var tickerA = rA.wait()
        var tickerB = rB.wait()

        if (tickerA && tickerB) {
            var priceRatioSell = tickerB.Buy / tickerA.Sell     // B sell , A buy
            var priceRatioBuy = tickerB.Sell / tickerA.Buy      // B buy , A sell
            
            if (isFirst) {
                for (var i = 0 ; i < numPoint ; i++) {
                    var point = {
                        priceRatio : priceRatioSell + (i + 1) * distance,
                        coverRatio : priceRatioSell + i * distance,
                        amount : (0.08 * i + 1) * amountPoint,
                        isHold : false,
                    }
                    arrHedgeList.push(point)
                }
                isFirst = false
            }

            for (var j = 0 ; j < arrHedgeList.length; j++) {
                if (priceRatioSell > arrHedgeList[j].priceRatio && arrHedgeList[j].isHold == false) {
                    // B sell , A buy
                    Log("Hedging, price ratio", priceRatioSell, "#FF0000")
                    $.Buy(exchanges[0], arrHedgeList[j].amount / tickerA.Sell)
                    $.Sell(exchanges[1], arrHedgeList[j].amount / tickerB.Buy)
                    arrHedgeList[j].isHold = true
                    LogStatus(_D(), exchanges[0].GetAccount(), "\n", exchanges[1].GetAccount())
                    $.PlotLine("ratio", (priceRatioSell + priceRatioBuy) / 2)
                    break 
                }

                if (priceRatioBuy < arrHedgeList[j].coverRatio && arrHedgeList[j].isHold == true) {    
                    // B buy , A sell
                    Log("hedge, price ratio", priceRatioBuy, "#32CD32")
                    $.Sell(exchanges[0], arrHedgeList[j].amount / tickerA.Buy)
                    $.Buy(exchanges[1], arrHedgeList[j].amount / tickerB.Sell)
                    arrHedgeList[j].isHold = false
                    LogStatus(_D(), exchanges[0].GetAccount(), "\n", exchanges[1].GetAccount())
                    $.PlotLine("ratio", (priceRatioSell + priceRatioBuy) / 2)
                    break
                }
            }
        }
        Sleep(Interval)
    }
}

Durch Backtesting können wir zunächst die Strategieideen überprüfen.

Verwenden Sie die Standardeinstellungen für Backtesting:

img img

Wie man sehen kann, wurden nur wenige Dutzend Zeilen Code verwendet, um eine Strategie Ihrer eigenen Ideen zu konstruieren. Es ist sehr einfach, einen Prototyp von Ideen auf der FMZ Quant Trading Plattform zu implementieren. Gemäß der obigen Abbildung schwankt dieser Preisanteil die meiste Zeit, aber es wird einen bestimmten Trend geben. Die Optimierungsrichtung kann die Positionskontrolle während der Absicherung sein oder eine bestimmte Trendidentifikation hinzufügen. In Bezug auf die Positionskontrolle können Sie den Absicherungsbetrag jedes Absicherungsknoten erhöhen.

if (isFirst) {
    for (var i = 0 ; i < numPoint ; i++) {
        var point = {
            priceRatio : priceRatioSell + (i + 1) * distance,
            coverRatio : priceRatioSell + i * distance,
            amount : (0.08 * i + 1) * amountPoint,          // 8% of amountPoint per increment
            isHold : false,
        }
        arrHedgeList.push(point)
    }
    isFirst = false
}

Auf diese Weise können die relativ hohen Positionen auf die Position mit einem hohen Preisanteil konzentriert werden, um zu vermeiden, dass bei niedrigem Preisanteil große Positionen besetzt werden. Natürlich ist eine solche Cross-Currency-Hedging sehr riskant. Wenn der Preis einer Währung weiterhin im Verhältnis zum Preis einer anderen Währung steigt, werden schwebende Verluste auftreten. Daher erfordert Cross-Currency-Hedging eine stärkere Korrelation zwischen den beiden Währungen.

Diese Strategie ist nur eine erste DEMO, die weiter verbessert und optimiert werden kann.


Verwandt

Mehr