Die Ressourcen sind geladen. Beförderung...

Derbit-Futures-API für Optionsquantitative Transaktionen geändert

Schriftsteller:Die Erfinder quantifizieren - Kleine Träume, Erstellt: 2019-10-29 14:57:54, Aktualisiert: 2023-10-17 21:20:50

img

Es gibt viele digitale Währungs-Futures-Börsen, aber als Futures-Derivate, digitale Währungs-Optionshandel, gibt es derzeit nur wenige Börsen auf dem Markt, die Optionshandel unterstützen, wie Deribit, BitMEX. Im Bereich der Quantitative Handel, Optionshandel gibt es auch verschiedene Strategien, wie zum Beispiel die Optionshandel-Strategie, die in einigen Informationen erwähnt wird:

Typ
Die strategische Richtung: Kauf von Zinsoptionen Verkauf von Optionen Die Bullen sehen die Preise schlecht. Die Preise sind schlecht
Kauf von Abwärtstrophen Verkauf von Optionen Der Bärenmarkt sieht die Preise für Aluminium schlechter Der Börsenmarkt geht schief
Die Strategie der Volatilität: Verkauf von Transforms Verkauf von Breitband Kauf von Transform Kauf von Breitband
Die Absicherungsstrategie: Auf der Hut! Bereitschaft zum Fallen Schutzwürmer Protektiver Rückgang
Mehrspitzige Grenzen Zweihöhe

Auszug vonVerbindungen

Die Strategie für den Handel mit Optionen erfordert eine solide Grundlage, die grundlegenden Operationen wie Aufzeichnungen, Marktbeschaffungen, Abhebungen und Haltebeschaffungen sind vertraut. Die Strategie wird immer noch mit der Quantitative Handelsplattform der Erfinder erstellt, obwohl die Quantitative Handelsplattform der Erfinder derzeit hauptsächlich für den Bereich der Quantitative Handel mit digitalen Währungen unterstützt.

Derbit ist ein Internet-Spieler.

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

Sie können sich auf der Analogdisk-Website registrieren, den API KEY öffnen und auf den API KEY zugreifen.img

Es gibt vier grundlegende Konzepte, die man verstehen muss, wenn man mit Optionen handelt:img

  • Ausübungstag: Übergabe des Optionsvertrags an die Parteien, die mehrere Optionen besitzen.
  • Ausgleichspreis: Am Ausgleichstag wird der Optionsvertrag mit dem Ausgleichspreis abgeschlossen.
  • Anspruchsbetrag: Das ist der Preis der Option, bei der es sich wie bei einem Terminkontrakt um einen Kauf- und einen Verkaufspreis handelt. Es ist zu beachten, dass der Kauf- und Verkaufspreisunterschied möglicherweise sehr groß ist, da die Liquidität von Optionen im Allgemeinen schlechter ist als die von Futures und Bargeld. Hier ist besonders darauf zu achten, dass nach der Transaktion der Transaktionspreis die Kosten für die Option ist, bei denen die Mehrheit die Rechte erhält (die Ausübung des Optionsrechts); und der Kaufkopf der Option als Anspruchsbetrag eine Verpflichtung hinzufügt, sobald die Mehrheit die Ausübung der Rechte verlangt, muss der Kaufkopf mitmachen.
  • Die Option "Call" und "Put" werden von den Anbietern des Marktes angeboten. Eine so genannte "Powder Option" ist eine Option, bei der mehrere Optionsherren an einem bestimmten Tag, zu einem bestimmten Preis, die Optionshäuser zum Kauf eines bestimmten Bitcoins auffordern, wobei die Optionshäuser die Verpflichtung zur Unterstützung der Optionshäuser haben; eine sogenannte "Powder Option" ist eine Optionshäuser, die an einem bestimmten Tag, zu einem bestimmten Preis, die Optionshäuser zum Verkauf eines bestimmten Bitcoins auffordern, wobei die Optionshäuser die Verpflichtung zur Unterstützung der Optionshäuser haben.

Einzug in das Geschäft

Die API-Dokumentation der Börse Deribit zeigt, dass der Markt-Interface von Deribit für den Zugriff auf den Futures- oder Optionsmarkt lediglich eingegeben wird.instrument_nameWenn die Parameter unterschiedlich sind (instrument_name wird über die Funktion SetContractType eingestellt), dann kann man im Wesentlichen die Benutzeroberfläche entlang der Benutzeroberfläche abrufen.GetTickerDer Markt für Optionen.

Natürlich ist der Inventor der quantitativen Handelsplattform standardmäßig mit der echten Festplatte der Börse Deribit verpackt. Zuerst müssen wir mit dem folgenden Code auf die analoge Festplatte wechseln:

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

Und dann setzen wir das gegenwärtige als Optionskontrakt ein.BTC-27DEC19-7000-PIch bin nicht derjenige. Dies ist ein Purchase-Datum von 27 DEC 19 und ein Purchase-Preis von 7000.

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

Dann bekommen wir, wir schreiben zusammen, wir lassen den Code laufen, um zu testen, wie man diesen Optionsvertrag bekommt.

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

Es ist sehr einfach, mit Debugging Tools zu testen:imgSie können sehen, dass der Preis mit dem Preis auf der Analogplatte übereinstimmt.img

In den übrigen Branchen gibt es einheitliche Anrufe, die hier nicht beschrieben werden. Der Handel mit Optionen ist nicht sehr aktiv, und es kann manchmal vorkommen, dass die Börse nicht bezahlt oder nicht verkauft wird.SetErrorFilter("Invalid ticker")Ich habe das Gefühl, dass ich das nicht kann.GetRawJSONDie Funktion erhält die ursprünglichen Informationen, um die Daten zu verpacken, die in den Märkten verwendet werden, und hier habe ich ein Beispiel für eine ähnliche Funktion geschrieben:

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
}

Der Anruf lautet:Log($.GetTicker(exchange))

Nachfolgend

Die Handhabung ist sehr einfach, im Vergleich zu Futures handelt es sich nur um ein Kauf und Verkauf in zwei Richtungen.Sell,BuyDie Funktion wird angezeigt.

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))
}

img

Auf der Simulationsplatte erscheint auch die gerade eingegangene Bestellung.img

undexchange.GetOrder(id)Sie können sich nach den Bestellinformationen erkundigen.

Rücktritt

Das gleiche Verfahren wird auch verwendet.CancelOrderDie Funktion ist die gleiche wie bei Futures-Handel.img

Zugang zu den verfügbaren Aktien

Erhalten Sie die verfügbaren Vermögenswerte für das Konto, genauso wie beim Futures-Handel, und rufen Sie direkt anGetAccountDie Funktion kann auch.

Anzeige auf der Seite der simulierten Börseimg

Die Ausführungskode wurde abgerufen:img

Erhalten Sie Informationen über Lagerbestände

Sie können nicht direkt mit verpackten Produkten in Lager gehalten werden.GetPositionDie Funktion ist nicht mehr verfügbar, da der Default-Deribit-Handel Futures-Trading und nicht Options-Trading ist und nur Futures-Holdings mit dieser Funktion erhalten werden können. Das bedeutet, dass wir die Funktion der Optionshaltung selbst verpacken müssen.

Funktions-Interface, um die API-Dokumentation zu erhalten:img

$.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
}

AnrufeLog($.GetPosition(exchange))Sie können die Informationen ausdrucken.img img

Das bedeutet, dass die grundlegenden Operationen realisiert werden können, und der Rest kann auf Optionshandelsstrategien untersucht werden.


Verwandt

Mehr