En la carga de los recursos... Cargando...

Estudio preliminar sobre el análisis de la estrategia de opciones de moneda digital

El autor:La bondad, Creado: 2020-08-23 10:53:41, Actualizado: 2024-12-10 10:15:11

img

Estudio preliminar sobre el análisis de la estrategia de opciones de moneda digital

Recientemente, FMZ Platform ha actualizado el sistema de backtesting para soportar la backtesting de opciones de moneda digital. Esta vez, soporta algunos datos de opciones del exchange Deribit. Así que tenemos mejores herramientas para el aprendizaje de operaciones de opciones y verificación de estrategias.

Prueba de retroceso de las opciones derivadas

La opción Deribit definida en el sistema de backtest es de estilo europeo, y el valor de un contrato es 1BTC. El código del contrato de opción es: BTC-7AUG20-12750-C.

Objeto Fecha del ejercicio Precio de ejercicio Opción de compra/venta
El valor de las acciones 7AUG20 12750 C) El
El Bitcoin Ejercicio el 7 de agosto de 2020 Precio de ejercicio 12750 Opciones de compra
El valor de las acciones 7AUG20 12750 P
El Bitcoin Ejercicio el 7 de agosto de 2020 Precio de ejercicio 12750 Poner opción

Las operaciones tales como establecer contratos y obtener posiciones son las mismas que los futuros de divisas digitales. Contrato conjunto: intercambio.Tipo de contrato conjunto ((BTC-7AUG20-12750-C) Obtener la posición: var pos = intercambio.GetPosition()

El precio de un contrato de opción es la prima de un contrato de opción, y el comprador de la opción necesita pagar la prima de opción al vendedor de la opción. El comprador tiene el derecho de ejercer, y el vendedor tiene la obligación de ejercer.

Ejemplos de combinaciones comunes de operaciones de opciones

Vende una opción de compra y compra un punto.

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

Las opciones pueden proporcionar un cierto grado de protección de cobertura a los activos comprados al contado. Generalmente se utilizan cuando se es optimista sobre el spot y está dispuesto a mantener el spot. El riesgo radica en la caída de los precios al contado. Aunque hasta cierto punto, las opciones pueden compensar una cierta pérdida al contado, pero después de que la pérdida exceda la prima de la opción, habrá una pérdida neta.

Además, la liquidez del mercado de opciones de divisas digitales es promedio y, a veces, no se encuentra ninguna contraparte.

Del mismo modo, podemos reemplazar spot con futuros, el código es el siguiente:

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

Los futuros pueden reducir el capital ocupado en comparación con los spot, pero el riesgo es mayor que el spot.

Además, hay muchas otras combinaciones de operaciones de opciones:

  • Diferencia entre las opciones de venta a precios elevadosbull call spread
  • Opción Bear Put PropagaciónBear Put Spread

Los interesados pueden estudiar en el sistema de backtest.


Relacionados

Más.