MetaEditor
- Añadida la posibilidad de trabajar cómodamente con bases de datos SQLite.
En la anterior
actualización de la plataforma, añadimos el soporte del trabajo con bases de datos SQLite directamente desde MQL5. Ahora, las
funciones principales están también disponibles a través de la interfaz de usuario del MetaEditor:
- Creación de bases de datos y conexión a las mismas
- Visualización de recuadros y solicitud rápida de datos
- Creación y ejecución de solicitudes SQL, cancelación de cambios
Cómo funciona
Para crear bases de datos rápidamente, utilice el "Wizard MQL5". Aquí podrá crear directamente
su primer recuadro y definir la lista con sus campos.
Una vez haya creado la base de datos, entre en el nuevo
apartado "Navegador". Desde dicho apartado tendrá lugar todo el trabajo
con los datos.
En la parte izquierda se representan los
recuadros de la base de datos. Para solicitar rápidamente las
primeras 1 000 mil entradas, clique dos veces sobre el nombre del
recuadro. Aquí podrá crear y abrir otras bases de datos, y también
trabajar con los recuadros.
En la parte principal del editor tiene lugar el trabajo con la base de datos: rellene el recuadro
con datos, realice búsquedas y selecciones, introduzca solicitudes SQL, etcétera.
Para más información sobre las bases de datos en MetaTrader 5, lea el artículo "SQLite:
trabajo nativo con bases de datos en SQL en MQL5".
- Continúa el trabajo sobre la adición del soporte de
proyectos multilingües. En esta versión, hemos ampliado las funciones
para
trabajar con scripts en Python:
- Ahora es posible crearlos cómodamente a través del "Wizard MQL5", incluyendo de inmediato las dependencias de las bibliotecas
necesarias.
- En el navegador se han añadido para ellos iconos especiales, mientras que en el editor se ha agregado el resaltado de sintaxis.
- Al iniciar un script a través del MetaEditor, los mensajes de la consola de Python (stdout, stderr) se mostrarán en el apartado
"Errores".
Para iniciar un script en el editor, pulse "Compilar":
Para trabajar con Python, no olvide indicar la ruta al mismo en el apartado "Ajustes \ Compiladores" en MetaEditor. Para
trabajar con la biblioteca MetaTrader 5, instálela con el comando:
pip install MetaTrader5
Lea más información sobre la integración con Python en la documentación. - Añadida la muestra de archivos de las bases de datos
SQLite (*.db;*.sdb;*.sqlite;*.db3;*.s3db;*.sqlite3) en el "Navegador".
- Corregidos los errores surgidos al guardar las propiedades del proyecto.
MQL5
- Completamente rediseñada la integración con Python. Se han
añadido multitud de nuevas funciones y se han modificado los nombres de
los comandos.
Nuevo nombre de los comandos
Los
comandos existentes han sido renombrados:
MT5Initialize -> initialize
MT5Shutdown -> shutdown
MT5TerminalInfo -> terminal_info
MT5Version -> version
MT5CopyRatesFrom -> copy_rates_from
MT5CopyRatesFromPos -> copy_rates_from_pos
MT5CopyRatesRange -> copy_rates_range
MT5CopyTicksFrom -> copy_ticks_from
MT5CopyTicksRange -> copy_tick_range
Nuevos comandos
La lista de comandos
soportados ha sido notablemente ampliada. Se han añadido funciones de
comercio y trabajo con la historia comercial, y también para la
obtención de información sobre los instrumentos financieros y la
cuenta actual.
- account_info() — obtiene información sobre la cuenta actual. Análogo de AccountInfoInteger,
AcountIndoDouble y AccountInfoString.
- positions_total() — obtiene el número de posiciones abiertas. Análogo de PositionsTotal.
- positions_get(symbol, ticket) — obtiene las posiciones abiertas de un símbolo o ticket.
- orders_total() — obtiene el número de órdenes. Análogo de OrdersTotal.
- orders_get(symbol, ticket) — obtiene las órdenes abiertas de un símbolo o ticket.
- history_orders_total(from, to) — obtiene el número de órdenes en la historia en el intervalo temporal establecido.
- history_orders_get(from, to, position, ticket) — obtiene las
órdenes de la historia en el intervalo temporal establecido, ya sea de
un ticket, o con
filtrado por posición.
- history_deals_total() — obtiene el número de transacciones en la historia. Análogo de HistoryDealsTotal.
- history_deals_get(from, to, position, ticket) — obtiene las
transacciones de la historia en el intervalo temporal establecido, ya
sea de un ticket, o
con filtrado por posición.
- symbol_info(symbol) — obtiene información sobre un instrumento financiero. Análogo de SymbolInfoInteger,
SymbolInfoDouble, SymbolInfoString.
- symbol_info_tick(symbol) — obtiene el último tick de un símbolo. Análogo de SymbolInfoTick.
- symbol_select(symbol, enable) — activa/desactiva un símbolo en la "Observación de mercado". Análogo de SymbolSelect.
- order_check(request) — comprueba el margen para una orden. Análogo de OrderCheck.
- order_send(request) — envía una orden al servidor. Análogo de OrderSend.
- order_calc_margin(action, symbol, volume, price) — calcula el margen para una orden. Análogo de OrderCalcMargin.
- order_calc_profit(action, symbol, volume, price_open, price_close) — calcula el beneficio. Análogo de OrderCalcProfit.
Inicio de scripts de Python en los gráficos
Ahora,
los scripts en Python se pueden iniciar directamente en los
gráficos en la plataforma, de forma análoga a los programas MQL5
habituales. En el "Navegador", estos se mostrarán con iconos
especiales.
Los
mensajes del script se mostrarán en el apartado "Herramientas \ Expertos". Si en el script se usa la
biblioteca MetaTrader 5, podrá obtener información sobre el instrumento y la cuenta, y también comerciar.
Los
scripts de Python se pueden iniciar en el mismo gráfico de forma
paralela con otros scripts y asesores de MQL5. Para detener un script
(si
su ejecución ha entrado en un bucle), solo tendrá que eliminarlo.
Protección adicional
Para proteger
adicionalmente sus cuentas al utilizar bibliotecas Python de
terceros, se ha añadido a los ajustes del terminal la opción "Desativar
el comercio automático a través de una API Python externa".
A los scripts de Python se les permitirán las operaciones comerciales al desactivar explícitamente esta opción.
- Sustancialmente acelerada la reinicialización de programas MQL5 y la creación repetida de indicadores de usuario desde
programas MQL5. En algunos casos, la velocidad ha aumentado centenares de veces.
- Añadidas funciones para trabajar con bases de datos:
DatabaseImport
Importa a un recuadro los datos de un archivo.
long DatabaseImport(
int database,
const string table,
const string filename,
uint flags,
const string separator,
ulong skip_rows,
const string skip_comments
);
DatabaseExport
Exporta un recuadro o el resultado de la
ejecución de una solicitud SQL a un archivo CSV. El archivo se crea en la codificación UTF-8.
long DatabaseExport(
int database,
const string table_or_sql,
const string filename,
uint flags,
const string separator
);
DatabasePrint
Imprime el recuadro o resultado de la
ejecución de una solicitud SQL en el diario de expertos.
long DatabasePrint(
int database,
const string table_or_sql,
uint flags
);
- Añadida la función FileSelectDialog, que llama a una ventana de diálogo de sistema para crear/abrir un archivo o carpeta.
int FileSelectDialog(
string caption,
string initial_dir,
string filter,
uint flags,
string& filenames[],
string default_filename
);
La nueva función permite implementar una cómoda interacción entre el usuario y un programa MQL5.
- Añadido a la enumeración ENUM_DEAL_PROPERTY_DOUBLE el
valor DEAL_FEE, el pago por la realización de una transacción. De hecho,
se
trata de un tipo aparte de comisión que puede ser cobrada por el
bróker.
Tester
- Añadida la posibilidad de establecer ajustes propios
para la cuenta comercial al simular una estrategia, por ejemplo,
limitaciones comerciales, ajustes de margen y comisiones. De estas
forma, usted tendrá aún más posibilidades a la hora de simular
diferentes condiciones comerciales con los brókeres.
Ajustes generales
En este apartado, usted podrá
establecer el número máximo de órdenes y posiciones abiertas
que se podrán tener simultáneamente en la cuenta. Asimismo, podrá
configurar las sesiones en que el programa simulado no podrá
comerciar.
Margen
Aquí podrá controlar por completo cómo se reservará el margen y qué sistema de
registro de posiciones se utilizará durante la simulación:
- Gestión de riesgos — modelo de gestión de riesgos: extrabursátil o bursátil, con compensación y cobertura. Podrá encontrar
información detallada sobre ellos en la guía
de ayuda.
- Nivel de "Margin call" — al alcanzarse este nivel de fondos, la cuenta cambia al estado Margin call.
- Nivel de "Stop out" — al alcanzarse este nivel de fondos, en
la cuenta se cancelan forzosamente las órdenes, y también se cierran
las
posiciones comerciales. Ambos niveles se pueden indicar en
porcentaje y en dinero. En el primer caso, los niveles se definen como
el valor del indicador "Fondos" en la cuenta. Al seleccionar la
opción "En porcentaje", los niveles se definen como el valor del
indicador "Nivel de margen" en la cuenta (Fondos/Margen*100).
- No realizado — en este campo se indica de qué forma se registrará el beneficio/pérdidas flotantes en el margen libre:
- No usar el beneficio/pérdidas flotantes — no tener en cuenta en el cálculo las posiciones abiertas.
- Usar beneficio/pérdidas flotantes — utilizar en el cálculo las pérdidas y el beneficio de las posiciones abiertas
- Usar beneficio flotante — usar solo el beneficio.
- Usar pérdidas flotantes — usar solo las pérdidas.
- Fijado diario — en este campo se indica de qué forma se
tendrá en cuenta el beneficio/pérdidas fijados por el tráder durante el
día
comercial, en el margen libre:
- Usar beneficio/pérdidas fijados diarios — tener en cuenta el beneficio y las pérdidas registrados durante el día comercial,
en el margen libre.
- Usar pérdidas fijadas diarias — tener en cuenta solo las
pérdidas registradas durante el día comercial, en el margen libre.
Durante el día, el benenficio diario se fija en un campo
aparte de la cuenta ("Bloqueado"). Al finalizar el día comercial, el
beneficio acumulado se libera (se pone a cero) y se
representa en el balance de la cuenta (se tiene en cuenta en el margen
libre).
- Liberar el beneficio acumulado al final del día — esta
opción solo está disponible activando la opción "Usar pérdidas fijadas
diarias". Si está activada, al final del día comercial, el
beneficio acumulado durante el día se liberará y se registrará en el
balance (y, por consiguiente, se tendrá en cuenta en el margen
libre). De lo contrario, el beneficio permanecerá bloqueado.
Comisión
En este apartado, usted controlará por completo cómo se cobra la comisión de todas las
operaciones comerciales.
- Las comisiones pueden ser de un solo nivel o de varios, es decir, se pueden cobrar por la misma cuantía, independientemente del
volumen de la transacción/circulación, o diferenciarse en función de su magnitud. En las especificaciones se muestra la
información correspondiente.
- Las comisiones pueden cobrarse al realizarse una transacción o al final del día/mes comercial.
- Las comisiones se cobrarán dependiendo de la dirección de la transacción: por la entrada, por la salida, o por ambos tipos de
operación.
- Las comisiones pueden cobrarse por cada lote o por cada transacción.
- Las comisiones pueden cobrarse en diferentes magnitudes: en dinero, en tanto por ciento o en puntos.
- Optimizado y acelerado significativamente el trabajo en
el modo "Escaneo del mercado", cuando se realizan varias pasadas de
prueba de todos los símbolos de la "Observación de mercado".
- Al calcular el beneficio en pips, ahora se tiene en
cuenta el tamaño de la transacción o posición. Antes, el cálculo se
realizaba sin
tener en cuenta el volumen, como si fuera para un solo lote.
- Mejorado el control del gráfico de resultados de la
optimización. Al aumentar el zoom sobre un gráfico de optimización
normal,
ahora es posible girarlo. Clique dos veces en un punto del gráfico
para destacar el resultado correspondiente en el recuadro de
pasadas.
Documentación actualizada.
Lea las noticias anteriores, por favor: