El artículo anterior, Información fundamental: detalles y reflexiones sobre la oferta real automatizada del sistema de comercio cuantitativo (I. Problemas y dificultades), habló sobre algunos problemas básicos del comercio real en el círculo monetario. Este artículo habla del objetivo principal de la oferta en firme.

Creo que hay cuatro principales:

1. Implementar la lógica establecida de la estrategia

No hay duda sobre esto. Cuando hay señal se deben realizar las operaciones correspondientes, abriendo y cerrando posiciones. Este punto requiere que intente no utilizar órdenes limitadas. De lo contrario, si la transacción no se puede completar, tendrá que perseguir la orden. Al final, es posible que el precio haya ido demasiado lejos. .

A largo plazo, el deslizamiento causado por el uso de órdenes de mercado es más o menos similar al deslizamiento causado por la falta ocasional de órdenes límite pero la persecución de órdenes, por lo que es mejor entrar y salir del mercado directamente, a menos que su estrategia sea muy especial.

Además, si utiliza órdenes limitadas, su código será más complicado porque tendrá que gestionar las órdenes limitadas no ejecutadas y luego perseguir las órdenes. ¿Y si sólo se ejecuta una parte de la orden limitada? ¿Las órdenes límite restantes siempre están suspendidas? ¿O debería perderme la pieza y emitir otra orden de mercado? Este tipo de operación de un solo paso genera múltiples órdenes de transacción, y la revisión posterior también es problemática y fácil de confundir. Por lo tanto, es mejor utilizar simplemente la orden de mercado, siempre que la presentación sea exitosa, la transacción básicamente estará garantizada. Si de hecho se trata de una estrategia sensible al deslizamiento, entonces sólo opere con objetivos con buena liquidez.

Además, cuando se trata de contratos, no cambie el apalancamiento a voluntad. Es mejor descontar el apalancamiento ideal para realizar pruebas retrospectivas en un 20%. No prediga el mercado subjetivamente y ajuste el apalancamiento manualmente. Cambiar de posición también es un tabú en el comercio automatizado.

Lo mejor es ganar o perder automáticamente y reducir la posición. Cuando el retroceso alcanza un cierto nivel, se debe reducir el apalancamiento. No hagas lo contrario, pensando que el viento llegará pronto y aumentar el apalancamiento (pero puedes aumentar el). principal y reducir el apalancamiento). Lo más importante es mantener viva tu cuenta, así que primero mantente invicto. Puede esperar a que la curva de capital pase el período de retroceso antes de volver a agregar apalancamiento. Sin embargo, si se utiliza el modelo de interés compuesto, ya es un simple contrato automático de ganancia y pérdida.

2. Minimizar el deslizamiento

Esto se ha mencionado en el artículo anterior. El deslizamiento no se puede eliminar, sólo se puede mitigar. Esto requiere que usted obtenga información sobre el precio de mercado lo antes posible, así como diversos fondos e información de posición en la cuenta de intercambio, para que pueda responder rápidamente.

En términos de la estructura general de la oferta real, existen muchas subestrategias y requieren la adquisición oportuna de diversa información. Por lo tanto, se necesita un centro de mercado de websocket dedicado para compartir las tareas. Equipado con el centro de mercado Plan B de Restful como respaldo. De esta forma, si el websocket se desconecta y no se puede conectar, todavía habrá un precio relativamente nuevo para juzgar si es necesario salir del mercado. Al correr, hay que ser rápido. Es mejor correr en la dirección equivocada que quedarse atrapado en un atasco y no saber lo que depara el futuro.

3. Operación a largo plazo

Esto ya se mencionó en el artículo anterior. El círculo monetario funciona 7*24 y su código no se puede cerrar. Esto requiere que el código no sea interrumpido por varias excepciones lanzadas y que debe haber código para manejar varias situaciones inesperadas. Tampoco debería haber errores como pérdidas de memoria, de lo contrario, con el tiempo, el programa fallará e incluso todo el servidor dejará de funcionar. Afortunadamente, Python no es propenso a sufrir este tipo de problemas. Tiene un mecanismo de reciclaje automático de memoria. Si no funciona, puede reiniciar manualmente el programa de operaciones cada día o unos días. De todos modos, se trata de operaciones de frecuencia media y baja. Estos son requisitos básicos de desarrollo de código back-end y son fáciles de lograr.

Generalmente, el comercio cuantitativo utiliza Python. Una característica importante de Python, un lenguaje de secuencias de comandos, es la compilación dinámica, que tiene una eficiencia de ejecución ligeramente menor porque no es fácil de depurar porque se compila y ejecuta al mismo tiempo (pero no afectará las transacciones de frecuencia media y baja en todo). Si hay un problema implícito en la lógica del código, puede que no sea fácil de detectar. Por ejemplo, si hay 100 líneas de código y hay un problema en la línea 99, pero solo se ejecuta hasta la línea 95 cada vez, entonces el problema no se descubrirá porque el error se debe encontrar después de ejecutar hasta la línea 99 y activar el código relevante Pero esto puede ser demasiado tarde y el programa fallará directamente si no intenta detectar la excepción.

En realidad, el problema mencionado anteriormente incluye otra característica. Debido a que Python está fuertemente tipado, las conversiones implícitas son raras. Si confía demasiado en el tipo de datos enviado por el servidor, especialmente en esos números, es probable que sufra una pérdida, porque a veces los números se convertirán en cadenas. Las diferentes monedas en el intercambio, las diferentes versiones de API y los mismos datos de retorno de websocket y el resto pueden ser de diferentes tipos. Por lo tanto, en principio, es necesario forzar la transformación cada vez, o primero determinar si es necesaria la transformación.

Además, no mezcle las posiciones de apertura y cierre entre varias estrategias, especialmente aquellas de la misma moneda, y haga un buen trabajo aislándolas. De lo contrario, en algunas condiciones extremas del mercado, la estrategia A cerrará la posición de la estrategia B, lo que eventualmente conducirá a una desalineación. Es posible que tenga que detener la oferta real y comenzar de nuevo, lo que será incoherente y puede pasar por alto las tendencias clave del mercado.

En una palabra, todo está pensado para que el negocio real funcione de forma totalmente automatizada y sin intervenciones a largo plazo.

Sin embargo, si la estrategia es demasiado compleja, puede que no sea fácil lograr un desempeño completo sin intervención. Simplificar la estrategia también es un punto de partida, no la compliques demasiado. Por ejemplo, las señales como OBV deben usarse con moderación, porque OBV necesita rastrear información de precios y volumen a largo plazo, y el comercio real requiere mantener demasiados datos. Cada interrupción y reinicio es un asunto problemático. Como último recurso, evite estos factores.

4. Control de riesgos

Ésta es la máxima prioridad de los requisitos de la oferta en firme.

Lo más peligroso es no poder cerrar una posición. El mercado fue en la dirección opuesta y continuó volviéndose loco. Como resultado, su código de salida se salió de control, sin importar el motivo, la posición se cerró con pérdidas. En el círculo monetario, las altcoins pueden subir varias veces en un corto período de tiempo. Por lo tanto, en el caso de las ventas en corto, incluso si no utiliza el apalancamiento y todavía tiene la mitad de la posición, pensando que no tiene nada de qué preocuparse, es posible que la posición haya sido eliminada por la mañana.

Por tanto, es necesario garantizar que el mecanismo de salida entre en vigor. Si pierde la oportunidad de abrir una posición, al menos no será fatal. Si pierde la oportunidad, será como mucho una lástima, pero si pierde la oportunidad de cerrar la posición, habrá grandes problemas.

Aquí hay dos soluciones brevemente y las hablaré en detalle más adelante cuando tenga tiempo.

El primer punto es que es mejor tener un stop loss estricto, que es similar a un stop loss con índice de pérdida fijo. Por ejemplo, si una moneda grande pierde más del 10% y una moneda pequeña pierde un 15%, la posición se cerrará inmediatamente y se escapará.

Para el método de stop loss estricto, el precio del stop loss debe fijarse en el momento de abrir la posición. Por lo tanto, las órdenes algorítmicas de limitación de pérdidas (algunas también llamadas órdenes condicionales) deben enviarse lo antes posible después de abrir una posición, y no es necesario cambiar el precio a mitad de camino. De esta manera, el intercambio lo ayudará a monitorear el precio en tiempo real y luego lo ayudará a enviar una orden de mercado para salir del mercado una vez que se active. Puede haber muchos errores en este enfoque, pero es más probable que sea más estable y confiable que el stop loss que usted mismo estableció. E incluso si algo sale mal y no se activa, aún puede acudir al intercambio. reclamar derechos (por lo que debe ir al intercambio superior).

Por supuesto, este tipo de stop loss se utiliza para cubrir el fondo y rara vez debe activarse. Es mejor controlar el momento de la salida de acuerdo con su propia estrategia, de modo que es probable que el retroceso sea menor.

El segundo punto es que el programa no abrirá posiciones al azar. No abra posiciones continuamente pero piense que no es así y acabe abriendo una gran exposición. Está bien si el precio no fluctúa en un corto período de tiempo. Es posible intervenir manualmente para corregirlo. Si se revierte repentinamente, su posición puede liquidarse. Depende de cuántas posiciones haya abierto. Por supuesto, este es un error de bajo nivel, pero sucede. Especialmente después de iterar y actualizar el código a mitad de camino, es posible que no se considere detenidamente.

En este caso, primero debe reducir el ritmo de apertura de una posición y esperar a que se obtengan los resultados de la apertura de la posición. Además, asegúrese de verificar y confirmar la información de la cuenta en ese momento antes de abrir una posición. Por supuesto, también puede registrar todas las operaciones localmente, lo que ahorrará la cantidad de solicitudes de API y el tiempo para consultar el intercambio. propio estado de cuenta.

Además, de manera más efectiva, es posible limitar por adelantado el apalancamiento máximo de un intercambio. Esto lo puede ajustar usted mismo. Binance tiene por defecto 20 veces, pero puedes cambiarlo a 3 veces o incluso 2 veces (por supuesto, esto requiere que tu estrategia en sí no utilice un apalancamiento alto; de lo contrario, no podrás abrir un apalancamiento alto cuando deberías). Entonces, no importa cuán loco sea el código, es imposible crear una gran exposición mientras duermes. Esto es más seguro.

En resumen, a veces la oferta real no es sólo el código de transacción, sino que también es necesario trazar otras líneas de defensa para evitar ser penetrada por eventos del cisne negro. Nunca lo tomes a la ligera en ningún momento y trata de sellar los puntos ciegos.