Autoaprendizaje del lenguaje MQL5 desde cero - página 53

 
SanAlex:

Parte 3.


Tus deslices son una mauvais ton aquí. Envuelve todo en un archivo adjunto
 
MrBrooklin:

Sí, Alexey, ya he visto este código. Está en la forma de un archivo de inclusión. Para ser sincero, no encontré nada sobre el símbolo en él, aunque lo revisé varias veces. Tal vez he entendido algo mal o simplemente estoy buscando mal.

Sinceramente, Vladimir.


Le responderé por la tarde. Estoy utilizando la biblioteca de arrastres y sus tipos proporcionados por Yury Dzyuban sin ningún problema en los robots de trading y todavía lo uso en MT4.
Los enfoques allí son los mismos que en MT5.
 
Aleksey Masterov:

Tus deslices aquí son una mauvais ton. Envuélvelo en un accesorio

He aprendido una nueva palabra para mí: mauvais ton.

(Malos modales; comportamiento, modales y conducta considerados inapropiados, indecentes, inaceptables en una sociedad determinada; malo, maleducado)



 
SanAlex:

He aprendido una nueva palabra para mí: codicia

("malos modales"; comportamiento, modales y acciones consideradas inapropiadas, indecentes, inaceptables en una sociedad determinada; malo, maleducado).




Tus deslices no interesan a nadie aquí. Lo habitual es publicarlo como archivo adjunto, si lo publica así no significa que más gente se moleste en leerlo...

Interfiere con la lectura del hilo y la respuesta a la pregunta.
 
Aleksey Masterov:

Aquí nadie está interesado en tus garabatos. Lo habitual es publicarlos como archivo adjunto, si lo haces así, no significa que haya más gente que quiera leerlos...

Interfiere con la lectura del hilo y la respuesta al tema.

No me interpondré en el camino - ¡comunícate!

------------------------------------

aunque podrías haber recogido algo en esos jirones...

 
Fast235:

i es igual al número de posiciones abiertas, por lo que muchos ciclos serán con impresión

es necesario eliminar el signo "=" en por qué es necesario pasar por el bucle cuando el número de posiciones abiertas es 0. en esta llamada a cero salió la segunda impresión

¡Hola! ¡Muchas gracias! Ahora no entiendo por qué pensaba que el ciclo comienza con "0" en lugar de "1". Para abreviar la historia, debería dejar de estudiar por la noche, como solía hacer en mi juventud.

Saludos, Vladimir.

 
Aleksey Masterov:

Le responderé por la tarde. Con la librería de arrastres y sus tipos de Yu. Dzyuban, que funciona en los robots de combate sin ninguna duda y que uso actualmente en MT4.
Los enfoques son los mismos que en MT5.

Hola Aleksey! Te agradeceré mucho cualquier ayuda.

Sinceramente, Vladimir.

 
MrBrooklin:

Así que, basándome en la literatura que leí, escribí un breve algoritmo para crear un Asesor Experto con la función trailing stop:

  1. Vamos a crear un Asesor Experto para automatizar el trabajo de trailing (seguimiento) del nivel de Stop Loss de una posición abierta con niveles de Take Profit y Stop Loss ya especificados. ¿Y cuál es la diferencia si los niveles de Take Profit y Stop Loss ya están establecidos para la posición o no? Si no se especifica el nivel de parada, será fijado por el Asesor Experto; si lo es, se cambiará a un nuevo nivel según el algoritmo. El Asesor Experto será indiferente al nivel de toma de beneficios de la posición.
  2. En el Asesor Experto, cree un bloque de parámetros de entrada con dos parámetros: establezca "Nivel de Trailing Stop" y establezca "Paso de Trailing". De hecho, estamos hablando de dos algoritmos en uno: el primero mueve el stop hasta el Breakeven, el segundo lo arrastra más allá del movimiento. En la zona negativa, el stop no es de arrastre.
  3. Cuando llegan nuevas cotizaciones, las procesamos mediante OnTick( ). El arrastre sólo funciona cuando se produce un nuevo tick para el símbolo actual.
  4. Vamos a crear y ejecutar un bucle para buscar todas las posiciones.
  5. Si de repente no encontramos posiciones abiertas, volvemos al bucle
  6. Refresquemos las citas. No es necesario actualizar nada. El entorno comercial se actualiza automáticamente. Sólo tenemos que solicitar los datos en el momento del evento OnTick.
  7. Si hay una posición abierta, continuamos. ¿Por qué todos estos detalles del punto 4 al 7? En su lugar, deberíamos escribir de forma sencilla: Para cada posición de compra definimos... y luego desde el punto 9
  8. Determine el tipo de posición abierta: Comprar o Vender.
  9. Si la posición es decompra, definimos dónde se encuentra el precio actual en relación con el precio de la posición abierta.
  10. Si el precio actual es mayor que el precio de la posición abierta, comprobamos su nivel.
  11. Si el precio actual ha alcanzado el nivel de arrastre especificado en los parámetros de entrada, movemos el Stop Loss al nivel sin pérdida igual al precio de apertura de la posición decompra. Si no, no hacemos nada.
  12. Si el precio actual ha superado el nivel de Trailing Stop por el valor igual al nivel de Trailing Stop, elStop Loss se mueve desde el nivel de precio de apertura de la posición de compra por el valor igual al nivel de Trailing Stop y así sucesivamente hasta que el precio alcance el nivel de Take Profit especificado para esta posición .
  13. Si el precio gira y alcanza el nivel deStop Lossya movido , la posición se cierra .
  14. [Sigue una descripción similar para un puesto de Vendedor].
  15. Si se abre la posición de venta, definimos dónde está el precio actual en relación con el precio de la posición abierta.
  16. Si el precio actual es inferior al de la posición abierta, comprobamos a qué nivel ha caído.
  17. Si el precio actual ha alcanzado el nivel de arrastre especificado en los parámetros de entrada, movemos el Stop Loss al nivel sin pérdidas igual al precio de apertura de la posición de Venta. Si no, no hacemos nada.
  18. Si el precio actual ha superado el nivel de Trailing Stop Loss por el valor igual al paso de Trailing Stop Loss, el Stop Loss se moverá desde el nivel de la posición de venta de apertura por el valor igual al nivel de Trailing Stop y así sucesivamente hasta que el precio alcance el nivel de Take Profit especificado para esa posición.
  19. Si el precio gira y alcanza el nivel de Stop Loss ya movido, la posición se cierra.


He hecho algunas correcciones

 
Esta es una versión simplificada de la descripción de la cola:
  1. Los trailing stops se procesan cuando se recibe un nuevo tick, en la función OnTick.
  2. Un trailing stop consta de dos partes consecutivas:
  3. Parte 1. Para cada posición abierta se calcula el precio, y cuando se alcanza, su stop-loss se mueve al Breakeven.
  4. Parte 2. Después de que el stop loss se haya movido al punto de equilibrio, el algoritmo de stop pulling siguiendo el precio se activa para la posición activa.

No describiré en detalle los algoritmos de transferencia de paradas para las partes uno y dos. Ya los ha descrito en general correctamente. Si los describe, debe seguir el patrón:

Parte 1. El punto de equilibrio:
  • Para comprar;
  • Para vender;
Parte 2. Subiendo la parada:
  • Comprar; vender;
  • Para vender;
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
MrBrooklin:

Hola Alexey, te agradecería mucho la ayuda que puedas prestarme.

Saludos, Vladimir.

Tiene dos errores importantes en su descripción de la RPT:

1. Estás entrando demasiado en detalles de bajo nivel. Por qué, por ejemplo, escribir (incorrectamente, por cierto) "hay que volver al bucle si no se encuentran posiciones". Si no hay posiciones, no habrá nada que procesar. No hay que volver al bucle, sólo hay que salir y esperar un nuevo tick, quizás aparezca algo allí, quizás no. No es necesario describir casos de "qué pasaría si no..." - Hay un número infinito de estos casos, no se pueden describir todos. En su lugar, céntrate en los " y si".

2. La RPT muestra claramente un deseo de coherencia. No lo hagas. Ir de lo general a lo específico:"Necesito un stop que a) se transfiera al punto de equilibrio, y b) cuando se transfiera al punto de equilibrio, se suba por arrastre. Las reglas de transferencia al punto de equilibrio y de subida del stop, adjuntas a continuación..." . - Te aseguro , que tal TOR será entendido por cualquier programador autónomo, y para él, el programador, tal TOR será mucho más fácil y claro que entender los ciclos, que vuelven a sí mismos, si no hay posición, etc.