디지털 통화 옵션 전략의 백테스팅에 대한 예비 연구

저자:선함, 2020-08-23 10:53:41, 업데이트: 2023-10-08 19:56:47

img

디지털 통화 옵션 전략의 백테스팅에 대한 예비 연구

최근, FMZ 플랫폼은 디지털 통화 옵션의 백테스팅을 지원하기 위해 백테스팅 시스템을 업그레이드했습니다. 이번에는 Deribit 거래소의 일부 옵션 데이터를 지원합니다. 따라서 옵션 거래 학습과 전략 검증을위한 더 나은 도구가 있습니다.

데리빗 옵션 백테스트

백테스트 시스템에서 정의된 데리빗 옵션은 유럽 스타일이며 한 계약의 가치는 1BTC입니다. 옵션 계약 코드는: BTC-7AUG20-12750-C입니다.

내용 연산 날짜 실무 가격 (Call/Put) 옵션
BTC 7AUG20 12750 C
비트코인 2020년 8월 7일 실시 실무 가격 12750 통화 옵션
BTC 7AUG20 12750 P
비트코인 2020년 8월 7일 실시 실무 가격 12750 설정 옵션

계약서 설정과 포지션 획득과 같은 거래는 디지털 통화 선물과 동일합니다. 세트 계약: 교환.세트 계약 유형 (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

관심 있는 사람들은 백테스트 시스템에서 공부할 수 있습니다.


관련

더 많은