Autoaprendizaje del lenguaje MQL5 desde cero - página 59

 
MrBrooklin:

Hola Alexey, perdona por no haber reaccionado a tu post enseguida. El enlace es muy interesante. He mirado los códigos de los 11 tipos de trailing stops y las bibliotecas de funciones. Es todo muy interesante, aunque esté escrito en MQL4. Para ser honesto, nunca imaginé que hubiera tantos tipos de trailing stops. Muchas gracias por su apoyo.

Sinceramente, Vladimir.


¡Todo está bien! :-)
Para ser honesto, esperaba su reacción :-) :-)
Quiero que sepas que gracias a ti y a Vasily Sokolov yo mismo empecé a revisar mis códigos y bibliotecas aquí...
Gracias por la motivación.
Nos explicó todo muy bien en cuanto a la puesta en marcha de la plantilla de la ruta. Además, los nombres de las funciones son intuitivamente comprensibles. Ya lo has abordado tú mismo en tu código. Aquí todo está claro. El cuerpo de la red de arrastre y las funciones vienen a continuación. Ya has llegado a este punto por tu cuenta, así que no pasa nada. Lo principal ahora es prestar atención a su carga semántica como el Breakeven y el propio arrastre para las posiciones de compra y venta.
 
MrBrooklin:

Vasiliy, por supuesto, muchas gracias por haber hecho tanto trabajo por mí, pero no me ha acercado a entender de dónde han salido estas funciones más operadores y, sobre todo, por qué han aparecido. Hubiera sido más correcto llegar al punto de escribir ese código, que me has sugerido. Tenía muchas ganas de llegar a este punto y ahora quiero hacerlo.

Comprendo que tú, como muchos otros, estés cansado de que te deletree constantemente todas las líneas de código y te atropelle, pero el problema es que aún no entiendo cómo se construye todo, desde el algoritmo hasta la escritura del código. Debo añadir la falta de conocimiento del inglés al problema, porque tengo que copiar y pegar casi todos los mensajes de error y advertencia del compilador, y otras palabras en inglés en el Google Translator. Por cierto, si alguien intentó ejecutar esos micro, incluso nano-códigos que publiqué en este hilo, todos pasaron la compilación con "0 error, 0 advertencias".

Ahora necesito algo de tiempo para darme cuenta, o más bien para entender por qué han aparecido estas funciones y operadores. Así que, en resumen, es un horror silencioso. Y soy un mal estudiante cuando no entiendo las cosas elementales.

Gracias a ti y a todos los demás programadores por tolerar mi lentitud. Aunque me doy cuenta de que su paciencia no es ilimitada.

Sinceramente, Vladimir.


Si no entiendes algo en el MetaEditor, pulsa F11 en los operadores resaltados en el código de la plantilla de Vasiliy y lee la ayuda sobre ellos.
 
Aleksey Masterov:

Si no entiendes algo en el meta-editor, pulsa F11 en los operadores resaltados en el código de la plantilla de Vasiliy y estudia la ayuda sobre ellos.

Hola Alexey, gracias por el consejo. Me enteré de la tecla F1 (tal vez es lo que quieres decir) cuando acabo de empezar a estudiar MQL5. Siempre uso la AYUDA, es decir, la Referencia MQL5 y miro los ejemplos disponibles que explican cómo utilizar una u otra propiedad (variable, operador, bucle, función, clase, etc.).

Saludos, Vladimir.

 
MrBrooklin:

Hola! Maxim ha dicho correctamente que una breve descripción de lo que hace tal o cual función ayuda a entender y recordar,

Yo añadiría que las cabeceras ayudan a encontrar el bloque correcto en un montón de código, por ejemplo, un bloque de parámetros de entrada comienza con una cabecera

//+------------------------------------------------------------------+
//| Expert input parameters                                          |
//+------------------------------------------------------------------+
 
Una tarea sencilla para Vladimir:
Escribe un script para calcular el factorial de un número dado. El número está dado por los parámetros y puede estar en el rango de 1 a 15 inclusive, si excede el rango especificado, emite un mensaje. La respuesta también debe imprimirse.
 
Aliaksandr Hryshyn:
Una tarea sencilla para Vladimir:
Escribe un script para calcular el factorial de un número dado. El número se da por parámetros y puede estar en el rango de 1 a 15 inclusive, si está fuera del rango especificado, imprime un mensaje. La respuesta también debe imprimirse.

¡Hola, Alexander!

¡Hola, queridos participantes de este hilo!

He decidido tomarme un descanso hasta el próximo fin de semana, es decir, el 17 de octubre, por varias razones:

  1. Debido al exceso de información obtenida en tan poco tiempo para mí, ¡vino un completo estupor!
  2. Necesito descansar un poco y cambiar completamente a otros temas, sin visitar el Foro MQL5.
  3. Pienso volver a sentarme ante el ordenador este fin de semana y leer todos los mensajes de la 1ª a la 59ª página de este hilo.
  4. Analiza todo el material constructivo aportado por los participantes en este hilo y saca conclusiones.

En el futuro intentaré publicar código con menos frecuencia, pero para que sea más rico y completo y no como antes, que publicaba unas pocas líneas a la vez, distrayendo a los participantes del foro de cosas más importantes.

Este mensaje no significa que haya decidido rendirme y capitular ante MQL5. De hecho, tengo muchas ganas de estudiarlo, pero intentaré hacerlo en un nivel diferente de percepción de la información.

Nos vemos este fin de semana.

Con gran respeto a todos, Vladimir.

 

Mientras TC está en el tiempo de espera...

Paralelamente a este tema enseño a mis hijos programación (se supone que están en la escuela, pero les enseñan "te mataría"). Por lo tanto, hay algunas conclusiones y notas.

1. El resultado visual, tangible, visible y significativo es extremadamente importante. La mínima cantidad de código que pongas, impreso, debería producir el máximo efecto.

2. Nosotros, como gurús que se precien, estamos ahogando al TC en detalles. Debe tener un lío de plataforma MQL y API.

3. MQL es totalmente inadecuado para aprender desde 0 ...:-( teniendo el fondo, es bastante simple, pero la base que necesita para obtener

para ayudar a la ST a aprender de los ceros,

La primera es proporcionar al probador un Asesor Experto con un código mínimo, que ya podrá modificar y añadir.

la última (es la primera sobre el trailing stop) tarea - escribir un búho y ejecutarlo en el probador, entonces TS verá cómo exactamente se trailing un stop.

 

Veo que el hombre ha sido bombardeado con consejos. Yo también he decidido apuntarme, a lo mejor me quito las ganas))). Es una broma.

De acuerdo. Así que: quiero un arrastre clásico.

Dividimos la tarea en dos partes:

  1. La propia red de arrastre.
  2. Algo en la pantalla.
Escribamos el código:
enum EMessType{Init,Deinit,Set};

int OnInit(void){
   Messenger(Init);
   return INIT_SUCCEEDED;
}

void OnDeinit(const int reason){
   Messenger(Deinit);
}

void OnTick(){
   Messenger(Set,Tral());
}
  
string Tral() {return "0";}

void Messenger(EMessType fType,string fInfo=""){
   switch(fType){
      case Init:
      case Deinit:
         Comment("");
         break;
      case Set:
         Comment(fInfo);
   }
}

¿Qué está pasando aquí?

  1. Tenemos una función de Messenger que mostrará mensajes.
  2. Tenemos una función Tral que rastreará las órdenes mientras es un llamado "stub" que devuelve algún valor válido para la ejecución del código.
  3. Hay una enumeración EMessType que define lo que queremos de ella en la función Messenger; tiene bloques Init, DeIni y Set

Este es un ejemplo de descomposición simple.

Eso es, mi esposa está aquí, estoy evaporando))))

Mañana continuaremos)))

PS Si te aburres, no dudes en decírmelo)))

 
curso de una semana sobre enum)
 
¿Y por qué sigues con este arrastre? El arrastre es un consejo menor, nada más. Sería mejor desmontar el indicador, como el salpicadero.
Razón de la queja: