Debate sobre la implantación de los consejeros. - página 6

 
Ivan_Invanov:
Hola. ¿Podría decirme cuál es la señal de entrada al mercado de este EA y dónde se encuentra en el código?

Se conecta el módulo de señales del indicador personalizado en la línea

//--- available signals
#include <Expert\Signal\SignalMA.mqh>


y aquípuede comprobarlas señales de trading de este indicador


En este momento hay suficiente información y hay que digerirla. También le recomiendo que lea los siguientes artículos

Документация по MQL5: Стандартная библиотека / Модули стратегий / Модули торговых сигналов / Сигналы индикатора Moving Average
Документация по MQL5: Стандартная библиотека / Модули стратегий / Модули торговых сигналов / Сигналы индикатора Moving Average
  • www.mql5.com
Цена пересекла индикатор сверху вниз(цена Open анализируемого бара выше линии индикатора, а цена Close - ниже), но индикатор растет (слабый сигнал на отбой от линии индикатора). Цена пересекла индикатор нижней тенью (цены Open и Close анализируемого бара выше линии индикатора, а цена Low ниже) и индикатор растет (сигнал на отбой от линии...
 

Chicos, aquí hay una pregunta

Cuál es la forma correcta de hacer una restricción de optimización de parámetros para que no se superpongan, demasiados excesos innecesarios.

input  int                Profit_Lev1        = 5;           // |     1-я фиксация прибыли 
sinput string _p1="";//---
input  int                Profit_Lev2        = 7;           // |     2-я фиксация прибыли 
sinput string _p2="";//---
input  int                Profit_Lev3        = 10;          // |     3-я фиксация прибыли


Tenemos 3 niveles de toma de beneficios, el primero no debe ser mayor que el segundo y el tercero y el segundo no debe ser mayor que el tercero

//+------------------------------------------------------------------+
//| Проверяет внешние параметры                                      |
//+------------------------------------------------------------------+
bool CheckInputParameters()
  {
     if(Profit_Lev1 >= Profit_Lev2  || Profit_Lev1 >= Profit_Lev3 || Profit_Lev2 >= Profit_Lev3)
       {
         Print(_Symbol,
               ": 1-й уровень профита ("+IntegerToString(Profit_Lev1)+") "
               "должен быть больше 2-го и 3-го уровня профита ("+IntegerToString(Profit_Lev2)+"   "+IntegerToString(Profit_Lev3)+")!");
         return(false);
        }                     
//--- Параметры корректны
   return(true);
  }

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  { 


//--- Проверим внешние параметры
   if(!CheckInputParameters())
      return(INIT_PARAMETERS_INCORRECT);


//--- Инициализаия прошла успешно
   return(INIT_SUCCEEDED);
  }


Comienzo la optimización

El registro comienza a tener un montón de errores, tal vez algo que reinicia el robot


Pero el caso es que el robot se optimiza durante 20 minutos y la optimización se detiene, aunque si no especifico un límite y dejo que las cosas sigan su curso, donde el primero puede ser mayor que el segundo, entonces la optimización está en pleno funcionamiento más de un día.

Quiero que mis TPs vayan en orden y que no salten unos sobre otros, porque hay algunas lógicas más en el algoritmo para cada nivel de TP en forma de CUE y transferir los CUEs sobre estos niveles.

 
Konstantin Seredkin:

Chicos, aquí hay una pregunta

Cuál es la forma correcta de hacer una restricción de optimización de parámetros para que no se superpongan, demasiados excesos innecesarios.


Tenemos 3 niveles de toma de beneficios, el primero no debe ser mayor que el segundo y el tercero y el segundo no debe ser mayor que el tercero

No introduzca tres "niveles de beneficios", sino "nivel básico", "segundo nivel por encima del nivel básico" y "tercer nivel por encima del segundo nivel".

Eso es todo. Hacemos un sobrepaso completo.

Si queremos que los tres niveles encajen en algún rango fijo, entonces introducimos las variables "anchura del rango" y dos "límites entre niveles", donde el primer límite es una fracción del rango, y el segundo límite es una fracción de la parte restante (después del primer límite) del rango.

Yo lo haría así...

 
Georgiy Merts:

No introduzca tres "niveles de beneficio", sino "nivel básico", "superación del segundo nivel sobre el nivel básico" y "superación del tercer nivel sobre el segundo nivel".

Eso es todo. Hacemos un rebasamiento completo.

Si queremos que los tres niveles encajen en algún rango fijo, entonces introducimos las variables "anchura del rango" y dos "límites entre niveles", donde el primer límite es una fracción del rango, y el segundo límite es una fracción de la parte restante (después del primer límite) del rango.

Yo lo haría así...

Hay alguna diferencia si compruebo el primer nivel con el segundo y el tercero, o si compruebo el tercer nivel con el primero y el segundo, porque el significado es el mismo.
 
Konstantin Seredkin:
Así que desde el cambio de lugares del sumando será la diferencia que compruebe el primer nivel con el segundo y el tercero, que el tercer nivel con el primero y el segundo comprobar, el significado de la misma.

Tiene parámetros inválidos cuando el primer nivel es mayor que el segundo, etc., y en la versión propuesta estas comprobaciones desaparecerán, y todos los conjuntos serán correctos.

 
Konstantin Seredkin:
Entonces, ¿habrá alguna diferencia si compruebo el primer nivel con el segundo y el tercero, o compruebo el tercer nivel con el primero y el segundo, el significado es el mismo?

La pregunta era más o menos cómo pasar por encima de la "no superposición". Si el primer nivel es, por ejemplo, el 10% del rango, no hay manera de que el segundo nivel lo suba, ya que se mide en el 90% restante.

 
Georgiy Merts:

La pregunta era más o menos cómo pasar por encima de la "no superposición". Si el primer nivel, por ejemplo, es el 10% del rango - no hay manera de que el segundo nivel suba a él, ya que se mide en el 90% restante.

Todavía no lo entiendo.

No son sólo variables estáticas, son variables externas en las que establezco 3 take profit.


El robot negocia 3 lotes

en 100 pips quiero cerrar 1 lote = este es el primer nivel de beneficio

200 lotes más = segundo nivel de beneficio

300 lotes más = tercer nivel de beneficio


Pero con el primer nivel el robot establece un stop loss en Breakeven

En el segundo nivel transfiere este tope al primer nivel de beneficios.

Si no existiera el punto de equilibrio, no importaría cómo el optimizador seleccionara estos niveles, aunque el primer nivel fuera de 300, el segundo de 50 puntos y el tercero de 150

pero el método Breakeven necesita un orden preciso, así que no quiero que el optimizador los elija así

300 50 150

50 300 150

etc.

Sólo quiero que las cosas vayan con normalidad.

50 100 200

150 160 170

etc.

Comprobación de la corrección de los parámetros introducidos

//+------------------------------------------------------------------+
//| Проверяет внешние параметры                                      |
//+------------------------------------------------------------------+
bool CheckInputParameters()
  {
     if(Profit_Lev1 >= Profit_Lev2  || Profit_Lev1 >= Profit_Lev3 || Profit_Lev2 >= Profit_Lev3)
       {
         Print(_Symbol,
               ": 1-й уровень профита ("+IntegerToString(Profit_Lev1)+") "
               "должен быть больше 2-го и 3-го уровня профита ("+IntegerToString(Profit_Lev2)+"   "+IntegerToString(Profit_Lev3)+")!");
         return(false);
        }                     
//--- Параметры корректны
   return(true);
  }

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  { 


//--- Проверим внешние параметры
   if(!CheckInputParameters())
      return(INIT_PARAMETERS_INCORRECT);


//--- Инициализаия прошла успешно
   return(INIT_SUCCEEDED);
  }

Al optimizar se escribe que hubo saltos en un montón de carreras, es bueno que se restablezcan los ajustes que no se pueden aplicar, pero el optimizador funciona durante unos minutos y luego se apaga.

Supongo que este cheque se tiene que jugar de otra manera.

Lo que sugieres no puedo entenderlo sin un ejemplo de lo que hablas.

 
Konstantin Seredkin:

Todavía no lo entiendo.

No se trata sólo de variables estáticas, sino de variables externas que establezco 3 toman beneficios en


El robot está negociando 3 lotes

en 100 pips quiero cerrar 1 lote = este es el primer nivel de beneficio

200 lotes más = segundo nivel de beneficio

300 lotes más = tercer nivel de beneficio


Pero con el primer nivel el robot establece un stop loss en Breakeven

En el segundo nivel transfiere este tope al primer nivel de beneficios.

Si no existiera el punto de equilibrio, no importaría cómo el optimizador seleccionara estos niveles, aunque el primer nivel fuera de 300, el segundo de 50 puntos y el tercero de 150

pero el método Breakeven necesita un orden preciso, así que no quiero que el optimizador los elija así

300 50 150

50 300 150

etc.

Sólo quiero que vaya con normalidad.

50 100 200

150 160 170

etc.

Comprobación de la corrección de los parámetros introducidos

Al optimizar se escribe que hubo saltos en un montón de carreras, es bueno que se restablezcan los ajustes que no se pueden aplicar, pero el optimizador funciona durante unos minutos y luego se apaga.

Supongo que este cheque se tiene que jugar de otra manera.

No puedo entender lo que sugieres sin un ejemplo.

En la entrada, no se establecen los niveles en sí, sino las distancias entre ellos.

input uint firstLevel=20 ; // пунктов от цены до первого ТП

input uint secondDistance=30; // пунктов от первого ТП до второго

input uint thirdDistance=50; // пунктов от второго ТП до конечного

Entonces el optimizador no podrá intercambiar físicamente los niveles

 

Buenas tardes, hay chicos que de forma remota montan un EA en mt4, que comercia automáticamente, en una máquina vm en la nube de Yandex. Si no me equivoco, podré tener una copia del juego en mi disco duro y hacerlo funcionar. Cp

P.s perdón por mi lenguaje obtuso, no entiendo la terminología y la esencia de estas cosas.

 

¡Buenas tardes!

He decidido escribir un EA. En este sentido, es necesario cambiar las señales que utilizará el EA para abrir órdenes. Por ejemplo, el indicador DeMarker - Quiero que mi Asesor Experto abra órdenes sólo cuando este indicador cruce 0,3 de abajo hacia arriba (compra) y 0,7 de arriba hacia abajo (venta). ¿Entiendo correctamente que tengo que corregir el archivo SignalDeMarker.mqh (las secciones de código con los comentarios "Voting" that price will grow. y "Voting" that price will fall.)?