Errores, fallos, preguntas - página 1231

 

P./S.: He conseguido descargar un producto del Mercado en MT5 sin autorización de mi cuenta en MQL5 (no lo he probado en MT4 sin autorización).

No conocía esta posibilidad.

 
meat:

Y francamente, sus argumentos son extraños. Los que no saben usarlo, no lo usan. ¿Has visto muchos códigos de mierda en los que se use FileFlush? Yo no he visto ninguno.

Casi todo el mundo lo ha utilizado de forma incorrecta, y luego tienen "Metatrader lags". Esta función WinAPI es extremadamente lenta.

Cuando pasamos a las 600 construcciones, reescribimos por completo toda la operación de los archivos y la aceleramos decenas de veces en los modos de operación habituales de los pequeños.


Y lareapertura del archivo dificulta el código.

Pero inmediatamente te hace pensar en las consecuencias, no pongas FileFlush en cada tick y luego no te sorprendas con los resultados en el probador de estrategias de trading.

 
Renat:

Casi todo el mundo lo ha utilizado mal, y luego tienen "frenos de Metatrader".

Estás exagerando. Puede que haya habido algunos codificadores malos, pero no generalices. De tus palabras resulta que todos aquí son unos insensibles e idiotas.

Pero inmediatamente te hace pensar en las consecuencias...

Renat, no puedes hablar en serio, ¡por Dios! Parece que estáis poniendo deberes a los alumnos, como que pueden sufrir, pero aprenderán a pensar, etc. ("duro en el aprendizaje - fácil en la batalla"). ¿Posicionáis MQL como un manual de formación para dummies o como una herramienta de trabajo para programadores? Si es lo segundo, ¿por qué ponéis palos artificiales en la rueda?

Si alguien no sabe o no es capaz de hacer algo, es su problema personal, que aprenda. ¿Por qué tienen que reducir la funcionalidad para todos los demás?

 
meat:

Estás exagerando. Puede que haya habido algunos codificadores malos, pero no deberías generalizar. De tus palabras resulta como si todos aquí fueran nulos e idiotas.

Renat, no puedes hablar en serio, ¡por Dios! Parece que estáis dando deberes a los alumnos, como que pueden sufrir, pero aprenderán a pensar, etc. ("duro en el aprendizaje - fácil en la batalla"). ¿Posicionáis MQL como un manual de formación para dummies o como una herramienta de trabajo para programadores? Si es lo segundo, ¿por qué ponéis palos artificiales en las ruedas?

Si alguien no sabe o no es capaz de hacer algo, es su problema personal, que aprenda. ¿Por qué tiene que cortar la funcionalidad para todos los demás?

Mira en nuestros foros y en kodobase, por favor.

No estamos en una escuela. Estamos en un lugar mucho peor donde se tiene mucho código malo y donde siempre se culpa a MetaQuotes a priori. Si lo haces así, es tu culpa, y si lo haces al revés, sigue siendo tu culpa.

La decisión de anular FileFlush se debe a que entendemos que desactivarlo es un mal menor que ver cómo los comerciantes se ralentizan y se quejan. No nos limitamos a desactivarlo, sino que reescribimos por completo todo el funcionamiento de los archivos para que ahora sea un motor extremadamente eficiente y rápido que mitiga cualquier error y las prácticas ineficientes de los desarrolladores. Lo hemos pensado mucho.


A título informativo, no exagero, ya que llevo más de 13 años dirigiendo personalmente debates públicos en nuestros foros:


 
crOss:
Tome cualquier Asesor Experto (de los ejemplos de MetaQuotes), ejecútelo bajo la compilación 975 en un período determinado y con los mismos parámetros,
Obtenga los resultados, es decir, el gráfico de la curva de rendimiento y la tabla de ofertas.


Ahora ejecute el mismo Asesor Experto bajo la compilación 1010 en el mismo período y con los mismos parámetros, obtendrá resultados completamente diferentes...

P.D. Metatester es de 32 bits.

¿Qué muestra el análisis del acuerdo en el probador de la compilación 975 y la compilación 1010?

Encuentra el punto de divergencia para empezar. Compara el valor de los swaps. Mira los volúmenes de las operaciones

 
Como hace una semana que no tengo noticias del Servicio de Atención al Cliente, plantearé el problema aquí(MT4 745 build):
1. Tengo un indicador con este código:
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
   EventSetTimer(10);
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start ()
{
   return 0;
}
//+------------------------------------------------------------------+

void OnTimer()
{
   ChartSetSymbolPeriod(0, _Symbol, 1);
}
2. Tengo un Asesor Experto con este código:
#include <ChartObjects\ChartObjectsTxtControls.mqh>     


CChartObjectButton *p_button1 = NULL;                              
int OnInit()
{
   p_button1 = new CChartObjectButton; 
   p_button1.Create(0, "ddd", 0, 10, 20, 30, 40); // create button
 
   return INIT_SUCCEEDED;
}

void OnDeinit(const int reason)
{
   if (p_button1 != NULL)
   {
      p_button1.Delete();
      delete p_button1;
   }
}
void OnTick(void)
{
}

3. Adjuntar el indicador primero , el Asesor Experto segundo
4. Robamos el gráfico y esperamos a que se cuelgue al usarChartSetSymbolPeriod
5. Todo funciona con el cambio manual de TF ycon el cambio manual de los pares de divisas. Pero no funciona con el software (ya sea la pila en la liberación de la curva o alguna fuga ....)


Me las arreglé para resolver el problema con el cambio de TF - API como una vez más resulta ser más fiable
Pero, ¿cómo cambiar un par de divisas con la API?

 
ALXIMIKS:
Como no hay respuesta del Servicio de Atención al Cliente durante una semana, planteo el problema aquí(MT4 745 build):
1. Hay un indicador con este código:
2. Hay un Asesor Experto con este código:

3. Colocar el indicador primero , el experto después
4. Robamos el gráfico y esperamos a que se cuelgue al usarChartSetSymbolPeriod
5. Todo funciona con el cambio manual de TF ycon el cambio manual de los pares de divisas. Pero no funciona con el software (ya sea pila en la liberación de la curva o alguna fuga ....)


Conseguí resolver el problema con el cambio de TF - API como una vez más resulta ser más fiable
Pero, ¿cómo cambiar el par de divisas al requerido con la API?

Su solicitud no está perdida.

Sin duda, le responderemos.

 
Alguien puede aclararlo: desde hace unos días mi rango (perfil) está bajando. ¿Se trata de una nueva función, de un ajuste en el algoritmo del sitio o de algo más?
 
Renat:

Mira en nuestros foros y en kodobaza, por favor.

No estamos en una escuela. Estamos en un lugar mucho peor, en el que hay mucho código malo y en el que MetaQuotes tiene siempre , a priori, la culpa de todo. Si lo haces así, es tu culpa; si lo haces al revés, sigue siendo tu culpa.

¿No has pensado que tal vez tú mismo eres el responsable de la difusión de esta historia? Entonces, resulta que te culpas a priori.Algunos novatos se dirigen a ti con la queja de que algo no funciona allí, y en lugar de explicarles amablemente o enviarles a estudiar los hechos, te doblegas bajo sus pies y rehaces tu producto para satisfacer su ignorancia. Así es como funciona, ¿no? Al final, la calidad del producto se resiente, y esta gente no aprende nada.

Lo entiendo si estuviéramos hablando de una plataforma comercial. Pero estamos hablando de un lenguaje de programación en el que la flexibilidad es importante. Y tú le quitas esa flexibilidad. Tú mismo eres programador y probablemente entiendas que no hay soluciones universales. Tu mecanismo, supuestamente eficaz, sólo sirve para algunos casos particulares y es absolutamente inútil en otros.Uno necesita volcar los datos al disco cada 10 segundos, el otro - cada 10 MB, el tercero - en cada tic (sí, sí, existe tal necesidad, si la información es muy importante). Y de nuevo, si una persona utiliza algo de forma incorrecta - es su problema personal, no hay necesidad de consentir su ignorancia y doblegarse a ella.

Tenía un código en el que FileFlush volcaba periódicamente información al disco. Y últimamente me he dado cuenta de que no se vuelca nada, a pesar de que la cantidad de datos se acumula hasta los 30-40 Mb. Como resultado, cuando el terminal se cuelga (y esto no es algo infrecuente) se pierde todo. Y ni siquiera se han molestado en avisar de ello. Esto mina por completo la confianza en MQL, si cualquier función puede dejar de funcionar en cualquier momento.

 
meat:

¿Has pensado que puedes ser tú quien contribuya a la difusión de esta historia? Así que resulta que a priori te consideras culpable.Algunos novatos se dirigen a ti con la queja de que algo no funciona allí, y en lugar de explicarles amablemente o enviarles a estudiar los hechos, te doblegas bajo sus pies y rehaces tu producto para satisfacer su ignorancia. Así es como funciona, ¿no? Al final, la calidad del producto se resiente, y esta gente no aprende nada.

Pensamos constantemente y con suficiente profundidad. Por ello, tomamos esas decisiones para que todos cometan menos errores.


Lo entiendo si estuviéramos hablando de una plataforma comercial. Pero estamos hablando de un lenguaje de programación en el que la flexibilidad es importante. Y tú le quitas esa flexibilidad. Tú mismo eres programador y probablemente entiendas que no hay soluciones universales. Tu mecanismo, supuestamente eficaz, sólo sirve para algunos casos particulares y es absolutamente inútil en otros.Uno necesita volcar los datos al disco cada 10 segundos, el otro - cada 10 MB, el tercero - en cada tic (sí, sí, existe tal necesidad, si la información es muy importante). Y de nuevo, si una persona utiliza algo de forma incorrecta, es su problema personal, no hay necesidad de consentir su ignorancia y plegarse a ella.

Deja que respondas por nosotros para que "estos sean tus problemas personales" en nuestros foros. A ver cuántas horas aguantas antes de que te digan cómo hacer negocios y por qué te equivocas.


Tenía un código en el que FileFlush volcaba periódicamente información al disco. Y últimamente me he dado cuenta de que no se vuelca nada, a pesar de que la cantidad de datos recogidos es de 30-40 Mb. Como resultado, cuando el terminal se bloquea (y no es un evento raro) se pierde todo. Y ni siquiera se han molestado en avisar de ello. Esto mina por completo la confianza en MQL, si cualquier función puede dejar de funcionar en cualquier momento.

Ya he señalado que nuestra prioridad es trabajar de forma eficiente y maximizar el rendimiento de nuestra plataforma en solitario, no trabajar de forma paralela. Esto se aplica principalmente a todas las operaciones de archivos: registros, bases de datos y archivos expertos.

Si tanto le interesa trabajar externamente con archivos abiertos(y eso ya es un problema grave de por sí), pase a la acción.

No hay que darse contra la pared: esta decisión es consciente y no se cambiará.