Apertura, cierre en el Asesor Experto generado por el Asistente MQL5 - página 2

 
PeretsCHILI:

He decidido el enunciado del problema:

Abrir en largo: la MA rápida cruza la MA lenta de abajo a arriba, más el filtro de tiempo

cerrar en largo: la МА rápida cruza la MA lenta desde arriba hacia abajo

Corto abierto: el МА rápido se cruza con el MA lento de arriba y más el filtro de tiempo

cortos cercanos: el МА rápido se cruza con el MA lento de abajo a arriba.

En el ejemplo mencionado anteriormente se utilizaron para ello CheckOpenLong, CheckCloseLong, CheckOpenShort, CheckCloseShort respectivamente.

Si haces dos módulos, uno con señales de apertura y otro de cierre, entiendo que el primero utilizaría LongCondition y ShortCondition, como en la librería de módulos estándar. ¿Qué utilizar en el segundo módulo para cerrar?


Y lo más importante, ¿dónde? ¿Qué significa "... cruza..."? Eso es lo bonito :)

 

Hombre, estoy más confundido)) El artículo"¡Crear un robot de trading en 6 pasos!" acaba de presentar el primer módulo con señales para abrir al cruzar dos MAs.

https://www.mql5.com/ru/articles/367

¿Qué quiere decir con "cruce"? Cuando la diferencia entre la FastMA-SlowMA de la primera barra es mayor que cero y la de la segunda barra es menor que cero, la МА rápida cruza la MA lenta desde abajo hacia arriba. Se habla de top-down cuando la diferencia entre la primera barra es menor que cero y la segunda barra es mayor que cero.

Has dicho que el tema se puede resolver creando dos módulos con señales de apertura y cierre. ¿Puedo utilizar el módulo del artículo como base para crear un módulo con señales de cierre?

Создай торгового робота за 6 шагов!
Создай торгового робота за 6 шагов!
  • 2012.06.01
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы не знаете, как устроены торговые классы, и пугаетесь слов "Объектно-ориентированное программирование"? На самом деле вовсе не обязательно всё это знать, чтобы написать свой собственный модуль торговых сигналов - достаточно следовать простым правилам. Всё остальное сделает Мастер MQL5, и вы получите готовый торговый робот!
 
PeretsCHILI:

...

¿Qué significa "cruces"? Una MA rápida cruza una MA lenta de abajo a arriba es cuando la diferencia entre la FastMA-SlowMA en la primera barra es mayor que cero y menor que cero en la segunda barra. Se habla de top-down cuando la diferencia de los valores FastMA-SlowMA es menor que cero en la primera barra y mayor que cero en la segunda.

...


Eso es bueno. Cuando se especifica la tarea es muy buena.


PeretsCHILI:

...

Has dicho que el tema se puede resolver creando dos módulos con señales de apertura y cierre. ¿Se puede utilizar el módulo con señales de cierre como base para el módulo del artículo anterior?

No lo dije correctamente. El módulo de señales de trading produce señales "Es hora de ABRIR COMPRA" y "Es hora de ABRIR VENTA". Es decir, dan una señal de OPEN. Y el resto lo decide CExpert: cerrar e invertir una posición existente o abrir una posición.



Toma el módulo del artículo¡Crea un robot de trading en 6 pasos!- ¿Qué problema tiene?

 

Entonces, quiero escribir un módulo con señales de apertura por el cruce de dos MAs con un filtro de tiempo, y el cierre se produjo en los siguientes casos: la llegada de la señal opuesta; la llegada de SL; la llegada de TP. Puede escribir un módulo (llamémoslo Cross2MA) según el artículo y generar un Asesor Experto con los módulos Cross2MA y SignalITF, pero esto no funcionará, porque el filtro SignalITF también se comprobará al cerrar.

Por ejemplo: Tenemos 2MA y SignalITF tiene una operación sólo los lunes. El lunes se recibe una señal de compra y se abre una posición de compra; al expirar el tiempo el martes, cuando no se alcanza ni el Sl ni el TP, se produce un cruce inverso de la 2MA y la posición de compra debería cerrarse, pero no se cierra porque es el siguiente día de la semana.

Cómo debería ser: mismas condiciones, 2MA, operar los lunes: el lunes, hay una señal de compra, abrimos una posición de compra, el martes tenemos una señal de venta, pero por ser martes no abrimos una posición de venta, sólo cerramos una posición de compra.

Parece que hay dos comandos en LongCondition: abrir la compra y cerrar la venta. Tenemos que separarlos de alguna manera)

 

"Las moscas se separan, las chuletas se separan".


PeretsCHILI:

Entonces, quiero escribir un módulo con señales para abrir al cruzar dos MAs con un filtro de tiempo, y para cerrar en los siguientes casos: llegada de la señal contraria; llegada de SL; llegada de TP. ...

Elmódulo de señales de negociación sólo puede mostrar dos tipos de señales: "Es el momento de abrir la COMPRA" y "Es el momento de abrir la VENTA".

No controlaremos el stop loss y el take profit, ya que si se cierra una posición de stop loss o take profit, esto sólo significa una cosa: la posición está cerrada, y es el momento de ver lo que genera el módulo de señales de trading (en otras palabras, cuando el número de posiciones es cero, iniciamos un círculo: esperar una señal).

Además: se trata de una interpretación errónea del funcionamiento de los módulos, ya que no existe una "señal opuesta", sino que puede ser la siguiente:

  1. tenemos una posición abierta de COMPRA y recibimos una señal de"PAGA PARA ABRIR LA VENTA".
  2. o tiene una posición abierta de VENTA y aparece la señal de"PAGAR PARA COMPRAR".
En ambos casos se cerrará la posición actual y se abrirá una nueva.


 
Andy:
LongCondition puede simplemente abrir una compra y mantenerla independientemente de cualquier condición, y hacer que se cierre en el stop profit o manualmente?

La clase LongCondition CExpertSignal no puede, en principio, "retener" nada. CExpertSignal sólo da dos señales:"Hora de abrir la compra" y "Hora de abrir la venta".


¿Quiere que su Asesor Experto construido por el asistente no se cierre nunca? A continuación, cambie el parámetro de entrada del Asesor Experto "// Valor de umbral de la señal para cerrar [0...100]" - establezca la barra de escalas para cerrar en "100".

 
Andy:
¿Qué los cierra entonces?

Objeto de la clase CExpert - sondea todos los módulos de señal, evalúa sus pesos y suma la puntuación resultante: peso de la señal




 

Entiendo lo de la interpretación de los módulos. Todo este baile se debe a que voy a optimizar mi Asesor Experto de la siguiente manera: 1. Optimización de dos MA (periodo, desplazamiento, alisado), paradas y retiradas por cero; 2. 3. Optimización del arrastre.

El problema es el siguiente: si genero un Asesor Experto con el filtro Cross2MA y SignalITF funcionará así (mismas condiciones, cero stops y tomas):

Lunes, FastMA cruza SlowMA de abajo hacia arriba, abre posición de compra, la posición se mantiene hasta el siguiente lunes, en el siguiente lunes podría haber 3 variantes:

1. FastMA cruza SlowMA de arriba a abajo - la posición actual está cerrada, la posición de venta está abierta.

2. No se observan cruces - se mantiene la posición.

3. FastMA se cruza con SlowMA desde abajo hacia arriba - se mantiene la posición.

Y así hasta el siguiente lunes. Pueden pasar muchas cosas entre los lunes, 2 MAs pueden cruzarse varias veces y el precio bajará.

Podemos implementar lo siguiente (mismas condiciones): El martes, la FastMA cruza la SlowMA desde arriba hacia abajo, la apertura de la posición de Venta no se producirá, porque es martes y no lunes, pero la posición actual se cerrará.

 

Creo que he descubierto cómo hacerlo aplicando el umbral.

Que Cross2MA devuelva 80 y SignalITF devuelva 40.

El umbral para abrir ponemos 50, el umbral para cerrar ponemos 30.

Si ambos módulos proporcionan una señal, la media aritmética devolverá 60 que es mayor que el umbral de 50, entonces se abre la posición.

Si sólo se activa el Cross2MA, la media aritmética es 40, mayor que 30, se cierra la posición actual; si es menor que 50, no se abre una nueva posición.

¿Verdad?

Excepto que SignalITF devuelve empty_value.

 
PeretsCHILI:

Creo que he descubierto cómo hacerlo aplicando el umbral.

Que Cross2MA devuelva 80 y SignalITF devuelva 40.

El umbral para abrir ponemos 50, el umbral para cerrar ponemos 30.

Si ambos módulos proporcionan una señal, la media aritmética devolverá 60 que es mayor que el umbral de 50, entonces se abre la posición.

Si sólo se activa el Cross2MA, la media aritmética es 40, mayor que 30, se cierra la posición actual; si es menor que 50, no se abre una nueva posición.

¿Verdad?

Excepto que SignalITF devuelve empty_value.


Vas en la dirección correcta :) Todos los controles para los umbrales de apertura y cierre son a través de los parámetros de entrada del Asesor Experto generado por el Asistente MQL5.

Razón de la queja: