avatar of 发明者量化-小小梦 发明者量化-小小梦
fokus pada mesej peribadi
4
fokus pada
1271
Pengikut

Kajian Awal tentang Strategi Pilihan Matawang Kripto Ujian Balik

Dicipta dalam: 2020-08-11 14:21:28, dikemas kini pada: 2024-12-10 10:10:30
comments   0
hits   2220

Kajian Awal tentang Strategi Pilihan Matawang Kripto Ujian Balik

Kajian Awal tentang Strategi Pilihan Matawang Kripto Ujian Balik

Baru-baru ini, Platform Dagangan Kuantitatif Pencipta telah meningkatkan sistem ujian belakangnya untuk menyokong ujian balik pilihan mata wang digital.DeribitBeberapa data pilihan daripada pertukaran. Oleh itu, kami mempunyai alat yang lebih baik untuk mempelajari tentang perdagangan pilihan dan strategi pengesahan.

Ujian Balik Pilihan Deribit

Ditakrifkan dalam sistem ujian belakangDeribitPilihannya adalah gaya Eropah, dan satu kontrak bernilai 1BTC. Kod kontrak pilihan ialah:BTC-7AUG20-12750-C

Perkara subjek Tarikh Latihan Harga Latihan (Panggil/Letak) Pilihan
BTC 7AUG20 12750 C
Bitcoin Tarikh latihan: 7 Ogos 2020 Harga latihan 12750 Pilihan Panggilan
BTC 7AUG20 12750 P
Bitcoin Tarikh latihan: 7 Ogos 2020 Harga latihan 12750 Pilihan Letak

Operasi penetapan kontrak dan mendapatkan kedudukan adalah sama seperti niaga hadapan mata wang digital. Sediakan kontrak:exchange.SetContractType("BTC-7AUG20-12750-C") Dapatkan jawatan:var pos = exchange.GetPosition()

Harga kontrak opsyen ialah premium kontrak opsyen, dan pembeli opsyen perlu membayar premium kepada penjual opsyen. Pembeli mendapat hak untuk melaksanakan pilihan, dan penjual mempunyai kewajipan untuk melaksanakan pilihan. Kontrak opsyen boleh didagangkan (cth., menutup kedudukan, menyelesaikan obligasi) sebelum ia dilaksanakan.

Ambil kombinasi perdagangan pilihan biasa sebagai contoh

Jual pilihan panggilan dan beli tempat.

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

Kajian Awal tentang Strategi Pilihan Matawang Kripto Ujian Balik

Pilihan boleh memberikan tahap perlindungan lindung nilai tertentu untuk aset yang dibeli secara spot. Ia biasanya digunakan apabila anda optimis tentang tempat itu dan bersedia untuk memegang tempat itu. Risiko terletak pada penurunan harga spot Walaupun opsyen boleh menebus kerugian spot tertentu pada tahap tertentu, jika kerugian melebihi premium opsyen, kerugian bersih akan berlaku.

Di samping itu, kecairan pasaran pilihan mata wang digital secara amnya adalah lemah, dan kadangkala sukar untuk mencari rakan niaga. Perkara ini juga perlu difikirkan.

Begitu juga, kita boleh menggantikan tempat dengan niaga hadapan, kodnya adalah seperti berikut:

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

Ujian belakang ditunjukkan dalam rajah: Kajian Awal tentang Strategi Pilihan Matawang Kripto Ujian Balik

Niaga hadapan boleh mengurangkan modal yang diduduki berbanding spot, tetapi risikonya lebih tinggi sedikit daripada spot.

Di samping itu, terdapat banyak kombinasi perdagangan pilihan lain:

  • Panggilan lembu jantan tersebar
  • Beruang Meletakkan Spread

Mereka yang berminat boleh mengkajinya dalam sistem backtesting.