Adiós robot - hola marasmo - página 12

 
simpleton:

Por cierto, sobre la experiencia de gestión. Hace 5 años discutimos en el foro de mql5 sobre las perspectivas de MT5, yo dije entonces que el tiempo lo dirá. Han pasado cinco años y vemos que la comunidad ha rechazado MT5.

Te falta información. Nunca hacemos publicidad de nuestra base de clientes ni de nuestras implantaciones.


No estoy traduciendo, principios generales, teoría, - no para la teoría en sí, sino para la aplicación en la práctica. No encontrarás "defectos" tan graves en los mismos compiladores de C/C++.

Y han encontrado e incluso informado a los autores sobre ellos.


Si dices que en este caso "un método de clase estática no tiene derecho a entrar en el contenido de la clase", entonces ¿por qué en caso de creación de objetos dinámicos ya tiene ese derecho?

Estaba diciendo "sobreprotección, vamos a arreglarlo". En teoría, las condiciones parecen sencillas, pero en la práctica las implementaciones estáticas/dinámicas funcionan de forma diferente, lo que da lugar a discrepancias.


¿Qué pasa con el hecho de que una implementación no estática se comporta exactamente igual?

Lo mismo, la regla "privado significa privado" ha anulado el matiz "para el diseñador/desarrollador hacemos una excepción". lo arreglaremos.


Si hay errores en la implementación del lenguaje, pues sí, hay errores. Usted está hablando de control de calidad total - por lo que deshacerse de los errores de implementación en el compilador MQL4 ++ en la práctica, por lo que es casi tan difícil de encontrar errores como en los compiladores de C ++, ya que tiene tal control. Sigo creyendo que un analizador sintáctico no ayudará a eliminar errores como los que he demostrado.

Así es, se trata de errores/malentendidos en el compilador que escribimos nosotros mismos desde cero. Así que esta es la forma habitual de recoger los rastrillos.

El control de calidad total es un enfoque sistemático para trabajar en los errores y un enfoque claro para encontrarlos. Eso es exactamente lo que hacemos. Usted, en cambio, afirma que está en contra de la coacción y no quiere un control estricto por medios técnicos.



No se trata de gustar o no gustar. Hay una herramienta. ¿Por qué debería negarme a utilizar todas sus posibilidades?

En este caso, ni siquiera se trata de "me gusta". Es Myers, para el caso, a quien le gusta tanto. Y por alguna razón nadie trata de acusarlo de intentar "poner deliberadamente la zancadilla" a los compiladores de C++.

Tenemos una buena explicación: "no es un lenguaje C++, sino un lenguaje especializado MQL4/MQL5". Así que no tenemos que apoyar todo". Pero, en cualquier caso, el comportamiento se reducirá al C/C++ familiar en la medida de lo posible.


No es una tarea fácil que no se pueda resolver de entrada. Aquí hay que poner algo de esfuerzo, y no poco. La gran mayoría de los usuarios de MQL no son programadores. Y esto debe tenerse en cuenta en el diseño del lenguaje. Pero la tarea puede resolverse, estoy seguro.

Si acaso, bastaría con añadir algunas estructuras al viejo MQL4 y limpiar algunas cosas como las prioridades a las operaciones, como se hizo para MQL4++ y eso sería un compromiso razonable. El éxito de MT4 se debió en gran medida a la falta de "ingenio" del lenguaje. Este no es el caso ahora. Y hay muchos más errores en la implementación del compilador porque MQL4++ es mucho más complejo que el antiguo MQL4 y el equipo de desarrollo apenas ha cambiado.

En esto estoy de acuerdo contigo, pero creo que se debe principalmente a que los competidores están haciendo algo que no entienden.

Hemos reescrito 5 plataformas de negociación desde cero 5 veces en los últimos 14 años.

Es una forma mejor de crear algo realmente genial que cargar el viejo burro con ladrillos voladores. Así que tanto el lanzamiento de MT5 como el nuevo MQL5 nos han dado un enorme futuro para otros 10 años más.

Pero los que se sientan y se amontonan en el viejo proyecto pensando "deja el pájaro en la mano, lo principal es que no me despidan si empiezo uno nuevo y fracaso", pierden el respeto de la dirección, se les da por impotentes y se van poco a poco de la escena.

 
Renat:
Te falta información. Nunca hacemos publicidad de nuestra cartera de clientes ni de nuestra implantación.

Estoy juzgando por la información pública y el apoyo a la versión anterior, es decir, MT4.

Cuando salió la MT4, la MT3 dejó de ser soportada y ofrecida con bastante rapidez - todo el mundo se pasó a la MT4. Esto no ocurrió con el par MT4 - MT5, aunque haya pasado mucho tiempo. Y sigue habiendo un claro sesgo hacia MT4.

Incluso ha portado de nuevo de MT5 a MT4 incluyendo el compilador. ¿Ha portado algo de MT4 a MT3, 4 años después de su lanzamiento?

Renat:
Y lo hicieron e incluso informaron a los autores.

Pero hay una diferencia: probablemente es cientos, si no miles, de veces más difícil encontrar un error en los compiladores modernos de C/C++ que en MQL4++.

Renat:

Solía decir "sobreprotección, vamos a arreglarlo". En teoría, las condiciones parecen sencillas, pero en la práctica las implementaciones estáticas/dinámicas funcionan de forma diferente, lo que da lugar a discrepancias.

Lo mismo - la regla "privado significa privado" anuló la regla "hacer una excepción para el constructor/destructor". Lo arreglaremos.

Así es, son errores/inconsistencias en el compilador que escribimos desde cero nosotros mismos. Así que esta es la forma habitual de recoger los rastrillos.

El control de calidad total es un enfoque sistemático para trabajar en los errores y un enfoque claro para encontrarlos. Eso es exactamente lo que hacemos.

Basta con aplicar las pruebas de regresión habituales, que ni siquiera requieren ningún "motor" especial. Existe un control de acceso en las clases/estructuras del lenguaje - escriba una vez pruebas para ello en forma de programas MQL compilables. Algunos deberían compilar con éxito, otros deberían compilar con un cierto error. Ese es el control de calidad total en este lugar en particular. Sin embargo, primero hay que escribir las pruebas que cubrirán toda la funcionalidad del control de acceso...

Renat:
En contraposición a esto, usted dice que está en contra de la coerción y que no quiere un control estricto por medios técnicos.

No es lo contrario. El compilador MQL para programas MQL podría hacerse para incluir tanto advertencias como lo que algunos compiladores C++ llaman observaciones por defecto. Pero yo sólo "afirmo" que al menos los comentarios deberían estar desactivados. En el compilador MQL para programas MQL. Y ahora no se puede desactivar nada en este sentido en el compilador MQL4++.

Hay una falta de control de calidad a la hora de implementar, en particular, el compilador MQL, ya que los errores en él son muy fáciles de detectar. ¿A qué se refiere con un estricto control de calidad de los programas MQL?

Renat:
Tenemos una buena explicación - "esto no es lenguaje C++, sino MQL4/MQL5 especializado. Por lo tanto, no estamos obligados a apoyarlos a todos". Pero, en cualquier caso, el comportamiento se reducirá al C/C++ familiar en la medida de lo posible.

Genial. No se apoya todo. Pero lo que se apoya no debe contener tantos errores en las construcciones básicas más simples.

¿Apoya el control de acceso a los miembros de la clase/estructura? Soportar al menos todos los casos básicos en las construcciones básicas más simples sin errores.

Tome el mismo control de acceso - en las construcciones básicas más simples:

/******************************************************************************/
class A {
private:
  class B { };
};

/******************************************************************************/
void OnStart() {
  A a;
  B b;
}

Esto se compila sin errores:

'3.mq4' 3.mq4   1       1
0 error(s), 0 warning(s)                1       1

Sin embargo, vemos que este código no compila en C++ por dos razones:

$ clang -c 3.cpp
3.cpp:10:3: error: unknown type name 'B'
  B b;
  ^
1 error generated.

La clase B está definida dentro de la clase A, por lo que debe ser referenciada en OnStart() como A::B:

class A {
private:
  class B { };
};

/******************************************************************************/
void OnStart() {
  A a;
  A::B b;
}

Pero eso no es todo: el código modificado sigue sin compilar con el compilador de C++:

$ clang -c 3.cpp
3.cpp:10:6: error: 'B' is a private member of 'A'
  A::B b;
     ^
3.cpp:4:9: note: declared private here
  class B { };
        ^
1 error generated.

Por alguna razón el control de acceso en MQL4++ generalmente funciona para los métodos y datos - miembros de la clase, pero no para los tipos.

Al especificar el ámbito de la clase B como A::B, el compilador MQL4++ genera los siguientes errores:

'3.mq4' 3.mq4   1       1
'B' - struct member undefined   3.mq4   12      6
'b' - undeclared identifier     3.mq4   12      8
'b' - some operator expected    3.mq4   12      8
expression has no effect        3.mq4   12      6
3 error(s), 1 warning(s)                4       2

¿Por qué este "miembro de la estructura no está definido"?

De nuevo, los compiladores de C++ tampoco tienen problemas con los tipos dentro de las clases. Pero el compilador MQL4++ sí lo hace.

Estos errores se encontraron por accidente al intentar implementar el singleton Myers. Algunos de los errores fueron encontrados por mí, y otros por otros participantes en el debate. Muestra la facilidad con la que se puede tropezar con errores de implementación del compilador al programar en MQL4++. Y no hay que buscar deliberadamente los errores para tropezar con ellos, sólo hay que intentar resolver la tarea.

Tenga en cuenta que todos estos son errores críticos para el uso serio de MQL4++.

Obviamente, no hay pruebas de regresión del tipo que he mencionado anteriormente, al menos para comprobar el control de acceso para las pruebas del compilador MQL4++. De lo contrario, ya se habría detectado y arreglado todo.

Renat:
Hemos reescrito 5 plataformas de negociación desde cero 5 veces en los últimos 14 años.

Esa es una mejor manera de crear algo realmente genial que cargar el viejo burro con ladrillos voladores. Por eso, tanto el lanzamiento de MT5 como el nuevo MQL5 nos han dado un enorme futuro para otros 10 años más.

Pero los que se sientan a martillear un viejo proyecto pensando "que el pajarito en la mano, lo principal es que no me despidan si empiezo un nuevo proyecto y fracaso" están perdiendo el respeto de la dirección, se les da por impotentes y poco a poco salen de escena.

Estoy de acuerdo en que la acción proactiva con un tipo de desarrollo innovador es el componente más importante, pero no es el único. Y se puede estropear un barril de miel con una mosca en la pomada.

Uno de esos tintes es una clara falta de calidad. La razón para crear cualquier cosa en MQL se pierde por ello.

 

Yo sobre SSE2, tal vez no en el tema, sino también con el placer, algo escuchó.

Tengo que cambiar uno de los ordenadores, no todos, pero me distrae del tema, ni para el desarrollo, ni para el comercio, salvo para leer el foro.

 
MT5 ¡Genial! Es mágico construir pirámides sobre él.
 

¡Hola usuarios del foro!

Estoy actualizando a mt5 y me gustaría

para preguntarle a Pavlik.

Pavlik, si me ves, envíame un mensaje.

r.klassen.ruit@web.de

pansa

 
TimeMaster:

Si tiene una gran base de indulgencias, búhos, etc. que no se compilan en las nuevas construcciones, entonces tiene sentido echar un vistazo más de cerca y "sacudir el pecho". Deberías conservar todo el material útil y no escatimar tiempo en reescribirlo y depurarlo para las nuevas construcciones.

En un momento dado me aburrí).

TimeMaster:

Los verdaderos programadores experimentados o los que quieren llegar a serlo, siempre siguen las innovaciones, los errores y los glitches su pan. Escribir código sin errores es lo que cuenta como buena programación. Si no tiene la energía, el tiempo, la posibilidad o el deseo de captar todas las innovaciones de "Metakvot", utilice el lenguaje que domina. Las DLL no se han suprimido, introduzca sus propios algoritmos ajustados.

¿Qué siguen los verdaderos comerciantes o los que quieren serlo? ) El autotrading disponible, la principal característica de MT, se ha hundido en el olvido y se ha perdido entre las constantes innovaciones de innumerables construcciones... Las opciones de autotrading disponibles a través de un enfoque más serio de la programación, digamos - "es". Yo mismo tengo sólo una pequeña cuenta prácticamente olvidada en MT. Hoy he pasado 2 horas rehabilitando las herramientas de MT, por lo que parece necesito 10 veces más. No estoy seguro de necesitarlo, tal vez lo haga de nuevo, pero más bien "de la vieja memoria". Básicamente, me he decidido.

 
Figar0:

El autotrading disponible, la principal característica de MT - se ha hundido en el olvido y se ha perdido entre las constantes innovaciones de innumerables construcciones... Las opciones de autotrading disponibles a través de enfoques de programación más serios están, digamos, "ahí". Yo mismo sólo tengo una pequeña cuenta prácticamente olvidada en MT. Hoy he pasado 2 horas rehabilitando las herramientas MT, por lo que parece necesito 10 veces más. No estoy seguro de necesitarlo, tal vez lo haga de nuevo, pero más bien "de la vieja memoria". Básicamente, me he decidido.

En realidad, incluso ahora todo funciona, si sólo se utilizan las características antiguas. Algunas cosas se podrían hacer de forma mucho más fácil y fiable, por ejemplo, la contabilización de los huecos de la historia: antes (mcl++) la posibilidad de cálculo de la historia con huecos causaba algún "dolor de cabeza" (como consecuencia de que la "cola" de la historia se cargaba primero y luego las barras perdidas se escribían dentro), tenía que usar "muletas". Ahora todo es mucho más sencillo. No puede utilizar ninguna función adicional y utilizar MKL en su forma anterior/mejorada, como antes. Las excepciones son los programas que han ido más allá de las matrices (índice calculado incorrectamente o memoria no asignada) - esos no funcionaban garantizados y, muy probablemente, incorrectamente antes.
 
Figar0:

Se aburrió en algún momento)

¿De quién es la culpa de que alguien tenga un montón de código?

Figar0:

Básicamente, me he decidido.

¿Alguien está tratando de retener? Lazarillo y sujetar...

 
AlexeyVik:

¿De quién es la culpa, entonces, de que alguien tenga un montón de código?

¿Qué tiene que ver el código de mierda con esto? Algunas cosas fundamentales han cambiado
 
TheXpert:
¿Qué tiene que ver el código de mierda con esto? Algunas cosas fundamentales han cambiado
Sólo me pregunto (uso el código antiguo, funciona): ¿qué cosas fundamentales?