Изменение фьючерсного API Deribit для количественной торговли опционами

Автор:Маленькие мечты, Создано: 2019-10-29 14:57:54, Обновлено: 2023-10-17 21:20:50

img

В настоящее время существует множество цифровых валютных фьючерсных бирж, но в качестве фьючерсных деривативов, торговли опционами на цифровые валюты, на рынке в настоящее время не так много бирж, которые поддерживают торговлю опционами, есть Deribit, BitMEX. В области количественной торговли, торговля опционами также имеет различные стратегии, такие как стратегия опционов, упомянутая в некоторых материалах поиска:

Тип
Показательная стратегия: Купить опционы на лизинг Продажа опционов На рынке быков наблюдается снижение цен на орехи На рынке быков падают цены
Покупка опционов на упадок Продажа опционов Медвежий рынок видит снижение цен на оран Белый рынок падает
Некоторые из них не знают, что делать. Продажа кроссовки Продажа широкополосных Покупка поперечных Купить широкополосный
Страна, в которой мы живем. Приготовьтесь. Ожидания падают Защитные углеводы Защитное падение
Многоголовый двулимит Пустое двойное

СсылкаСоединение

Составление стратегии опционов требует прочной основы, знания основных операций, таких как заказ, получение рынка, снятие ордера, получение доли. Составление стратегии по-прежнему использует квантовую платформу изобретателей, хотя квантовые платформы изобретателей в настоящее время в основном поддерживают в области квантовой торговли цифровыми валютами.

Информация о Deribit

API-документы:https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrumentМоделирование:https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrument

Можно зарегистрировать аккаунт на веб-сайте аналогового диска, открыть API KEY, получить доступ к API KEY.img

Для того, чтобы понять четыре основных понятия торговли опционами:img

  • Дата действия: сдача опционов с более чем свободными сторонами на эту дату.
  • Уставная цена: в день уставной даты сдача опционового контракта завершается опционовой ценой.
  • Права: это цена опциона, которая, как и насущные фьючерсы, предлагает покупку и продажу. Следует отметить, что в связи с тем, что ликвидность опционов обычно ниже, чем у фьючерсов и наличных, разница в цене покупки и продажи может быть очень большой. Следует обратить особое внимание на то, что после сделки цена сделки - это стоимость опционов, при которой опцион получает право (использование права); а свободный конец опциона, как и платеж за право, добавляет обязательство, которое должно быть выполнено, как только опцион требует права.
  • Посмотрите на опционы: Так называемые опционы на покупку - это опционы, в которых несколько участников имеют право на покупку определенного количества биткойнов на определенный день, по определенной цене, и обязательства на покупку; а так называемые опционы на покупку - это опционы, в которых несколько участников имеют право на продажу определенного количества биткойнов на определенный день, по определенной цене.

Доступ к делу

Посмотрев на API-документы биржи Deribit, можно понять, что интерфейс рынка Deribit для доступа к рынку фьючерсов или опционов является просто вводом.instrument_nameЕсли параметры разные (instrument_name настраивается через функцию SetContractType), то в основном можно использовать интерфейс для получения рынка.GetTickerПокупатели опционов.

Разумеется, по умолчанию изобретатель упаковывает квантовую торговую платформу как реальный диск на бирже Deribit, и сначала мы переключаемся на аналогичный диск с помощью следующего кода:

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

И затем мы настроим это на опционы.BTC-27DEC19-7000-P"Слушайте, ребята. Это дата выпуска: 27DEC19, цена выпуска: 7000.

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

Затем мы записываем и запускаем код, чтобы проверить, как получать этот опционный договор.

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

Например, вы можете попробовать использовать инструмент для декомпиляции, чтобы проверить:imgПоказано, что цены совпадают с теми, что на диске.img

В других отраслях интерфейсные звонки используются одинаково, и здесь мы не будем рассуждать об этом, но следует отметить следующее: Торговля опционами не очень активна, иногда на бирже возникает ситуация без покупки, или без продажи, когда изобретатель количественно определяет значение 0 в нижней части торговой платформы.SetErrorFilter("Invalid ticker")Именно поэтому мы и решили использовать эту ошибку.GetRawJSONФункция получает первичные информационные пакеты данных о рынке, и я написал пример для выполнения аналогичной функции:

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
}

Он написал:Log($.GetTicker(exchange))

Ниже

Операция в следующем порядке очень проста, по сравнению с торговлей фьючерсами, только покупка и продажа в двух направлениях.Sell,BuyФункция перечисляется.

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

На модных дисках также появились заказы, сделанные недавно.img

иexchange.GetOrder(id)Например, вы можете получить информацию о заказах.

Отзыв

Снижение счета также используетсяCancelOrderФункции, которые используются для снятия денежных средств при торговле фьючерсами.img

Доступ к аккаунту доступных активов

Получить доступ к аккаунту, как и при торговле фьючерсами, прямой звонокGetAccountФункция может быть.

Показать на странице аналогичной биржиimg

Код для запуска:img

Доступ к информации о хранении

Нельзя использовать упакованные продукты непосредственно для хранения.GetPositionФункция не работает, так как по умолчанию сделка Deribit - это сделка с фьючерсами, а не сделка с опционами, и только с этой функцией можно получить хранение фьючерсов. Таким образом, это означает, что нам нужно самостоятельно загрузить функцию получения опционов.

Функциональный интерфейс для получения хранилища в API-документации: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
}

ЗвонокLog($.GetPosition(exchange))Например, вы можете напечатать информацию о хранении.img img

Таким образом, основные операции могут быть реализованы, а остальное можно исследовать в стратегии торговли опционами.


Связанные

Больше