Autoaprendizaje del lenguaje MQL5 desde cero - página 69

 
MrBrooklin:

Si el manual del lenguaje de programación MQL5 lo hubiera escrito así directamente:

entonces no habría tantas preguntas innecesarias. Al menos, los principiantes tendrían menos preguntas.

Sinceramente, Vladimir.

Todo está bien escrito allí. Si no hay paréntesis, la sentencia for se refiere sólo a la siguiente expresión.
No eres tonto, trata de encontrar a alguien de tu edad, que estudie programación desde cero.
 
Aliaksandr Hryshyn:
Todo está bien escrito allí. Si no hay paréntesis, significa que el operador for se refiere sólo a la siguiente expresión.
Y no digas que es estúpido, intenta encontrar a alguien de tu edad que aprenda a programar desde cero.

Vladimir no ha dicho que sea tonto, sino que lo está pasando mal porque el método exprés de aprendizaje con límite de tiempo no es fácil.

Agarró las "herramientas" sin leer y entender las "instrucciones de uso", y ya se lo habían contado; habiendo entendido la sintaxis sería mucho más fácil armar el "rompecabezas".

Y nunca es tarde para aprender, si se quiere, hay ejemplos de defender un postre o aprender lenguas extranjeras a los 65 años, por ejemplo...

 
MrBrooklin:

Igor, el deseo de aprender el lenguaje MQL5 no ha desaparecido, al contrario, sólo se ha intensificado. Estoy desgarrado, por qué soy tan tonto y no puedo entender las cosas simples con este operador de bucle

No eres tonto, sino impaciente. Intentas aprender "la lengua inglesa" con un diccionario: intentas poner palabras extranjeras en las combinaciones que quieres, sin tener en cuenta que las estructuras lingüísticas pueden ser diferentes.

Es decir, tienes que aprender la sintaxis y los fundamentos de la programación en C, pero no podrás escribir nada útil .... Además de esta "misteriosa" declaración, habrá un malentendido... Por ejemplo, ¿el alcance de las variables? - ¿comprende lo que es? - No es difícil, pero tienes que entender lo que la máquina ve cuando lee tu programa.


No sé qué tutorial puedo aconsejarle. A veces miro aquíhttps://metanit.com/sharp/tutorial/1.1.php

también hay C y C++https://metanit.com/cpp/

Si lo usas, puedes saltarte las secciones sobre punteros y clases y POO. No necesitas aprenderlo, sólo necesitas organizar (sistematizar) tus conocimientos.

 
MrBrooklin:

Igor, el deseo de aprender el lenguaje MQL5 no se ha perdido, al contrario, se está fortaleciendo. Estoy desgarrado, por qué soy tan tonto y no puedo entender cosas simples con este operador de bucle. Lo principal es que sin el operador de bucle el código funciona perfectamente, pero con el bucle es un completo desastre. De todos modos, llegaré al fondo del asunto. Sin embargo, tengo mucho menos tiempo para el autoaprendizaje desde que el periodo de cuarentena ha terminado y tengo raros momentos en el trabajo en los que puedo estudiar el idioma. La mayoría de las veces estudio el idioma por la tarde y a última hora de la noche.

Necesito resolver 2 tareas para finalmente llegar a escribir el código del Trailing Stop:

  1. Necesito escribir un código con el uso del operador de bucle for para buscar todas las posiciones abiertas para todos los símbolos, y si no hay ninguna, entonces abrir una posición de compra entre las 09:00:00 y las 09:01:00, y cerrarla por fuerza a las 23:50:00, si durante el día de negociación no se activó un stop loss. Sin el operador de bucle for, como he escrito antes, todo funciona perfectamente. Ahora quiero conseguir el mismo resultado, pero con el uso del bucle.
  2. Escriba 2 funciones que determinen la dirección de apertura de la posición por el primer tick que aparezca en el marco temporal desde las 09:00:00 hasta las 09:01:00. Si el primer tick es alcista, se debe abrir una posición de compra; si el primer tick es bajista, se debe abrir la posición de venta correspondiente. No es una estrategia, es sólo mi "deseo" de no usar la condición aleatoria.
Atentamente, Vladimir.
Ya se parece un poco a un ToS. Este es el objetivo. Ahora hay que formular el algoritmo de solución paso a paso
Si algo no está claro, pregúntelo. A veces las cosas sencillas llevan más tiempo que las complicadas.
 
VVT:

Vladimir no ha dicho que sea estúpido, sino que lo está pasando mal porque el método de aprendizaje exprés con límite de tiempo no es fácil.

Agarró las "herramientas" sin leer y entender las "instrucciones de uso", ya le han dicho que, habiendo entendido la sintaxis será mucho más fácil armar el "rompecabezas".

Y nunca es tarde para estudiar, si uno tuviera ganas, hay ejemplos de defender un postre o estudiar lenguas extranjeras a los 65 años, por ejemplo...

Hay que llamar a cada cosa por su nombre, de momento soy más tonto que un corcho en programación. No entiendo las cosas elementales. Aunque, aquí en la electrónica los conocimientos que adquirí en mi juventud, todavía me sirven para reparar, por ejemplo, un botón de radio remoto de un timbre. El fin de semana pasado, utilicé un multímetro y la lupa de mi abuelo para encontrar un condensador SMD defectuoso de dimensiones microscópicas. Se trataba de una avería, un cortocircuito o un "koza", como se solía llamar a la abreviatura de cortocircuito. Cortocircuito. Aquí hay una foto del condensador SMD "pinchado" con un aumento de 4X en un smartphone y posterior procesamiento en Paint, ya que es un elemento demasiado microscópico.


Decidí divagar un poco y al menos mostrar algo.

Y sobre el deseo de aprender el lenguaje, lo tengo, así como la esperanza de dominar los fundamentos de la programación.

Saludos, Vladimir

 
Igor Makanu:

no es tonto, sino impaciente, y está tratando de aprender "el idioma inglés" con sólo un diccionario - está tratando de poner palabras extranjeras en las combinaciones que ve, sin considerar que las construcciones del idioma pueden ser diferentes

Es decir, tienes que aprender la sintaxis y los fundamentos de la programación en C, pero no podrás escribir nada útil .... Además de esta "misteriosa" declaración, habrá un malentendido... Por ejemplo, ¿el alcance de las variables? - ¿comprende lo que es? - No es difícil, pero tienes que entender lo que la máquina ve cuando lee tu programa.


No sé qué tutorial puedo aconsejarle. A veces miro aquíhttps://metanit.com/sharp/tutorial/1.1.php

también hay C y C++https://metanit.com/cpp/

Si lo vas a utilizar, puedes saltarte las secciones sobre punteros y clases y POO. No tienes que estudiarlo, sólo tienes que organizar tus conocimientos.

Gracias, Igor, por tu continuo apoyo y consejos. He buscado en Google tanto C como C++, pero siento que una vez más necesito descansar un poco, digerir y consolidar lo que ya entiendo. Y luego, empezar a leer libros de nuevo.

Saludos, Vladimir.

 
Valeriy Yastremskiy:
Ya estás en el TOR. Este es el propósito. Ahora hay que formular el algoritmo de la solución paso a paso
Si algo no está claro, pregúntelo. A veces, las cosas sencillas requieren más tiempo que las complejas.

Valery, hace tiempo que tengo los TdR(Términos de Referencia) escritos en mi asesor, sólo que no los he publicado en el tema para que todos los vean.

Saludos, Vladimir.

/* Краткое описание советника Trailing_Stop. Код советника разрабатывается в соответствии с
   планом самообучения языку программирования MQL5. В советнике применена неттинговая система
   учёта позиций. Эта система учета подразумевает, что в один момент времени на счете может быть
   только одна открытая позиция по одному и тому же символу (финансовому инструменту). Алгоритм
   работы советника прост: один раз в торговый день ровно в 9 ч. 00 мин. по московскому времени
   будет открываться одна позиция в ту сторону, куда будет направлен первый тик. Например, если
   первый тик будет направлен вверх, то значит откроется позиция BUY, если первый тик будет вниз,
   то значит откроется позиция SELL. У открытой позиции сразу будет устанавливаться ордер Stop Loss
   фиксированного размера для минимизации потерь в том случае, если цена финансового инструмента
   станет двигаться в убыточном направлении. Если цена инструмента достигнет этого уровня, то
   позиция полностью закроется автоматически. Если цена финансового инструмента будет двигаться
   в прибыльном направлении, то тогда автоматически включится в работу Trailing_Stop (Трейлинг Стоп).
   Схема работы Трейлинг Стоп:
   1. С приходом новых котировок советник проверяет, прибыльна ли открытая позиция.
   2. Как только прибыль (в пунктах) станет равной либо большей той величины, которая указана во
      входном параметре советника "Уровень перестановки Stop Loss в безубыток", автоматически
      поступит команда для перемещения ордера Stop Loss на тот уровень цены, по которому открылась
      существующая позиция, т.е. в безубыток.
   3. Если цена и дальше продолжит движение с увеличением прибыльности позиции, то при превышении
      величины, указаной во входном параметре советника "Уровень перестановки Stop Loss в безубыток"
      на величину, которая указана во входном параметре "Шаг трейлинг стопа", Stop Loss вслед за
      текущей ценой автоматически переместится с уровня безубытка на величину этого шага.
   4. Если прибыльность позиции уменьшится, то модификации ордера происходить не будет. Таким
      образом, будет автоматически фиксироваться прибыль торговой позиции.
   Если в течении торгового дня открытая позиция не закроется по Stop Loss или Trailing_Stop, то в
   23 ч. 50 мин. советник принудительно закроет эту позицию.

   ВАЖНО!!! Советник создан для демо-счёта исключительно в учебных целях!
            Не предназначен для торговли на реальном счёте и извлечения прибыли!*/
 
MrBrooklin:

Valery, hace tiempo que tengo los TdR(términos de referencia) escritos en mi asesor, sólo que no los he publicado en el hilo para que todos los vean.

Saludos, Vladimir.

El esquema de trabajo es más bien una meta. Ni siquiera es una declaración de problemas. La solución es un algoritmo al principio, uno general. Es una declaración de problemas. Y luego los algoritmos para resolver esos problemas.
 
Valeriy Yastremskiy:
Un esquema de trabajo es más bien un objetivo. Ni siquiera es una declaración de problemas. La solución es un algoritmo general. Esta es una declaración de problemas. Y luego los algoritmos para resolver esos problemas.

Ya veo.

Respetuosamente, Vladimir.

 
Valeriy Yastremskiy:

El operador de bucle y los operadores en el cuerpo del bucle. No es exactamente el clásico ruso.

Todo está bien, por supuesto, pero ¿dónde está el iterador i en el cuerpo del bucle? Y para obtener el símbolo de posición y su número mágico, primero hay que seleccionarlo. La descripción de la posición es una estructura (en µl5 toda la estructura y las órdenes y el tiempo y los tratos) y se rellena a través de la selección, por el iterador que no es billete de posición, sino número de posición. Y debemos recordar que en la estructura de descripción de la posición, es siempre la última selección de posición.

MrBrooklin:

¡Buen día y buen humor a todos!

Sigo estudiando el lenguaje de programación MQL5. He comenzado un estudio detallado del operador de bucle for... Por favor, envíenme sugerencias, no código corregido, sino en palabras, o nunca estudiaré MQL5.

Sinceramente, Vladimir.

Aquí - permíteme discrepar contigo, puedes y debes codificar, lo que te impide entrar en su esencia... entender y así sucesivamente ... también IMHO, hay artículos, hay robots en kodobase - leer, analizar el código ya listo - aprender el estilo de la escritura de inmediato. ¿Por qué quieres reinventar la rueda? Aprenda de inmediato a partir de un código alfabetizado.

Aquí hay un arrastre de V. Karputov - está en ROBOTS, mira - ajústalo a tus necesidades (términos y tus fantasías).

P.D. Gracias a ti, el tema de esta rama, empecé a entender el código, sus características..., a estudiar artículos y a repetir cosas básicas para mí...

Gracias por el consejo. :-) (no es broma)

TrailingStop
TrailingStop
  • www.mql5.com
Это простой пример советника с реализацией трейлинг-стопа. В нем всего два параметра: TrailingStop — собственно отступ между ценой и уровнем StopLoss. TrailingStep — защита от чрезмерно частой модификации позиции.  Как работает TrailingStop (трейлинг, TrailingStop) — на примере позиции Buy: ...
Razón de la queja: