MetaTrader 5 build 1430: Pestaña Exposure actualizada

Implementado un nuevo algoritmo de formación de la pestaña "Activos" para el mercado de valores

16 septiembre 2016

Terminal


  1. Implementado un nuevo algoritmo de formación de la pestaña "Activos" para el mercado de valores. Ahora el terminal adapta la presentación de activos dependiendo del sistema de gestión de riesgos que se use para la cuenta comercial: Retail Forex, Futures o el Modelo bursátil.

    A aquellos que comercian en Forex o con futuros en la bolsa, el apartado "Activos" les servirá para entender su posición actual en el mercado. Las mismas divisas se encuentran en multitud de instrumentos distintos: como una de las divisas integrantes de una pareja, como divisa básica, etcétera. Por ejemplo, usted puede tener posiciones opuestas de GBPUSD, USDJPY y GBPJY. En esta situación es muy problemático comprender la cantidad que tenemos de esta o aquella divisa o cuánto debemos. Todavía es más complicado cuando tenemos, no tres posiciones de ese tipo, sino más. En esta situación, el estado total de la cuenta se puede mirar fácilmente en la pestaña "Activos". Veamos un ejemplo con las tres mismas posiciones:

    Buy GBPJPY 1 lot at 134.027 — ha obtenido 100 000 GBP, ha dado 134 027 000 JPY
    Sell USDJPY 1 lot at 102.320 — ha dado 100 000 USD, ha obtenido 102 320 000 JPY
    Sell GBPUSD 1 lot at 1.30923 — ha dado 100 000 GBP, ha obtenido 103 920 USD

    Hemos comprado y vendido simultáneamente 100 000 GPB. En suma, de GBP tenemos 0, y la pestaña "Activos" no muestra esta divisa. De USD en un caso hemos dado divisa, y en otro, la hemos obtenido. La pestaña "Activos" calcula el total y lo suma con el balance actual, puesto que la divisa del depósito también la tenemos en USD. JPY ha participado en dos operaciones, así que la pestaña también mostrará el valor total.




    A aquellos que comercian conforme al modelo bursátil, el apartado puede ayudarles a entender cómo se usa el dinero. A diferencia del modelo anterior, al realizar operaciones, el dinero se resta/añade directamente al balance. Por ejemplo, al comprar EURRUB, usted recibirá directamente euros, y del balance se restará la suma correspondiente en rublos. Durante el comercio, el balance de la cuenta puede incluso tornarse negativo: cuando usted comercia con recursos prestados y en calidad de recursos intervienen activos adquiridos. En esta situación, la pestaña "Activos" le permitirá entender con facilidad el estado comercial de la cuenta.

    De forma adicional, aquí se muestra el valor de liquidación, es decir, la suma de los recursos en la cuenta y el valor (resultado) del cierre de las posiciones actuales al precio del mercado.





  2. Corregido el error de representación del tipo de transacción en la historia de operaciones comerciales.
  3. Corregida la muestra repetida de la ventana de notificaciones sobre riesgos al pasar a la cuenta comercial.
  4. Corregido y optimizado el funcionamiento del diálogo de elección de instrumentos comerciales al trabajar con gran cantidad de símbolos (varios miles y más).
  5. Corregida la representación de los niveles de los indicadores incorporados calculados en base a Moving Average (Bollinger Bands, Adaptive Moving Average, etc). El problema surgía al construir los indicadores en una ventana aparte.
  6. Corregido el error que en ciertos casos impedía colocar una orden en un contrato de futuros. El problema aparecía si el precio de la orden coincidía con el límite superior o inferior de precio del contrato.

MQL5

  1. Optimizada y acelerada la compilación de programas MQL5.
  2. Añadido el soporte de los modificadores final y override para clases, estructuras y funciones.

    Modificador final para clases y estructuras
    La presencia del modificador final al declarar una estructura o clase, prohíbe la posterior herencia a partir de ella. Si la clase (estructura) es tal que no haya necesidad de introducir cambios posteriormente, o los cambios no están permitidos por motivos de seguridad, declárela con el modificador final. Además, todos los métodos de la clase se también considerarán implícitamente como "final".
    class CFoo final
      {
      //--- cuerpo de la clase
      };
     
    class CBar : public CFoo
      {
      //--- cuerpo de la clase
      };
    Al intentar heredar de una clase con el modificador final, como se muestra en el ejemplo de más arriba, el compilador dará error:
    cannot inherit from 'CFoo' as it has been declared as 'final'
    see declaration of 'CFoo'

    Modificador override para funciones
    El modificador override indica que la función declarada deberá redefinir obligatoriamente el método de la clase padre. El uso de este modificador permite evitar errores en la redifinición, tales como el cambio casual de la signatura del método. Por ejemplo, en la clase básica se define el método func, que toma como argumento una variable del tipo int:
    class CFoo
      {
       void virtual func(int x) const { }
      };
    A continuación, el método se redefine en la clase heredada:
    class CBar : public CFoo
      {
       void func(short x) { }
      };
    Pero por error, el tipo de argumento cambia de int a short. De hecho, en este caso ya tiene lugar no la redefinición, sino la sobrecarga del método. Actuando de acuerdo con el algoritmo de definición de la función sobrecargada, en ciertas situaciones el compilador puede elegir el método definido en la clase básica, en lugar del método redefinido.

    Para evitar errores semejantes, al método redefinido se le debe añadir claramente el modificador override.
    class CBar : public CFoo
      {
       void func(short x) override { }
      };
    Si durante la redefinición se cambia la signatura del método, el compilador no podrá encontrar en la clase padre un método con la misma signatura y dará un error de compilación:
    'CBar::func' method is declared with 'override' specifier but does not override any base class method

    Modificador final para las funciones

    El modificador final actúa al revés, prohibiendo la redefinición del método en las clases heredadas. Si la implementación de un método es autosuficiente y ha finalizado por completo, declárela con el modificador final, para que haya garantías de que no será modificada en lo sucesivo.
    class CFoo
      {
       void virtual func(int x) final { }
      };
     
    class CBar : public CFoo
      {
       void func(int) { }
      };
     
    Al intentar redefinir un método con el modificador final, como se muestra en el ejemplo de más arriba, el compilador dará error:
    'CFoo::func' method declared as 'final' cannot be overridden by 'CBar::func'
    see declaration of 'CFoo::func'
  3. Corregido el error de compilación de las funciones-plantilla con los parámetros por defecto.

Market

  1. Corregida una serie de errores en la clasificación de los productos del Mercado.

Tester

  1. Corregida la actualización de los precios de mercado actuales de las órdenes y posiciones abiertas en el modo de simulación visual.
  2. Eliminado el deslizamiento en la ejecución de la órdenes Buy Limit y Sell Limit al realizar la simulación con instrumentos bursátiles.
  3. Corregido el error que provocaba en ocasiones la generación de precios incorrectos en el modo de simulación "Según precios de apertura".
  4. Corregida la formación de eventos OnTradeTransaction durante la simulación.
  5. Durante la simulación basada en ticks reales en el registro del simulador se muestra información sobre la discrepancia de los precios de los ticks (bid o last, dependiendo del precio conforme al que se construye la barra) para los valores low o high disponibles en la barra de minutos.

MetaEditor

  1. Corregidos los errores de representación de los datos de perfilado en los archivos del código fuente.

Se ha actualizado la documentación.