avatar of 发明者量化-小小梦 发明者量化-小小梦
Suivre Messages privés
4
Suivre
1271
Abonnés

Transformation de l'API Deribit Futures pour s'adapter au trading quantitatif d'options

Créé le: 2019-10-29 14:57:54, Mis à jour le: 2024-12-16 11:24:47
comments   0
hits   2741

Transformation de l’API Deribit Futures pour s’adapter au trading quantitatif d’options

Il existe déjà de nombreuses bourses de contrats à terme sur devises numériques, mais en ce qui concerne les produits dérivés à terme et les options sur devises numériques, il n’y a pas beaucoup de bourses sur le marché. Les bourses qui prennent en charge le trading d’options incluent Deribit et BitMEX. Dans le domaine du trading quantitatif, il existe également de nombreuses stratégies de trading d’options, telles que les stratégies d’options mentionnées dans certains documents recherchés :

taper
Stratégie directionnelle : Acheter une option d’achat Vendre une option de vente Spread d’appel haussier Bull Put Spread
Acheter une option de vente Vendre une option d’achat Spread d’option d’achat à l’ours Bear Put Spread
Stratégies de volatilité : Vendre Straddle Vendre un straddle large Acheter Straddle Achetez Wide Straddle
Stratégies de couverture : Appel couvert Put couvert Appels de protection Mise de protection
Limite double longue Position courte double limite

Cité deconnecter

Pour rédiger une stratégie de trading d’options, vous devez d’abord établir des bases solides et vous familiariser avec les opérations de base telles que la passation d’ordres, l’obtention d’informations sur le marché, l’annulation d’ordres et l’obtention de positions. La rédaction de stratégies utilise toujours la plateforme de trading quantitatif Inventor, bien que cette dernière prenne actuellement principalement en charge le trading de devise à devise, le trading de contrats et le trading à effet de levier dans le domaine du trading quantitatif de devises numériques. Il n’existe pas beaucoup d’informations sur le trading d’options. Ci-dessous, nous prendrons l’exemple de la bourse « Deribit » pour vous présenter comment utiliser la plateforme de trading quantitatif Inventor pour jouer au trading d’options sur devises numériques.

Informations relatives à Deribit

Documentation de l’API : https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrument Disque de simulation : https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrument

Vous pouvez enregistrer un compte sur le site Web de la plateforme de simulation, activer la CLÉ API et obtenir la CLÉ API. La configuration sur la plateforme de trading quantitatif Inventor est la même que la configuration d’un compte réel. Transformation de l’API Deribit Futures pour s’adapter au trading quantitatif d’options

Il y a 4 concepts de base que vous devez comprendre pour le trading d’options : Transformation de l’API Deribit Futures pour s’adapter au trading quantitatif d’options

  • Date d’exercice : Date à laquelle les parties longue et courte de l’option achèvent la livraison du contrat d’option.
  • Prix ​​d’exercice : À la date d’exercice, les parties longue et courte de l’option réalisent la livraison du contrat d’option au prix d’exercice.
  • Prime : il s’agit du prix d’une option. Comme pour les contrats à terme au comptant, les cotations comprennent un prix d’achat et un prix de vente. Il convient de noter que, comme la liquidité des options est généralement pire que celle des contrats à terme et au comptant, l’écart entre l’offre et la demande peut être important. Une attention particulière doit donc être accordée ici ! Une fois la transaction terminée, le prix de transaction correspond au coût de l’option longue. À ce moment, la position longue obtient le droit (le droit d’exercer l’option) et la position courte de l’option, en tant que partie recevant la prime , a une obligation supplémentaire. Une fois que la position longue demande d’exercer le droit, la position courte doit coopérer. .
  • Options d’achat et de vente : Une option d’achat est un droit que le détenteur de l’option longue a de demander au détenteur de l’option courte d’acheter une certaine quantité de Bitcoin à un certain prix d’exercice à une certaine date d’exercice, et le détenteur de l’option courte a l’obligation de coopérer avec l’option longue. titulaire. Une option de vente est un droit que le détenteur de l’option longue a de demander au détenteur de l’option courte d’acheter une certaine quantité de Bitcoin à un certain prix d’exercice à une certaine date d’exercice. À une certaine date d’exercice, le vendeur à découvert est tenu de vendre les bitcoins donnés à un certain prix d’exercice, et le vendeur à découvert a l’obligation de coopérer avec le vendeur à long terme.

Informations sur le marché

Selon la documentation API de Deribit Exchange, l’interface de marché de Deribit transmet uniquement les données permettant d’accéder aux informations du marché à terme ou des options.instrument_nameLes paramètres sont différents (instrument_name est défini par la fonction SetContractType), vous pouvez donc utiliser l’interface pour obtenir des informations sur le marché.GetTickerObtenez des devis pour les options.

Bien entendu, le package par défaut de la plateforme de trading quantitative Inventor est le marché réel de Deribit Exchange. Nous devons d’abord passer au marché de simulation et utiliser le code suivant :

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

Ensuite, nous mettons actuellement en place un contrat d’optionBTC-27DEC19-7000-P: Il s’agit d’une option de vente avec date d’exercice : 27DEC19 et prix d’exercice : 7000

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

Alors, récupérez-le. Nous l’écrivons ensemble, exécutons le code et testons pour obtenir les informations de marché de ce contrat d’option.

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

L’utilisation d’outils de débogage peut être très pratique pour tester : Transformation de l’API Deribit Futures pour s’adapter au trading quantitatif d’options Vous pouvez voir que le prix est cohérent avec celui du disque de simulation. Transformation de l’API Deribit Futures pour s’adapter au trading quantitatif d’options

Les méthodes d’appel des autres interfaces de marché sont les mêmes et ne seront pas répétées ici. Il convient de noter que : Le trading d’options n’est pas très actif. Parfois, il n’y aura pas d’ordres d’achat ou de vente. À ce moment-là, la couche inférieure de la plateforme de trading quantitatif Inventor détectera une valeur de 0 et signalera une erreur. Vous pouvez utiliserSetErrorFilter("Invalid ticker")Ignorez cette erreur et utilisezGetRawJSONLa fonction récupère les informations originales du marché et encapsule les données. J’écris ici un exemple pour réaliser des fonctions similaires :

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
}

Lors de l’appel, écrivez :Log($.GetTicker(exchange))

Passer une commande

Le placement d’ordres est très simple. Par rapport aux transactions à terme, il n’y a que deux directions : acheter et vendre. Utiliser égalementSell,BuyOrdre des fonctions.

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

Transformation de l’API Deribit Futures pour s’adapter au trading quantitatif d’options

L’ordre qui vient d’être passé apparaît également sur le tableau de trading simulé. Transformation de l’API Deribit Futures pour s’adapter au trading quantitatif d’options

etexchange.GetOrder(id)Vous pouvez interroger les informations de la commande.

Annuler la commande

La même méthode est utilisée pour l’annulation de commande.CancelOrderFonction, tout comme l’annulation d’un ordre dans le trading à terme. Transformation de l’API Deribit Futures pour s’adapter au trading quantitatif d’options

Obtenez les actifs disponibles sur le compte

L’obtention des actifs disponibles sur un compte est exactement la même que dans le trading à terme. Appelez directementGetAccountFonction.

Affichage sur la page d’échange simulée Transformation de l’API Deribit Futures pour s’adapter au trading quantitatif d’options

Exécutez le code pour obtenir : Transformation de l’API Deribit Futures pour s’adapter au trading quantitatif d’options

Obtenir des informations sur la position

Pour conserver des positions, vous ne pouvez pas utiliser directement le packageGetPositionfonction, car par défaut les transactions Deribit sont des transactions à terme, pas des transactions d’options, et seule cette fonction peut être utilisée pour obtenir des positions à terme. Nous devons donc encapsuler nous-mêmes la fonction d’obtention de positions d’options.

L’interface de fonction pour obtenir des positions dans la documentation de l’API : Transformation de l’API Deribit Futures pour s’adapter au trading quantitatif d’options

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

AppelLog($.GetPosition(exchange))Vous pouvez imprimer les informations de position. Transformation de l’API Deribit Futures pour s’adapter au trading quantitatif d’options Transformation de l’API Deribit Futures pour s’adapter au trading quantitatif d’options

De cette façon, les opérations de base peuvent être réalisées, et le reste consiste à étudier les stratégies de trading d’options.