Podéis descargaros la API en este link y el manual en este otro y ver un webinar de con ejemplos de como se utilzan aqui, si sabéis de Excel, realmente podéis ir directamente ahí y empezar a utilizarlo ya que no es demasiado difícil (de todas maneras ahí un par de trucos que deberíais saber, aunque podéis saltaros todo el “how to”).
Como no conozco el nivel de quien me lea, si es que alguien lo hace, lo explicación será lo más detallada posible.
1. Activar el acceso a la API desde la TWS, que se hace desde el Menú superior/ Configure/API/Enable DDE Clients
2. Instalamos el Paquete y se nos creara una carpeta en C: llamada IB_API, el archivo que utilizaremos esta dentro de la Carpeta Excel y se llama TwsDde (recomiendo que lo copies y peguéis, cambiándole el nombre, así siempre podréis recurrir al original en caso de que desconfiguréis algo). Al abrirlo deberéis habilitar los macros
3. Básicamente con ese archivo Excel podréis calcular todo lo que queráis, desde medir vuestra performance directamente desde Excel, hacer operaciones, pero voy a centrarme en los spread, que principalmente es la mayor ventaja que nos ofrece. Nos centraremos en 2 de las hojas que nos interesan más: Tickers y Conditional Orders.
4. En tickers, veréis que os vienen unos valores cargados como ejemplo, mirad como están configurados para poderlo hacer después y borradlo (para eso tenemos otra copia del mismo archivo, esto sobre todo es imporante hacerlo con los ejemplos de compra, ya que no queremos que se nos ejecuten las ordenes de ejemplo). Ponemos nuestro User Name y si queremos ajustamos el Refresh time que es cuanta frecuencia nos carga los precios, cada segundo es como yo lo tengo.
5. Igual miramos como están escritas las ordenes y las borramos. Ahora paso a poner dos ejemplo practicos.
Ejemplo
Spread Trigo Maíz
Este Spread lo ha propuesto Llinares en su blog unas cuantas veces, a través de automatizar las ordenes podemos mejorar su resultado de una manera bastante sencilla.
Configuración: Como podéis ver en la imagen rellenáis los siguientes datos:
Symbol Type Expiry Multiplier Exchange Currency
ZC FUT 201012 5000 ECBOT USD
ZW FUT 201012 5000 ECBOT USD
Y hacéis click en Request Market Data mientras tenéis seleccionada la casilla donde aparece el símbolo. Pueden hacerse mediante la ventana Create Ticker, pero haciéndolo así dependéis de vosotros mismos.
Creamos un pagina hoja nueva que llamaremos Spreads y ahí calculamos el spread que seria, para comprarlo el ASK Price del Maiz (P16) menos el BID del Trigo (014), para seleccionar casillas de otra hoja de calcula, solo escribís “=” en la formula, cambias con el ratón a la hoja que queremos (Ticker) y seleccionamos dicha casilla. Y para venderlos seria al revés, la BID del Maíz menos la ASK del trigo.
Bien ya tenemos en la Hoja “Spread”, con el precio BID-ASK del maíz y del trigo, solamente nos queda restarlos y ya tenemos los dos spreads actualizándose en tiempo real. Pongamos que la casilla donde se encuentra el precio del Maíz ASK es A1, el BID del Trigo A2 y la resta, el spread en sí, es A3 .
Nuestra intención es comprar dicho spread cuando el precio toque los 155. Creamos en la casilla A4 con la formula “A3=<155” style="font-weight: bold;" size="4">
IMPORTANTISIMO
Debemos crear casillas de validación, porque que pasaría cuando el mercado cerrar si la hoja Excel esta abierta, o si internet se desconectara? Pues sencillo el valor del Spread seria cero ya que no hay datos y CERO ES MENOR QUE 155, así que se activaría la casilla A3. En consecuencia debemos crear en la casilla A5 la formula que compruebe que el ASK del trigo es mayor que… no se digamos 100? Pues eso “A1=>100”, lo mismo para el maíz en A6 (yo también lo acoto por arriba y además tengo un gatillo manual, es decir, por ejemplo en A7 escribo 4=5 y cuando quiero activar el spread, lo corrijo y pongo 4=4 así no se me activa por error al conectarlo).
Y en la casilla A8 “=A4+A5+A6+A7”, cuando todas las clausulas son ciertas devuelve el valor 4
FINAL lanzando la orden
Para ello vamos a la hoja Conditional Order, rellenamos la parte izquierda con symbol, type, expiry como anteriormente. La dos partes centrales bajo Order Descriptions y Order Status en blanco.
Aquí cada uno lo hará de una manera, a mi ya que las ordenes se actualizan cada segundo yo me siento cómodo dejándolo como un ordena Mercado, ya que así no corro el riesgo de quedarme sin una pata (la gracia de automatizarlo es para no tener que estar comprobándolo cada minuto que nos interese).
En la casilla Mode: ADD, en Action: Buy en la línea del Trigo, Sell en la de Maiz, Cantidad 1, Tipo de orden: MKT. En Statement simplemente señalamos la casilla A8 de la hoja “Spreads”= a 4. La formula quedaría algo así como: ='Spreads'!A8=4
Cuando la clausula sea verdad se lanzara la orden, una sole vez por cierto, no os preocupéis no se lanzara todo el tiempo mientras esté por debajo de 155.
Spread Trigo Maiz Llinares' Style
(http://www.rankia.com/blog/llinares/2009/10/convertir-100000-pesetas-en-100000.html )
“Comprar diciembre del 2010 de trigo
Vender julio del 2010 de trigo
Vender diciembre del 2010 de maíz
Comprar julio del 2010 de maíz”
Podrías obviamente hacerlo seleccionando todos los BID-ASK pero la horquilla seria nociva, pero también podemos hacer combos con Excel, no os preocupéis, si se puede hacer con el TWS, se puede hacer y mejor con Excel.
Simplemente esta vez al hacer el “ticker” escogeremos la casilla “Combo Legs” y haremos ambos Spread separados, trigo por un lado y Maíz por el otro. Por alguna razón al ejecutar “combo Legs” me sale un mensaje de error (por favor si a alguien no se pasa podría comunicármelo?). Así que tenemos que configurarlo manualmente, para ello…Mirad es una pesadez porque tenéis que seleccionar los Id de cada producto… la guía de DDE Excel, no lo incluye claramente, me llevo trabajo descubrirlo, son casi las dos de la mañana…os dejo los códigos de ambas combo legs y si a alguien le interesa que me lo pregunte:
Symbol: X / Type: Bag / Multiplier:5000 /Exchange:ecbot/currency:usd/Comb Legs:
CMBLGS_2_49572732_1_BUY_ECBOT_0_45161809_1_SELL_ECBOT_0_CMBLGS Para el Trigo
CMBLGS_2_42848523_1_BUY_ECBOT_0_42848516_1_SELL_ECBOT_0_CMBLGS Para el Maiz
Ambos están hechos de tal manera que para comprar el Spread compramos los dos y para venderlo, vendemos los dos. El Spread es la suma de los, no la resta, ya que uno será negativo.
CONCLUSION
El límite…vuestra imaginación, yo con este Spread desde que me lo descubrió Llinares por primera vez llevo ganado …bastante. Es increíble lo revoltoso que es este spread, en los gráficos que aparecen en internet solo utilizan el valor de cierre así que no se ve tan claro, pero puede mover en un rango de 10 puntos perfectamente en un solo día tocando los limites varias veces, a 50 dolares el punto, no está mal. Así que tenía una posición estática, otra para hacer scalping(vender volatilidad, como queráis, para movimientos fluctuantes 90% del tiempo) y un tercer contrato que utilizo cuando el valor se mueve en los extremos del rango que yo considero. Ahora el valor ha roto al alza, así que estoy con un solo contrato en 160 (+20 puntos), en cuanto corrija, entro con el scalping y a empezar de nuevo. Si hacemos esto a favor de tendencia, como es el caso, que estamos en un momento de alta estacionalidad del spread… Que cada uno juzgue.
Tal y como lo he explicado solo podéis poner una orden de cada vez ya que para venderlo, después digamos cuando llegase a 150, tendrías que incluir otra clausula comprobando que las dos operaciones de se realizaron y en qué cantidad, obviamente no hace falta ser un experto para encadenar diferentes ordenes en caso que los valores se comporten de determinada manera y despreocuparse del spread completamente. Por cierto si os interesa el tema, el Excel es utilísimo no solo para operar, sino para hacer gráficos compuestos complejísimos, ya que podemos descargar datos históricos a Excel desde IB, podemos hacer spreads, con las patas que queramos…infinitas combinaciones vamos. Igualmente para las opciones podemos hacer todos los cálculos que queramos… aunque en este sentido no lo tengo demasiado “tocado”.
Espero que lo disfrutéis, y si tenéis alguna duda, o idea genial, compartidla, así que si alguien se anima a proponer diferentes estrategias podemos comentarlas.