Type/to search
8
Follow
1364
Followers
Предварительное исследование по бэктестингу стратегий опционов на криптовалюту
Discussions
Created 2020-08-11 14:21:28  Updated 2024-12-10 10:10:30
 0
 2583

img

Предварительное исследование по бэктестингу стратегий опционов на криптовалюту

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

Тестирование опционов Deribit

Определено в системе бэктестингаDeribitОпционы соответствуют европейскому стилю, стоимость одного контракта составляет 1 BTC. Код опционного контракта:BTC-7AUG20-12750-C

ТемаДата выполненияЦена упражнения(Колл/Пут) опционы
BTC7AUG2012750C
БиткойнДата исполнения: 7 августа 2020 г.Цена исполнения 12750Опцион колл
BTC7AUG2012750P
БиткойнДата исполнения: 7 августа 2020 г.Цена исполнения 12750Опцион пут

Операции по заключению контрактов и получению позиций аналогичны операциям по фьючерсам на цифровые валюты.
Заключите договор:exchange.SetContractType("BTC-7AUG20-12750-C")
Получить позиции:var pos = exchange.GetPosition()

Цена опционного контракта — это премия опционного контракта, и покупатель опциона должен уплатить премию продавцу опциона. Покупатель получает право реализовать опцион, а продавец обязан реализовать опцион. Опционный контракт может быть продан (например, закрыть позицию, урегулировать обязательство) до его исполнения.

Пример распространенных комбинаций опционной торговли

Продайте опционы колл и купите спот.

javascript
/*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) } }

img

Опционы могут обеспечить определенную степень хеджирования для активов, приобретенных на спотовых рынках. Обычно он используется, когда вы настроены оптимистично в отношении позиции и готовы ее удерживать. Риск заключается в снижении спотовых цен. Хотя опционы могут компенсировать определенные спотовые потери в определенной степени, если потери превышают опционную премию, возникнет чистый убыток.

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

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

javascript
/*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) } }

Бэктестинг показан на рисунке:
img

Фьючерсы могут сократить занимаемый капитал по сравнению со спотом, но риск немного выше, чем со спотом.

Кроме того, существует множество других комбинаций опционной торговли:

  • Спред по бычьему колл-опциону
  • Медвежий пут-спред

Желающие могут изучить это в системе бэктестинга.

Related Recommendations
Comment
All comments (0)
No data
No data
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)