4
Подписаться
1271
Подписчики

Преобразование API Deribit Futures для количественной торговли опционами

Создано: 2019-10-29 14:57:54, Обновлено: 2024-12-16 11:24:47
comments   0
hits   2741

Преобразование API Deribit Futures для количественной торговли опционами

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

тип
Направленная стратегия: Покупка опциона колл Продажа опциона пут Спред «бык-колл» Спред Bull Put
Купить опцион пут Продажа опциона колл Медвежий колл-спред Медвежий пут-спред
Стратегии волатильности: Продать Стрэддл Продать ​​Wide Straddle Купить Стрэддл Купить Wide Straddle
Стратегии хеджирования: Покрытый колл Покрытый пут Защитные призывы Защитный пут
Длинный двойной лимит Короткая позиция двойной лимит

Цитируется изсоединять

Чтобы написать стратегию торговли опционами, вам все равно сначала нужно заложить прочный фундамент и ознакомиться с основными операциями, такими как размещение ордеров, получение рыночной информации, отмена ордеров и открытие позиций. Для написания стратегий по-прежнему используется платформа количественной торговли Inventor, хотя в настоящее время платформа количественной торговли Inventor в основном поддерживает торговлю валютой в валюте, торговлю контрактами и торговлю с использованием кредитного плеча в области количественной торговли цифровой валютой. Информации о торговле опционами не так много. Ниже мы возьмем биржу «Deribit» в качестве примера, чтобы показать, как использовать платформу количественной торговли Inventor для торговли опционами на цифровые валюты.

Информация о 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. Настройка количественной торговой платформы Inventor аналогична настройке реального счета. Преобразование API Deribit Futures для количественной торговли опционами

Для торговли опционами необходимо понимать 4 основные концепции: Преобразование API Deribit Futures для количественной торговли опционами

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

Информация о рынке

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

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

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

Затем мы в настоящее время создаем опционный контрактBTC-27DEC19-7000-P: Это опцион пут с датой исполнения: 27 декабря 2019 г. и ценой исполнения: 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)
}

Использование инструментов отладки может быть очень удобным для тестирования: Преобразование API Deribit Futures для количественной торговли опционами Вы можете видеть, что цена соответствует цене на диске моделирования. Преобразование API Deribit Futures для количественной торговли опционами

Методы вызова других интерфейсов рынка такие же и не будут здесь повторяться. Следует отметить, что: Торговля опционами не очень активна. Иногда не будет ордеров на покупку или продажу. В это время нижний уровень платформы количественной торговли Inventor обнаружит значение 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))
}

Преобразование API Deribit Futures для количественной торговли опционами

Только что размещенный заказ также отображается на имитируемой торговой доске. Преобразование API Deribit Futures для количественной торговли опционами

иexchange.GetOrder(id)Вы можете запросить информацию о заказе.

Отменить заказ

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

Получите доступные активы на счете

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

Отображение на странице симулированного обмена Преобразование API Deribit Futures для количественной торговли опционами

Запустите код, чтобы получить: Преобразование API Deribit Futures для количественной торговли опционами

Получить информацию о позиции

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

Интерфейс функции получения позиций в документации API: Преобразование API Deribit Futures для количественной торговли опционами

$.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))Вы можете распечатать информацию о местоположении. Преобразование API Deribit Futures для количественной торговли опционами Преобразование API Deribit Futures для количественной торговли опционами

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