Análisis de arbitraje de futuros y de rentabilidad del diferencial al contado en contratos con margen de criptomonedas

El autor:No lo sé., Creado: 2022-04-12 10:06:51, Actualizado: 2022-04-13 09:20:56

Arbitraje de retorno de futuros y diferencias al contado

La última vez, introdujimos el arbitraje de tasas de financiación de contratos perpetuos (https://www.fmz.com/digest-topic/6381En el caso de una prima negativa grande, también puede hacer dinero y prima, para devolver la ganancia. En el mercado alcista en agosto y septiembre, la tasa anualizada una vez alcanzó el 100%, por lo que es una estrategia relativamente popular.

En el arbitraje de criptomonedas de bajo riesgo, hay otro tipo de estrategia que no se ha introducido: el arbitraje de rendimiento básico.

1.Existe una diferencia de precio entre el contrato de futuros y el spot. La característica del contrato de entrega es que no se resuelve al precio spot hasta la fecha de entrega. Por lo tanto, cuando la fecha de entrega está lejos, la entrega del contrato se ve fácilmente afectada por el sentimiento del mercado. Si el mercado funciona bien, más personas serán optimistas sobre el precio futuro, por lo que habrá una prima positiva. Cuando hay una caída brusca, a menudo hay una prima negativa. Pero en general, la entrega del contrato no se desviará demasiado del spot y siempre regresará el día de la entrega.

2.Existen contratos de entrega basados en moneda. Por ejemplo, Binance tiene contratos de entrega trimestrales y trimestrales actuales. Hay una gran diferencia entre un contrato de entrega con margen de criptomonedas y un contrato perpetuo con margen de USDT. La liquidación con margen de criptomonedas utiliza moneda, y el precio de la moneda cambia constantemente, lo que se presentará en detalle a continuación.

El código de este artículo se puede ejecutar directamente, pero debido a razones de red, la parte de rastreo de datos requiere acceso científico a Internet, lo mejor es usar su propia computadora para ejecutarla o usar Google colab.

El cálculo de las ganancias y pérdidas de los contratos con margen de criptomonedas

De acuerdo con la documentación de Binance, los ingresos = dirección de negociación × volumen ejecutado × múltiplo del contrato × (1 / precio abierto - 1 / precio de cierre) = valor de posición × (1 / precio abierto - 1 / precio de cierre); cuando se hace corto, el valor de la posición es negativo. Si tiene 100 contratos de entrega BTCUSD, cada uno con un valor de 100USD, y el precio abierto es 10,000USD, entonces la ganancia y pérdida con el cambio de precio es la siguiente:

A través del cálculo y el análisis, las ganancias de las posiciones cortas o largas con margen de criptomonedas son no lineales y se miden por las ganancias de divisas; si hay pérdida al hacer una posición corta, solo pierde como mucho el monto de una posición, pero no hay límite superior en el monto de la moneda ganada; si hay ganancia al hacer una posición larga, solo obtiene ganancias, como mucho, del monto de una posición, y no hay límite superior en las pérdidas. Parece que es más rentable hacer corto, pero la ganancia de hacer corto disminuirá a medida que el precio disminuye, lo que no se calcula tan alto en USD. Si calcula la ganancia en USD, la situación es exactamente opuesta. Puede ganar un valor de pérdida al hacer una posición corta, y la moneda corta no tiene límite superior.

Al mismo tiempo, al operar contratos de criptomonedas con margen, necesita mantener monedas originalmente. Si considera el USD como la moneda de cotización, entonces el valor total de la cuenta = (montante de la moneda de la cuenta + valor de la posición × (1 / precio abierto - 1 / precio de cierre)) × precio al contado. Si el valor de la posición = - monto de la moneda en la cuenta × precio abierto, es decir, utilizando apalancamiento de una sola vez para hacer un corto, y el valor total de la cuenta = monto de la moneda en la cuenta × precio abierto × precio al contado de la posición cerrada / precio al contado. Teniendo en cuenta que el precio del contrato de entrega finalmente volverá al precio al contado, en el último, el valor total de la cuenta = monto de la moneda en el precio abierto × precio al contado. Es decir, el valor de la cuenta estará bloqueado en el precio abierto, y no cambiará con el precio actual. Según el análisis, si el precio aumenta infinitamente, la posición no será liquida. Este es el principio de apalancamiento. Hacer un cor

Si la moneda de la cuenta de futuros se compra en el mercado al contado, entoncesel valor total de la cuenta = importe en moneda de la cuenta × (precio de apertura - precio de compra al contado), siempre y cuando la posición está abierta, nuestro beneficio ha sido fijado, y el precio actual no importa. El diferencial de precios es el beneficio del arbitraje. Este es el principio del arbitraje de futuros.

Por supuesto, en la mayoría de los casos, no tenemos que esperar hasta la fecha de entrega.el valor total de la cuenta = valor al contado × (proporción de futuros al contado del período de apertura / proporción de futuros al contado del período de cierre - 1)Siempre y cuando la relación de los futuros y los precios al contado en el período de apertura es mayor que en el período de cierre, y puede cubrir la tarifa, y entonces habrá ganancias.

En [15]: las solicitudes de importación desde la fecha-hora fecha de importación, fecha-hora tiempo de importación Importar pandas como pd importar numpy como np Importar matplotlib.pyplot como plt % de matplotlib en línea En [96]: valor = 100100 #valor de la posición Precio de apertura = 10000 #precio de posición abierta 10000USD el nombre de la entidad de crédito. el número de personas que participan en el proyecto de inversión. el valor de las pérdidas y pérdidas derivadas de las operaciones financieras de la entidad el número de unidades de producción y de producción de la empresa. el valor de las emisiones de gases de efecto invernadero es el valor de las emisiones de gases de efecto para p en close_range: ganancia = valorEl valor de la inversión se calcula de acuerdo con el método de cálculo de la rentabilidad. Long_profit_list.append (Lista de ganancias y ganancias) Long_usdt_profit_list.append(gananciap) el En el caso de las empresas que no se encuentran en la lista de los beneficiarios, el importe de la ayuda será del importe de la ayuda. En el caso de las empresas de servicios de telecomunicaciones, el objetivo de las mismas es garantizar la seguridad de los servicios de telecomunicaciones.p) el En [97]: # ganancias de cripto-margen plt.figure ((figsize=(12, 7), dpi=80) En el caso de las empresas de servicios de telecomunicaciones, el número de personas a las que se refiere el apartado 1 del artículo 6 del Reglamento (CE) n.o 659/1999 debe ser igual al número de personas a las que se refiere el artículo 6 del Reglamento (CE) n.o 659/1999. Plt.plot ((casi_rango,lista_corta_de ganancias); plt.plot ((rango cercano,[1]*len ((rango cercano),r); plt.plot ((rango cercano,[-1]*len ((rango cercano),g); En el caso de los Estados miembros, la Comisión podrá adoptar medidas en virtud de la presente Decisión. plt.xlabel ((precio cercano); Plt.grid ((Verdadero) plt.annotate ((Profito corto, xy=(4500, 1.5), xytext=(7000, 2.5),arrowprops=dict(facecolor=black)); plt.annotate ((Long profit, xy=(4500, -1.5), xytext=(7000, -2.5), arrowprops=dict(facecolor=black));
plt.annotate ((Precio abierto, xy=(10000, 0), xytext=(13000, 2.5),arrowprops=dict(facecolor=black)); Fuera[97]:imgEn el [101]: # ganancias calculadas en USD plt.figure ((figsize=(12, 7), dpi=80) En el caso de las empresas que no cumplen con los requisitos de la presente Directiva, la información que se proporciona en el anexo I se incluirá en el anexo II. Plt.plot ((cerca_rango,corto_usdt_beneficio_lista);

En el caso de los Estados miembros, la Comisión podrá adoptar medidas en virtud de la presente Decisión. plt.xlabel ((precio cercano); plt.annotate ((Profito corto, xy=(5000, 5000), xytext=(7000, 10000),arrowprops=dict(facecolor=black)); plt.annotate ((Long profit, xy=(5000, -5000), xytext=(7000, -10000),arrowprops=dict(facecolor=black));
Plt.grid ((Verdadero) Fuera [101]:img

Procedimientos de arbitraje de futuros y al contado

1.Monitoreo en tiempo real de los cambios en los futuros y la prima al contado. Después de alcanzar el valor establecido, se compra el símbolo de moneda al contado y se transfiere inmediatamente a los futuros para hacer un corto. El valor de hacer un corto es el importe al contado × el precio de apertura. 2.Esperar el reembolso de la prima y, una vez alcanzado el valor fijado, cerrar la posición de futuros, transferirla al spot para venderla y obtener beneficios.

Detalles

1.Las primas en diferentes fechas de entrega tienen diferentes significados.Por ejemplo, si hay una prima trimestral del 5% y una prima del trimestre siguiente del 5%, definitivamente se preferirá la trimestral para el arbitraje.La tasa anualizada correspondiente debe calcularse en función de la fecha de entrega. 2.Es necesario tener en cuenta la tasa de servicio, que incluye la compra y venta al contado, así como las posiciones abiertas y cerradas de futuros, que en total contienen 4 operaciones. 3.Las operaciones de futuros y las operaciones al contado deben realizarse simultáneamente para fijar la prima.Para evitar shocks en el mercado, las posiciones pueden reducirse en múltiples operaciones. 4.Cuando hay divisas en la cuenta de futuros, se puede realizar arbitraje de posición abierta simultánea sin esperar la transferencia.5.ToMonitorear todos los pares de negociación, cualquiera que tenga una oportunidad, y cualquiera que tenga una prima más alta. 6.La elección de las posiciones de cierre es muy importante.Puede cerrar posiciones por niveles; puede utilizar una prima cero o una prima negativa para cerrar todas.

Historial Cambios de las primas

Tomando los datos de entrega de Binance como ejemplo; hay 9 pares comerciales, a saber, BTCUSDT, ETHUSDT, ADAUSDT, LINKUSDT, BCHUSDT, DOTUSDT, XRPUSDT, LTCUSDT y BNBUSDT, que se pueden usar para el comercio de arbitraje. Aquí, ETH se selecciona para analizar específicamente los cambios de prima entre el contrato de entrega y el spot.

Desde el comienzo de este año (2021), ETH comenzó desde 600U, y subió a un máximo de 4000U en mayo, luego cayó a 2000U en junio y julio, y recientemente regresó a 3500U, lo que significa que el mercado está en auge. Considere los tres contratos de entrega con fechas de vencimiento de 210625, 210924 y 211231. La prima de 210625 permanece en el 8% durante mucho tiempo; si comienza el arbitraje en el 10% y cierra posiciones en el 6%, hay alrededor de 4 oportunidades en 4 meses, y la tasa anualizada será superior al 50%. 210924 tiene una prima, máxima, superior al 15%, que ahora ha regresado. 211231, que todavía tiene mucho tiempo antes de la fecha de vencimiento, tiene una prima máxima del 5%. Se puede ver que mientras esperes pacientemente, hay muchas oportunidades de arbitraje en ETH.

Los lectores pueden cambiar el par de operaciones por sí mismos; la situación es básicamente similar; en general, es una zona horaria bastante buena de enero a abril de este año. En el [103]: ## el par de operaciones actual Información = peticiones.https://dapi.binance.com/dapi/v1/exchangeInfo’) y símbolos = [s[symbol] para s en Info.json() [symbols]] En el [106]: símbolos_nq = lista ((filtro)) lambda x:x.split (() [-1]==211231, símbolos)) #contrato del próximo trimestre los símbolos_q = lista(filtro(lambda x:x.split() [-1]==210924, símbolos)) #contrato trimestral símbolos_s = [s.split(_) [0]+T para s en símbolos_nq] #pareja de negociación al contado En el [108]: ,.unirse ((simbolos_s) Fuera [108]: En [109]: def GetKlines ((símbolo=BTCUSDT,comenzar=2020-8-10,fin=2021-8-10,período=1h,base=fapi,v = v1): Las cuerdas = [] tiempo de inicio = int ((tiempo.mktiempo(tiempo de fecha.strptiempo(inicio, %Y-%m-%d).tiempo múltiple)))1000 + 860601000 personas final_tiempo = int(tiempo.mktiempo(datetime.strptiempo(fin, %Y-%m-%d).tiempo múltiple)))1000 + 860601000 personas Interval_map = {m:601000,h:60601000,d:246060El precio de venta mientras que el tiempo de inicio < tiempo de fin: tiempo medio = min(tiempo de inicio+1000Int ((período[:-1])el número de unidades de carga de las unidades de carga de las unidades de carga de las unidades de carga de las unidades de carga de las unidades de carga. url = https://+base+.binance.com/+base+/+v+/klines?símbolo=%s&interval=%s&startTime=%s&endTime=%s&limit=1000%(símbolo,período,tiempo de inicio,tiempo medio) Res = peticiones.get (url) res_list = res.json() si el tipo ((res_list) == lista y el len ((res_list) > 0: tiempo de inicio = res_list[-1][0] Klines += res_list elf tipo ((res_list) == lista: tiempo de inicio = tiempo de inicio+1000Int ((período[:-1])el período de tiempo en otros casos: Imprimir (url) df = pd.DataFrame ((Klines,columns=[time,open,high,low,close,amount,end_time,volume,count,buy_amount,buy_volume,null]).astype ((float) df.index = pd.to_datetime ((df.time,unidad=ms) retorno df En [110]: el símbolo = ETH df_s = GetKlines ((símbolo=símbolo+USDT,start=2020-12-26,end=2021-9-15,período=1h,base=api,v=v3) df_nq = GetKlines ((símbolo=símbolo+USD_211231, inicio=2021-6-26, final=2021-9-15, período=1h, base=dapi) df_q = GetKlines ((símbolo=símbolo+USD_210924,inicio=2021-3-26,fin=2021-9-15,período=1h,base=dapi) df_lq = GetKlines ((símbolo=símbolo+USD_210625,inicio=2020-12-26,fin=2021-6-24,período=1h,base=dapi) En [128]: #precio al contado df_s.close.dropna (().plot ((figsize=(16,6), red=Verdadero); Fuera[128]:imgEn [139]: #prima por contrato del último trimestre (100(df_lq.close-df_s.close) /df_s.close).dropna().plot(figsize=(16,6), cuadrícula=Verdad); #prima de contrato trimestral (100(df_q.close-df_s.close) /df_s.close).dropna().plot(figsize=(16,6), cuadrícula=Verdadero); #prima de contrato del próximo trimestre (100*(df_nq.close-df_s.close) /df_s.close).dropna().plot(figsize=(16,6),grid=Verdadero); Fuera [1]:img

## la oportunidad comercial actual Para el contrato 210924 va a expirar, aquí observamos principalmente el contrato 211231, que todavía tiene tres meses para expirar. Por ahora, la prima básica es de alrededor del 3%, y la prima más alta es del 5%. Podríamos decir que la oportunidad no es muy prometedora. Sin embargo, después de que el contrato 210924 expire, se generará un nuevo contrato del próximo trimestre, y habrá 6 meses para entregar, lo que significa que todavía habrá muchas oportunidades.

En [143]: df_all = pd.DataFrame ((index=pd.date_range ((inicio=2021-6-26, final=2021-9-16, frecuencia=1H), columnas=simbolos_s) para i en el rango ((len ((simbolos_nq)): el número de unidades de la unidad de control de la unidad de control de la unidad de control; el valor de las emisiones de gases de efecto invernadero df_s = GetKlines ((símbolo=símbolo_s, inicio=2021-6-26, fin=2021-9-16, período=1h, base=api, v=v3) df_nq = GetKlines ((símbolo=símbolo_nq, inicio=2021-6-26, final=2021-9-16, período=1h, base=dapi) df_all[simbolo_s] = (100*(df_nq.close-df_s.close) /df_s.close).drop_duplicates() En [144]: df_all.dropna().plot(figsize=(16,10),red=Verdadero); Fuera[144]:img

Conclusión

Este artículo presenta principalmente cómo hacer trading de arbitraje utilizando el rendimiento del diferencial entre el contrato de entrega y el spot.

1.Bajo riesgo: dado que la posición corta con apalancamiento de 1x no se liquida, no existe ningún riesgo incluso si la prima se expande, y se trata de un arbitraje casi libre de riesgo. 2.Alta seguridad. El precio del contrato de entrega volverá siempre al mismo lugar. Una vez finalizado el arbitraje, no se verá afectado por la fluctuación actual de los precios. 3.El principio de funcionamiento es sencillo y puede operar con múltiples símbolos de moneda, lo que es adecuado para fondos relativamente grandes para obtener beneficios estables. 4.Los beneficios no son bajos, y a veces habrá una prima negativa profunda.Si tienes suerte y has dominado el ritmo, los beneficios son muy considerables.

Principales riesgos: 1.Si la prima aumenta durante mucho tiempo, se producirá una pérdida flotante durante mucho tiempo.En este momento, el cierre de posiciones y la salida del mercado darán lugar a una pérdida real. 2.Falta de API de la plataforma; comercio de una sola pierna. 3.La liquidez de los contratos de negociación es escasa y existen demasiadas estrategias del mismo tipo, lo que resulta en un punto de desliz excesivo y en una erosión de los beneficios.


Más.