¿CÓMO SE MUEVE EL PRECIO?
Esto no es magia, ni se mueve por fundamentales, ni por acción del precio ni porque haya un cruce de medias. Esto es tan simple como la oferta y la demanda. Vamos a ponerlo simple:
- Si en el nivel 1.5 hay 100 contratos esperando a ser comprados y compras 101 contratos, el precio se mueve a 1.6.
- Si en el nivel 1.2 hay 50 contratos, en el 1.3 hay 40 y en el 1.4 hay 10 y compras 101 contratos, el precio se mueve a 1.5.
Como es lógico, si te comes varios precios, entonces tu precio de entrada será la media de las precios a los que se ejecutó parcialmente la orden. Así que cuanto más grande sea la orden, peor precio tendrás. Si quieres aprender sobre las contrapartidas, mirate este artículo.
El precio también se mueve por el cambio de valor de un determinado activo debido a causas externas, lo que hace que los traders modifiquen sus ordenes limitadas para adaptarse al nuevo valor.
Ahora, el deslizamiento, es decir, cuando el precio que obtienes es distinto al requerido, se denomina slippage y puede haber de dos tipos (según yo):
- Slippage por liquidez: Agotas la liquidez de un nivel y mueves tú el precio.
- Slippage por tiempo: Se agota/modifica la liquidez de un nivel mientras ejecutas tu orden.
¿Fácil de entender a que sí? Cuánto más grande sea tu cuenta, más se moverá el precio en tu contra porque necesitarás más contrapartida para abastecer tus ordenes.
EJECUCIONES (AVANZADO)
En mercados OTC se complica un poco, la ejecución de las ordenes cambia respecto a los LPs de cada broker, en este caso tiene un manejo basado en hacer target a la mejor liquidez del libro, pero podría ser también terminando con el mejor precio primero y por supuesto también es posible ejecutar la orden en 2 layers distintos a la vez. El siguiente sistema se puede evitar por ejemplo con el tag Price por FIX usando como valor por ejemplo el precio actual en una orden a mercado, de tal manera que modificamos el target y sino cogerá los siguientes mejores precios por puro slippage.
Si le decimos mediante FIX al LP que queremos X mill. mediante un TIF IOC, se centraría en el layer donde haya suficiente liquidez para cubrir la orden al mejor precio, cosa que con el TOB suele ser suficiente, de no ser posible entonces busca donde se cubra la mayor parte de la orden al mejor precio.
- Layer(0): 500 000; precio: 1.25000
- Layer(1): 750 000; precio: 1.25001
- Layer(2): 1 000 000; precio: 1.25003
- Layer(3): 1 000 000; precio: 1.25005
- Layer(4): 2 000 000; precio: 1.25010
- Layer(5): 3 000 000; precio: 1.25015
Lo que pedimos:
Quiero = MARKET IOC 1 mill.
Lo que nos da:
Sería Leg1 – Layer(2): 1 000 000; precio: 1.25003. Al haber dos con la misma liquidez, se coge el que tenga mejor precio.
Lo que pedimos:
Quiero = MARKET IOC 5 mill. + TTL = 0.
Lo que nos da:
Sería Leg1 – Layer(5): 3 000 000; precio: 1.25015. Aún queda orden, pero el TTL=0 así que no actualiza el libro y cancela el resto.
Lo que pedimos:
Quiero = MARKET IOC 5 mill. + TTL = 500.
Lo que nos da:
Sería Leg1 – Layer(5): 3 000 000; precio: 1.25015 (fill en 250 ms, aún queda un TTL de 250ms) + Leg2 – Layer(4): 2 000 000; precio: 1.25010.
Lo que pedimos:
Quiero = MARKET FOK 10 mill. + TTL = 0.
Lo que nos da:
Al no haber 10 mill. disponibles, la orden expira y como el TTL=0, no espera a que se actualice el order book.
Por supuesto también podemos usar otros TIF. Por ejemplo, FOK, para ejecutar y asegurar el volumen completo o cancelar la orden entera. GTC/GTD para las ordenes pendientes, etc.
La información donde se almacenan los TP/SL, gestión de la orden, ordenes pendientes, etc (la gestión que hagas de tus ordenes) se suele almacenar en un software de terceros en un servidor (ej. servidores MT4/MT5/cTrader) o mediante tu propio software (ej. con C++/C# + FIX). Esto es importante para reducir la latencia. Es decir, un proveedor de liquidez obviamente no va a almacenar tu stop loss, no hay un tag para eso, lo único que hace un stop loss es decirle al software donde se almacena que envíe una orden a mercado. Lo mismo ocurre con las ordenes límite, muchos proveedores de CFD no tienen modo de guardar tu orden pendiente y como no puedes actuar como Maker con ellos pues tienes que enviarlo al precio actual, sino recibirás un rechazo, por eso esa información es mejor guardarla en tu software y en tu servidor y cuando haya trigger de esa condición que envíe el tipo de orden que tenga que enviar.
Sobre las conversiones, un broker puede convertir las ordenes, es decir, solicitar market,fok y al LP llegarle market,ioc. Puedes dejar hablada una conversión estándar para tu ID, así el agregador convertirá la orden antes de ser enviada al LP. Esto es útil cuando no puedes enviar un determinado tipo de orden al agregador, entonces les envías una orden normal y al venir de ese ID, la convierte a la orden que has hablado con el broker y es lo que se le enviará al LP.
ASUME QUE EL MERCADO ESTÁ MANIPULADO
Tampoco salgamos todos locos de aquí, está claro que el mercado está manipulado, pero lamentablemente tiene que estarlo, porque es su juego, es el juego de los bancos/instituciones, nosotros estamos aquí porque ellos han querido invitarnos a su casa, pero no es nuestra.
Tened en cuenta una cosa, las cuentas que son muy grandes no pueden coger y entrar en una operación de compra a mercado tal cual, porque moverían el precio en su contra, no hay tanta liquidez para darles la contrapartida.
Como os he explicado antes, el precio se mueve por oferta/demanda, y dónde hay más liquidez para tener más oferta/demanda (según si el banco/institución quiere comprar/vender)? Exacto, a donde a la gente le enseñan a poner sus SL, de ahí que siempre veas que el precio se gira a tocarte la moral. Ellos cogen la contrapartida para sus posiciones con la liquidez que tú les das y luego dejan de presionar ese nivel. Estos mecanismos tienen una complejidad muchísimo mayor, pero en definitiva es eso.