
Недавно платформа количественной торговли Inventor обновила свою систему бэктестинга для поддержки бэктестинга опционов на цифровые валюты.DeribitНекоторые данные по опционам с биржи. Таким образом, у нас есть более совершенные инструменты для изучения торговли опционами и проверки стратегий.
Определено в системе бэктестингаDeribitОпционы соответствуют европейскому стилю, стоимость одного контракта составляет 1 BTC. Код опционного контракта:BTC-7AUG20-12750-C。
| Тема | Дата выполнения | Цена упражнения | (Колл/Пут) опционы |
|---|---|---|---|
| BTC | 7AUG20 | 12750 | C |
| Биткойн | Дата исполнения: 7 августа 2020 г. | Цена исполнения 12750 | Опцион колл |
| BTC | 7AUG20 | 12750 | P |
| Биткойн | Дата исполнения: 7 августа 2020 г. | Цена исполнения 12750 | Опцион пут |
Операции по заключению контрактов и получению позиций аналогичны операциям по фьючерсам на цифровые валюты.
Заключите договор:exchange.SetContractType("BTC-7AUG20-12750-C")
Получить позиции:var pos = exchange.GetPosition()
Цена опционного контракта — это премия опционного контракта, и покупатель опциона должен уплатить премию продавцу опциона. Покупатель получает право реализовать опцион, а продавец обязан реализовать опцион. Опционный контракт может быть продан (например, закрыть позицию, урегулировать обязательство) до его исполнения.
Продайте опционы колл и купите спот.
/*backtest
start: 2020-07-27 00:00:00
end: 2020-08-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Deribit","currency":"BTC_USD"},{"eid":"OKEX","currency":"BTC_USDT","balance":100000}]
*/
function main() {
exchanges[0].SetContractType('BTC-7AUG20-12750-C');
var initSpotAcc = _C(exchanges[1].GetAccount)
var isFirst = true
while(true) {
var optionTicker = exchanges[0].GetTicker()
var spotTicker = exchanges[1].GetTicker()
if(isFirst) {
exchanges[0].SetDirection("sell")
exchanges[0].Sell(optionTicker.Buy, 1)
exchanges[1].Buy(spotTicker.Sell, 1)
isFirst = false
}
var optionPos = _C(exchanges[0].GetPosition)
var nowSpotAcc = _C(exchanges[1].GetAccount)
var diffStocks = (nowSpotAcc.Stocks - initSpotAcc.Stocks)
var diffBalance = (nowSpotAcc.Balance - initSpotAcc.Balance)
var spotProfit = diffBalance + diffStocks * spotTicker.Last
var optionProfit = optionPos[0].Profit * spotTicker.Last
LogProfit(spotProfit + optionProfit)
$.PlotLine("现货", spotProfit)
$.PlotLine("期权", optionProfit)
Sleep(500)
}
}

Опционы могут обеспечить определенную степень хеджирования для активов, приобретенных на спотовых рынках. Обычно он используется, когда вы настроены оптимистично в отношении позиции и готовы ее удерживать. Риск заключается в снижении спотовых цен. Хотя опционы могут компенсировать определенные спотовые потери в определенной степени, если потери превышают опционную премию, возникнет чистый убыток.
Кроме того, ликвидность рынка опционов на цифровые валюты, как правило, низкая, и порой бывает сложно найти контрагентов. Это также необходимо учитывать.
Аналогично мы можем заменить спот на фьючерс, код будет следующим:
/*backtest
start: 2020-07-27 00:00:00
end: 2020-08-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Deribit","currency":"BTC_USD"},{"eid":"Futures_OKCoin","currency":"BTC_USD"}]
*/
function main() {
exchanges[0].SetContractType('BTC-7AUG20-12750-C');
exchanges[1].SetContractType("quarter")
var isFirst = true
while(true) {
var optionTicker = exchanges[0].GetTicker()
var futuresTicker = exchanges[1].GetTicker()
if(isFirst) {
exchanges[0].SetDirection("sell")
exchanges[0].Sell(optionTicker.Buy, 1)
exchanges[1].SetDirection("buy")
exchanges[1].Buy(futuresTicker.Sell, _N(1 * futuresTicker.Sell / 100, 0))
isFirst = false
}
var optionPos = _C(exchanges[0].GetPosition)
var futuresPos = _C(exchanges[1].GetPosition)
var futuresProfit = futuresPos[0].Profit
var optionProfit = optionPos[0].Profit
LogProfit(futuresProfit + optionProfit)
$.PlotLine("期货", futuresProfit)
$.PlotLine("期权", optionProfit)
Sleep(500)
}
}
Бэктестинг показан на рисунке:

Фьючерсы могут сократить занимаемый капитал по сравнению со спотом, но риск немного выше, чем со спотом.
Кроме того, существует множество других комбинаций опционной торговли:
Желающие могут изучить это в системе бэктестинга.