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.
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 ((
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.
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)
}
}
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)
}
}
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:
bull call spread
Bear Put Spread
Los interesados pueden estudiar en el sistema de backtest.