Type/to search
8
Follow
1364
Followers
Studi Awal tentang Pengujian Ulang Strategi Opsi Mata Uang Kripto
Discussions
Created 2020-08-11 14:21:28  Updated 2024-12-10 10:10:30
 0
 2583

img

Studi Awal tentang Pengujian Ulang Strategi Opsi Mata Uang Kripto

Baru-baru ini, Platform Perdagangan Kuantitatif Inventor meningkatkan sistem pengujian ulangnya untuk mendukung pengujian ulang opsi mata uang digital.DeribitBeberapa data opsi dari bursa. Oleh karena itu, kami memiliki alat yang lebih baik untuk mempelajari tentang perdagangan opsi dan memvalidasi strategi.

Pengujian Ulang Opsi Deribit

Didefinisikan dalam sistem pengujian ulangDeribitOpsinya bergaya Eropa, dan satu kontrak bernilai 1BTC. Kode kontrak opsi adalah:BTC-7AUG20-12750-C

Subjek materiTanggal LatihanHarga LatihanOpsi (Panggilan/Penempatan)
BTC7AUG2012750C
BitcoinTanggal latihan: 7 Agustus 2020Harga latihan 12750Opsi Panggilan
BTC7AUG2012750P
BitcoinTanggal latihan: 7 Agustus 2020Harga latihan 12750Opsi Jual

Operasi penetapan kontrak dan perolehan posisi sama dengan operasi pada kontrak berjangka mata uang digital.
Siapkan kontraknya:exchange.SetContractType("BTC-7AUG20-12750-C")
Dapatkan posisi:var pos = exchange.GetPosition()

Harga kontrak opsi adalah premi kontrak opsi, dan pembeli opsi perlu membayar premi kepada penjual opsi. Pembeli memperoleh hak untuk melaksanakan opsi, dan penjual memiliki kewajiban untuk melaksanakan opsi. Kontrak opsi dapat diperdagangkan (misalnya, menutup posisi, menyelesaikan kewajiban) sebelum dilaksanakan.

Kombinasi perdagangan opsi umum sebagai contoh

Jual opsi panggilan dan beli spot.

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

Opsi dapat memberikan tingkat perlindungan lindung nilai tertentu untuk aset yang dibeli secara spot. Umumnya digunakan ketika Anda optimis terhadap spot tersebut dan bersedia mempertahankan spot tersebut. Risikonya terletak pada penurunan harga spot. Meskipun opsi dapat menutupi kerugian spot tertentu sampai batas tertentu, jika kerugian melebihi premi opsi, kerugian bersih akan terjadi.

Selain itu, likuiditas pasar opsi mata uang digital pada umumnya buruk, dan terkadang sulit menemukan rekanan. Ini juga sesuatu yang perlu dipertimbangkan.

Demikian pula, kita dapat mengganti spot dengan futures, kodenya adalah sebagai berikut:

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

Pengujian ulang ditunjukkan pada gambar:
img

Kontrak berjangka dapat mengurangi modal yang ditempatkan dibandingkan dengan kontrak spot, tetapi risikonya sedikit lebih tinggi daripada kontrak spot.

Selain itu, ada banyak kombinasi perdagangan opsi lainnya:

  • Penyebaran panggilan banteng
  • Spread Taruhan Beruang

Bagi yang berminat dapat mempelajarinya di sistem backtesting.

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