Comprenda los tipos de órdenes comunes y el soporte para backtrader en un artículo

Introducción

La orden refleja la toma de decisiones del inversor, indicando el precio al que el inversor quiere comprar/vender el objetivo de inversión correspondiente. El precio de la orden tiene un gran impacto en el resultado final de la inversión y todos lo entienden.

Los tipos de órdenes comúnmente utilizados por los inversores incluyen órdenes de mercado, órdenes limitadas, órdenes de stop-loss/stop-profit, órdenes de stop-loss/stop-profit, órdenes adicionales, etc. Sin embargo, las bolsas solo tienen dos tipos de órdenes básicas: órdenes de mercado y órdenes limitadas. Otros tipos de órdenes son proporcionados por el sistema del corredor. El sistema de software del corredor ayudará a monitorear el precio. Una vez que se cumplan las condiciones de activación, se convertirá en órdenes de mercado y órdenes limitadas y se enviará a la bolsa para su ejecución.

Backtrader admite una variedad de tipos de órdenes comerciales para satisfacer diferentes necesidades comerciales. Backtrader básicamente admite varios tipos de órdenes comúnmente utilizadas por los inversores. Backtrader crea órdenes llamando a los métodos buy(), sell() y close() de Strategy.

Tipos de órdenes comunes

1. Orden de mercado (Mercado)

Una orden de mercado se refiere a una orden de compra o venta al precio de mercado, no es necesario que usted mismo establezca el precio.

  • Ventajas: Garantizar la finalización inmediata de la transacción, evitar déficits o detener ganancias/detener pérdidas lo antes posible
  • Desventajas: No se puede controlar con precisión el precio de la transacción. Cuando el mercado cambia rápidamente o la liquidez es insuficiente, el precio de la transacción puede ser muy diferente del precio cuando se realizó la orden, lo que significa que el deslizamiento es grande.
  • Orden backtrader. Tipo de mercado **: ** Presione el precio de apertura de la siguiente Barra para ejecutar la transacción. Ejemplo de uso: self.buy(exectype=bt.Order.Market), el backtrader utiliza por defecto la orden de mercado
  • Orden backtrader.Tipo de cierre**:** Presione el precio de cierre de la siguiente barra para ejecutar la transacción. Ejemplo de uso: self.buy(exectype=bt.Order.Close)

2. Orden límite (Límite)

Una orden limitada significa que la orden solo se ejecutará cuando el precio especificado (Precio límite) o un precio mejor esté disponible, es decir, comprar al precio especificado o inferior al precio indicado y vender al precio indicado o superior.

  • Ventajas: Puede conocer claramente el precio de la transacción.
  • Desventajas: no se puede garantizar la velocidad de la transacción y es posible que la transacción no se complete.
  • Orden backtrader. Tipo de límite**: **Después de generar la orden, se juzga si la orden se completa comparando el precio límite con los datos de mercado de apertura/máximo/mínimo/cierre de la barra posterior. Si la apertura de la siguiente barra toca el precio límite especificado, la orden se ejecutará al precio de apertura al comienzo de esta barra; si la apertura de la siguiente barra no toca el precio límite, pero el precio límite está entre los precios altos/bajos de esta barra, la transacción se realiza al precio límite. Si aún no está dentro del rango, continúe detectando la barra siguiente. Ejemplo de uso: self.buy(exectype=bt.Order.Limit, precio=precio, válido=válido) . Entre ellos válido representa el período de validez de la orden, los valores disponibles son: Ninguno, que significa que la orden es válida hasta que se complete o cancele la transacción; instancia de fecha y hora, instancia de fecha y fecha en forma numérica, que significa que el pedido es válido antes de la fecha establecida; Order.DAY, 0, imedelta(), indica que el pedido es válido ese día

3. Orden de toma de ganancias/stop loss del precio de mercado (Stop)

La orden de toma de ganancias/límite de pérdidas a precio de mercado significa que cuando el último precio alcance el precio de toma de ganancias/límite de pérdidas establecido (precio de parada), se colocará una orden en forma de orden de precio de mercado .

  • Ventajas: Realice una orden de mercado inmediatamente después de que el precio alcance el punto de obtención de ganancias/límite de pérdidas.
  • Desventajas: No se puede controlar con precisión el precio de la transacción
  • Orden backtrader. Tipo de parada**:** Determine si la orden se completa comparando el precio de parada con los datos de mercado de apertura/máximo/mínimo/cierre de la barra posterior. Si la apertura de la siguiente barra toca el precio límite especificado, la orden se ejecutará al precio de apertura al comienzo de esta barra; si la apertura de la siguiente barra no toca el precio límite, pero el precio límite está entre los precios alto/bajo de esta barra, la transacción se realiza al precio de parada. Ejemplo de uso: self.buy(exectype=bt.Order.Stop, precio=precio, válido=válido)

4. Precio límite/orden de stop loss (Stop-Limit)

Una orden de toma de ganancias/stop-loss de precio límite significa que una vez que el precio de las acciones alcanza el precio de stop-loss establecido, se realizará una orden como orden límite, y es necesario especificar el precio de stop-loss y el precio límite.

  • Ventajas: envíe una orden límite después de que el precio alcance el punto de obtención de ganancias/límite de pérdidas y podrá conocer con precisión el precio de la transacción.
  • Desventajas: no se puede garantizar la velocidad de la transacción y es posible que la transacción no se complete.
  • backtrader Tipo Order.StopLimit**:** En la siguiente barra, la orden se activa de acuerdo con la lógica de Order.Stop, y luego la orden se ejecuta de acuerdo con la lógica de Order.Limit. Ejemplo de uso: self.buy(exectype=bt.Order.StopLimit, precio=precio, válido=válido, plimit=plimit)

5. Detener el seguimiento

Una orden de stop loss dinámica es una orden de stop loss en la que el precio de stop loss se ajusta automáticamente. El rango de ajuste se determina estableciendo la diferencia entre el precio de stop loss y el precio de mercado. Cuando el precio de mercado sube, el precio de stop loss aumentará aumenta en consecuencia; si el precio de las acciones Cuando se alcanza el precio de límite de pérdidas, la orden se ejecutará en forma de orden de mercado; si el precio de mercado cae o permanece sin cambios, el precio de límite de pérdidas permanecerá sin cambios.

  • Ventajas: Bloquee las ganancias por adelantado o evite que las pérdidas se expandan moviendo el límite de ganancias/límite de pérdidas.
  • Desventajas: si la diferencia de precio es demasiado pequeña, es fácil verse afectado por las fluctuaciones y solo se puede obtener una pequeña parte de la ganancia; si la diferencia de precio es demasiado grande, el efecto de mover el stop beneficio/stop loss será no ser logrado
  • backtrader Order.StopTrail tipo **: ** Ejemplo de uso: self.buy (exectype = bt.Order.StopTrail, precio = xxx, trailamount = xxx), la diferencia de precio se puede expresar mediante el monto del trailamount, o se puede expresar por el porcentaje del precio de mercado
  • backtrader Order.StopTrailLimit type**:** La orden de límite de stop-loss de seguimiento es una orden de límite de stop-loss en la que el precio de stop-loss se ajustará automáticamente. El precio límite en la orden no cambiará, pero el stop-loss El precio cambiará. Ejemplo de uso: self.buy(exectype=bt.Order.StopTrailLimit, plimit=xxx, trailamount=xxx)

6.Pedidos adicionales

Una orden adicional se refiere a una orden que se adjunta a una orden de apertura ordinaria para que el usuario cierre una posición. La orden adicional se enviará después de que la orden principal se complete por completo y alcance el precio de activación. La orden principal tendrá un stop- efecto de ganancia o stop-loss, y eventualmente se completará el cierre del almacén. Los tipos de órdenes adicionales incluyen órdenes de toma de ganancias, órdenes de limitación de pérdidas, órdenes de soporte, órdenes de cancelación asociadas, etc.

  • Una orden de toma de ganancias es una orden de límite especial. Su código y cantidad son consistentes con la orden principal, y su dirección es opuesta a la orden principal. El precio de la orden es el precio de toma de ganancias. Una vez que la orden principal se haya completado por completo, se enviará la orden de toma de ganancias que alcance el precio de toma de ganancias.
  • Una orden de límite de pérdidas es una orden especial de mercado de límite de pérdidas. Su código y cantidad son consistentes con la orden principal, y su dirección es opuesta a la orden principal. La orden activa el precio de límite de pérdidas. Una vez que la orden principal se haya completado por completo, se enviará la orden de límite de pérdidas que alcance el precio de límite de pérdidas.

6**.1 Orden de soporte**

Una orden de grupo consta de una orden de toma de ganancias y una orden de límite de pérdidas. Una vez que la orden principal se ejecute por completo, se enviará la orden que alcance primero el precio de activación y el sistema cancelará automáticamente la otra orden. Cuando las órdenes stop-profit y stop-loss se establecen por separado, son "independientes entre sí", por ejemplo, si se activa el stop-loss, la orden stop-profit no se cancelará automáticamente y deberá cancelarse manualmente.

  • Si desea crear una orden stop-profit y stop-loss que será "cancelada automáticamente", una es agregar una "orden de soporte (orden adicional)" al realizar la orden principal (apertura/apertura de una posición). la orden principal no se ejecuta, la orden adicional no se activará. , una vez completada la orden principal, se activa la orden adicional
  • Las órdenes de bracket se pueden configurar con take-profit y stop-loss al mismo tiempo. Una vez activada la take-profit, la orden stop-loss se cancelará automáticamente.
  • Ya sea una orden maestra de mercado con una orden stop-profit y stop-loss o una orden maestra limitada con una orden stop-profit y stop-loss, puede establecer una orden de rango stop-profit y stop-loss antes que el maestro del mercado. la orden se transmite a la bolsa. Si olvida agregarlo, siempre que no se haya completado la orden limitada (la orden de mercado se completará inmediatamente), puede continuar agregando la orden de grupo. Después de la transacción, no puede agregar la orden de grupo.
  • Backtrader proporciona 2 métodos en la clase Estrategia para operar órdenes entre corchetes: buy_bracketysell_bracket

6.2 Orden de cancelación relacionada (Una Cancela Otras)

OCO se refiere a la ejecución, cancelación o vencimiento de una orden, que cancelará automáticamente otras órdenes relacionadas. El parámetro de función de compra de backtrader ocose utiliza para especificar el grupo de órdenes oco

def next(self):
    ...
    o1 = self.buy(...)
    ...
    o2 = self.buy(..., oco=o1)
    ...
    o3 = self.buy(..., oco=o1)

El código anterior forma un grupo de orden oco, del cual o1 es el líder del grupo. La ejecución, cancelación o vencimiento de cualquier orden del grupo cancelará automáticamente otras órdenes asociadas en el grupo.

6.3 Uno-cancela-todo

OCA significa que el cliente realiza varios pedidos en espera de ser completados y los agrupa. Siempre que se complete un pedido de este grupo, todos los demás pedidos se cancelarán inmediatamente. De hecho, los pedidos entre corchetes y OCO también son pedidos completos con una cancelación.

Conclusión y comunicación

Siga v: Zhuge Talk para obtener más contenido. Al mismo tiempo, también puede recibir una invitación para unirse al grupo del seminario de inversión cuantitativa para comunicarse y discutir con muchos profesionales y expertos técnicos. El número de plazas es limitado, así que no se lo pierda.

Escribir artículos no es fácil. Si cree que este artículo le resulta útil, dale el visto bueno y reenvíalo para motivarme a seguir escribiendo buenos artículos.

referencia

Supongo que te gusta

Origin blog.csdn.net/richardzhutalk/article/details/128058341
Recomendado
Clasificación