Algoritmos, métodos de solución, comparación de su rendimiento - página 14

 
Sergey Dzyublik:

1. No tiene sentido. Los algoritmos se comparan en general en función de los resultados relativos.
2. La solución ya está integrada - es una biblioteca estándar<Generic\ArrayList.mqh>.

1. es decir, la velocidad del algoritmo no es importante. La solución es "conceptualmente poderosa" y eso es suficiente. Bien.

2. Entonces, ¿se conecta a través del plug-in y ya está? Bien.

//--------------------------------------------------------------------

Si el principal criterio para evaluar el algoritmo es el"poder conceptual", entonces he perdido.

Si el criterio principal del algoritmo es "Simplicidad, rapidez y comodidad ", yo gano.

En este punto podemos cerrar el tema.

 
fxsaber:

  1. ¿Por qué el estilo es tal que primero se escriben las interfaces y luego las clases (como descendientes de las respectivas interfaces)?
  2. ¿Por qué se hace esto? (StringToUpper(generatorName);)
  3. Obviamente, se olvidaron.




Algo sorprendido de que lo hayan hecho a través de CArrayList en lugar de utilizar el recién comentado HashMap. No debería haberse guiado por el original torcido del autor, donde las transacciones son índices, no billetes.

HashMap habría sido más claro, más práctico y más rápido, probablemente.


Me sorprendió que ese código se leyera fácilmente. Sin embargo, todavía no he alcanzado el nivel de abstracción que se muestra en la programación. Mi estilo hasta ahora es procedimental + OOP. Este código es puro OOP. Aparentemente es una escuela de programación bien aprendida. Sólo la obra deStanislav Korotky en este sitio tiene un nivel de abstracción similar.


1) El estilo es tal para la integración.
Si necesita probar su clase, puede heredar e implementar la interfaz para la prueba.
Si necesitas tu propio generador, puedes heredarlo.


2) Sí, eso es redundante, exagerado, gracias:

StringToUpper(generatorName);



3) No, no lo he hecho:

      //TODO add shared_ptr / move out generator (Dependency Injection)
      IGenerator<T>* generator = CreateGenerator<T>();

Fue escrito originalmente bajoshared_ptr, del cual no tengo una implementación.
Pero es una buena idea poner la dependencia deIGenerator<T> en los parámetros de la función para las pruebas.

 
Sergey Dzyublik:

3) No, no lo he olvidado:

Fue escrito originalmente bajoshared_ptr, del cual no tengo una implementación.

Ya veo, no me había dado cuenta.

 
Longitud de la cadena, ¿sabe cuántos caracteres como máximo?
 
Renat Akhtyamov:
Longitud de la cadena, no lo sé - ¿cuántos caracteres como máximo?

Estoy esperando una respuesta:

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Algoritmos, métodos de solución, comparación de su rendimiento

Vladimir Karputov, 2017.12.11 08:37

Corrígeme, pero ¿la longitud de la cadena no es finita?

https://msdn.microsoft.com/ru-ru/library/sx08afx2.aspx

No encuentro esta limitación para MQL5...


 

Hay un patrón claro de falta de respeto reiterada a la comunidad y un patrón claro de provocación.

No leerlo (los mensajes de una persona en varios hilos constructivos) no siempre es posible, después de lo cual desarrollarlo y olvidarlo - aún menos.

La pesca de arrastre y el escupitajo en manos de la ayuda, cuyo número distingue en gran medida este recurso del lado positivo.


Podría estar equivocado.

 
Vladimir Karputov:

Corrígeme, pero ¿la longitud de las cuerdas no es finita?

Sólo límite de memoria

void OnStart()
{
  string Str;
  
  Print(StringInit(Str, 1 e8)); // true - 100 Mb
}
 
Реter Konow:

1. es decir, la velocidad del algoritmo no es importante. La solución es "conceptualmente poderosa" y eso es suficiente. Bien.

2. Entonces, ¿se conecta a través del plug-in y ya está? Bien.

//--------------------------------------------------------------------

Si el principal criterio para evaluar el algoritmo es el"poder conceptual", entonces he perdido.

Si el criterio principal para evaluar el algoritmo es"la sencillez, la rapidez y la comodidad", entonces yo gano.

Puede cerrar el tema en este punto.


Lo siento, no puedes, me arrepiento.
Pero qué estúpido eres.
El problema no es que alguien no sepa algo, sino la falta total de ganas de aprender algo.

Qué más da 10ms uno u 8ms el otro.
Si sólo necesitas comparar relativamente quién es más rápido y por cuánto, sin olvidar comprobar la fidelidad.

 
fxsaber:

Sólo restricción de memoria

¡¡¡¡¡OOO !!!!!

¡Muchas gracias!

porque mi cuerda está cortada por debajo y no sabía cómo aumentar la longitud

No arruines el hilo, no te pelees aquí.

 

solución a través de la hoja - tanto código.... ¿No podrías ser más específico?

Sólo intento que quede claro para los demás)

En general, yo mismo tampoco puedo adquirir el hábito de utilizar las bibliotecas estándar - y creo que mucha gente aquí tiene sus propias versiones de la misma hoja.

mismo problema

Es decir, guardamos todos los valores, ticker - comentario de Magik TP y SL, precio de apertura, hora, precio de cierre - digamos que será para la contabilidad de las órdenes virtuales

De hecho, la solución más rápida sería almacenar toda la información en la estructura. Y aquí los accesos se harán a través del índice de referencia ordenado sammiva.


Por cierto, la cuestión de cómo definir una impresión. puede ser algunas soluciones ya hechas. En pocas palabras, debería imprimir no tan a menudo - pero antes de la falla volcaría la información necesaria, o de alguna manera convenientemente ajustada de esta manera - y preferiblemente sin las variables globales