Sintéticos en Metatrader 5

La creación de activos sintéticos, entendidos como el resultado de sumar, restar (y, por qué no, también) multiplicar y dividir diferentes productos entre sí siempre ha sido un auténtico quebradero de cabeza en la versión 4 de Metatrader. Generalmente la creación de este tipo de activos se basaba en la generación de gráficos offline, aunque en X-Trader.net logramos resolverlo con un simple indicador llamado BasketCandles que subí al Foro (y que podéis descargar desde https://www.x-trader.net/foro/viewtopic.php?f=49&t=18679).

Sin embargo, la pequeña chapuza que suponían los gráficos offline ha desaparecido en la versión 5 de Metatrader, por lo que ahora no es posible crear timeframes diferentes de los que vienen de serie (a cambio tenemos una variedad mucho más amplia de temporalidades en esta versión). Afortunadamente lo que sí que trae de serie Metatrader 5 es la posibilidad de crear activos sintéticos. Veamos cómo hacerlo.

Sintetizando que es Gerundio…

Pongámonos manos a la obra. Para crear un sintético debemos ir al Market Watch, hacer click con el botón derecho sobre él y seleccionar Symbols:

En la ventana que se nos abre veremos un botón en la parte inferior que pone “Create Custom Symbol”:

Haciendo click en ese botón, obtendremos una ventana como la siguiente:

Aquí podemos configurar casi todo. Para el ejemplo que he preparado para el artículo he decidido crear un símbolo para el US Dollar Index cuya fórmula recordemos es:

USDX = 50.14348112 × EURUSD-0.576 × USDJPY0.136 × GBPUSD-0.119 × USDCAD0.091 × USDSEK0.042 × USDCHF0.036

Que traducido a lenguaje MQL5 se convierte en:

50.14348112*pow(bid(EURUSD),-0.576)*pow(bid(USDJPY),0.136)*pow(bid(GBPUSD),-0.119)*pow(bid(USDCAD),0.091)*pow(bid(USDSEK),0.042)*pow(bid(USDCHF),0.036)

Ese código es justamente el que debemos insertar en el campo Synthetic Instrument Formula.

Otro campo que es fundamental configurar bien es el de Digits. En el ejemplo he puesto 7 decimales al símbolo; aquí siempre es mejor pasarse un poco, si luego vemos que nos sobran ceros podemos reducir este valor.

Aunque hay muchas opciones, podemos dejarlas como vienen por defecto. Le damos a OK y, si todo ha ido bien, no deberíamos tener problemas en mostrar el símbolo recién creado en el Market Watch actualizándose en tiempo real:

Ahora toca graficarlo. Hacemos click con el botón derecho sobre USDINDEX, seleccionamos Chart Window y… ¡voilá! Aparece el gráfico de nuestro símbolo personalizado funcionando en tiempo real pudiendo seleccionar el timeframe que más nos guste:

Por supuesto, podemos ponerle indicadores y todo lo que queramos:

Y para rematar la faena… Oh milagro, ¡podemos hacer backtests sobre activos sintéticos!

Eso sí, para que nos coja bien las órdenes en el backtest tendremos que jugar un poco con el código de nuestro símbolo (en concreto los valores del bid y el ask), así como con la configuración de sus parámetros (volumen mínimo, horarios, etc.) para que coja correctamente las órdenes a la hora de realizar la simulación.

Muy Bien: Quiero Operar Sintéticos

Pues aquí tenemos malas noticias: no es posible operar directamente sobre el gráfico (la opción de New Order está deshabilitada) aunque siempre podemos programarnos un script que ejecute las órdenes sobre los diferentes activos que componen el sintético.

Lo mismo sucede con los Expert Advisors: tampoco funcionan aplicándolos directamente sobre el gráfico del símbolo personalizado. Así que, si nos ha funcionado un robot bien en los backtests en ese símbolo, deberemos reprogramar la lógica de la ejecución de órdenes del robot para que opere de forma individual sobre cada símbolo que compone la fórmula.

Conclusión

Los activos sintéticos que podemos crear en la última versión de Metatrader son sin duda todo un avance para una plataforma que nunca nos ha parecido moderna (más bien, su diseño visual resulta cada vez más obsoleto). Nos abre la puerta a nuevo universo de productos con el que podemos ampliar las pruebas de nuestras estrategias, aunque es cierto que seguimos limitados por la configuración de la ejecución, que obligará a seguir tratando cada símbolo del sintético de forma individual a la hora de ejecutar las órdenes.

Asimismo, no debemos olvidar que los gráficos de los sintéticos estarán condicionados por la calidad de los históricos de cada símbolo en la fórmula, por lo que es altamente recomendable contar con toda la información de dichos símbolos para asegurarnos de que los valores del sintético son correctos. De lo contrario podemos llevarnos sorpresas al hacer el backtest

En cualquier caso, un paso en la dirección adecuada, en una plataforma que, aun siendo el estándar en los brokers de Forex y CFDs, continúa estando a años luz de otras más avanzadas como Tradestation o NinjaTrader.

Saludos,
X-Trader

COMPARTIR EN: