Funcionalidad

Este indicador sirve principalmente para calcular con cuántos contratos se pueden abrir órdenes de compra y venta en tiempo real, sobre el activo en el que se ejecuta, bajo un determinado entorno de riesgo definido por el usuario. La orden siempre se abrirá obligatoriamente con un stop-loss, sobre el que se calcula el riesgo.

Los riesgos que se controlan a la hora de calcular las órdenes son:

  • Máximo apalancamiento financiero acumulado en una orden, independiente del que proporciona el broker
  • Máximo apalancamiento financiero por el total de órdenes, independiente del que proporciona el broker
  • Máximo porcentaje de margen a usar
  • Máximo riesgo a soportar en una sola orden
  • Máximo riesgo diario a soportar por el total de órdenes
  • Máximo riesgo semanal a soportar por el total de órdenes
  • Máximo riesgo mensual a soportar por el total de órdenes
  • Máximo riesgo anual a soportar por el total de órdenes
  • Número de órdenes máximo por activo
  • Número de órdenes máximo en total
  • Existencia de margen suficiente en la cuenta para realizar la operación

Se utiliza un código de colores y una posición general en este indicador. Todo lo que se ve en color rojo y se sitúa a la izquierda corresponde a operación de venta. Todo lo que se ve en azul y se sitúa a la derecha, corresponde a la operación de compra. Si la operación de compra y/o venta no se puede realizar por la razón que sea, el lado correspondiente se pinta en gris. Las razones por las que no se puede realizar una operación son:

  1. No se ha activado la opción de AutoTrading o el activo no permite operar en la dirección de la operación.
  2. El mercado del activo está cerrado.
  3. Se ha definido un horario de trabajo y estamos fuera del horario.
  4. Abrir el mínimo de contratos en el activo haría incumplir algún criterio de riesgo, según la distancia a stop-loss y condiciones de riesgo definidas por el usuario.
  5. Nueva orden a abrir demasiado cerca de otra/s ya abierta/s en el activo actual.

Uso de las líneas horizontales

Las tres líneas se pueden mover a voluntad, pero por defecto se situarán por encima (línea roja) y debajo (línea azul) del último swing confirmado (señalado adicionalmente con un puntero). La línea de precio (línea verde) por defecto se sitúa en el precio de mercado y se mueve con éste. La línea roja representa el stop-losss para una orden de venta y el take profit  de una orden de compra. La línea azul representa el stop-loss para una orden de compra y el take profit de una orden de venta.

Siempre se debe respetar el orden de las líneas. La línea roja encima, por debajo la verde y la inferior la azul. Si se cambia el orden manualmente, provocará que las líneas afectadas se sitúen en su posición por defecto. Para posicionar la línea verde a precio de mercado, se puede subir por encima de la roja o por debajo de la azul, estando éstas en su posición por defecto.

Interpretación de las órdenes calculadas

La orden de compra se calculará a precio de la línea verde, con stop-loss en la línea azul y take profit (optativo) en la línea roja.

La orden de venta se calculará a precio de la línea verde, con stop-loss en la línea roja y take profit (optativo) en la línea azul.

La herramienta calcula la posible orden de compra y/o de venta, con el máximo de contratos que cumplen todos los criterios de riesgo. El tipo de orden que calculará será en base a la posición de las líneas con respecto al precio de mercado.

En la parte izquierda, en rojo, está la información de la posible orden de venta. En la parte derecha, en azul, está la información de la posible orden de compra. Para ambas órdenes, la información que se muestra es la misma:

  • Primera línea de texto –> En este caso, como la línea de precio está a mercado, el tipo de orden que está marcando para compra y venta es a MERCADO. Indica entre corchetes el número de lotes máximo con que se puede abrir la orden cumpliendo todos los requisitos de riesgo configurados. Seguidamente indica el SL y TP que está teniendo en cuenta para la orden calculada, que se corresponde con las posiciones de las líneas roja y azul.
  • Segunda línea de texto –> Indica qué beneficio se obtendría al abrir la orden en las condiciones actuales (llegar a TP) y el riesgo asumido si se vuelve en contra (llegar a SL), así como el RATIO entre TP y SL. El ratio nos indica cuánto dinero de beneficio obtendría con respecto al que arriesgo. En este caso se indica que ese RATIO es de 0,70 de beneficio por cada 1 que pongo en riesgo en venta y de 1,11 de beneficio por cada 1 que pongo en riesgo en compra. La divisa de estas cantidades es la divisa de la cuenta, independientemente del activo que estemos estudiando.
  • Tercera línea de texto –> Indica a qué precio se solicitaría la apertura de operación, dónde estaría el SL (con la distancia de precio a SL en tanto por ciento) y dónde estaría el TP (con la distancia de precio a TP en tanto por ciento).

Interpretación de la sección de información sobre apalancamiento

En esta sección se indican los niveles de apalancamiento definidos, los actuales y los que consumirían la actual operación.

Por columnas:

  • El primer grupo de columnas (las dos primeras) hacen referencia al apalancamiento máximo permitido para una orden, según se ha configurado en los parámetros de entrada (maxOrderLeverage). En la primera columna se indica el límite máximo en dinero (dinero apalancado) con el que permitiríamos abrir una operación. En la segunda columna el número máximo de contratos con que abrir la orden para respetar dicho apalancamiento.
  • En el segundo grupo de columnas (las siguientes cuatro columnas) se hace referencia al apalancamiento máximo total permitido con la suma de todas las órdenes, según se ha configurado en los parámetros de entrada (maxTotalLeverage). La primera columna de este grupo indica el límite máximo en dinero (dinero apalancado) que permitiríamos usar sumando el dinero apalancado de cada orden. La segunda columna indica el dinero apalancado actual que estamos consumiendo con las órdenes ya creadas. La tercera columna indica el dinero apalancado que nos queda por usar para llegar al máximo. La cuarta columna indica el número máximo de contratos con que abrir la orden para consumir todo el dinero apalancado que queda.
  • En el tercer grupo de columnas (las siguientes tres columnas), se muestra el margen máximo a usar en la cuenta (primera columna), el margen libre que queda para operar (segunda columna) y el máximo número de contratos que se permite para consumir todo el margen.
  • En el cuarto grupo de columnas (las dos últimas columnas) se indican cuántos contratos se han calculado usar para las órdenes de venta (en color rojo) y la de compra (en color azul). Estos contratos nunca pueden sobrepasar los límites máximos especificados en los grupos de columnas anteriores: Max orden (lotes), Queda (lotes), Margen libre (lotes), garantizando así que se respetan los límites de apalancamiento definidos.

Interpretación de la sección de información sobre costes de orden

En esta sección se indican los costes asociados con las ordenes de compra y venta calculadas. En color rojo los costes asociados a la orden de venta y en azul los asociados a la orden de compra.

Por columnas, para cada orden la información es:

  • <Compra/Venta> nueva (lotes). Indica cuántos lotes se han calculado para usar en la operación. Es información de base, no un coste
  • <Compra/Venta> Margen. Indica cuánto dinero de la cuenta se retendría al abrir la operación. Este dinero retenido es el denominado margen de operación.  Este dinero no es un coste en si, representa el coste en margen retenido, pero en ningún caso es dinero a cobrar por el broker por abrir la operación.
  • <Compra/Venta> Spread. Indica qué coste representa el spread actual, es decir, el dinero que me costaría abrir la operación y cerrarla a los precios actuales sin tener en cuenta comisión.
  • <Compra/Venta> Swap. Indica el coste diario de financiación por tener la operación abierta. Hay un día a la semana que lo cobran multiplicado por 3, suele ser el viernes para tenerlo todo el fin de semana, pero dependiendo del broker lo pueden cobrar cualquier día de la semana. En este caso es el viernes
  • <Compra/Venta> Comisión. Se puede especificar los datos para calcular la comisión de una operación para el activo actual en los parámetros de entrada. Si se especifican,  se mostrará la información de coste en comisión calculado.

Interpretación de la sección de información sobre riesgos en franjas de tiempo

En esta sección se indican los niveles de riesgo definidos, consumidos y disponibles para la orden actual, el día actual, la semana actual y el mes actual. Para que el cálculo sea correcto, es importante que en el historial de cuentas se configure como mínimo mostrar las órdenes del último año.

Por columnas, la información para cada período temporal es:

  • Max. El máximo riesgo permitido para el período indicado (en base a lo definido en los parámetros de entrada)
  • Actual. El riesgo actual que se está usando o se ha usado teniendo en cuenta las operaciones abiertas y cerradas en dicho período.
  • Queda. La diferencia entre el máximo y lo consumido.
  • <Compra/Venta> nueva. El riesgo que supondría la apertura de la orden de compra o venta calculada actualmente. En ningún caso el valor de riesgo en la operación debe superar el riesgo de la columna Queda, garantizando así que se cumplen los criterios de riesgo temporal definidos

Interpretación de la sección de información sobre operaciones en la cuenta

En esta sección se indican el número de operaciones máximas permitidas y consumidas actualmente.

Por columnas, hay dos grupos de información:

  • El primer grupo de columnas (las dos primeras) hacen referencia al número de operaciones sobre el activo actual. La primera columna hace referencia al máximo definido y la segunda columna al número de operaciones abiertas.
  • El segundo grupo de columnas (las dos últimas) hacen referencia al número de operaciones totales de la cartera. La primera columna hace referencia al máximo definido y la segunda columna al número de operaciones abiertas.

Por filas, se diferencian entre órdenes abiertas y órdenes pendientes, ya que se pueden configurar los límites por separado.

En ningún caso se permitirá abrir más órdenes de lo permitido, es decir, que ninguna columna «Usado» puede ser mayor que su correspondiente «Max».

Uso de los botones

Existe un botón de reiniciar, otro de compra, otro de venta y uno de cierre. Dependiendo del nivel de permisos del usuario, los botones de compra, venta y cierre serán sólo informativos o podrán iniciar la compra, venta o cierre respectivamente. Se puede definir qué información mostrar en los botones a través de los parámetros de entrada del indicador.

Con la instalación del software SMC se configuran los botones de venta, compra y cierre con sus correspondientes llamadas a scripts, de manera que al pulsar cada botón se llama al correspondiente, SMC_CalculatedOrder_SELLSMC_CalculatedOrder_BUY  y  SMC_CalculatedOrder_CLOSE respectivamente. También se pueden lanzar los scripts manualmente sobre la ventana donde está el indicador y se iniciará la orden concreta, o pulsar los accesos rápidos definidos Alt+8 para venta,  Alt+9 para compra y Alt+7 para cierre.

Los botones de reiniciar y cierre se pueden mostrar o no, según se configuren los parámetros de entrada. Por defecto se muestra el botón de reiniciar pero no el de cierre.

Si se activa la propiedad de comentario personalizado, aparecerá una caja de texto donde se puede escribir el comentario que acompañará a la orden.

A la izquierda del botón de Venta, existe un marcador «<» ó «>» que al pulsarlo sirve para esconder o volver a mostrar tanto los botones como las líneas de precios, de manera tal que podamos sólo mostrarlos cuando vayamos a operar, y no moleste cuando estamos haciendo algún tipo de análisis en la ventana.

Simulación en combinación con SMC_ManageMyOrders

Se puede usar SMC_CalculateOrders para simular operaciones con datos históricos, estudiando qué hubiese pasado si se hubiesen abierto órdenes con la estrategia manual que queramos probar. Para poder simular es necesario iniciar el «Probador de estrategias» y seleccionar el asesor experto SMC_ManageMyOrders. Se pueden configurar los parámetros de entrada del experto para que gestione las operaciones que vayamos abriendo. Es necesario marcar el Modo Visual, para que al iniciar el backtest genere una ventana donde añadiremos todos los indicadores que queramos, además de SMC_CalculateOrders. Cuando estamos simulando con esta combinación de SMC_ManageMyOrders y SMC_CalculateOrders, podemos ejecutar sobre la ventana cualquier script de los siguientes para que actúe en la simulación, no en la cuenta real:

** Es imprescindible realizar siempre las simulaciones en cuentas demo y sin ninguna ventana abierta, para evitar el uso de los scritps de forma inadecuada. Incluso si se tiene mucha experiencia realizando backtest, podría producirse una confusión y lanzar la operación fuera del ámbito de simulación. Esa posibilidad se elimina si se usa siempre una cuenta demo y no hay ninguna ventana abierta.

** Condiciones imprescindibles para que la simulación pueda realizarse son, estar conectados a la cuenta demo, y que las siguientes variables tengan el mismo valor tanto en SMC_ManageMyOrders como en SMC_CalculateOrders: magicOrder, generateGif, sensitivity, useMajorLines, conservatively, zoomNeutral, swingSeparationSL, useSpreadOnOrders, dstToApplyBroker, gmtOfflineBroker, timeSetGMT, initMorning, endMorning, initEvening, endEvening.

Además de todas las funcionalidades de SMC_CalculateOrders, hay otros 8 botones adicionales para mejorar el backtest. Están separados en botones que afectan sólo a operaciones de venta y sólo a operaciones de compra, aunque  su funcionamiento es el mismo. Las posibilidades son:

  • Modificar SL. Movemos la línea de stop-loss correspondiente (azul o roja según sea para compras o ventas) a la posición donde queramos fijar el nuevo stop. Al pulsar el botón, moverá el stop para todas las operaciones (compras o ventas) a dicho valor.
  • Modificar TP. Movemos la línea de take profit correspondiente (recordamos que la línea de TP será la azul para ventas y la roja para compras) a la zona donde queremos fijar el nuevo objetivo de beneficio. Al pulsar el botón, moverá el TP para todas las operaciones (compras o ventas) a dicho valor.
  • Cerrar. Cerrará todas las operaciones de compras o ventas según el botón pulsado.
  • Cerrar 1/2. Cerrará la mitad de contratos en todas las operaciones de compras o ventas según el botón pulsado.

** La operación simulada se lanzará en el siguiente tick de simulación recibido. Si se usa la opción de pausar el backtest y se lanza una orden, será necesario reanudar la simulación para obtener un nuevo tick.

Parámetros de entrada

sensitivity Sensibilidad usada para generar los swings. Números menores indica que se detectan movimientos menores. Números mayores significa que se detectan movimientos mayores

useMajorLines Indica si seguir los swings mayores (si está activada) o menores (si está desactivada) del indicador SMC_SwingLines para calcular los stops por defecto

conservatively Indica si usar un criterio conservador (si está activado) o no, para generar los swings de SMC_SwingLines

zoomNeutral Indica si se quieren buscar swings internos a un swing dado, cuando éste es muy amplio, tal como lo hace el indicador SMC_SwingLines

swingSeparationSL Indica qué separación (desviaciones típicas) mantener con respecto al stop por defecto calculado.

groupId  Número de grupo asignado a las líneas del indicador, para sincronizarse con SMC_CalculatedOrdersMirror. Sirve para distinguir entre diferentes grupos si tengo varias ventanas abiertas con el indicador

updateEverySeconds  Forzar a actualizar la información en pantalla cada x segundos, aunque no haya cotización

resetAfterNewOrder Si está activo, cuando se abre una nueva orden de compra o venta, fuerza a que las líneas de stop loss y precio vuelvan a su posición por defecto.  Es similar a pulsar el botón Reiniciar. Sólo se reinicia si la orden se ha abierto.

useSpreadOnOrders Si se activa esta propiedad, se tiene en cuenta el spread del momento para calcular los precios de compra en los puntos de stop, precio y take profit.

infoOnButtons Con esta propiedad podemos definir qué información queremos mostrar en los botones de compra y venta. Se puede elegir:  Key=La combinación de teclas que inicia la operación, Ratio=El ratio beneficio || riesgo de la orden calculada, Risk=El riesgo en dinero de la operación calculada, Lots=Contratos calculados con que abrir la operación, DistancePercent=Distancia en % entre el precio y el stop, DistancePoints=Distancia en puntos entre el precio y el stop

magicOrder Identificador interno de aplicación que ha abierto la orden. Este número es común a todas las órdenes abiertas con software SMC. Aunque se puede cambiar al gusto, se recomienda no hacerlo para facilitar la compatibilidad con otras herramientas que pueden tratar la orden posteriormente. Una orden abierta con MT4 directamente usa un magicOrder 0

openOrdersWithTP Si se activa, se tiene en cuenta el spread actual para calcular los precios, stops y toma de beneficios, de las órdenes, teniendo en cuenta que las líneas del indicador son todos precios de venta. Las compras se calculan sumando el spread

minSeparationOrders Indica qué separación (desviaciones típicas) mantener como mínimo entre las distintas órdenes

enableConfirmationMessage Si se desactiva, se desactivan las pantallas de «verificación de orden» en el proceso normal de compra o venta, por tanto no se aconseja desactivarlo sin ser un experto y haberlo testado durante mucho tiempo en demo. Si está activado, es la forma correcta de operar, ya que antes de proceder nos realiza el resumen de la operación a realizar y nos permite aceptarla o rechazarla

enableCustomComment Si se activa, aparecerá un cuadro de texto donde se puede especificar un texto personalizado que se incluirá como comentario de la orden. Se puede ver el comentario tanto en el listado de «Operaciones» como de «Historial de cuentas». Si no aparece por defecto, pulsado con el ratón derecho del ratón en el listado correspondiente, se puede seleccionar «Comentarios» y entonces aparecerá.

generateGif Si se activa esta propiedad, se generará una imagen gif de la ventana sobre la que se ejecuta el script, una vez haya abierto la orden, y sólo si se ha abierto correctamente. La imagen se guardará en el directorio de MT4 MQL4\Files\SMC_CalculateOrders con el formato: <activo>_<id_orden>_<fecha>_<hora>_<timeframe del gráfico>_1_<operación realizada>

balanceOrEquity Se puede seleccionar qué valor usar (Balance  o Equity) para calcular los porcentajes de riesgo

maxOrderLeverage Máximo apalancamiento financiero permitido en una sola orden

maxTotalLeverage Máximo apalancamiento financiero permitido en el total de órdenes

maxTotalMarginPercent Máximo porcentaje de margen disponible en cuenta usar para el total de operaciones abiertas. Si se configura 100, usará todo el margen

maxRiskOrderAmount Se puede indicar cuánto dinero en valor absoluto se desea arriesgar como máximo en cada orden a abrir en el activo, independientemente del apalancamiento que permita el broker y del dinero que haya en cuenta

maxRiskOrderPercent Se puede indicar cuánto dinero en porcentaje del balance o equity actual se desea arriesgar como máximo en cada orden a abrir en el activo, independientemente del apalancamiento que permita el broker y del dinero que haya en cuenta. Así, si nuestra estrategia es buena, cada vez tendremos más dinero y este porcentaje será mayor. Si por el contrario nuestra estrategia es mala, cada vez el porcentaje representará un riesgo menor. Sólo se tendrá en cuenta este dato si se ha indicado 0 en maxRiskOrderAmount. El riesgo por operación es obligatorio definirlo para que se puedan configurar órdenes de compra y venta, usando cualquiera de las dos propiedades posibles

maxRiskDiaryAmount Se puede indicar cuánto dinero en valor absoluto se desea arriesgar como máximo en un día, contando tanto con la nueva orden que se vaya a abrir como las órdenes que ya están abiertas y/o cerradas en cualquier activo, independientemente del apalancamiento que permita el broker y del dinero que haya en cuenta. Revisar también la propiedad manageOnlyMagicPostions

maxRiskDiaryPercet  Se puede indicar cuánto dinero en porcentaje del balance o equity actual se desea arriesgar como máximo en un día, contando tanto con la nueva orden que se vaya a abrir como las órdenes que ya están abiertas y/o cerradas en cualquier activo, independientemente del apalancamiento que permita el broker y del dinero que haya en cuenta. Sólo se tendrá en cuenta este dato si se ha indicado 0 en maxRiskDiaryAmount. Si ambos riesgos diarios se configuran a 0, se deshabilita la opción de control de riesgo diario. Revisar también la propiedad manageOnlyMagicPostions

maxRiskWeeklyAmount Se puede indicar cuánto dinero en valor absoluto se desea arriesgar como máximo en la semana en curso, contando tanto con la nueva orden que se vaya a abrir como las órdenes que ya están abiertas y/o cerradas en cualquier activo, independientemente del apalancamiento que permita el broker y del dinero que haya en cuenta. Para que el cálculo sea correcto, es importante que en el historial de cuentas se configure como mínimo mostrar las órdenes de la última semana. Revisar también la propiedad manageOnlyMagicPostions

maxRiskWeeklyPercent Se puede indicar cuánto dinero en porcentaje del balance o equity actual se desea arriesgar como máximo en la semana en curso, contando tanto con la nueva orden que se vaya a abrir como las órdenes que ya están abiertas y/o cerradas en cualquier activo, independientemente del apalancamiento que permita el broker y del dinero que haya en cuenta. Sólo se tendrá en cuenta este dato si se ha indicado 0 en maxRiskWeeklyAmount . Para que el cálculo sea correcto, es importante que en el historial de cuentas se configure como mínimo mostrar las órdenes de la última semana. Si ambos riesgos semanales se configuran a 0, se deshabilita la opción de control de riesgo semanal. Revisar también la propiedad manageOnlyMagicPostions

maxRiskMonthlyAmount Se puede indicar cuánto dinero en valor absoluto se desea arriesgar como máximo en el mes en curso, contando tanto con la nueva orden que se vaya a abrir como las órdenes que ya están abiertas y/o cerradas en cualquier activo, independientemente del apalancamiento que permita el broker y del dinero que haya en cuenta. Para que el cálculo sea correcto, es importante que en el historial de cuentas se configure como mínimo mostrar las órdenes del último mes. Revisar también la propiedad manageOnlyMagicPostions

maxRiskMonthlyPercent Se puede indicar cuánto dinero en porcentaje del balance o equity actual se desea arriesgar como máximo en el mes en curso, contando tanto con la nueva orden que se vaya a abrir como las órdenes que ya están abiertas y/o cerradas en cualquier activo, independientemente del apalancamiento que permita el broker y del dinero que haya en cuenta. Sólo se tendrá en cuenta este dato si se ha indicado 0 en maxRiskMonthlyAmount. Para que el cálculo sea correcto, es importante que en el historial de cuentas se configure como mínimo mostrar las órdenes del último mes. Si ambos riesgos mensuales se configuran a 0, se deshabilita la opción de control de riesgo mensual. Revisar también la propiedad manageOnlyMagicPostions

maxRiskYearlyAmount Se puede indicar cuánto dinero en valor absoluto se desea arriesgar como máximo en el año en curso, contando tanto con la nueva orden que se vaya a abrir como las órdenes que ya están abiertas y/o cerradas en cualquier activo, independientemente del apalancamiento que permita el broker y del dinero que haya en cuenta. Para que el cálculo sea correcto, es importante que en el historial de cuentas se configure como mínimo mostrar las órdenes del año en curso. Revisar también la propiedad manageOnlyMagicPostions

maxRiskYearlyPercent Se puede indicar cuánto dinero en porcentaje del balance o equity actual se desea arriesgar como máximo en el año en curso, contando tanto con la nueva orden que se vaya a abrir como las órdenes que ya están abiertas y/o cerradas en cualquier activo, independientemente del apalancamiento que permita el broker y del dinero que haya en cuenta. Sólo se tendrá en cuenta este dato si se ha indicado 0 en maxRiskYearlyAmount. Para que el cálculo sea correcto, es importante que en el historial de cuentas se configure como mínimo mostrar las órdenes del año en curso. Si ambos riesgos anuales se configuran a 0, se deshabilita la opción de control de riesgo anual. Revisar también la propiedad manageOnlyMagicPostions

comissionFixed Se pueden indicar el coste fijo en comisión por realizar una operación independientemente del número de contratos con que se abra, si así está negociado con el broker. Se tendrá en cuenta para el cálculo de comisiones, asumiendo que se cobra tanto en la apertura de la operación, como en el cierre

comissionAmount Se pueden indicar el coste por contrato, para la comisión por realizar una operación, si así está negociado con el broker. Se tendrá en cuenta para el cálculo de comisiones, asumiendo que se cobra tanto en la apertura de la operación, como en el cierre

comissionPercent Se pueden indicar el coste en porcentaje de dinero invertido (en tanto por ciento), para la comisión por realizar una operación, si así está negociado con el broker. Se tendrá en cuenta para el cálculo de comisiones, asumiendo que se cobra tanto en la apertura de la operación, como en el cierre

comissionPoints Se pueden indicar el coste en puntos, para la comisión por realizar una operación, si así está negociado con el broker. Se tendrá en cuenta para el cálculo de comisiones, asumiendo que se cobra tanto en la apertura de la operación, como en el cierre

comissionCurrency Se debe indicar en qué moneda se calcula la comisión, si es en moneda de la cuenta (TypeAccount) o en moneda del activo sobre el que se opera (TypeSymbol)

comissionFile Con esta propiedad podemos identificar un nombre de fichero donde hemos definido las comisiones de los activos. El formato del fichero es CSV, es decir, los activos separados por ‘;’ (punto y coma). El fichero debe estar físicamente en el directorio MQL4/Files y en tester/files si queremos usarlo en simulación

Por ejemplo, si queremos cargar desde un fichero comisiones.csv, los datos de comisiones para forex (en el menú de MT4 Ver/símbolos están bajo el directorio Forex) e índices (en el menú de MT4 Ver/símbolos están bajo el directorio Indices) generamos el fichero comisiones.csv en MQL4/Files y tester/files con el contenido:

forex;0;0;0.0025;0;1

indices;0;0;0.0025;0;1

Para cada activo o grupo de activos usamos una línea con 6 datos separados por «;»

    • El primer dato es el activo o grupo de activos
    • El segundo dato es la comisión si ésta es fija indistintamente del número de contratos que abramos (comissionFixed)
    • El tercer dato es la comisión fija por contrato para 1 contrato (comissionAmount)
    • El cuarto dato es la comisión en % por contrato (comissionPercent)
    • El quinto dato es la comisión en puntos por contrato (comissionPoints)
    • El sexto dato indica si se especifica en la moneda de la cuenta (0) o en la moneda del activo (1) (comissionCurrency)

Para el ejemplo, tanto en forex como en indices estamos definiendo una comisión del 0.0025% por contrato abierto, en moneda del activo. Hay que tener en cuenta que el broker cobrará esta comisión dos veces, una en la apertura y otra en el cierre.

manageOnlyMagicPostions Si se activa esta propiedad, todo el cálculo de riesgos se realizará exclusivamente sobre operaciones abiertas con el magic «magicOrder». Si se desactiva, el cálculo se realizará para todas las órdenes independientemente del magic con que se generaron, incluidas las órdenes abiertas manualmente

maxOpenOrdersOnCurrentSymbol En esta propiedad se puede indicar el límite de órdenes abiertas sobre el activo actual. Si se indica 0, se inhabilita este control y no se tiene en cuenta. Revisar también la propiedad manageOnlyMagicPostions

maxPendingOrdersOnCurrentSymbol En esta propiedad se puede indicar el límite de órdenes pendientes sobre el activo actual. Si se indica 0, se inhabilita este control y no se tiene en cuenta. Revisar también la propiedad manageOnlyMagicPostions

maxOpenOrdersOnAllSymbols En esta propiedad se puede indicar el límite de órdenes totales abiertas. Si se indica 0, se inhabilita este control y no se tiene en cuenta. Revisar también la propiedad manageOnlyMagicPostions

maxPendingOrdersOnAllSymbols En esta propiedad se puede indicar el límite de órdenes pendientes totales. Si se indica 0, se inhabilita este control y no se tiene en cuenta. Revisar también la propiedad manageOnlyMagicPostions

useTimeTable Esta propiedad sirve para habilitar o inhabilitar la apertura de órdenes exclusivamente dentro del horario definido a continuación

dstToApplyBroker  DST del país donde está el broker

gmtOfflineBroker GMT que se usa cuando la plataforma está desconectada del broker, o cuando se está realizando un testing

timeSetGMT  activada indica que los horarios siguientes están expresados en GMT 0. Desactivado indica que el horario está indicado en GMT del broker

initMorning Hora de trabajo inicio en la mañana

endMorning Hora de trabajo fin en la mañana

initEvening Hora de trabajo inicio en la tarde

endEvening Hora de trabajo fin en la tarde

limitStop Si se indica un valor en esta propiedad, cada vez que el indicador se inicie o reinicie, el precio de apertura se marcará a este valor

slBuy Si se indica un valor en esta propiedad, cada vez que el indicador se inicie o reinicie, el stop de compra se marcará a este valor

slSell Si se indica un valor en esta propiedad, cada vez que el indicador se inicie o reinicie, el stop de venta se marcará a este valor

showPrices Si se activa esta propiedad, se mostrará el valor de precio y stops en una caja de texto al lado de la línea correspondiente. En caso contrario no se mostrarán

showOrderButtons Si se activa esta propiedad, se mostrarán los botones de compra y venta. En caso contrario no se mostrarán

buttonsOnMainWindow Si se activa esta propiedad, en lugar de mostrar los botones de compra y venta en la ventana principal, se mostrarán en la ventana del indicador

showResetButton Si se activa esta propiedad se mostrará el botón de reiniciar. En caso contrario no se mostrará.

showCloseButton Si se activa esta propiedad se mostrará el botón de cierre. En caso contrario no se mostrará.

hideSLTPLinesWithButtons Al activar esta propiedad, cuando se ocultan o se vuelven a mostrar los botones pulsando ‘<‘ ‘>’, se ocultan o muestran las líneas de precio y stops

hideMirrorSLTPLinesWithButtons Al activar esta propiedad, cuando se ocultan o se vuelven a mostrar los botones pulsando ‘<‘ ‘>’, se ocultan o muestran las líneas de precio y stops en las ventanas sincronizadas con SMC_CalculatedOrdersMirror

showAskLine Al activar esta propiedad se muestra la línea de precio+spread,  indicando el precio de compra que se obtendría cuando el precio llega a la línea de precio actual

showAskLineOnSL Al activar esta propiedad se muestra la línea de stop+spread,  indicando el precio de compra que se obtendría cuando el precio llega a la línea de cada stop

showBidSeparationSL Al activar esta propiedad se muestra una línea por debajo del stop de venta y otra por encima del stop de compra, para visualizar la separación calculada que se debería tener en cuenta en los stops, según lo definido en swingSeparationSL

bigText Si se activa esta propiedad, los textos se muestran en un tamaño mayor. Activar sólo si se dispone de una pantalla grande y con mucha resolución, porque si no no cabría todo el texto

buyButtonColor Color asociado a operaciones de compra

sellButtonColor Color asociado a operaciones de venta

resetButtonColor Color para el botón de reiniciar

closeButtonColor Color para el botón de cierre

cantOpenColor Color usado cuando no se debería o no se puede abrir una orden

extraTextCaption Color usado para los textos de cabecera y texto en general

extraTextColor Color usado para los datos calculados

slBuyColor Color de la línea de stop para compra

slBuyLineWith Grosor de la línea de stop para compra

slBuyLineStyle Estilo de la línea de stop para compra

slBuyBoxWith Tamaño del cuadro de texto de la línea de stop para compra

slSellColor Color de la línea de stop para venta

slSellLineWith Grosor de la línea de stop para venta

slSellLineStyle Estilo de la línea de stop para venta

slSellBoxWith Tamaño del cuadro de texto de la línea de stop para venta

limitStopColor Color de la línea de precio

limitStopLineWith Grosor de la línea de precio

limitStopLineStyle Estilo de la línea de precio

limitStopBoxWith Tamaño del cuadro de texto de la línea de precio

secondsToResetIfNewData  Número de segundos para reiniciar el indicador cuando se detectan nuevos datos antiguos en el gráfico

barsBack  Número de barras de histórico a tomar en cuenta para construir el indicador.  Para usar el histórico completo, indicar 0

Extra

Posibles usos para esta herramienta son:

Calcular en tiempo real las operaciones de compra y venta en un activo para un riesgo definido.

Usaremos la configuración de riesgo por defecto para calcular las operaciones de compra y venta máximas en el activo. La cuenta es de 10.000 USD. La configuración de riesgo por defecto es:

Apalancamiento máximo en una operación=5

Apalancamiento máximo=20

Margen máximo=60%

Riesgo máximo por operación=1%

Riesgo máximo diario=3%

Riesgo máximo semanal=5%

Riesgo máximo mensual=10%

Riesgo máximo anual=20%

El riesgo se define a través de las correspondientes propiedades de entrada del indicador, y se mantienen para calcular en tiempo real las órdenes de compra y venta. Si en la misma ventana cambiásemos el activo, volvería a calcularlo las operaciones de compra y venta para el nuevo activo. Todo se realiza siempre en tiempo real.

En este caso, se puede abrir una compra (el botón correspondiente está en azul) o una venta (el botón correspondiente está en rojo) siendo el número de contratos máximo recomendado de:

Venta=0,8 contratos. SL en línea roja. Riesgo máximo si el precio se mueve hasta el SL=-77,36USD

Compra=0,8 contratos. SL en línea azul. Riesgo máximo si el precio se mueve hasta el SL=-83,28USD

Como se ve, el riesgo máximo asumido es inferior a las de todos los definidos.

Realizar un backtest para una estrategia concreta.

Podemos probar cualquier estrategia manual que queramos, abriendo las operaciones y cerrándolas igual que si lo hubiésemos realizado en el momento con SMC_CalculateOrders. Además, al realizar el backtest con el experto SMC_ManageMyOrders, podemos probar cómo gestionaría la orden dicho EA.

En este caso, hemos utilizado el indicador SMC_MACDWaves y el indicador SMC_MACDDivergences para entrar en la dirección del timeframe superior (M15), cuando se alinéa con el timeframe actual (M5).

Elegimos abrir una operación de compra y el riesgo calculado es de 76,95 USD para ganar 85,50 USD. La cuenta en este momento está en 8.335.81 USD. Abre la operación de compra simulada con las características indicadas. Si continuamos simulando, podemos ver cómo fue la decisión, y continuar tomando decisiones en base a la estrategia, probando así su validez.

Galería de Imágenes