- DatabaseOpen
- DatabaseClose
- DatabaseImport
- DatabaseExport
- DatabasePrint
- DatabaseTableExists
- DatabaseExecute
- DatabasePrepare
- DatabaseReset
- DatabaseBind
- DatabaseBindArray
- DatabaseRead
- DatabaseReadBind
- DatabaseFinalize
- DatabaseTransactionBegin
- DatabaseTransactionCommit
- DatabaseTransactionRollback
- DatabaseColumnsCount
- DatabaseColumnName
- DatabaseColumnType
- DatabaseColumnSize
- DatabaseColumnText
- DatabaseColumnInteger
- DatabaseColumnLong
- DatabaseColumnDouble
- DatabaseColumnBlob
Trabajo con la base de datos
Las funciones para trabajar con las bases de datos usan el popular y sencillo motor SQLite. La comodidad de este motor reside en que toda la base de datos se encuentra en un único archivo en el disco duro de la computadora del usuario.
Con la ayuda de estas funciones, resulta muy sencillo crear recuadros, añadir datos a estos, realizar modificaciones y generar muestras con solicitudes SQL simples:
- obtener la historia comercial y las cotizaciones en cualquier formato,
- guardar los resultados de la optimización y la simulación,
- preparar e intercambiar datos con otros paquetes analíticos,
- guardar los ajustes y estados de los programas MQL5.
Además, en las solicitudes se pueden utilizar funciones estadísticas y matemáticas.
Las funciones para trabajar con las bases de datos permiten sustituir las operaciones más repetidas en cuanto al procesamiento de grandes matrices de datos por solicitudes SQL, lo cual posibilita en muchos casos, en lugar de programar complejos ciclos y comparaciones, usar las llamadas de DatabaseExecute/DatabasePrepare. Para obtener fácilmente los resultados de la solicitud en una estructura ya preparada, use la función DatabaseReadBind, que permite leer directamente todos los campos de la entrada en una sola llamada.
Para acelerar las operaciones de lectura, registro y modificación de la base de datos, es posible abrir/crear en la memoria operativa con la bandera DATABASE_OPEN_MEMORY, pero, en este caso, la base estará disponible en un programa concreto y no se dividirá con ningún otro. Al trabajar con las bases de datos que se encuentran en el disco duro, es necesario envolver las inserciones/cambios masivos de datos en las transacciones con la ayuda de DatabaseTransactionBegin/DatabaseTransactionCommit/DatabaseTransactionRollback, lo cual ofrece una velocidad cientos de veces superior.
Para empezar a trabajar con estas funciones, basta con leer el artículo SQLite: trabajo nativo con bases de datos en SQL en MQL5.
Función |
Acción |
---|---|
Abre o crea una base de datos en el archivo indicado |
|
Cierra una base de datos |
|
Importa a un recuadro los datos de un archivo |
|
Exporta un recuadro o el resultado de la ejecución de una solicitud SQL a un archivo CSV |
|
Imprime el recuadro o resultado de la ejecución de una solicitud SQL en el diario de expertos |
|
Comprueba la presencia de un recuadro en la base de datos |
|
Ejecuta una solicitud a la base de datos indicada |
|
Crea el manejador de una solicitud, que después puede ser ejecutada con la ayuda de DatabaseRead() |
|
Resetea la solicitud a su estado inicial, igual que tras la llamada de DatabasePrepare() |
|
Establece el valor de un parámetro en la solicitud |
|
Establece una matriz como valor del parámetro. |
|
Ejecuta el paso a la siguiente entrada en el resultado de la solicitud |
|
Pasa a la siguiente entrada y lee los datos en la estructura de esta |
|
Elimina la solicitud creada en DatabasePrepare() |
|
Comienza la ejecución de una transacción |
|
Finaliza la ejecución de una transacción |
|
Ejecuta el retroceso de una transacción |
|
Obtiene el número de campos en una solicitud |
|
Obtiene el nombre de un campo según el número |
|
Obtiene el tipo de un campo según el número |
|
Obtiene el tamaño del campo en bytes |
|
Obtiene de la entrada actual el valor del campo en forma de línea |
|
Obtiene de la entrada actual un valor del tipo int |
|
Obtiene de la entrada actual un valor del tipo long |
|
Obtiene de la entrada actual un valor del tipo double |
|
Obtiene de la entrada actual el valor del campo en forma de matriz |
- mode moda
- median mediana (percentil 50)
- percentile_25 percentil 25
- percentile_75 percentil 75
- percentile_90 percentil 90
- percentile_95 percentil 95
- percentile_99 percentil 99
- stddev o stddev_samp desviación estándar de la muestra
- stddev_pop desviación estándar de la población
- variance or var_samp varianza de la muestra
- var_pop varianza de la población
- acos(X) arcocoseno en radianes
- acosh(X) arcocoseno hiperbólico
- asin(X) arcoseno en radianes
- asinh(X) arcoseno hiperbólico
- atan(X) arcotangente en radianes
- atan2(X,Y) arcotangente en radianes de la relación X/Y
- atanh(X) arcotangente hiperbólico
- ceil(X) redondeo hasta el número entero superior
- ceiling(X) redondeo hasta el número entero superior
- cos(X) coseno del ángulo en radianes
- cosh(X) coseno hiperbólico
- degrees(X) convierte los radianes en un ángulo
- exp(X) función exponencial
- floor(X) redondeo hasta el número entero inferior
- ln(X) logaritmo natural
- log(B,X) logaritmo de base indicada
- log(X) logaritmo decimal
- log10(X) logaritmo decimal
- log2(X) logaritmo de base 2
- mod(X,Y) remanente de la división
- pi() número Pi aproximado
- pow(X,Y) potencia de base indicada
- power(X,Y) potencia de base indicada
- radians(X) convierte un ángulo en radianes
- sin(X) seno de un ángulo en radianes
- sinh(X) seno hiperbólico
- sqrt(X) raíz cuadrada
- tan(X) tangente de un ángulo en radianes
- tanh(X) tangente hiperbólica
- trunc(X) recorta hasta el número entero más próximo a 0
Ejemplo:
select
|