avatar of 发明者量化-小小梦 发明者量化-小小梦
konzentrieren Sie sich auf Private Nachricht
4
konzentrieren Sie sich auf
1271
Anhänger

Anpassung der Deribit Futures API an den quantitativen Optionshandel

Erstellt in: 2019-10-29 14:57:54, aktualisiert am: 2024-12-16 11:24:47
comments   0
hits   2741

Anpassung der Deribit Futures API an den quantitativen Optionshandel

Es gibt bereits viele Börsen für digitale Währungstermingeschäfte, aber für den Handel mit Terminkontraktderivaten und digitalen Währungsoptionen gibt es nicht viele Börsen auf dem Markt. Zu den Börsen, die den Optionshandel unterstützen, gehören Deribit und BitMEX. Im Bereich des quantitativen Handels gibt es auch viele Strategien für den Optionshandel, wie beispielsweise die in einigen gesuchten Materialien erwähnten Optionsstrategien:

Typ
Richtungsstrategie: Kauf einer Call-Option Verkauf einer Put-Option Bull-Call-Spread Bull Put Spread
Put-Option kaufen Verkauf einer Call-Option Bären-Call-Spread Bären-Put-Spread
Volatilitätsstrategien: Straddle verkaufen Wide Straddle verkaufen Straddle kaufen Kaufen Sie Wide Straddle
Absicherungsstrategien: Gedeckter Call Gedeckter Put Schutzrufe Schutz Put
Langes Doppellimit Doppeltes Limit für Short-Positionen

Zitiert ausverbinden

Um eine Strategie für den Optionshandel zu schreiben, müssen Sie zunächst eine solide Grundlage schaffen und mit den grundlegenden Vorgängen wie der Auftragserteilung, dem Einholen von Marktinformationen, dem Stornieren von Aufträgen und dem Erlangen von Positionen vertraut sein. Beim Schreiben von Strategien wird immer noch die Inventor Quantitative Trading Platform verwendet, obwohl die Inventor Quantitative Trading Platform derzeit hauptsächlich den Devisenhandel, den Vertragshandel und den Leveraged Trading im Bereich des quantitativen Handels mit digitalen Währungen unterstützt. Es gibt nicht viele Informationen zum Optionshandel. Im Folgenden nehmen wir die Börse „Deribit“ als Beispiel, um zu erklären, wie man mit der Inventor Quantitative Trading Platform den Handel mit digitalen Währungsoptionen betreiben kann.

Deribit-bezogene Informationen

API-Dokumentation: https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrument Simulationsdiskette: https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrument

Sie können auf der Website der Simulationsplattform ein Konto registrieren, den API-Schlüssel aktivieren und den API-Schlüssel erhalten. Die Konfiguration auf der Inventor Quantitative Trading Platform ist dieselbe wie die Konfiguration eines echten Kontos. Anpassung der Deribit Futures API an den quantitativen Optionshandel

Es gibt vier grundlegende Konzepte, die Sie für den Optionshandel verstehen müssen: Anpassung der Deribit Futures API an den quantitativen Optionshandel

  • Ausübungsdatum: Das Datum, an dem die Long- und Short-Parteien der Option die Lieferung des Optionskontrakts abschließen.
  • Ausübungspreis: Am Ausübungsdatum schließen die Long- und Short-Parteien der Option die Lieferung des Optionskontrakts zum Ausübungspreis ab.
  • Prämie: Dies ist der Preis einer Option. Wie bei Spot-Futures enthalten die Notierungen einen Kaufpreis und einen Verkaufspreis. Es ist anzumerken, dass die Liquidität von Optionen im Allgemeinen schlechter ist als bei Futures und Spots, sodass die Geld-Brief-Spanne groß sein kann, sodass hier besondere Aufmerksamkeit geboten ist! Nach Abschluss der Transaktion entspricht der Transaktionspreis den Kosten der Long-Option. Zu diesem Zeitpunkt erhält die Long-Position das Recht (das Recht, die Option auszuüben); und die Short-Position der Option als die Partei, die die Prämie erhält , hat eine zusätzliche Verpflichtung. Sobald die Long-Position die Ausübung des Rechts verlangt, muss die Short-Position kooperieren. .
  • Call- und Put-Optionen: Eine Call-Option ist ein Recht, das der Inhaber der Long-Option vom Inhaber der Short-Option verlangen muss, eine bestimmte Menge Bitcoin zu einem bestimmten Ausübungspreis an einem bestimmten Ausübungsdatum zu kaufen, und der Inhaber der Short-Option hat die Verpflichtung, mit dem Inhaber der Long-Option zusammenzuarbeiten. Inhaber. Eine Put-Option ist ein Recht, das der Inhaber der Long-Option vom Inhaber der Short-Option verlangen muss, an einem bestimmten Ausübungsdatum eine bestimmte Menge Bitcoin zu einem bestimmten Ausübungspreis zu kaufen. An einem bestimmten Ausübungsdatum ist der Leerverkäufer verpflichtet, Verkaufen Sie die gegebenen Bitcoins zu einem bestimmten Ausübungspreis, und der Leerverkäufer hat die Verpflichtung, mit dem Longverkäufer zusammenzuarbeiten.

Marktinformationen

Laut der API-Dokumentation von Deribit Exchange übergibt die Marktschnittstelle von Deribit lediglich die Daten für den Zugriff auf Futures- oder Optionsmarktinformationen.instrument_nameDie Parameter sind unterschiedlich (instrument_name wird durch die Funktion SetContractType festgelegt), daher können Sie die Schnittstelle grundsätzlich zum Abrufen von Marktinformationen verwenden.GetTickerHolen Sie sich Angebote für Optionen.

Natürlich ist das Standardpaket der Inventor Quantitative Trading Platform der reale Markt von Deribit Exchange. Wir müssen zunächst zum Simulationsmarkt wechseln und den folgenden Code verwenden:

exchange.IO("base", "https://test.deribit.com")

Dann erstellen wir derzeit einen OptionsvertragBTC-27DEC19-7000-P: Dies ist eine Put-Option mit Ausübungsdatum: 27.12.19 und Ausübungspreis: 7000

exchange.SetContractType("BTC-27DEC19-7000-P")

Dann holen Sie es sich. Wir schreiben es gemeinsam, führen den Code aus und testen, um die Marktinformationen dieses Optionskontrakts zu erhalten.

function main () {
    exchange.IO("base", "https://test.deribit.com")
    exchange.SetContractType("BTC-27DEC19-7000-P")
    var ticker = exchange.GetTicker()
    Log(ticker)
}

Die Verwendung von Debugging-Tools kann zum Testen von Folgendem sehr praktisch sein: Anpassung der Deribit Futures API an den quantitativen Optionshandel Sie können sehen, dass der Preis mit dem auf der Simulationsdiskette übereinstimmt. Anpassung der Deribit Futures API an den quantitativen Optionshandel

Die Aufrufmethoden anderer Marktschnittstellen sind gleich und werden hier nicht wiederholt. Es ist zu beachten, dass: Der Optionshandel ist nicht sehr aktiv. Manchmal gibt es keine Kauf- oder Verkaufsaufträge. Zu diesem Zeitpunkt erkennt die unterste Ebene der Inventor Quantitative Trading Platform einen Wert von 0 und meldet einen Fehler. Sie können verwendenSetErrorFilter("Invalid ticker")Ignorieren Sie diesen Fehler und verwenden SieGetRawJSONDie Funktion erhält die ursprünglichen Informationen des Marktes und kapselt die Daten. Hier schreibe ich ein Beispiel, um ähnliche Funktionen zu erreichen:

function init() {
    SetErrorFilter("Invalid ticker")
}

$.GetTicker = function(e) {
    var ticker = e.GetTicker()
    if (!ticker) {
        try {
            var ret = JSON.parse(e.GetRawJSON())
            return {
                Info : ret,
                High : ret.result.stats.high,
                Low : ret.result.stats.low, 
                Buy : ret.result.best_bid_price,
                Sell : ret.result.best_ask_price,
                Last : ret.result.last_price, 
                Volume : ret.result.stats.volume,
                OpenInterest : 0,
                Time : new Date().getTime()
            }
        } catch (err) {
            Log(err)
        }
    }
    
    return ticker
}

Beim Aufruf schreiben Sie:Log($.GetTicker(exchange))

Bestellung aufgeben

Die Auftragserteilung ist sehr einfach. Im Vergleich zum Terminhandel gibt es nur zwei Richtungen: Kaufen und Verkaufen. Verwenden Sie auchSell,BuyFunktionsreihenfolge.

function main () {
    exchange.IO("base", "https://test.deribit.com")
    exchange.SetContractType("BTC-27DEC19-7000-P")
    
    var id = exchange.Buy(0.017, 1)
    Log(exchange.GetOrder(id))
}

Anpassung der Deribit Futures API an den quantitativen Optionshandel

Die soeben erteilte Order erscheint auch auf der simulierten Handelsplattform. Anpassung der Deribit Futures API an den quantitativen Optionshandel

Undexchange.GetOrder(id)Sie können die Bestellinformationen abfragen.

Bestellung stornieren

Für die Stornierung einer Bestellung wird dasselbe Verfahren verwendet.CancelOrderFunktion, wie das Stornieren einer Order im Terminhandel. Anpassung der Deribit Futures API an den quantitativen Optionshandel

Verfügbare Vermögenswerte auf dem Konto abrufen

Der Erhalt der verfügbaren Vermögenswerte auf einem Konto erfolgt genau wie beim Futures-Handel. Rufen Sie direkt anGetAccountFunktion.

Anzeige auf der simulierten Austauschseite Anpassung der Deribit Futures API an den quantitativen Optionshandel

Führen Sie den Code aus, um Folgendes zu erhalten: Anpassung der Deribit Futures API an den quantitativen Optionshandel

Positionsinformationen abrufen

Zum Halten von Positionen können Sie nicht direkt die verpacktenGetPositionFunktion, da Deribit-Transaktionen standardmäßig Futures-Transaktionen und keine Optionstransaktionen sind und nur diese Funktion zum Erwerb von Futures-Positionen verwendet werden kann. Daher müssen wir die Funktion zum Erwerb von Optionspositionen selbst kapseln.

Die Funktionsschnittstelle zum Abrufen von Positionen in der API-Dokumentation: Anpassung der Deribit Futures API an den quantitativen Optionshandel

$.GetPosition = function(e) {
    // /private/get_positions
    // currency  , kind 
    
    var positions = [] 
    var currency = e.GetCurrency()
    var arr = currency.split("_")
    var baseCurrency = arr[0]
    
    try {
        var ret = e.IO("api", "GET", "/api/v2/private/get_positions", "currency=" + baseCurrency + "&kind=option")
        for (var i in ret.result) {
            if (ret.result[i].size == 0 || ret.result[i].direction == "zero") {
                continue    
            } 
            
            var pos = {
                Info : ret.result[i], 
                Amount : ret.result[i].size,
                FrozenAmount : 0,
                Price : ret.result[i].average_price,
                Profit : ret.result[i].floating_profit_loss,
                MarginLevel : 0,
                Margin : 0,
                ContractType : ret.result[i].instrument_name,
                Type : ret.result[i].direction == "buy" ? ORDER_TYPE_BUY : ORDER_TYPE_SELL,
            }
            
            positions.push(pos)
        }
    } catch (err) {
        Log(err)
        positions = null
    }
    
    return positions
}

AnrufLog($.GetPosition(exchange))Sie können die Positionsinformationen ausdrucken. Anpassung der Deribit Futures API an den quantitativen Optionshandel Anpassung der Deribit Futures API an den quantitativen Optionshandel

Auf diese Weise lassen sich die grundlegenden Vorgänge erlernen. Der Rest besteht im Studium der Optionshandelsstrategien.