Autoaprendizaje del lenguaje MQL5 desde cero - página 56

 
Valeriy Yastremskiy:

En general, hay dos motivaciones con efectos opuestos. Un SL más cercano reduce la pérdida y hace que la probabilidad de cerrar en el SL sea mayor. Si el SL estará cerca en relación con la volatilidad, entonces por supuesto su opción es mejor, si en un nivel normal y tirando hacia arriba el SL no afectará a la frecuencia de disparo, entonces la mía.

Ya has entrado en el terreno de la estrategia ;) enséñame a ponerprimero 1 bu y luego moverlo

 
VVT:

Ya te has adentrado en el terreno de la estrategia;) enséñame a ponerprimero 1 boo y luego a moverlo

Por un lado, tienes razón: puedes detenerte en un punto de equilibrio y escribir un código sólo para él. Pero, en mi opinión, si inicialmente no tienes idea de cómo debe funcionar un trailing stop en general, no es la mejor opción. Además, casi todos los Asesores Expertos están escritos en base a una estrategia claramente definida. Como se dice en estos casos, "hay que llegar a un acuerdo en la costa".

Siento que estoy "despertando" al programador de nuevo.

Saludos, Vladimir.

 
Vasiliy Sokolov:

Eso es lo que yo entiendo. Tiene dos funciones de reposicionamiento de trailing stops. La primera mueve el trailing stop-loss al Breakeven, guiada por el parámetro "Trailing level", la segunda función tira del stop-loss más atrás del precio, guiada por el parámetro "Trailing step". En mi opinión, llamaría al primer parámetro "Nivel de Stop Loss Breakeven" - porque no es un trailing stop loss sino una transferencia de stop loss.

¡Sí, Vasily, eso es! Has entendido y formulado correctamente mi idea de un trailing stop. El parámetro debería haber tenido el mismo nombre desde el principio: "Trailing Stop Loss Level to Breakeven". Mi terminología aún no es perfecta. Gracias.

Sinceramente, Vladimir.

 
MrBrooklin:

Por un lado, tienes razón: puedes detenerte en un punto de equilibrio y escribir un código sólo para él. Pero, en mi opinión, si inicialmente no tienes idea de cómo debe funcionar un trailing stop en general, esta no es la mejor opción. Además, casi todos los Asesores Expertos están escritos en base a una estrategia claramente definida. Como se dice en estos casos, "hay que llegar a un acuerdo en la costa".

Siento que estoy "despertando" al programador de nuevo.

Saludos, Vladimir.

Hola! Si aprendes a mover el Stop Loss paso a paso una vez, puedes moverlo 100 veces después, si es necesario, si tienes espacio suficiente para ello ;)

El Asesor Experto se ajusta a la estrategia, no al revés

 
MrBrooklin:

Sí, Vasily, ¡tiene toda la razón! Has entendido y formulado correctamente mi idea de un trailing stop. El parámetro debía llamarse originalmente así: "Trailing Stop Loss Level to Breakeven". Mi terminología aún no es perfecta. Gracias.

Sinceramente, Vladimir.


Buen día Vladimir. Mira este puesto. Puede modificar en las redes de arrastre desde el nivel de beneficio y no se moleste con el nivel de transferencia dedicado al punto de equilibrio
https://www.mql5.com/ru/forum/352460/page55#comment_18711100
 
Aleksey Masterov:

Buenas tardes, Vladimir. Echa un vistazo a este post mío. Allí en las redes de arrastre puedes modificar desde el nivel de beneficio y no te molestes con el nivel de transferencia destacado hasta el punto de equilibrio
https://www.mql5.com/ru/forum/352460/page55#comment_18711100

Hola Alexey, siento no haber respondido a tu mensaje inmediatamente. Este enlace es muy interesante. He revisado los 11 códigos de arrastre 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 ayuda.

Sinceramente, Vladimir.

 

¡Buenos días a todos y buen humor!

Sigo aprendiendo el lenguaje de programación MQL5. Teniendo en cuenta las correcciones de Vasily Sokolov, el algoritmo de trailing Stop Loss en las posiciones abiertas tiene ahora

el siguiente aspecto:
  1. Crear un EA para automatizar el trabajo de trailing (seguimiento) del nivel de Stop Loss de una posición abierta.
  2. En el Asesor Experto, cree un bloque de parámetros de entrada con dos parámetros: "Nivel de Stop Loss hasta el punto de equilibrio" y "Paso de arrastre".
  3. Cuando llegan nuevas cotizaciones, las procesa utilizando OnTick( ). El arrastre sólo se detiene cuando se produce un nuevo tick en el símbolo actual.
  4. Solicitamos los datos en el momento de la recepción del evento OnTick.
  5. Para cada posición de compra
  6. determinamos dónde está el precio actual en relación con el precio de la posición abierta.
  7. Si el precio actual es superior al de la posición abierta, comprobamos a qué nivel ha subido.
  8. Si el precio actual ha alcanzado el nivel "Stop Loss sin pérdida" especificado en los parámetros de entrada, movemos el Stop Loss a un nivel sin pérdida igual al precio de apertura de la posición decompra. Si no, no hacemos nada.
  9. Si el precio actual ha superado el "Nivel de Stop Loss Breakeven" por el valor igual al "Trailing Stop", el Stop Loss se desplaza desde el nivel de precio de apertura de la posición decompra por el valor igual al "Nivel de Trailing Stop" y así sucesivamente, hasta que el precio alcance el nivel de Take Profit, establecido para esta posición
  10. .
  11. Si el precio gira y alcanza el nivel deStop Loss, la posición se cierra
. [ Versión simplificada de la descripción del trailing stop de Vasily Sokolov:
  1. El procesamiento del trailing stop se produce en la recepción de un nuevo tick, en la función OnTick
.
    El
  1. Trailing Stop consta de dos partes consecutivas:
  2. Parte 1
  3. .
  4. Para cada posición abierta
  5. , se calcula el precio, y tan pronto como se alcanza, su stop-loss se mueve al Breakeven.
  6. Segunda parte. Una vez que el stop loss se ha movido hasta el punto de equilibrio, se activa el algoritmo de stop pull-up para la posición activa, siguiendo el precio.

A continuación, debe seguir el patrón:

Parte 1. Breakeven:
  • Comprar;
  • vender;
Parte 2. Pulling Stop:
  • Comprar;
  • Vender;

Esta variante del algoritmo del Trailing Stop Loss de la posición abierta es definitiva

, y continúo escribiendo el código del programa siguiéndolo.

Saludos, Vladimir.

 
VVT:

Hola! Si aprendes a mover el stop loss paso a paso una vez, entonces puedes moverlo 100 veces si es necesario, siempre y cuando haya espacio para ello ;)

El Asesor Experto se ajusta a la estrategia, no al revés

Hola! Ya mencioné en mi post anterior que tienes razón en tu juicio. El caso es que con la ayuda de Vasily Sokolov formé relativamente rápido un algoritmo para el trailing Stop Loss en una posición abierta, así que lo seguiré.

Saludos, Vladimir.

 
Tienes un enfoque inteligente para escribir el Experto. Y no necesitarás un mercado.
 

Sigo aprendiendo el lenguaje de programación MQL5. Anteriormente publiqué el código del bucle que inicia la enumeración de las posiciones abiertas. Ahora, una vez iniciado el bucle, empezamos a trabajar con el símbolo en el gráfico actual:

     {
     /* Для работы с символом создадим переменную _Symbol, в которой будем хранить имя символа текущего графика.
        Делаем запрос на сервер. Сервер возвращает нам символ соответствующей открытой позиции и автоматически
        выбирает позицию для дальнейшей работы с ней при помощи функций PositionGetDouble, PositionGetInteger,
        PositionGetString. Если получим от сервера ответ о том, что для текущего символа была выбрана позиция для 
        дальнейшей работы с ней, то в торговом терминале выводим соответствующее сообщение во вкладке "Эксперт".*/
      if(_Symbol==PositionGetSymbol(i))
         Print("Выбираем позицию для дальнейшей работы с ней"); //
     }

Periódicamente publicaré el código escrito con mis propios comentarios para proporcionar una rápida retroalimentación. Pido a los participantes de este tema que me corrijan, si hay alguna inexactitud en mi código o comentarios.

Saludos, Vladimir.