Ayúdame a aprender a programar. - página 7

 
Aleksei Stepanenko:

Vaya mierda...

Sí, la llamada al ciclo de Dmitry no es la más elegante, pero escribió un código interesante para obtener el número de la semana a partir de la fecha. Cuando la uso, siempre pienso en ella con una palabra amable.

Pero, Dimitri, tienes que ser más educado con la gente, más amable.

Soy educado con la gente.

 

El código de Dmitri no ha sobrevivido, pero aquí hay una reelaboración basada en él:

//получаем номер недели в году
int GetWeekNumber(datetime eTime)
   {
   MqlDateTime eDate;
   //получаем дату начала года
   TimeToStruct(eTime,eDate);
   eDate.mon=1;
   eDate.day=1;
   eDate.hour=0;
   eDate.min=0;
   eDate.sec=0;
   datetime StartTime=StructToTime(eDate);
   //возвращаем дату назад в структуру, чтобы определить день недели начала года
   TimeToStruct(StartTime,eDate);
   return(int((eTime-StartTime+86400*eDate.day_of_week)/604800));
   }
 
Dmitry Fedoseev:

Soy educado con la gente.

¿Por qué esa agresión, Dimitri?

Simplemente pregunté cómo utilizar correctamente PositionsTotal() en el bucle. Y no tú personalmente, sino en general. Y tú simplemente te has puesto en marcha. ¿Qué pasa, Dimitri?

Espero que no fuera yo quien se refiriera a su comentario sobre la deshumanización de sus interlocutores.

 
Aleksei Stepanenko:

El código de Dmitri no ha sobrevivido, pero aquí hay una reelaboración basada en él:

¡Oh, b(a)ogies! Es una magnífica creación de una mente genial. ¡Increíble! Gracias por compartirlo. ¡Todavía tengo que crecer y llegar a alturas tan colosales! Es como un truco de hacker. Es increíble. No entiendo lo que está escrito. Es un código perfecto... es cegador para los ojos. Lástima que lo hayas cambiado un poco, no brilla tanto como podría.

 
Nikolay Mitrofanov:

¡Oh b(a)ogs! Es una magnífica creación de una mente ingeniosa.

¡Qué forajido!

 
Dmitry Fedoseev:

Lo que también es muy gracioso es que una vez más todo el mundo se emociona - oh qué código tan equivocado he escrito para un novato... y todo el mundo me lo cuenta... ¡Increíble!

Eso nunca ocurrió. Nadie criticó el código. Todo es cuestión de preferencias y puntos de vista sobre el bucle.

Y de momento con PositionsTotal(), ya ha surgido una disputa al respecto.

Te parece que te atacan por el código. Pero la realidad es que a nadie le importa una mierda.

No hay muchas variantes de lo que debería ser correcto y lo que funcionaría al mismo tiempo. Es una cuestión de elección.


Y ahora, con mi maravilloso Asesor Experto, que te muestra qué enfoque de los bucles (de los tres que se utilizan con frecuencia) debes elegir, desaparece toda necesidad de discutir sobre el anuncio de los bucles) ¿No es una gran noticia, Dmitry?

Alegrémonos juntos de nuestro éxito compartido. ¡Hemos resuelto conjuntamente una larga y centenaria polémica del foro MQL! ¡Por fin! ¡Vivan todos los programadores y simpatizantes!

 
Tio Nisla:
Quería añadir antes que si la función somefunc() realiza algunas otras manipulaciones además de devolver alguna cantidad, por ejemplo, calcula parámetros comerciales, tal uso puede causar artefactos difíciles de atrapar y llevar a un autor de código a un estupor: "¿Ht? ¿Cómo es que 4 veces? ¡¡¡O_o F$#@!!! ¿No se supone que está ahí tres veces? ¿Por qué me miente mi EA?". Eso es lo que yo llamaba "shithcod", que un experto se escandalizaba hasta las raíces del pelo. No lo he sacado a relucir, porque es obvio, pero tú lo has hecho por mí. Pero no has tenido en cuenta que el direccionamiento por un índice calculado dinámicamente sin reinicialización del array es otra cosa. En sys desnudos esto suele llevar a GPF, en pluses con punteros y arrays inteligentes a una excepción y su manejador. En mql no está claro a qué conduce.

No debería haber tres veces, sino una.

¿Puedes dibujar cómo hacerlo?

 
Dmitry Fedoseev:

Soy educado con la gente.

Dimitri, este es un especialista de muy alto nivel.

 
Nikolay Mitrofanov:

Estoy escribiendo sobre la comprensión en el desarrollo. Primero estudiar y luego actuar.

Por el contrario, escribes: primero la acción, luego el pensamiento y el peinado.

Parece que es lo mismo. Pero entonces, ¿por qué escriben ejemplos de código y documentación?) ¿Es para que la gente haga menos daño? Creo que esa es exactamente la razón. ¿Qué te parece?

¿Aprendiendo mientras se desarrolla? En realidad, estamos hablando de los primeros pasos en la programación. Cuando se escribe el primer EA, lo mejor es obtener resultados primero, y luego averiguar la belleza y la brevedad del código.

Ahora dejo este cuadro de diálogo. Todo es inútil.

 
Aleksei Stepanenko:

El código de Dmitri no sobrevivió, pero aquí hay una reelaboración basada en él:

Creo que debería ser más sencillo, así

return ((int)(day_of_year/7))

El número de secuencia del día del año está en la estructuraMqlDateTime

Razón de la queja: