Serie de estrategias comerciales cuantitativas (1): Creación de mercado

Inserte la descripción de la imagen aquí

Estrategia de creación de mercado

La idea central de la estrategia Market Making (MM): mantener la rentabilidad de cada transacción sin ocupar una posición. La característica es competir por oportunidades de transacción y ganancias en el mercado comercial, negociación de alta frecuencia, pequeñas ganancias pero rápida rotación. Los mayores creadores de mercado conocidos en el mercado de valores de EE. UU. (Una vez) tales como: Las transacciones de Equity de Knight Capital Group en 2009 alcanzaron 980 millones de transacciones, un promedio de 600,000 transacciones por hora, pero el rendimiento promedio por transacción fue de .01% -. 10%, en el mercado La magnitud del margen (nota: el margen, o margen, es (precio de venta-precio de compra) / precio justo).

Las transacciones cuantitativas en el campo de la moneda digital carecen de los estándares de la industria y no existe una distinción estricta entre comerciante / corredor / cámara de compensación / bolsa. Actualmente, cada función está representada por varias bolsas. La ventaja es que los comerciantes no necesitan estar sujetos a la supervisión y explotación de varios vínculos en el campo financiero tradicional y pueden enfrentar directamente al mercado; peor aún, porque enfrentan el mercado directamente, los riesgos a menudo son incontrolables. Especialmente frente a un campo de comercio de activos digitales controlado por un número limitado de cuentas "ballena".

Sin embargo, la mayoría de las estrategias comerciales en el campo financiero tradicional se pueden migrar directamente al campo del comercio de activos digitales. Incluida la estrategia de creación de mercado.

Contraparte en la transacción

En un trato, debe haber un Hacedor y un Tomador. Maker es el solicitante, es decir, proporciona una cierta cantidad de activos para vender (o comprar) a un precio determinado. El tomador es el comprador (o vendedor). La razón de la distinción entre Maker / Taker es que Maker, como consultante, proporciona "liquidez" para esta transacción, lo que permite que Taker obtenga lo que quiere.

Cada intercambio generalmente adopta diferentes reglas de tarifas para el Creador / Recibidor en una transacción. La diferencia de reglas proviene de la regulación de la "liquidez" del intercambio. En bolsas o mercados con liquidez insuficiente, el método de reducción o devolución de la tarifa de tramitación se suele utilizar para incentivar los pedidos de Maker, es decir, pedidos de consulta, de modo que se garantice la "liquidez" en cantidad.

Actualmente, todas las transacciones de activos digitales que adoptan la estrategia de devolución de tarifas de Maker son:

  1. Contrato BitMEX (devolución de 2,5 millones)
  2. WBFex punto (regreso 2)

Introducción a la estrategia MM

API de
comercio de BitMEX API de comercio de WBFex

Imagínese que si puede predecir la hora de llegada de la próxima orden de venta de Taker y predecir la cantidad de la orden, entonces Maker puede abrir tranquilamente una nueva orden de consulta con el margen de unos pocos ticks por encima de la de compra existente. , Es decir, el nuevo precio de compra uno, y la orden del receptor se negocia antes que la antigua compra. En los intercambios con reembolsos, esta transacción generará una ganancia de aproximadamente 10,000 en términos de volumen de negociación.

Una vez que se completa la transacción, la estrategia MM predecirá inmediatamente la llegada de la próxima orden de compra de Taker y colocará una orden de venta a unos pocos ticks por encima del precio de la transacción (y al mismo tiempo unos ticks por debajo de la orden de venta existente), y esperará a que el tomador complete la transacción. . Si la transacción se completa, generará otros 10,000 ingresos y la posición en la mano es 0.

Este es un escenario ideal, es decir, la estrategia de MM puede comprar barato y vender caro cómodamente , para ganar spreads y devoluciones de comisiones. Todo tipo de estrategias de MM se acercan constantemente a este escenario ideal, utilizando algoritmos de inteligencia artificial o algoritmos de programación dinámica aleatoria en software; utilizando clústeres informáticos más rápidos en hardware y coludidos con intercambios Un canal de conexión de red más rápido (coubicación).

Gana tarifa de manejo $

En la estrategia de creación de mercado de MM de alta frecuencia de pequeñas ganancias pero rápida rotación , la reducción de tarifas es particularmente importante. Esto generalmente se debe a que el beneficio de comprar barato y vender caro a corto plazo (milisegundos o microsegundos) suele ser del orden de en caso de mil, por lo que la tarifa de manejo debe ser menor que este orden para mantener la rentabilidad continua de la estrategia de MM. . Por lo tanto, ya se trate de intercambios financieros tradicionales, como NASDAQ , NYSE , o intercambios de activos digitales, como BitMEX , WBFex , han adoptado medidas de reducción de Maker o incluso medidas de tasa negativas para alentar las órdenes de Maker a satisfacer las necesidades comerciales de otros usuarios del intercambio.

API de
comercio de BitMEX API de comercio de WBFex

Código de transacción MM

    def place_orders(self):
        """Create order items for use in convergence."""

        buy_orders = []
        sell_orders = []
        # Create orders from the outside in. This is intentional - let's say the inner order gets taken;
        # then we match orders from the outside in, ensuring the fewest number of orders are amended and only
        # a new order is created in the inside. If we did it inside-out, all orders would be amended
        # down and a new order would be created at the outside.
        for i in reversed(range(1, settings.ORDER_PAIRS + 1)):
            if not self.long_position_limit_exceeded():
                buy_orders.append(self.prepare_order(-i))
            if not self.short_position_limit_exceeded():
                sell_orders.append(self.prepare_order(i))

        return self.converge_orders(buy_orders, sell_orders)

    def prepare_order(self, index):
        """Create an order object."""

        if settings.RANDOM_ORDER_SIZE is True:
            quantity = random.randint(settings.MIN_ORDER_SIZE, settings.MAX_ORDER_SIZE)
        else:
            quantity = settings.ORDER_START_SIZE + ((abs(index) - 1) * settings.ORDER_STEP_SIZE)

        price = self.get_price_offset(index)

        return {
    
    'price': price, 'orderQty': quantity, 'side': "Buy" if index < 0 else "Sell"}

Supongo que te gusta

Origin blog.csdn.net/weixin_47368014/article/details/106501876
Recomendado
Clasificación