Terminal
- Añadida la presentación de la historia comercial en
forma de posiciones. El terminal recopila los datos de las transacciones
relacionadas con una posición (apertura, crecimiento, cierre parcial y
total) y agrupa estos datos en una única entrada, donde se puede ver:
- La hora de apertura y cierre de la posición, definidas por la primera y la última transacción, respectivamente
- El volumen de la posición; si la posición está parcialmente cerrada, se muestra el volumen cerrado y el volumen original
- El precio de apertura medio ponderado y el precio de cierre de la posición
- El resultado financiero total de las transacciones relacionadas con la posición
Para las cuentas con cobertura, este tipo de presentación de las
posiciones es casi análogo a la historia de la cuenta en MetaTrader 4.
- Se ha añadido un comando para visualizar la historia de las transacciones en el gráfico de un símbolo concreto.
- Para mostrar todas las transacciones solo del símbolo de la
posición/transacción elegida, pulse "Añadir transacciones de [Nombre del
símbolo]". Las transacciones se añadirán a todos los gráficos abiertos
en este momento de este símbolo. Si no hay gráficos semejantes, se
abrirá uno nuevo.
- Para mostrar las transacciones de todos los símbolos de la
historia de la cuenta, pulse "Añadir todas las transacciones". A todos
los gráficos abiertos se añadirán todas las transacciones de los
símbolos correspondientes.
- Añadida la muestra del nombre internacional del
instrumento financiero en las especificaciones del contrato, así como la
posibilidad de buscar sobre el mismo en la ventana de gestión de
instrumentos.
- Añadida la posibilidad de establecer rápidamente la
resolución de la ventana del terminal. La función es cómoda para
aquellos que realizan vídeos. En el menú están disponibles las
resoluciones más populares para la publicación en servicios de vídeo
como YouTube.
- las plantillas y perfiles de los gráficos se han
trasladado desde [catálogo de datos del terminal\Profiles] a [catálogo
de datos del terminal\MQL5\Profiles]. Ahora resulta muy sencillo añadir
plantillas al repositorio MQL5 Storage y usarlas desde cualquier computadora que tenga.
MQL5
- Añadido el soporte de variables de recurso. El uso de estas
variables puede facilitar significativamente la escritura de algunos
programas. Por ejemplo, podrá escribir el código OpenCL en un archivo CL
aparte, y después incluir este archivo en forma de línea en los
recursos de su programa MQL5. Antes, en lugar de esto, había que
describir el código como una gran variable de línea.
Declaración de la variable de recurso
#resource ruta_al_archivo_del_recurso as tipo_de_variable_de_recurso nombre_de_la_variable_de_recurso
Particularidades
- Para los archivos de línea se define la codificación de forma
automática mediante BOM (encabezamiento). Si no hay BOM, la codificación
se determina por el contenido del archivo. Tienen soporte las
codificaciones ANSI, UTF-8 y UTF-16. Todas las líneas se transforman en
Unicode.
- Solo podemos recurrir a los datos de este recurso a través de
una variable. El direccionamiento automático a través de "::<resource
name>" no funciona.
- El tipo especial de variable de recurso bitmap indica al
compilador que el recurso es una imagen gráfica. La variable de recurso
en este caso recibe el tipo uint.
- Al usar una imagen de 24 bits, para todos sus píxeles del componente del canal alfa se establece en el valor 255.
- Al usar una imagen de 32 bits sin canal alfa, para todos sus
píxeles del componente del canal alfa también se establece en el valor
255.
- Al cargar una imagen de 32 bits con canal alfa, no tiene lugar ninguna manipulación con los píxeles.
- La matriz-variable de recurso del tipo bitmap puede tener dos
dimensiones. En este caso, el tamaño de la matriz se definirá como
[altura_de_la_imagen][anchura_de_la_imagen].
- En el caso de que la matriz sea unidimensional, el número de
elementos se establecerá como altura_de_la_imagen*anchura_de_la_imagen.
- Si el tamaño del archivo del recurso no es múltiplo del tamaño
del elemento de la matriz, el resto de los datos se cortará. Por
ejemplo, si el archivo tiene un tamaño de 14 bytes, para la matriz int
el número de elementos será 3, y los 2 bytes restantes (14 -
sizeof(int)*3) se descartarán.
Ejemplos de uso
#resource "data.bin" as int ExtData[]
#resource "data.bin" as MqlRates ExtData[]
#resource "data.txt" as string ExtCode
#resource "data.txt" as string ExtCode[]
#resource "image.bmp" as bitmap ExtBitmap[]
#resource "image.bmp" as bitmap ExtBitmap2[][]
- Añadida la propiedad CHART_SHOW para desactivar la
representación del gráfico. Para obtener e instalar las propiedades se
usan las funciones ChartGetInteger y ChartSetInteger.
Si se establece false, se desactivará el dibujado de cualquier atributo
del gráfico de precio y se eliminarán los márgenes en los bordes del
gráfico: la escala de tiempo y precio, la barra de navegación rápida,
los eventos del Calendario, los signos de las operaciones, las
sugerencias de los indicadores y barras, las subventanas de los
indicadores, los histogramas de volumen, etcétera.
La desactivación del dibujado es una solución ideal para crear una interfaz de programa personalizada usando los recursos gráficos.
Los objetos gráficos se dibujan siempre, independientemente del valor establecido en la propiedad CHART_SHOW.
- Añadida la propiedad CHART_KEYBOARD_CONTROL para
activar/desactivar el control del gráfico con la ayuda de las teclas
("Home", "End", "PageUp", "+", "-", "Flecha arriba", etcétera). La
definición CHART_KEYBOARD_CONTROL=false permite desactivar el
desplazamiento y el escalado del gráfico, pero manteniendo intacta la
posibilidad de obtener los eventos de pulsación de estas teclas en OnChartEvent.
Para obtener e instalar las propiedades se usan las funciones ChartGetInteger y ChartSetInteger.
- Añadidas nuevas funciones y propiedades para trabajar con OpenCL.
Nuevas propiedades para trabajar con la memoria
Con la ayuda de CLGetInfoIntegrer ahora es posible obtener cuatro nuevas propiedades:
- CL_DEVICE_MAX_WORK_GROUP_SIZE — número total de grupos locales de trabajo disponibles para un dispositivo OpenCL.
- CL_KERNEL_WORK_GROUP_SIZE — número total de grupos locales de trabajo disponibles para un programa OpenCL.
- CL_KERNEL_LOCAL_MEM_SIZE — tamaño de la memoria local en bytes
usada por un programa OpenCL para todas las tareas paralelas en el
grupo. Use CL_DEVICE_LOCAL_MEM_SIZE para obtener el máximo disponible.
- CL_KERNEL_PRIVATE_MEM_SIZE — tamaño mínimo de la memoria privada en bytes usada por cada tarea en el núcleo del programa OpenCL.
bool CLExecutionStatus(int kernel)
Retorna el estado de ejecución del programa OpenCL. Como parámetro se transmite el manejador del núcleo del programa OpenCL.
bool CLSetKernelArgMemLocal(int kernel_handle,int arg_index,ulong local_mem_size)
Define el búfer local como argumento de la función núcleo. Como
parámetro se transmite el manejador del núcleo del programa OpenCL, el
número del argumento openCL de la función y el tamaño del búfer.
- Añadido el código de respuesta
TRADE_RETCODE_LIMIT_POSITIONS. El número de posiciones abiertas que
podemos tener simultáneamente en la cuenta puede estar limitado por los
ajustes del servidor. Al alcanzar el límite, como respuesta a la
colocación de una orden, el servidor retornará el error
TRADE_RETCODE_LIMIT_POSITIONS. La limitación funciona de forma diferente
dependiendo del tipo de registro de posiciones en la cuenta:
- Sistema de compensación - se registra el número de posiciones
abiertas. Al alcanzar el límite, la plataforma no permite colar nuevas
órdenes que den como resultado el aumento del número de posiciones
abiertas. De hecho, la plataforma permite colocar órdenes solo de
aquellos símbolos de los que ya existen órdenes abiertas. En el sistema
de compensación, al comprobar el límite no se tienen en cuenta las
órdenes pendientes actuales, puesto que su ejecución puede provocar el
cambio de las posiciones actuales, pero no el aumento de su número.
- Sistema de cobertura - aparte de las posiciones abiertas, se
tienen en cuenta las órdenes pendientes colocadas, puesto que su
activiación siempre causará la apertura de una nueva posición. Al
alcanzar el límite, la plataforma no permitirá colocar órdenes de
mercado de apertura de posiciones, así como órdenes pendientes.
- Corregido el error que en ocasiones provocaba la omisión de ticks en la historia de ticks.
- Corregido el error de tipado indirecto de plantillas.
- Actualizada la biblioteca de trabajo con las estadísticas matemáticas.
- Añadida la función TranslateKey,
que retorna un símbolo Unicode según el código virtual de una tecla,
teniendo en cuenta el idioma de entrada actual y el estado de las teclas
de control.
void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam)
{
if(id==CHARTEVENT_KEYDOWN)
{
short sym=TranslateKey((int)lparam);
if(sym>0)
Print(sym,"'",ShortToString(sym),"'");
else
Print("Error in TranslateKey for key=",lparam);
}
}
Market
- Market: Corregida la apertura de la página del producto al descargar la versión demo.
Tester
- Después de finalizar la optimización, los resultados ahora se clasifican de forma automática en la columna "Resultado".
- En el menú contextual de la pestaña de resultados de
optimización y el diario se ha añadido una opción para pasar a los
resultados después de finalizar la optimización.
- El simulador de estrategias permanecerá en el modo de
optimización después de iniciar una simulación única. Antes, si se
iniciaba una simulación única desde la pestaña de resultados, el
simulador de estrategias pasaba plenamente al modo de simulación única.
Para realizar de nuevo la optimización era necesario incluirla de nuevo
en los ajustes.
- Ahora los conjuntos de parámetros se pueden guardar no
solo en forma de archivos set, sino también como ajustes del simulador
de estrategias local, con fácil acceso a los mismos a través del menú
contextual.
- Añadida la traducción de la interfaz al mongol, húngaro, rumano y urdu.
MetaEditor
- Añadida la posibilidad de cambiar el orden de las
expresiones observadas en la ventana de depuración. Solo tendrá que
arrastrar la expresión con el ratón a la posición adecuada.
- Corregido el error de detección de la codificación de los archivos fuente.
- Corregida la búsqueda por archivos en la codificación UTF-8.
- Corregido el error de selección del texto con el ratón cuando hay en el mismo signos de tabulación.
- Añadida la traducción de la interfaz al húngaro y el rumano.
Actualización de la documentación.
Lea las noticias anteriores, por favor: