デジタル通貨オプション戦略のバックテストに関する予備研究

作者: リン・ハーン優しさ, 作成日: 2020-08-23 10:53:41, 更新日: 2023-10-08 19:56:47

img

デジタル通貨オプション戦略のバックテストに関する予備研究

最近,FMZプラットフォームはデジタル通貨オプションのバックテストをサポートするためにバックテストシステムをアップグレードしました. 今回は,Deribit取引所のいくつかのオプションデータをサポートしています. したがって,オプション取引学習と戦略検証のためのより良いツールがあります.

デリビットのオプションバックテスト

バックテストシステムで定義されたDeribitオプションはヨーロッパ式で,1つの契約の価値は1BTCです.オプション契約コードは: BTC-7AUG20-12750-Cです.

主題 演算日 実行価格 (Call/Put) オプション
BTC 7AUG20 12750 C について
ビットコイン 2020年8月7日の練習 実行価格 12750 コールオプション
BTC 7AUG20 12750 P
ビットコイン 2020年8月7日の練習 実行価格 12750 置くオプション

契約の設定やポジションの取得などの操作は,デジタル通貨の先物と同じです. セット契約:交換.SetContractType ((BTC-7AUG20-12750-C) 位置を取得: var pos = 交換.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("Spots", spotProfit)
        $.PlotLine("Options", optionProfit)
        Sleep(500)
    }
}

img

オプションは,スポットで購入された資産に一定の程度のヘッジ保護を提供することができる.通常,スポットについて楽観的でスポットを保持したいときに使用される.リスクはスポット価格の低下にあります. 特定の範囲では,オプションは特定のスポット損失を補うことができますが,損失がオプションプレミアムを超えると,純損失が発生します.

さらに,デジタル通貨オプション市場の流動性は平均的で,時には相手が見つからないこともあります.これは考慮する必要がある問題でもあります.

代入することができます. コードは次のとおりです.

/*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("Futures", futuresProfit)
        $.PlotLine("Options", optionProfit)
        Sleep(500)
    }
}

img

フューチャーで占める資本は,スポットよりも少なくなるが,リスクはスポットよりも高い.

さらに,他の多くのオプション取引の組み合わせがあります:

  • オプション・ブール・コール・スプレッドbull call spread
  • ベア・プットオプション スプレッドBear Put Spread

興味のある人は バックテストシステムで勉強できます


関連性

もっと