miércoles, 26 de noviembre de 2008

Dowloading a file (VIX index) con las APIs de Windows desde Metatrader: URLDownloadToFile

If you read in english, please check URLDownloadVIXTest.mq4 out.

Uno de los problemas que tiene Metatrader es que el uso de ficheros está muy limitado. Sólo se pueden abrir o cerrar ficheros para trabajar con ellos en rutas muy concretas: terminal_directory\experts\files o bien en terminal_directory\tester\filespara el testeo de expert advisors.

Sin embargo, a veces, es muy necesario manipular ficheros procedentes de otras aplicaciones o procedentes de la web. Un ejemplo importante puede ser el crear una estrategia de trading teniendo en cuenta el valor del VIX publicado cada día por CBOE en la dirección vixcurrent.csv. Para ello, nuestro expert advisor debería descargárselo cada día en la ruta terminal_directory\experts\filespara poder abrirlo y trabajar con él.

El siguiente link URLDownloadVIXTest.mq4 es un archivo de ejemplo de cómo descargar este fichero de valores de VIX a una ruta donde puede ser abierto y leído para, posteriormente, poder utilizarlo en una supuesta estrategia de trading. La API de windows empleada es la función URLDownloadToFile().

martes, 25 de noviembre de 2008

Manejando estructurascomplejas de APIs de Windows con Metatrader: SHFILEOPSTRUCT

If you read in english, please check this SHFileOperationTest.mq4 out.

Uno de los problemas que tiene Metatrader es que el uso de ficheros está muy limitado. Sólo se pueden abrir o cerrar ficheros para trabajar con ellos en rutas muy concretas:
terminal_directory\experts\files o bien en terminal_directory\tester\filespara el testeo de expert advisors.

Sin embargo, a veces, es muy necesario manipular ficheros procedentes de otras aplicaciones y hacer, de forma automática, trabajos típicos de comandos de windows de manejo de ficheros tales como abrir, renombrar, copiar, borrar, mover, download, etc.
Para poder hacer esto nos vemos obligados a echar mano de las APIs de windows y hacer llamadas desde nuestro código del expert advisor o indicador que necesite el proceso que sea.

En el siguiente link de metaquotes ShellExecuteTest aparece la forma de cómo ejecutar un programa cualquiera llamándolo desde nuestro código MQL4. Esto es muy interesante ya que nos permite ejecutar cualquiera aplicación o fichero, y entre estos están los ficheros de procesamiento por lotes de windows (los ficheros .bat). Lo bueno de estos ficheros es que ya podemos controlar con ellos multitud de procesos de manejo de ficheros, es decir, podemos ejecutar cualquier secuencia de comandos del shell de comandos de windows.
Para ello bastaría por sustituir en el ejemplo de metaquotes que ejecuta el "notepad.exe" por el archivo por lotes que yo hubiera creado y su ruta, por ejemplo "c:\MiArchivoComandos.bat"
Si quieres ayuda sobre este tipo de ficheros, no tienes más que abrir la ayuda de tu sistema operativo de windows y buscar:
"Referencia A-Z de la línea de comandos" y también "Archivos por lotes".

El manejo de las APIs de windows desde metatrader a veces puede resultar vital para nuestra estrategia. Sin embargo, algunas de las APIs manejan estructuras de datos complejas que resultan muy difíciles de crear con Metatrader en MQL4 lenguaje. Esto es debido a que este lenguaje NO ACEPTA LAS "STRUCT" como tipo de datos, con lo que la creación de una estructura para pasársela a la API correspondiente resulta a veces muy difícil.

De hecho, a veces hay que crear una estructura que contenga referencias a otra estructura con lo que la complejidad aumenta.
Un ejemplo de esto es el hacer llamadas a la API de windows SHFileOperation. Esta API tiene como dato de origen una estructura SHFILEOPSTRUCT la cual, además de contener variables de distinto tipo, contiene también handles a otras variables (no la variable en sí). En MQL4 no existe ninguna función que te déel handle de una variable, luego esto hay que hacerlo con una nueva API de window lstrcpy.
El próximo link SHFileOperationTest.mq4 es un archivo de ejemplo de utilización de estructuras complejas, tales como "SHFILEOPSTRUCT".

lunes, 24 de noviembre de 2008

Mi primer Script, Indicator y Expert Advisor

Una vez que estás familiarizado con la forma de operar en la plataforma Metatrader y siempre con tu cuenta Demo Cuándo hacer trading en Forex, es un buen momento para empezar a desenvolverte con todo el potencial del lenguaje MQL4.
Metatrader porta un editor, Meateditor.exe, de este lenguaje al cual se accede mediante el símbolo de la barra de herramientas


Este lenguaje está construido a base del lenguaje #C, con lo que el que sepa algo de programación en #C lo tiene (sólo al principio) más fácil.

Aun no siendo éste el caso, existe un tutorial de creación de "scripts", "indicators" y de "expert advisors" muy bueno http://www.forex-tsd.com/metatrader-4-mql-4-development-course/134-welcome-mql4-course-2.html que conviene ir siguiendo línea a línea, para entender para qué nos sirve cada uno de estos elementos, así como para entender el significado de la ventana de View---StrategyTester. Recopilado todo el curso está en este fichero rar TutorialMQL4CodersGuru.rar.

Lamentablemente, hasta lo que yo sé, no existe un programa de "debug" de los programas creados con el editor de MQL4, con lo que es necesario ver el comportamiento de los programas creados, a través de View---Terminal---Experts (para los scripts e indicators) o bien a través de la ventana View---StrategyTester---Journals (para los expert advisors creados), empleando instrucciones con el comando "Print" para ver que va pasando a lo largo de la ejecución de nuestros programas elaborados con el editor.

La ventana StrategyTester es muy importante y sirve para testear los expert advisors (programas automáticos de trading) que vayamos creando. Es la forma más eficaz de contrastarla validez de nuestras estrategias de trading y es el primer paso que hay que dar antes de pasar a mayores Cuándo hacer trading en Forex.

Imaginemos que tenemos creado y compilado con el editor de MQL4 un expert advisor y queremos contrastar su fiabilidad haciendo un test sobre datos históricos (back testing). Aquí empieza a ser importante el disponer de datos históricos fiables (minuto a minuto) de nuestro servidor Cómo hacer trading en Forex.
En las imágenes siguientes se muestra cómo se editan los campos del strategy tester para hacer un back-testing de un expert advisor con o sin el empleo de la opción de optimizar.




lunes, 17 de noviembre de 2008

Forex y Metatrader, ¿Qué, Por qué, Dónde, Cuándo y Cómo?

Qué es el forex, Por qué hacer trading en forex, Dónde hacer trading en forex, Cuándo hacer trading en forex, Cómo hacer trading en forex

Este blog trata de cómo manejarse en el mercado de divisas (forex o foreing exchange) y no perecer en el intento.
Toda la información que se aporta en esta primera etiqueta está sumamente condensada y tiene una aplicación directa en el resto de etiquetas orientadas hacia el trading práctico en forex empleando la plataforma Metatrader. Proviene de mi experiencia en forex a lo largo de algunos años de estudio, análisis, trading en cuentas demo y trading real.
La nomenclatura está en inglés ya que es la habitual en la mayoría de las plataformas que se empleen para el trading (Metatrader, por ejemplo) y es la habitual en este mercado.

¿QUÉ ES EL FOREX?
El forex es el mercado de divisas en el que se compra y se vende dinero con...más dinero (convertir cash in more cash). En este mercado se visualizan las ratios entre pares (pairs) de monedas (exchange rates). Uno de los principales (majors) es el pair EUR/USD o euro/dolar americano. Otros pair major serían, por ejemplo, la libra esterlina/dolar americano (GBP/USD), el dolar americano/yen japones (USD/JPY).

Supongamos que en un momento determinado, 2008.11.14 12:20:56 GMT, el pair euro/dolar vale 1.2731 EUR/USD. Eso significa que 1 EUR se cambia por 1.2731 USD en ese momento. Las exchange rates se expresan por unidad de moneda base (base currency) que es la que aparece en primer lugar (el EUR en este caso). La segunda se llama quote currency o counter currency (el USD en este caso).

Supongamos que disponemos de una estrategía testeada de trading que nos indica que en ese momento y con ese valor de rate existen muchas posibilidades de que siga aumentando esta rate. Cogeríamos, por tanto, una cierta cantidad de dinero de nuestra cuenta (no importa la moneda en la que tengamos esa cuenta) y lo emplearíamos en comprar euros.
Supongamos que queremos invertir de nuestra cuenta un dinero equivalente a 600 EUR. Entonces venderíamos 600*1.2731=763.86 USD a alguien (en este mercado mundial tan líquido siempre hay alguien dispuesto a comprar o vender) y ese alguien nos daría a cambio 600 EUR (compraríamos euros a partir de la venta de dólares).

Imaginemos que nuestra estrategia predijo bien esta vez y que al cabo de un cierto tiempo, por ejemplo a las 2008.11.14 22:15:38 GMT la rate del pair evoluciona hasta 1.2811 EUR/USD. Eneste momento nuestra estrategia, por el motivo que sea, nos recomienda salir del mercado. Entonces nosotros venderíamos nuestros 600 EUR a alguien y ese alguien nos daría por ellos, en ESTE MOMENTO, 600*1.2811=768.66 USD.

Es decir, inicialmente hemos vendido a alguien por valor de 763.86 USD y al cabo de un tiempo otro alguien nos ha dado 768.66 USD. Es decir, hemos ganado en este supuesto 768.66-763.86=4.8USD que irían a engrosar el dinero de nuestra cuenta. Si ésta estuviera en euros (lo normal para un europeo no británico) habríamos ganado en la transacción 4.8/1.2811=3.75 EUR.

Comentarios de interés:
  1. Si se compra base currency (EUR en el ejemplo) se dice que se entra en largo (long). Se busca, en estos casos, entrar en un mercado en el que la rate crezca (bullish market).

  2. Si se vende base currency (EUR en el ejemplo) se dice que se entra en corto (short). Se busca, en estos casos, entrar en un mercado en el que la rate decrezca (bearish market). Veremos un ejemplo posteriormente.

  3. La modificación más pequeña que se puede dar en la rate de un pair (en el ejemplo sería de 0.0001) es lo que se denomina 1 pip. En el ejemplo el valor de la rate aumentó (1.2811-1.2731)/0.0001=80 pips.

  4. Lo más importante: !!!! tanto trajín y esfuerzo para ganar sólo 3.75 EUR !!!!

En efecto, un movimiento de 80 pips como el del ejemplo es un movimiento ya importante de una rate que puede tener lugar a lo largo de un día en un mercado de volatilidad normal. Es decir los cambios de las rates son muy reducidos. Por lo tanto, si queremos ganar algo más, necesitamos emplear más recursos propios o bien que alguien nos eche una mano.

Si en vez de invertir lo equivalente a 600 EUR de nuestra cuenta hubiéramos invertido 10 veces más (6000 EUR) habríamos ganado en la trade 37.5 EUR. Como aún así nos parece poco, hubiéramos tenido que invertir 60000EUR (!!! diez millones de las antiguas pesetas !!!!) para conseguir un movimiento de 375 EUR en la trade, que ya no estaría mal.

Es decir, ningún particular podría permitirse eso: dedicar 60000 EUR o más para invertir en este mercado ya que en un depósito muy considerable de cash"inmovilizado" para eso. ¿Qué otra opción hay?.... Pues que alguien nos preste ese dinero.

Ese alguien son las empresas grandes (brokers) que sí se pueden permitir manejar tan grandes sumas de dinero. Si uno quiere invertir 600 EUR de su cuenta particular con un efecto de 60000 EUR sobre el mercado, se lo dice al broker y éste le presta ese dinero para la trade. Es decir, nos ofrece un apalancamiento (leverage) de 1:100 (el apalancamiento habitual). De esta forma entramos en realidad en el mercado con los 60000 EUR, aún sin disponer de ellos en nuestra cuenta,y si tenemos éxito en la trade obtendríamos 375 EUR.

¿Qué condiciones nos pide nuestro broker a cambio de ese préstamo?
Primera Condición del Broker, que tengamos suficiente depósito en nuestra cuenta como para que ante un repentino cambio del mercado en contra de la posición tomada en nuestra trade pueda él en caso de necesidad cancelar la operación sin perder él (el broker) dinero propio (margin call). Normalmente se exige un depósito (margin) del 1% del valor de la trade si el apalancamiento que nos presta es de 1:100. Este porcentaje se incrementa al doble (2%) para posiciones abiertas los viernes y los domingos por la tarde porque el sábado el mercado forex permanece cerrado y puede haber cambios bruscos el día antes o el día después.

Es decir que si nosotros invertimos en una trade por valor de 600 EUR con un apalancamiento de 1:100, debemos tener en nuestra COMO MÍNIMO para abrir esa posición (esa trade): 0.01*(600*100)=0.01*60000=600EUR, lógicamente.Si fuera un viernes hubiéramos necesitado COMO MÍNIMO un depósito de 0.02*(600*100)=0.02*60000=1200 EUR.

Como una imagen explica muchas cosas muy rápidamente, en la siguiente secuencia se explica gráficamente el significado del margin, de una margin call y de otros términos indispensables de conocer si se desea entender un poco este mercado de divisas:
Balance, Equity, Profit, Free Margin, Margin Level(%).
Míralas despacio y tendrás mucho entendido y adelantado para el siguiente paso.

Se parte de una cuenta que inicialmente tiene un valor equivalente en euros de 700EUR y se va a abrir una posición, una trade, por un valor equivalente a 600EUR en un día que no es ni viernes ni domingo por la tarde. Se supone que se entra como no se debería, es decir, sin orden de Stop Loss. (orden de salida a un valor de rate determinado si el mercado va en nuestra contra) y que el apalancamiento es de 1:100, con que los requerimientos de margin serían del 1%.








Normalmente la margin call la realiza el broker cuando el margin leveragedisminuye hasta un 30-20%. Es decir, cuando el depósito exigido por el broker en nuestra cuenta (el famoso 1%) se queda en tan sólo un 0.3-0.2%.

Conviene resaltar que no deberíamos ver nunca en nuestras cuentas un margin call, porque significaría que se nos ha ido de mano el trading y que estamos en bancarrota. SIEMPRE, SIEMPRE, SIEMPRE, tenemos que entrar en el mercado colocando AL MENOS, nuestraorden correspondiente de salida a una rate prefijada por nosotros por si el mercado va en nuestra contra. Es lo que se llama una orden de Stop Loss. Es la única forma de asegurarnos de que sabemos de antemano, en el peor de los casos, cual va a ser nuestra máxima pérdida.
Los beneficios en una trade son algo difícil de predecir, con lo que la orden para salir del mercado en un beneficio determinado (TakeProfit), muchas veces, no se coloca de primeras sino que se observa la evolución de la rate y se decide a posteriori.

Lo que no nos podemos permitir es introducir una orden sin Stop Loss aunque estemos seguros de que no nos vamos a mover de la pantalla. ¿Quién nos asegura que de repente el mercado no se mueva rápido en contra nuestra?
Si ocurre eso, aunque a nuestro broker le digamos que cierre la posición, a lo mejor:
  1. Nos ponemos nerviosos y no atinamos a hacerlo.

  2. Aunque lo hagamos están muchas personas haciendo lo mismo y el servidor del broker se bloquea.

  3. O existe tal corriente de personas haciendo lo mismo que desde que el broker manda nuestra orden hasta que se ejecuta se tarda cierto tiempo y la rate sigue evolucionando (slippage) en nuestra contra con lo que si tenemos en la orden de salida fijado un slippage pequeño, ésta no se ejecuta y seguimos dentro del mercado perdiendo!!!


Repito (es el lo único que me he enrollado, por experiencia será). SIEMPRE, SIEMPRE, SIEMPRE, Stop Loss. Es decir, control de pérdidas.

La Segunda Condición del Broker con el que trabajemos es sacar siempre algo de beneficio propio por el préstamo, por la leverage que nos cede. Este beneficio lo saca por cada trade que hagamos en base a lo que se llama spread. El broker establece una cierta separación entre el valor de la rate para entradas long (comprando base currency) y el valor de la rate para entradas short (vendiendo base currency). Este margen es típicamente del orden de 2-3 pips para los pares principales, majors, tales como el EUR/USD.




Si nosotros queremos entrar largo, en el ejemplo de la figura, sólo podemos hacerlo comprando a 1.2733. Es decir, para una inversión de 600 EUR, sería: (600*100)*1.2733=76398 USD. Ahora imaginemos que nada más entrar en el mercado long, salimos y la rate no se ha modificado. En vez de estar como estábamos antes de entrar habríamos ya perdido algo (el beneficio del broker, su spread) ya que sólo podríamos salir del mercado vendiendo a 1.2731, no a 1.2733, con lo que sólo recibiríamos al vender: (600*100)*1.2731=76386 USD. Es decir habríamos perdido (cedido al broker por su spread) 76398-76386=12USD. Es decir por cada trade (y, según las estrategias que sigamos podemos llevar a cabo muchas trades en un día) le damos al broker 12 USD (9.4 EUR) en concepto de spread. Luego si además el mercado va en contra de nuestra posición cederíamos lo correspondiente al mercado (a otros inversores).

Dependiendo del valor de la rate así será la magnitud del dinero cedido al broker en concepto de spread, de ahí que éste spread lo exprese el broker en forma de pips.

Una de los principales (pero ya veremos en las otras etiquetas que ni mucho menos es el único punto a tener en cuenta) motivos que nos decantarán por un broker u otro es, precisamente, el spread de los pares en los que pensemos hacer trading.

Un corolario muy interesante que se puede deducir de esta imposición del spread es que nosotros ganemos o perdamos con nuestras trades, él siempre va a ganar algo con ellas. Dos ejemplos:

Por ejemplo, a lo largo de un mes hemos conseguido al hacer trading ganar de forma neta 300 pips de profit en unas 15 trades mensuales sobre el pair EUR/USD. El broker se habrá embolsado (suponiendo 2 pips de spread): 2*15=30 pips.
Suponiendo una rate media mensual del par de 1.2800 EUR/USD y que tradeamos cada vez por valor de 600 EUR, esto significaría:
····Nosotros: (300*0.0001)*(600*100)=1800USD, equivalente a 1800/1.2800=1406 EUR
····El broker: (2*15*0.0001)*(600*100)=180USD, equivalente a 180/1.2800=141 EUR
O como ejemplo contrario, a lo largo de un mes hemos obtenido al hacer trading un profit neto de -150 pips en unas 15 trades mensuales sobre el pair EUR/USD. El broker se habrá vuelto a embolsar (suponiendo 2 pips de spread): 2*15=30 pips.
Suponiendo una rate media mensual del par de 1.2800 EUR/USD y que tradeamos cada vez por valor de 600 EUR, esto significaría:
····Nosotros: (-150*0.0001)*(600*100)= -900USD, equivalente a -900/1.2800= -703 EUR
····El broker: (2*15*0.0001)*(600*100)= 180USD, equivalente a 180/1.2800=141 EUR

Por último de esta etiqueta decir lo que es un lot. Es un número determinado de unidades de moneda base (base currency). El trading se hace no en base a un valor determinado de la moneda base (por ejemplo los 600 EUR invertidos en los ejemplos anteriores) sino en unidades de lotes, lots.
El tamaño de un lot lo fija para cada pair el broker. Normamente 1 lot corresponden a 100000 unidades de la moneda base. Es decir para el pair EUR/USD 1 lot=100000 EUR. Es decir que invertir en una trade ya sólo 1 lot equivaldría a invertir (con un leverage de 1:100) 1000EUR que ya es una bonita cantidad para invertir en una sola trade.
Los brokers, normalmente, permiten ejecutar fracciones de lote o establecer los minilotes o microlotes de menor cuantía.
En nuestro caso de los ejemplos, estaríamos en todos los momentos invirtiendo por valor de 600 EUR, o lo que es lo mismo, (600*100)/100000=0.6 lots.

Quedarían sin explicar algunos términos un poco más complejos de entender como son los rollovers y el swap, pero, de momento, nos conformamos con lo explicado en este primer interrogante de Qué es el forex. Además, no tenemos control sobre estos últimos y, sobre todo, influirían para trades de duración superior a 1 día, cosa que ya veremos que no es a lo que vamos a tender en este blog, por los motivos que se explicarán más adelante.


Ahora que ya nos hemos hecho una idea de Qué es el forex, podemos pasar a la siguiente pregunta.

¿POR QUÉ hacer trading en FOREX?
A favor:
  1. Cuando acabes lee la observación final de esta etiqueta. Tu éxito en forex sólo depende de ti y de tu imaginación y formación. Si tienes éxito no le deberás nada a un jefe que se haya aprovechado de tu trabajo para medrar él a tu costa ni a la suerte de haber estado en el lugar adecuado en el momento adecuado; sólo a ti y a los dones que Dios te haya dado y tú hayas sabido aprovechar.

  2. Es un mercado puramente especulativo. Es decir al hacer trading no estamos haciendo faena a nadie porque se encarezca algo importante relacionado con la vida diaria. No es como especular con bienes inmuebles, suelos, casa, etc, que esta especulación lleva a encarecer un bien que es indispensable para vivir con lo que se le puede hacer una faena a otras personas. Se compra y se vende dinero con...dinero.

  3. Es un mercado mundial que no cierra ni de día ni de noche salvo los sábados y mañanas de lo domingos (y días festivos por antonomasia, los días señalados de Navidad, Pascua, etc), luego siempre está disponible para recibir nuestras trades.

  4. Es un mercado muy líquido. Lo que comentábamos en la pregunta Qué es el forex: siempre habrá alguien dispuesto a comprar si queremos vender o a vender si queremos comprar.

  5. El apalancamiento o leverage permite obtener beneficios importantes si se tiene éxito con las estrategias de trading empleadas.

  6. Es un mercado sin comisiones salvo el spread (que ya está bien). Pero por lo demás no tiene ningún tipo de comisión adicional.

  7. Se puede hacer dinero aunque la economía vaya mal porque se trata de predecir con éxito que va a ocurrir con las rates de los pairs, vayan estas incrementándose o disminuyendo. En otros mercados, como el de valores, es necesario que la economía vaya bien para hacer dinero ya que sólo se gana cuando los valores suben.


En contra:
  1. El apalancamiento o leverage puede llevar a producir pérdidas importantes si no se tiene éxito con las estrategias de trading empleadas. Es por lo que sólo se debe empezar con el trading en una cuenta real (live account) después de haber confirmado todo lo posible que nuestra estrategia o estrategias funcionan a lo largo de mucho tiempo. Para ello se emplean técnicas de chequeo de estrategias con datos históricos (back-testing) así como con tradings ficticios en cuentas demo (demo account) (forward-testing).

  2. Se estima que sólo el 10% de quienes hacen trading en forex obtienen beneficios de manera sostenida (a lo largo de intervalos temporales grandes). El resto, el 90% lo que hace, de forma neta (es decir, aunque se gane de vez en cuando se pierde más en el resto de ocasiones) es alimentar al mercado. El dinero no se crea ni se destruye, únicamente...cambia de manos. Hay que hacer que de forma neta llegue más dinero a nuestras manos del que soltamos.

  3. Existe un riesgo alto de perder dinero, por lo tanto sólo se debe emplear aquel dinero denominado capital de riesgo (risk capital). Es decir, aquél que de perderlo no afecte a nuestro nivel de vida.

  4. Si bien el punto 7º de los motivos a favor anteriormente expuestos es cierto, cuando la economía va mal y además la volatilidad en el mercado es alta (un claro ejemplo de la crisis mundial que se está sufriendo en 2008) es muy difícil (al menos para mí) pensar en obtener algún beneficio con forex o con otro derivado ya que aunque inicialmente vaya a favor de tu entrada el mercado, como siempre necesitas fijar tus stop loss, los bandazos que experimenta un mercado volátil hacen saltar todos los stop loss habidos y por haber. La única forma de conseguir algún beneficio en estas situaciones cíclicas que se dan en cada década o así, es desarrollando estrategias específicas de forex para estas situaciones de mercado, pero siempre con un alto riesgo.


Observación final:
Este mercado si se estudia estadísticamente es casi aleatorio. Es decir el comportamiento de la multitud de traders del mercado actuando a la vez lo hacen casi impredecible. Luego no existe estrategia con la que se acierte siempre. Nuestra estrategia sólo nos indica el momento y las condiciones de entrada en las que existe una probabilidad alta de que se comporte el mercado como se espera. Pero siempre existiráuna cierta probabilidad de que el mercado impredecible no se comporte como cabe esperar según sus comportamientos pasados.

Los inversores de forex no son aventureros, ni tahures, ni puntos; no se juegan su dinero como si estuvieran en un casino, ya que saben que si se comportan así, más pronto que tarde verán sus cuentas voladas y cederán su dinero al mercado. Las personas y empresas que perduran en el mercado a lo largo del tiempo y sacan algún beneficio son estadísticos. Tú vas a luchar con gente así en tus trades, no con aventureros.

Imagina, en este mundo computerizado, las ingentes cantidades de recursos (software, hardware, científicos de desarrollo, etc) que entidades y empresas privadas habrán dedicado y siguen dedicando para obtener sistemas con cierto éxito en forex. Tú vas a luchar con entidades de poder tremendo en tus trades.

Parece, por tanto, imposible que un particular pueda luchar contra esto y tener éxito en forex. Lo único que tienes a tu favor es lo que todos (sean empresas grandes o pequeñas) tienen y tenemos en contra. Este mercado es CASI aleatorio. CASI impredecible. Si tu idea de trading o estrategia que desarrolles es buena, entrará en ese CASI de la misma forma que podría entrar la idea de una empresa importante desarrollada por cientos de cerebros estadísticos trabajando. SE LUCHA CON IDEAS, CON IMAGINACIÓN, y eso, gracias a Dios, no es monopolio de ningún poder, sino que lo tiene cada uno en potencia.

Además, qué pierdes por intentar imaginar formas de trading que puedan resultar....Sólo tiempo (si tienes éxito con alguna de ellas estará más que bien empleado) y nada de dinero (puedes estar todo lo seguro que necesites empleando el tiempo que quieras una demo account con dinero ficticio, sin tener que saltar a una live account en la que pondrías en juego tu dinero real).


Ahora que ya nos hemos hecho una idea de Qué es el Forex, y Por qué hacer trading en forex podemos pasar a la siguiente pregunta.

¿DÓNDE hacer trading en FOREX?
Tal como se explicó en la etiqueta Qué es el Forex necesitamos trabajar a través de un broker que nos permita un leverage (1:100 el habitual) adecuado y que tenga un spread bajo en el pair o pairs que tengamos idea de tradear.

Lo que más (me) interesa de un broker es lo siguiente:
  1. Que tenga un spread en el par o pares deseados lo más bajos posible.

  2. Que tenga un apalancamiento no inferior a 1:100 para evitar tener que inmovilizar mucho capital en la cuenta del broker. Qué es el Forex.

  3. Que tenga declarado un mínimo o nulo valor de slippage.

  4. Que permita poner pending orders (stop orders y limit orders) con la menor separación posible en pips del valor de la rate actual del mercado. No comento nada de lo que son cada uno de este tipo de órdenes, porque son habituales también en los mercados de bolsa y en el restode mercados. En esencia son órdenes pendientes. Es decir no se ejecutan en el momento en el que se envían al mercado sino que quedan latentes, pendientes, hasta que el valor de la rate alcance un determinado nivel o disminuya por debajo de un determinado nivel. Si son pocos los pips respecto al valor actual de la rate en donde podemos poner nuestras pending orders, tenemos muchas más posibilidades de actuar a tiempo que si el broker nos obliga a colocarlas muy separadas (muchos pips de diferencia) del valor actual de la rate.

  5. Que sea fácil abrir una cuenta con él y que los depósitos de la cuenta de nuestro banco a la del broker (deposits) y retiradas de dinero de la cuenta del broker a la de nuestro banco (withdrawals) se haga con el menor coste posible en las transferencias.

  6. (Para mí), que permita emplear la plataforma de trading Metatrader al 100% de funcionalidad.

  7. (Para mí), que disponga de datos históricos de la rate o rates de interés lo más extensos (de cuantos más años a trás, mejor) y minuciosos (de cada minuto, mejor que de cada 15 minutos, mejor que de cada hora, mejor que diarios).


El punto 6 es muy importante ya que esta plataforma es la que emplearemos en las tradings y conviene que el broker le permita un 100% de funcionalidad. Es decir, hay broker que permiten su uso pero lo limitan a, por ejemplo, no permitir la ejecución de expert advisors (sistemas automáticos de trading) con lo que su uso se ve seriamente limitado, para el objetivo que vamos a buscar al final.

El punto 7 también es muy importante porque las conclusiones que saquemos del estudio de nuestras estrategias en los datos históricos disponibles serán con las que nos guiemos a la hora de seguir adelante y tradear con dinero de verdad. En este sentido, conviene resaltar que aunque pequeñas, existen diferencias en los valores históricos que te presenta cada broker. Aparte del tiempo del servidor del broker, que cada broker, según donde se ubique estará en GMT, o GMT+1 o EST-1 o EST, etc, aún normalizando el huso horario del servidor decada broker existen diferencias en los valores que los servidores van enviando de las rates.
Esto es muy importante porque puede ser que se haya puesto a punto una estrategia que funcione a partir de datos históricos obtenidos de un servidor u origen distinto al del servidor del broker con el que vamos a tradear con lo que, muy probablemente, cuando hagamos un forward testing o un live trading no nos va a funcionar la estrategia.

La siguiente referencia http://www.earnforex.com/mt4_forex_brokers.php tiene una comparativa muy buena de brokers con los que se puede trabajar y que permiten la plataforma Metatrader (aunque algunos no al 100% de funcionalidad). Vete anotando lo que te interese de cada uno, según lo comentado del spread, funcionalidad metatrader y cercanía a tu país de origen (para transferencias más baratas) y decide por alguno o alguno de ellos inicialmente. El que elijas será aquel con el que te bajarás la plataforma Metatrader, los datos históricos, si los tiene, y empezarás a practicar, así que la elección es importante a la larga.

De todos ellos, en el momento actual, me he decantado por Alpari (uk) http://www.alpari.co.uk. Spread de 2 pips en EUR/USD, Metatrader al 100% de funcionalidad, trabaja con Barclays (Británico) y además, dispone de datos desde junio de 2004 al minuto aunque también deben ser tomados con cierta precaución ya que en las FAQ de Alpari se indica que los datos históricos de años anteriores que ellos ofrecen provienen de otro origen distinto al servidor de Alpari (uk) que es el de Metaquotes http://www.metaquotes.net (el fabricante de la plataforma Metatrader).


Ahora que ya nos hemos hecho una idea de Qué es el Forex, Por qué hacer trading en forex, Dónde hacer trading en forex podemos pasar a la siguiente pregunta.

¿CUÁNDO hacer trading en FOREX?
Personalmente sólo sigo un pair de los majors (EUR/USD) y fundamentalmente me referiré casi en exclusiva a éste en la siguiente etiqueta del ¿Cómo hacer? Existen estrategias en las que se siguen varios pares a la vez. Lo único que hay no perder de vista es que muchos pares están directamente relacionados. Es decir, si el EUR/USD baja, muy probablemente lo hará simultáneamente el GBP/USD y otros pares de europa, etc.

Otra cosa es seguir un par en la que ambas monedas tienen un comportamiento similar frente al dolar. Por ejemplo las mencionadas GBP/EUR o EUR/GBP. Estas rates no suelen tener tendencias claras al alza o a la baja sino que suelen moverse dentro de un rango (ranked pairs) frente a las que suelen seguir tendencias a lo largo del tiempo como EUR/USD (trend pairs) Para los ranked pairs hay que establecer estrategias que tengan en cuenta este hecho y no pretender, por ejemplo, que en estos pairs se van a prolongar en el tiempo las subidas o bajadas observadas en las rates.

Para comenzar a hacer trading ficticio (demo account) siempre es buen momento ya que se emplea dinero ficticio y se observa si se tiene éxito o no con las estrategias que se van probando.

Antes de comenzar a hacer trading real (live account) con dinero nuestro de verdad es indispensable haber testeado la validez de la estrategia a lo largo de toda la serie histórica de que se disponga al minuto. Conviene no emplear series históricas en incrementos mayores que 1 minuto o a lo sumo de 5min en 5 min, porque los resultados no son nada fiables en el testeo ya que en 5 min puede haber ocurrido de todo y el testeo darnos por éxito algo que en realidad nos hubiera hecho saltar nuestros Stop Loss.

Existen muchas series históricas al minuto que pueden descargarse de internet de los programas P2P (emule). Basta para ello con poner "EUR USD min forex" o palabras similares para que aparezcan series de muchos años atrás.
Dos problemas fundamentales plantean este tipo de series históricas descargadas de P2P:
  1. Antes de emplearlas es necesario chequear que tipo de huso horario están empleando. Esto es imprescindible en estrategias que emplean el tiempo como variable a la hora de decidir el momento de entrada/salida, asícomo para trades intraday (que se abren y se cierran en un mismo día) para que el momento del cierre corresponda con el momento del día que se desea.

  2. Los datos ofrecidos en estas series diferirán, con toda probabilidad, con los datos que vayamos recogiendo del servidor del broker elegido, con lo que las estrategias puestas a punto con ellas, son poco fiables que se sigan cumpliendo con los datos del servidor del broker con el que vayamos a trabajar.


En mi caso, después de probarlas, he preferido trabajar con las que ofrece mi broker http://www.alpari.co.uk que si bien sólo abarcan desde junio de 2004 en adelante (con la precaución comentada en Dónde hacer trading en forex) son las más aceptables que he podido encontrar para evitar estos dos problemas mencionados.

Una vez que se eligen las series, se testea la estrategia con ellas con el tester de metatrader y se optimizan, obteniendo resultados consistentes de ganancias a lo largo de todos los años testeados se pasa a la segunda fase de testeo histórico que sería testear la estrategia con datos de un año (normalmente el más reciente) cuyos datos NO HAN SIDO EMPLEADOS en llevar a cabo la optimización indicada.
Si, incluso a lo largo de este año así testeado, se obtienen resultados similares a los de los años anteriores donde se puso a punto la estrategia, se puede pasar al siguiente nivel.

Conviene resaltar que nuestra estrategia debe ser tal que sea eficaz, tanto en temporadas en las que el pair seguido se mantenía en tendencia, como en aquellos años y temporadas en los que no había una tendencia clara sino más bien se mantenía en un cierto rango; tanto en temporadas de crisis económica como en temporadas de crecimiento económico intenso. En definitiva, tiene que darnos beneficios netos CONSISTENTEMENTE para cada año testeado. Si no, no seráuna estrategia fiable con la que nos juguemos nuestro dinero porque dependerá de la suerte que tengamos en si estamos en una de las temporadas que funciona o en una de las que no. Si es el último caso, nuestra cuenta de dinero real se volatilizará en unas cuantas trades.

Una vez que hayamos conseguido una estrategia consistentemente eficaz en testeo histórico (back-testing) se puede pasar al siguiente nivel que sería el testeo live pero seguimos con nuestra cuenta demo de dinero ficticio. Este testeo debería durar varios meses e incluso 1 año para seguir comprobando su fiabilidad. Sólo cuando al ponerla a prueba en movimientos live (con nuestra cuenta demo de dinero ficticio) obtengamos de nuevo comportamientos similares a los obtenidos con los back-test (testeos de la serie histórica) podremos plantearnos abrir una live account con el MISMO BROKERcon el que hemos testeado todo, depositar un dinero procedente de capital riesgo y comenzar con el trading verdadero.

Todo este proceso puede llevar mucho tiempo (varios años) en el que se van seleccionando las mejores estrategias, depurando y optimizando hasta, por fin, conseguir alguna con visos de eficacia. Siempre recordando que todo es probabilístico Por qué hacer trading en forex Qué y que ganancias pasadas no implican necesariamente ganancias futuras. De hecho, probablemente, tengamos que dejar a nuestros descendientes las mejores estrategias que hayamos podido encontrar y ellos tendrán que seguir mejorándolas o encontrando variantes mejores.


Ahora que ya nos hemos hecho una idea de ¿Qué es el forex, Por qué hacer trading en forex, Dónde hacer trading en forex, Cuándo hacer trading en forex, podemos pasar a la etiqueta definitiva:

¿CÓMO hacer trading en FOREX?

Los pasos que voy a ir explicando son los que yo he dado o daría si tuviera que empezar de nuevo desde cero. No es algo que tenga que ser así siempre. Es, simplemente, lo que yo he hecho o haría si tuviera que empezar de cero, sabiendo lo que sé ahora. Es decir un ahorro considerable de tiempo en pruebas erróneas.

No recomiendo a nadie que abra una live account sin antes asegurarse de que conoce los riesgos que está asumiendo Cuándo hacer trading en forex. Para asumir riesgos y equivocarse están las cuentas demo donde sí nos dolerá cuando metamos la pata pero nos sentiremos muy aliviados de estar haciendo pruebas sólo con gaseosa.
Cada uno es responsable único de los riesgos que asuma. Como formalidad, declino cualquier responsabilidad que se me quiera atribuir por los actos y decisiones que tome cada lector. Son sólo propias y suyas. De todas formas,en los interrogantes anteriores creo que he ido manifestando la verdadera cautela que se debería seguir en todo el proceso.

Paso a paso:

1. DESDE el broker que hayas elegido mira aquí descárgate la versión de Metatrader que tengan disponible (siempre son versiones libres, no hay que pagar nada por ellas). En concreto la de Alpari uk está en: http://www.alpari.co.uk/en/download.html. Descárgate también la Guía de usuario, User Guide.


2. Ejecuta el programa de instalación de Metatrader y crea una cuenta demo (File--Open an account). Es importante que la cuenta la abras en la moneda que luego realmente manejarías en tu hipotética cuenta real, así como que en Deposit pusieras una cantidad similar a la que pondrías en realidad en tu cuenta. No pongas cantidades elevadas que vienen por defecto ya que eso sólo lleva a engaño en cuanto a las bancarrotas de tu cuenta demo. Hazlo todo lo más real y similar a lo que harías si tradearas con dinero de verdad. En el ejemplo vamos a poner 3000 EUR en nuestra cuenta demo.

Por defecto el servidor que tomará el programa será el de tu broker (Alpari en este caso) que es lo que buscabas.


3. En Tools--Options--Charts borra los campos Max bars in history y Max bars in charts y pon tantos nueves como te permita.

De esta forma podrás trabajar con datos históricos de bastante tiempo atrás.

4. En Tools--Options--Expert Advisors pon Enable todas las condiciones para no limitarte tú el empleo de los futuros Expert Advisors (sistemas automáticos de trading) que vayas probando y creando.


5. En la ventana principal de metatrader, en las barras de herramientas, selecciona la opción de presentar barras de 1 min para el par EUR/USD

Borra todos los charts que tengas activos salvo éste de 1 min.

6. Cierra Metatrader y vete al sitio donde están alojados los archivos históricos. Sería en una ruta similar a la siguiente: C:\Archivos de programa\MetaTrader - Alpari UK\history\AlpariUK-Demo\. Borra todos los archivos que veas con extensión .hst. Sí, no tengas miedo, los vamos a sustituir por otro mucho más extenso.


7. Descárgate de http://www.alpari.co.uk/en/dc/databank.html el archivo con datos minuto a minuto del par que vayas a seguir inicialmente. En este caso EUR/USD,1Min. La descarga lleva su tiempo porque son bastantes megas de datos (desde junio de 2004 en adelante minuto a minuto).

8. Descomprime el archivo y renómbralo LITERALMENTE como EURUSD1.hst
Colócalo ahora en la ruta de los archivos .hst borrados de antes C:\Archivos de programa\MetaTrader - Alpari UK\history\AlpariUK-Demo\

9. Ejecuta de nuevo Metatrader, se te activará el único chart que dejaste antes del par EUR/USD, pero ahora ya con todos los datos históricos que has descargado.

10. Ahora, si quieres ver las barras en otro periodo de tiempo (5 min, 15 min, 30 min, 1h, 4h o 1 día) te recomiendo que EN VEZ DE USAR LA BARRA DE HERRAMIENTAS DE METATRADER

emplees LA PRIMERA VEZ el script Period_converter. Este punto es importante, ya que la forma que tiene de transformar los datos el script o la barra del metatrader es diferente, con lo que si pones a punto una estrategia con datos de periodos obtenidos con el script (lo habitual) luego a lo mejor no te funciona si como ficheros de datos de los periodos que uses tienes los que te genera INICIALMENTE la barra de herramientas del metatrader.

Para ello visualiza, si no está activa ya, la ventana View--Navigator, te vas a Scripts, buscas el script period_converter, y lo ejecutas. Te aparecerá una ventana donde te pregunta los minutos del periodo que quieres hacer la conversión. Ahíescribes 5 (si quieres generar el chart de 5min), 30 (para el de 30 min), 60 (para el de 1h), 1440 (para el diario), etc.
Para cada coversión tienes que asegurarte que sólo tienes activo el chart de 1min, para que los nuevos charts los generes a partir de él, que es el más preciso que tienes. Después de ejecutar el script, si quieres volverlo a ejecutar otra vez para crear un nuevo periodo tienes que esperar a que acabe de la transformación anterior que le hayas pedido. Para ver cuándo ha acabado, visualizas la ventana View--Terminal. Te pones en esta ventana en la pestaña Experts y ahí verás algo similar a esto:

Cuando te aparezca el campo nnnn records written, es que ya ha acabado y puedes ejecutarlo otra vez con el nuevo periodo que quieras luego visualizar.
Una vez que tengas todos los periodos que desees manejar (los recomendables son 1min, 30min, 1h, 4h, 1D), SALES de metatrader, VUELVES a entrar y los vas abriendo con File--New Chart--EUR/USD.
Por defecto siempre te abre el de 1h. Tu pones el periodo que quieras después de abrirlo, usando AHORA YA SÍ la barra de herramientas del Metatrader.


11. Bueno, ahora ha llegado el momento de que te familiarices con tu herramienta (Metatrader). En View tienes todas las ventanas que puedes visualizar: Market Watch, Data Window, Navigator, Terminal, Strategy Tester. Vete abriéndolas (salvo la del Strategy Tester que es para chequear estrategias, de la cual hablaremos más extensamente en otras etiquetas del blog) y viendo para qué sirve cada una.
Es recomendable tener abiertas a la vez, las ventanas: Market Watch, Data Window, Navigator y, dependiendo de si estas tradeando o probando estrategias la Terminal o la Strategy Tester, respectivamente.
Cuando estés haciendo pruebas de trades, en la ventana Terminal, en las pestañas Trade y Account History, te irán apareciendo todas las trades que vayas haciendo así como el balance de tu cuenta demo, que inicialmente debe de estar a 3000 EUR ya que ese fue el valor que pusimos al abrir la cuenta demo.
En la pestaña Trade podrás ir viendo todas las posiciones activas, las cuales puedes ir modificando o cancelando una vez que las tienes ejecutadas.
Prueba a entrar con diversos tipo de órdenes (da igual que aciertes o no) a mercado (instant ejecution), luego con pending orders, etc. Comprueba a partir de qué valores de pips respecto al valor de la rate actual tu servidor te deja incluirlas pending orders. Crea órdenes con Stop Loss, prueba órdenes con Trailing Stops, etc. En definitiva, que sepas manejar todos los tipos de órdenes y la información que te aporta la plataforma en las distintas ventanas (no te preocupes de la Strategy Tester que ya veremos aparte para qué sirve).
Si te atascas con algo o no entiendes algo puedes preguntarme en este blog o bien echar mano del User Guide que te habrás descargado.

12. A continuación familiarízate con algunos de los indicadores más frecuentemente empleados en análisis técnico. El metatrader trae muchos de ellos, pero puedes crear tú los tuyos propios (ya veremos cómo), o descargarte otros que hayan creado otros ususarios. Para entender los tipos que hay, cuándo y cómo se pueden utilizar, te recomiendo este site en el que se explica el fundamento de la mayoría de los indicadores empleados en los mercados (sean de forex u otros mercados). También en este otro link tienes una completa lista de indicadores empleados en forex. Aunque de momento no los necesites, existen ingentes cantidades de indicadores desarrollados para metatrader por otros usuarios.
Los indicadores externos que te descargues, para poder ejecutarlos en tus charts debes alojarlos dentro de: C:\Archivos de programa\MetaTrader - Alpari UK\experts\indicators. Si la extensión de los indicadores que bajes es .mq4 significa que es código fuente que debe ser compilado antes de poder ejecutarlo. Para ello, en este momento, te resultará más sencillo salir de Metatrader, colocar en esa ruta los ficheros .mq4 de indicadores y volver a entrar en Metatrader. Los ficheros compilados tienen una extensión de .ex4. Al inicializarse la aplicación, por defecto, compila ya todos los indicadores y ya te aparecerán en:Insert---Indicators---Custom
Si tienes alguna duda en concreto con relacionada con los indicadores no dudes en preguntar en este blog.

En las siguientes etiquetas se irá entendiendo porqué hemos elegido Metatrader como plataforma de trading, ya que nos meteremos con lo que realmente distingue y hace destacar a esta plataforma de otras: la programación en MQL4 para crear estrategias propias de trading o modificar algunas de las existentes. Es decir para crear scripts y/o indicators y/o expert advisors que nos permitan poner en práctica (implementar) las estrategias de trading que vayamos pensando o recopilando de fuentes de información.