![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Justo arriba escribiste:
Esa puede haber sido la intención, pero... Realización de un experimento de campo (construcción 358).
Borro todos los símbolos de la carpeta "C:\NProgram Files\MetaTrader 5\Bases\Alpari-Demo\history"
Me conecto a Alpari-Demo (el terminal tiene 5 gráficos abiertos: EURUSD H1, EURCHF H1, USDJPY H1, GPBUSD H1+M1).
Unos minutos más tarde puedo ver la imagen (el historial todavía se está descargando):
Contenido de la carpeta C:\NArchivos de programa\NMetaTrader 5\NBases de datos\NdeAlpari-Demo\Nhistoria
...
Si he entendido bien, el tamaño de los archivos del historial se encuentra en el directorio de la terminal, que se indica con la ubicación del directorio "de trabajo" - C:\NArchivos de Programa\NMetaTrader 5\NBases\Alpari-Demo\Nhistory\EURJPY
El probador tiene su propia carpeta para estos datos - C:\NArchivos de Programa\NMetaTrader 5\N-agente(número de agentes)\N-bases\NDC u otro broker (servidor)\N-historia\N....
¿Cuál es el problema entonces?
El problema es la falta de voluntad de leer el mensaje original con atención ;)
En realidad hay 2 archivos (2009, 2010) en la carpeta del probador, pero al iniciar por primera vez el probador para un símbolo específico se descarga todo el historial (si no se ha descargado o borrado antes) a la carpeta "x:\NProgram Files\MetaTrader 5\Bases\...", y hasta que no se descargue completamente esta información, no se inicia la prueba.
No me importa duplicar los datos de\MetaTrader 5\Bases en MetaTrader 5\Tester\Agent(por número de agentes)\Nya que entiendo que se trata de una instantánea del estado de los ticks para asegurar la identidad absoluta de las cotizaciones durante la enumeración de la optimización. Pero, ¿por qué cargar datos que son absolutamente innecesarios en este momento?
El problema es la falta de voluntad de leer el post original con atención ;)
En realidad hay 2 archivos (2009, 2010) en la carpeta del probador, pero en el primer lanzamiento del probador en un símbolo específico se descarga todo el historial (si no se ha descargado o eliminado antes) a la carpeta "x:\Program Files\MetaTrader 5\Bases\...", y hasta que no llene esta información innecesaria, la prueba no se iniciará.
No me importa duplicar los datos de\MetaTrader 5\Bases en MetaTrader 5\Tester\Agent(por número de agentes)\Nya que entiendo que se trata de una instantánea del estado de los ticks para asegurar la identidad absoluta de las cotizaciones durante la enumeración de la optimización. Pero, ¿por qué cargar datos que son absolutamente innecesarios en este momento?
El historial se ha cargado correctamente - significa que hubo una solicitud para el año 2004. Y cuando se utiliza el probador, todo el historial se carga definitiva y correctamente hasta la máxima profundidad - es una decisión absolutamente correcta y consciente. Basta con ver las exclamaciones "incomprensibles" de los usuarios de MT4 para entenderlo: si no nos ocupamos del historial, los usuarios ni siquiera podrán controlar el historial.
Vuelva a leer mi respuesta, por favor.
No nos limitamos a descargar y comprobar todo el historial. Si se utiliza un prob ador, inevitablemente (no en esta prueba, sino en la siguiente) supondrá un trabajo completo e incondicional con todo el historial, independientemente de que en esta prueba concreta se utilice un pequeño periodo del historial. Por lo tanto, el terminal prepara de antemano y vuelve a comprobar por completo la profundidad y la corrección de todo el historial del símbolo deseado. Por supuesto, sólo se pasa/sincroniza el intervalo de historia necesario a un agente de prueba específico para una prueba concreta.
Dado que los operadores tienden a no fijarse en las reglas de preparación correcta de las condiciones para la prueba, el terminal trata de preparar y volver a probar el entorno en la medida de lo posible. En MetaTrader 5, hemos eliminado específicamente la limitación del volumen y la profundidad de los datos solicitados, para que los operadores no tengan que descargar y sincronizar manualmente los datos.
1. probador de estrategias
Al realizar la prueba, el comprobador sólo carga un par especificado en los parámetros del comprobador. Si la optimización se realiza para todos los símbolos, cada símbolo se cargará secuencialmente.
Si el Asesor Experto es multidivisa, los demás símbolos deben cargarse de forma independiente.
La idea es la siguiente
а. El probador tiene su propio resumen de mercado, en el que inicialmente sólo se establece el par especificado en los parámetros del probador.
б. Si es necesario, se pueden añadir otros pares a la visión general del mercado del probador desde un EA, utilizando Select.
в. El probador de estrategias sincroniza los datos con el terminal, que a su vez los sincroniza con el servidor de operaciones (donde se abre la cuenta).
En este caso, se carga el historial de todo el periodo de pruebas + una cierta cantidad de información anterior a la fecha de las pruebas (si no me equivoco, 1 año).
в. Si el Asesor Experto (usted) no está satisfecho con la profundidad requerida la historia debe ser cargada de forma independiente. Por ejemplo, en el bloque de inicialización, después de comprobar el historial y la sincronización de los datos.
a. lógicamente
b. es decir, en el caso general, es IMPOSIBLE descargar todo lo que el Asesor Experto necesita durante las pruebas (a menos que se descargue absolutamente todo).
c. es decir, antes del inicio del EA en el probador, los pares correspondientes aún no están disponibles en la visión general del mercado del probador (según el punto a.)
c(2). la profundidad está bien, no pedí más.
Así, es más lógico (pero un poco más complicado) descargar los datos según b, c, c(2) cuando accedemos a los datos en el Asesor Experto.
Sugiero añadir #property tester_symbol para rellenar la tabla del punto a (si la idea está bien descrita), con la posibilidad de establecer varias, como #property description. Pero sigo convencido de que en ausencia de #property tester_symbol la paginación debe ir "como juego" (excepto el carácter base), ya que su REALIDAD depende únicamente del algoritmo del propio EA.
2. terminal
Aquí el historial se forma de forma similar (según tengo entendido, según los símbolos indicados en la revisión de mercado del terminal, teniendo en cuenta los gráficos abiertos). Cuando se empieza a trabajar con el terminal, se forma un mínimo necesario de historia para los símbolos con los que se trabaja (no recuerdo el número exacto de barras, pero se ha mencionado repetidamente en el foro).
Si esta profundidad del historial no le conviene, los datos deben cargarse manualmente. Para ello, cambie al mes máximo (una de las opciones recomendadas) y, con el desplazamiento hacia la izquierda del gráfico, cargue el historial hasta la profundidad máxima.
También sería deseable establecer el número necesario de barras en el gráfico en los parámetros del terminal.
Resulta que en este caso no es necesario un mínimo, sino toda la historia del símbolo, con la que estamos trabajando.
Una observación (la compilación ha cambiado en 360): si modificamos ligeramente las condiciones - no borrar toda la carpeta del historial después de la descarga inicial y dejar el año actual en ella, ¡los años anteriores no se intercambiarán automáticamente! Hasta que el probador se ejecute en este personaje.
Vuelva a leer mi respuesta, por favor.
No descargamos y volvemos a analizar todo el historial por una razón. Si se utiliza un prob ador, inevitablemente (no en esta prueba, sino en la siguiente) significa un trabajo completo e incondicional con todo el historial, independientemente de que en esta prueba en particular se utilice un pequeño periodo del historial. Por lo tanto, el terminal se prepara de antemano y vuelve a comprobar por completo la profundidad y la corrección de todo el historial del símbolo deseado. Por supuesto, sólo se pasa/sincroniza el intervalo de historia necesario a un agente de prueba específico para una prueba concreta.
Dado que los operadores tienden a no fijarse en las reglas de preparación correcta de las condiciones para la prueba, el terminal trata de preparar y volver a probar el entorno en la medida de lo posible. En MetaTrader 5, hemos eliminado a propósito la limitación del volumen y la profundidad de los datos solicitados, para que los operadores no tengan que descargar y sincronizar manualmente los datos.
¡Eso es sólo para "tener"! Para el próximo uso del probador, el historial podría ser corregido (especialmente ahora, cuando tiene un montón de defectos en diferentes empresas de corretaje, desde la ausencia completa, a los datos torcidos).
¡El usuario no entiende la felicidad que ha caído sobre él! Añade en la configuración la casilla "NO LO QUIERO, sólo lo quiero cuando lo pida el usuario o el experto/script/indicador". Y "NO quiero actualizaciones automáticas forzadas de MT5" también.
a. lógicamente
b. es decir, en general, es IMPOSIBLE bombear todo lo que el EA necesitará durante las pruebas ANTES DE COMENZAR (a menos que se bombee absolutamente todo).
c. es decir, antes del inicio del EA en el probador, los pares correspondientes aún no están disponibles en la visión general del mercado del probador (según el punto a.)
c(2). la profundidad está bien, no pedí más.
Así, es más lógico (pero un poco más complicado) descargar los datos según b, c, c(2) cuando accedemos a los datos en el EA.
Sugiero añadir #property tester_symbol para rellenar la tabla del punto a (si la idea está bien descrita), con la posibilidad de establecer varias, como #property description. Pero todavía convencido de que en la ausencia de #property tester_symbol paginación debe ir "como juego" (excepto el carácter de base), ya que su REALIDAD depende únicamente del algoritmo de la propia EA.
Estas funciones son convenientes (y bastante suficientes) para formar la lista de símbolos en el probador
Obtención de datos de mercado
Funciones para obtener información sobre las condiciones del mercado.
La función
Acción
SímbolosTotal
Devuelve el número de símbolos disponibles (seleccionados en MarketWatch o todos)
NombreSímbolo
Devuelve el nombre del símbolo especificado
SymbolSelect
Selecciona un símbolo en MarketWatch o elimina el símbolo de la ventana
-Comprobar si ArrayResize() devuelve "-1"?
Antes aparecía un mensaje como "Out of memory" y el programa se bloqueaba - ahora no.
Construye 360. Parece un error en CTrade:
2010.10.04 18:59:00 CTrade::PositionOpen: compra instantánea de 0,10 EURUSD a 1,36890 sl: 1,36390 tp: 1,37890 [hecho a 0,00000]
2010.10.05 09:43:00 CTrade::PositionModify: modificar comprar 0.00 EURUSD (sl: 1.36897, tp: 1.37861) [hecho]
Construye 360. Varias veces en el probador había mensajes "agente probador falló"
GK
0Tester
18:26:31 EURUSD: historial de descarga preliminar iniciado
CL 0 Tester 18:28:55 EURUSD: historial de descarga preliminar completado
GH 0 Core 2 18:28:59 proceso de agente iniciado
HP 0 Core 2 18:29:00 conectando a 127.0.0.1:3000
OI 2 Tester 18:29:05 tester agent got failed
LI 0 Core 2 18:29:05 connect closed
GN 0 Core 2 18:34:14 agent process started
KJ 0 Core 2 18:34:14 connecting to 127.0.0
.1:3000
RJ 0 Core 2 18:34:15 conectado
OP 0 Core 2 18:34:15 autorizado (agente build 360)
NH 0 Tester 18:34:15 EURUSD,M1 (Alpari-Demo): prueba de experts\third.ex5 desde 2010.10.04 00:00 hasta 2010.11
.05 00:00:00 para ser iniciado
...
HQ
0 Core 2 19:27:47 proceso de agente iniciado
II 0 Core 2 19:27:48 conectando a 127.0.0.1:3000
CP 2 Tester 19:27:53 agente tester falló
HP 0 Core 2 19:27:53 conectar cerrado
KI 0 Core 2 19:28:10 conectando a 127.0.0.1:3000
QL 0 Núcleo 2 19:28:10 conectado
PN 0 Núcleo 2 19:28:10 autorizado (agente build 360)
RJ 0 Probador 19:28:10 EURUSD,M1 (MetaQuotes-Demo): prueba de experts\third_alptest2.ex5 de 2010.10.04 00:00 a 2010.11.05 00:00 a iniciar
MF 0 Núcleo 2 19:28:11 sincronización común completada
IM 0 Núcleo 2 19:28:11 3124 bytes de información de cuenta
cargados