[Jugar Cuantitativo 17 desde cero] ¿Cómo completar el comercio automatizado con python+QMT? (El tutorial introductorio más detallado de toda la red)

1. ¿Qué es QMT?

Esta parte es contenido de alfabetización, y aquellos que tienen cierta comprensión pueden omitirla.

concepto

Es un software de cliente de comercio cuantitativo, producido por una empresa llamada Xuntou, que puede iniciar sesión directamente en su cuenta de corretaje para el comercio de acciones, pero es diferente de Flush/Communications en que expone una API de comercio basada en Python que puede ejecutar Programmatic . transacciones _

Por cierto, revisé los antecedentes de Xuntou, una empresa que golpeó el GEM en 21 años, y luego me rendí. Enlace al folleto

interfaz

Tomando como ejemplo la Edición de Finanzas Nacionales de China, su interfaz de inicio de sesión es la siguiente, y la interfaz de inicio de sesión de diferentes corredores es ligeramente diferente (puede que no haya un modo minimalista )

Después de ingresar al software, la interfaz es la siguiente. Se divide principalmente en varios módulos: cotización de mercado, transacción, investigación modelo y transacción modelo. La interfaz QMT de cada corredor es similar.

inserte la descripción de la imagen aquí

2. Por qué usar QMT

En el pasado, el comercio automatizado siempre ha sido un dolor para los inversores minoristas. La mayoría de las interfaces automatizadas son solo para instituciones, y hay muy pocos métodos que los inversores minoristas pueden usar. Aunque existen bibliotecas de código abierto como easyTrader que han resuelto problemas similares. , pero al simular botones, también intenté modificarlo, pero no es muy estable.

QMT, por otro lado, llama directamente a la interfaz de la correduría, que atraviesa el último enlace del comercio cuantitativo, expone la API de python y el programa puede llamarlo directamente, lo que mejora en gran medida la estabilidad del comercio automatizado y el la programabilidad también es muy alta.

3. QMT vs miniQMT (modo minimalista)

miniQMT es el modelo minimalista de QMT.Algunas casas de bolsa tienen este modelo, pero otras casas de bolsa no. Cómo saber si hay uno es ver si hay una opción de modo minimalista en la interfaz de inicio de sesión.Cuando el cliente inicia en modo minimalista, la interfaz es la siguiente:
inserte la descripción de la imagen aquí

La mayor diferencia entre miniQMT y QMT es:

El modo QMT necesita escribir el programa para que se ejecute en el software cliente de QMT;

En el modo miniQMT, puede usar directamente el paquete python xtquant , fuera del software, escribir un programa python para conectarse con el cliente QMT y realizar pedidos mediante programación. Los amigos inteligentes deben entenderlo, para que el cliente QMT se convierta completamente en una terminal comercial.Nuestro programa de cuantificación puede ejecutarse independientemente de QMT, siempre que se esté ejecutando el cliente minimalista. Esto libera en gran medida la capacidad de transformación.

3. Código de combate

De nada sirve decir más, vamos al código, aquí una demostración en miniQMT (modo minimalista)

descargar xtquant

En primer lugar, necesitamos descargar el paquete xtquant de python, recomiendo descargarlo desde el sitio web oficial de Xuntou, el enlace de descarga es el siguiente

Descarga xtquant: http://docs.thinktrader.net/vip/pages/633b48/

inserte la descripción de la imagen aquí
Simplemente descargue la última versión. Después de la descarga, coloque este paquete en su propio proyecto de python para asegurarse de que se importpueda usar.

Los ejemplos en el sitio web oficial todavía son relativamente complicados, así que comencemos con el ejemplo más simple aquí.

Crear un objeto de transacción

import random
from xtquant.xttrader import XtQuantTrader

path = r'D:\国金证券QMT交易端\userdata_mini'
session_id = int(random.randint(100000, 999999))
xt_trader = XtQuantTrader(path, session_id)

La creación de xt_traderun objeto requiere dos parámetros: ruta, que es la carpeta
pathdebajo del archivo donde está instalado el software QMT . : La identificación de la sesión debe ser diferente cuando se crean varios objetos. Aquí usamos 6 números aleatorios para generar./userdata_mini
session_id xt_trader

Conectarse al cliente de QMT

xt_trader.start()

connect_result = xt_trader.connect()

print(connect_result)

if connect_result == 0:
    print('连接成功')

Para ejecutar xt_trader.connect(), debe asegurarse de haber iniciado sesión en el modo minimalista de QMT y mantener el cliente ejecutándose para conectarse correctamente. Ingrese al cliente en modo no minimalista, pero la conexión no tiene éxito.

cuenta de suscripción

from xtquant.xttype import StockAccount

acc = StockAccount('xxxxx')
subscribe_result = xt_trader.subscribe(acc)
print(subscribe_result)

Este paso se usa para suscribirse a la cuenta de fondos, xxxxxreemplácelo con el número de cuenta de fondos con el que está iniciando sesión, si la suscripción es exitosa, subscribe_resultserá 0, si no es exitosa, será -1

hacer un pedido

from xtquant import xtconstant

stock_code = '000429.SZ'

order_id = xt_trader.order_stock(acc, stock_code, xtconstant.STOCK_BUY, 100, xtconstant.FIX_PRICE, 7.5)
print(order_id)

xtconstant.STOCK_BUYEl tipo de orden de formulario es compra, xtconstant.FIX_PRICElo que significa que el tipo de cotización es precio límite.Después de que la ejecución sea exitosa, el registro de la orden se puede ver directamente en la terminal miniQMT, lo que puede confirmar que nuestra orden fue exitosa. El método devolverá el cambio de pedido, que es el número de pedido en la figura a continuación.

inserte la descripción de la imagen aquí

Cancelación

Puede usar directamente el número de pedido para cancelar el pedido, ejecute el siguiente método, tenga en cuenta que el número de pedido está en formato digital

xt_trader.cancel_order_stock(acc, 1082130954)

De esta forma, el pedido recién realizado quedará anulado.
inserte la descripción de la imagen aquí

4. Cómo activar

En la actualidad, QMT necesita encontrar una empresa de corretaje para abrir Para conocer los métodos y requisitos de apertura específicos, consulte "Compartir las reglas de apertura de QMT"

V. Resumen

Este artículo presenta el concepto básico y el uso de QMT, y utilizó el modo miniQMT para el combate real. Parece bastante fácil de usar, y el comercio programático ya no es un cuello de botella. El uso compartido se seguirá utilizando más adelante.

Supongo que te gusta

Origin blog.csdn.net/u010214511/article/details/130275793
Recomendado
Clasificación