Tutorial sobre TWS (II)

En esta segunda parte de nuestro tutorial vamos a comentar un poco qué tipos de órdenes permite la TWS para operar en futuros así como de la creación de cestas de órdenes (Basket Order), y de la condición OCA (One-Cancels-All).

Tipos de órdenes
Para operar en futuros, la TWS permite la introducción de los siguientes tipos de órdenes en la negociación de futuros de Eurex (en otros mercados como CME o NYSE existen multitud de tipos de órdenes más complejas que éstas; si alguien le interesa, que mande correo con su consulta ;-)):

LMT (Limitada) - Orden limitada al precio que le indiquemos o mejor
MKT (Mercado) - Orden a precio de mercado, ataca la posición contraria a la que deseamos abrir (es decir, compra a la oferta o vende a la demanda que haya en ese momento). No se permiten órdenes de este tipo cuando el mercado está cerrado.
STP (Stop) - Orden 'stop' que lanza una orden de compra o venta a mercado en el momento que se negocie en el mercado un determinado precio. En la orden debemos indicar la cantidad de contratos que deseamos y el precio al que deseamos que se ejecute el stop.
STP LMT (Stop Limitada) - Orden igual que la anterior pero en este caso, la orden que se lanza al mercado es de tipo limitado al precio que le indiquemos.
TRAIL (Seguimiento) - Permite lanzar una orden limitada que irá modificándose automáticamente aumentando o disminuyendo en la cantidad que le indiquemos al sistema, protegiendo así las ganancias (o limitando las pérdidas) a medida que el precio se mueve. Por ejemplo, supongamos que estamos comprados en 2505; podemos lanzar una orden podemos lanzar una Trail Order con una Trailing Amount (cantidad que debe moverse el precio para subir la orden) de 10 ticks, de tal forma que si el precio se mueve a 2515, se lanzará una orden limitada a ese precio que, en caso de bajar el precio nos protegerá beneficios; si el precio no bajara a 2515 y siguiera subiendo, la orden limitada se modificaria en el momento que se alcanzara el nivel de 2525, cambiando el precio de ejecución de dicha orden a ese precio.


Demasiadas órdenes...
Bien, ahora Vd. que lee esto se preguntará cuál es la forma más rápida de trabajar con todos estos tipos de órdenes. Lo más sencillo es, en mi opinión, abrir una posición de compra o de venta pinchando con el boton izquierdo del ratón en Bid o en Ask (según deseemos vender o comprar) y después modificar la orden. Lo primero será modificar el tipo pinchando en la celda correspondiente a Type (esto viene indicado en la segunda fila de los títulos de las columnas) donde se despliega un menu que nos da todos los tipos que permite el mercado en el que estamos operando. Si escogemos LMT deberemos indicar el precio al que queremos limitar la orden; si elegimos MKT, no hace falta configurar nada; en el caso de STP debemos indicar el precio auxiliar (Aux. Price) a partir del cual se lanzará la orden; para el caso de STP LMT, habrá que indicar precio auxiliar y precio de la orden limitada; y finalmente en TRAIL, en la celda de Aux. Price debemos indicar la cantidad de Trailing que deseemos.

Aquí es conveniente recordar el truco que me indico Alquimista para no complicarnos escribiendo precios para las ordenes (tardariamos un poco y el mercado se mueve muy rápido): si mantenemos pulsado el boton izquierdo del raton en la celda donde queremos indicar el precio, nos saldrá un menú con los precios más cercanos al último precio negociado, tanto por arriba como por abajo. Sin soltar el boton izquierdo, podemos recorrer la lista y elegir el precio que deseemos. Finalmente ya sólo nos queda transmitir la orden al mercado con la opción Transmit. Ah, recuerden que si modifican una orden, deben volver a enviarla con el botón Transmit (tranquilos, porque esto no supone cargo de comisiones ;-)); si no la envian de nuevo, la fila donde esté la orden tendrá un fondo de color amarillento.


El color sí importa...
Se habrán fijado que hay una casilla que cambia de color al final de la orden en función de si cancelamos, modificamos una orden, etc. Qué significan todos esos colores? Veámoslo:

 

Image GRIS CLARO: estás creando una orden pero aún no la ha transmitido al mercado.
Image AZUL CLARO: orden transmitida pero aún no ha sido aceptada por el mercado.
Image VERDE: indica que la orden ha sido aceptada y está operativa en mercado.
Image MAGENTA: indica que has enviado una cancelación de una orden pero que aun no ha sido admitida en el mercado, por lo que aún es posible la ejecución de la orden que deseamos cancelar.
Image ROJO: indica que la orden ha sido cancelada efectivamente. Después de 30 seg. la línea que contiene la orden cancelada desaparece de nuestra pantalla (esto es así para que tengamos claro que la hemos cancelado).
Image AZUL OSCURO: indica que una orden simulada (en el caso de que un determinado mercado no acepte ese tipo de ordenes) ha sido aceptada por el sistema de IB; en el momento que se cumple la condición de la orden simulada, la orden es lanzada al mercado cambiando su status a verde.



Crear una Basket Order
La creación de Basket Orders es muy sencilla: básicamente consiste en almacenar un conjunto de órdenes en un fichero al que luego podremos acudir cuando lo deseemos para enviarlo al mercado como una única orden. Las pasos para crear una cesta de órdenes son los siguientes:

1. Cree todas las órdenes que necesite sobre el futuro en el que desee operar pero NO las transmita al mercado. (Por ejemplo, cree una orden de compra a mercado y después una venta limitada 10 puntos más arriba de lo que se esté negociando)

2. Después vaya a File -> Save Orders As Basket... Le aparecerá una ventana en la que le pedirá el nombre del archivo (extensión .bsk) y la carpeta donde queremos guardarlo. Una vez le hemos dado nombre lo guardamos.

3. Cancele todas las órdenes de la página (puede hacerse mediante el menú Order -> Cancel Page...)



Ya tenemos la cesta creada. Ahora podemos usarla como se indica a continuación:

1. Vamos al menú Order -> Basket... Abrimos el archivo .bsk que acabamos de crear. Las opciones que aparecen debajo son las siguientes:

- Multiplier: multiplica el nº de contratos de todas las órdenes por la cantidad indicada
- Req. Market Data: si lo marcamos nos mostrará datos de mercado para cada orden (en caso de que hagan referencia a distintos futuros)
- Reverse: si lo marcamos, invertirá todas las órdenes de la cesta (Buy por Sell y Sell por Buy). Al marcar esta casilla, se activan las que están debajo que permiten además convertir las limitadas a otro tipo de orden (el Offset Amount hace referencia a las Relative Orders que admiten los mercados americanos de acciones por lo que no vamos a detenernos demasiado en ello: decir que básicamente las Relative Orders nos colocan unos ticks por detrás del mejor precio de compra o de venta en el mercado según la cantidad que indiquemos. No sé si esto es operativo en Eurex, si alguien lo sabe que mande un correo).

2. Una vez aceptamos, nos aparecerá un ventana solicitándonos el tipo de identificación de la orden (Flag). Seleccionamos el que viene por defecto (A - Agency Single Order).

3. Automáticamente se crea una página nueva con las órdenes de la cesta. Entonces el programa nos solicitará si deseamos transmitir todas las órdenes de la página. Le decimos que sí e inmediatamente tendremos todas las órdenes de la cesta en mercado. En la página de la cesta (Basket - Nombre_Basket.bsk) tendremos información de las órdenes de compra y venta que se ejecutan.

 


Pero hay algo más útil aún...
Sin embargo, las cestas de órdenes no tendrían mucho sentido sin la utilización de un tipo de condición en las órdenes: la condición One Cancels All (u OCA para los amigos). Lógicamente si creamos una cesta con varias órdenes (por ejemplo, una compra a mercado, una venta limitada y una venta a mercado) necesitamos que alguna de ellas se cancele para no complicarnos la existencia demasiado.

¿Como se crea un grupo de órdenes con condición OCA? Muy sencillo, sigan estos pasos:

1. Si vamos a trabajar con órdenes OCA lo primero es hacer que nos aparezca el campo referido a este tipo de órdenes. Para ello vamos al menu Page -> Layout y alli en el recuadro de la derecha marcamos el campo OCA Group (si no teneis un un monitor de 17" mejor que quiteis algun campo que no os interese o no vereis demasiado bien todos los campos en pantalla ;-))

2. Supongamos que estamos cortos en el mercado (Position = -1). Creamos, por ejemplo, una orden de compra limitada 20 puntos por debajo de nuestro punto de entrada y un stop de compra 10 puntos por encima de nuestro precio de entrada pero NO las transmitimos.

3. Para cada orden, en el campo OCA Group debemos indicar un nombre (el que deseemos) haciendo click con el botón izquierdo del ratón en dicho campo y escribiéndolo. Mucho cuidado aquí: para cada orden, debemos poner el mismo nombre de OCA Group o no funcionará bien la condición. Si no quereis complicaros poned numeros o siglas sencillas.

4. Una vez tenemos las órdenes en la página y todas denominadas con el mismo OCA Group, vamos a Order y le damos a Transmit Page. Nos solicitará confirmación, le decimos que sí y ya tenemos todas las órdenes lista para dispararse en mercado. En el momento que una de ellas se ejecute, el resto de órdenes que pertenezcan al mismo grupo se cancelará automáticamente.

Les dejo como ejercicio para casa la combinación de cestas con órdenes OCA, verán que pronto amplian su espectro de operativa en los mercados!!!.

Finalmente una puntualización: muchas de estas funciones se pueden realizar una forma mucho más sencilla con programas tales como AutoTrader, en breve tendremos un tutorial sobre el asunto. Por ahora, en el próximo capítulo hablaremos de las utilidades de la TWS conocidas como Interactive Analytics, y daremos un breve paseo a través de las APIs y la programación en la plataforma de IB

Un saludo
X-Trader

 



Si te ha gustado este articulo, ¡compártelo en redes!