Errores, fallos, preguntas - página 940

 

Buenas tardes.

¿Puede decirme qué se puede hacer ...

En lugar de C:\NArchivos de programa\NMT 5 ......... todova en C:\N-Users\Iam\AppData\Roaming\MetaQuotes\Terminal...

Desinstalé e instalé MT 5 varias veces - mismo resultado. Todo esto ocurrió después de instalar Windows 8.

Saludos, E.Kovalev

 
erkov:

Buenas tardes.

¿Puede decirme qué se puede hacer ...

En lugar de C:\Narchivos de programa\NMT 5 ......... todova en C:\N-Users\Iam\AppData\Roaming\MetaQuotes\Terminal...

Desinstalé e instalé MT 5 varias veces - mismo resultado. Todo esto ocurrió después de instalar Windows 8.

Atentamente, E. Kovalev

Tengo el mismo en mi escritorio 7 y todos los Asesores Expertos, inducciones, etc están instalados en él.

Aparentemente es un "defecto".

también me gustaría cambiarlo... no es conveniente llegar a la carpeta....

 
Violación de acceso al escribir en 0x00001535C1D8


esto es lo que da el script, el script llama al mismo indicador en un bucle, solo cambian los parámetros, después de unas 300 llamadas este mensaje

al principio del bucle, creo un asa

llamar al indicador

al final de cada ciclo poner IndicatorRelease(...);

tal vez algo más tiene que quitar el indicador

 
vgeny:

Yo tengo lo mismo en mi 7, todos los EAs, inducciones, etc. están colocados ahí

esto debe ser lo "predeterminado".

También me pregunto cómo cambiarlo... no es conveniente llegar a la carpeta....

Busque en la ayuda integrada del terminal - Ayuda de MetaTrader 5 → Menú InicioEjecutar Terminal:

Modo invitado

La distinción del modo invitado del lanzamiento del terminal cliente es la ubicación de sus archivos editables por separado de los archivos no modificables. Este modo se activa cuando el terminal se instala en la carpeta del sistema (carpeta del SO, Archivos de Programa) y los derechos del usuario para escribir en ella están limitados.

El modo invitado también se activa en las siguientes situaciones:

  • Si el UAC (User Account Control) está activado.
  • Si se conecta a un ordenador de forma remota (Remote Desktop Protocol, RDP).

En las situaciones anteriores, todos los archivos modificables del terminal, dependiendo del sistema operativo utilizado, se almacenan en los siguientes directorios:

Microsoft Windows XP:

  • C:\NDocumentos y Ajustes\Nnombre de usuario\Ndelos datos dela aplicación\NMetaQuotes\NTerminal_instance_id

Microsoft Windows Vista y posteriores:

  • C:\NNNNombre de usuario de los datos de la aplicación\NRoaming\NMetaQuotes\NTerminal_instance_id\N

Aquí "C" es la letra de una unidad lógica donde está instalado el sistema operativo, "username" es el nombre de la cuenta en el sistema operativo, bajo la cual se ha instalado el terminal, y "instance_id" es un identificador único generado en base a la ruta de un directorio, donde está instalado el terminal.

Para acceder rápidamente a estas carpetas, el terminal ofrece un comando especial - "Abrir el directorio de datos Abrir directorio de datos" situado en el menú "Archivo".

  • En el modo invitado, cada cuenta de Windows tendrá un directorio diferente para almacenar los archivos del terminal modificados.
  • Para forzar el inicio de la terminal en modo principal, iníciela desde la línea de comandos con el interruptor /portable.
  • La descripción detallada de la estructura de los archivos del terminal del cliente y sus propósitos se dan en la sección correspondiente.

Si no quieres tener problemas con el sistema de seguridad, no instales el terminal en la carpeta/Program Files/ .

Lea también el artículo Una rápida inmersión en MQL5


 
vgeny: antes de imprimir

k2 = NormalizeDouble(k2, 2);

En el cuaderno de bitácora dice lo siguiente

0.07000000000000001

y sólo cuando el coeficiente es de 0,07

tipo k2 doble k2;

¿qué puede ser?

Aparentemente, así es como se ve este número después de la normalización. Busca en la referencia de la nota que describe la función NormalizeDouble(): ¿qué imprimirá la siguiente línea?

Print("DoubleToString(a,8)=",DoubleToString(a,8)); // выведем с заданной точностью

Документация по MQL5: Преобразование данных / NormalizeDouble
Документация по MQL5: Преобразование данных / NormalizeDouble
  • www.mql5.com
Преобразование данных / NormalizeDouble - Документация по MQL5
 
vgeny: Violación de acceso al escribir en 0x00001535C1D8

esto es lo que da el script, el script llama al mismo indicador en un bucle, solo cambian los parámetros, después de unas 300 llamadas este mensaje

Formo la manija al principio del bucle, llamo al indicador, pongo IndicatorRelease(...) al final de cada bucle;

tal vez algo más tiene que quitar el indicador

¿Llamada de indicador continuo en un bucle? Es una forma muy difícil. Aquí, busca el principio y lee todo el tema con atención: De hecho, en el 99% de los casos la llamada a IndicatorRelease es un error lógico del programador
 
vgeny:

Por favor, indíquenos por qué ocurre esto con la línea de bucle

for(k2 = 0,01; k2 < 0,1; k2 += 0,01)

Envío el coeficiente k2 a imprimir

Print(k2);

antes de imprimir

k2 = NormalizeDouble(k2, 2);

se ve así en el diario

0.07000000000000001

y sólo cuando el coeficiente es de 0,07

tipo k2 doble k2;

¿qué puede ser?

Esta cuestión se ha debatido ya muchas veces.

Léalo aquí.

 
Yedelkin:
¿Llamar continuamente al indicador en un bucle? Esa es una forma muy difícil de hacerlo. Aquí, busca el principio y lee todo el tema con atención: De hecho, en el 99% de los casos, la llamada a IndicatorRelease es un error lógico del programador

ok 900 páginas))

Aconsejar otra forma de inspeccionar la línea del indicador, 10000 variantes diferentes del parámetro del indicador, el resultado de cada uno lo inspecciono para la propagación, etc, guardar el resultado, tomar el siguiente parámetro, etc.

por ejemplo, si se considera la MA, 10000 períodos ¿cómo se implementaría esto?

 
alexvd:

El tema ya se ha discutido muchas veces.

Léalo aquí.

OK, gracias por su paciencia y comprensión)))))))
 

vgeny:

Yedelkin:
¿Llamar continuamente al indicador en un bucle? Es una forma muy difícil. Aquí, busca el principio y lee atentamente todo el tema: De hecho, en el 99% de los casos, la llamada a IndicatorRelease es un error lógico del programador

ok 900 páginas))

No, no son 900 páginas. El tema sobre el uso ineficiente de IndicatorRelease() es poco probable que consiga más de 10 páginas en los alrededores de este enlace. Por eso te aconsejé que "encontraras el principio" del tema. Para ello no es necesario releer la rama general "Errores, fallos, preguntas".

vgeny : Te voy a aconsejar otra forma de examinar la línea del indicador, voy a examinar el resultado de cada parámetro, voy a guardar el resultado y tomar el siguiente y así sucesivamente.

Es decir, ¿necesitas 10 mil indicadores para el análisis (10 mil versiones de un indicador con diferentes parámetros)? Creo que la respuesta a esta pregunta ya se ha dado - intente buscar en los hilos del foro con la palabra clave IndicatorRelease.

vgeny : por ejemplo, si se plantearan MA, 10000 periodos, ¿cómo lo implementarían?

Es difícil responder cuando no se entiende el significado de usar un número tan grande de puntos/parámetros. Pero teóricamente, renunciaría a la idea de usar 10 mil indicadores estándar (10 mil versiones de un indicador estándar con diferentes parámetros) y escribiría mi propio indicador (uno) que recalcule 10 mil valores en cada tick y otros parámetros derivados. Y minimiza el número de búferes de los indicadores: se necesitan los datos calculados, no su reflejo en el gráfico. Y hay que comprobar si dicho híbrido realiza todos los cálculos en un solo tick. O en un minuto, si su análisis permite hacer un recálculo minuto a minuto en lugar de tic a tic.

He aquí un ejemplo sencillo: las bandas de Bollinger. Puede utilizar tres indicadores distintos: para la línea media, la superior y la inferior. O puede combinarlos todos elegantemente en un programa indicador.