[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 266

 
ScioMe:


Veo que el FP es el factor de beneficio. ¿Y qué es FF? ¿Es posible hacer que el probador emita estos valores, como emite el MO?

Si te doy el MO, la rentabilidad, el número de operaciones, la fecha, el drawdown máximo, ¿puedes decir algo sobre la calidad del EA?


FS es el factor de recuperación = beneficio neto/disposición máxima.

ver. "calidad de un EA"...:-)))

 
ScioMe:

Si te doy el MO, la rentabilidad, el número de operaciones, la fecha, el drawdown máximo, ¿puedes decir algo sobre la calidad del EA?


Es más fácil que la cabecera del informe de un probador. Y de todos modos: es muy importante saber cómo se obtuvo el resultado, una cosa es conocer el mejor resultado de optimización, y otra cosa es conocer los principios básicos del Asesor Experto. Y sólo entonces, con algo de experiencia, podremos diagnosticar al experto con una probabilidad de éxito superior a la de una conjetura (digamos 7-8 de cada 10 casos).
 
Perdone mi ignorancia, pero ¿qué es un delantero?
 

Echa un vistazo al artículo "Probando y optimizando asesores expertos".

Allí se describe en detalle - lo que es, una prueba de avance.

 

Por favor, ayuda. Acabo de empezar a programar en mql

Necesito hacer algo así.

No necesito escribir ningún código, aunque el propósito de este trabajo es

me gustaría comprobar 1 orden por día. si una orden ya ha sido abierta y cerrada, expert no funcionará ese día.

Si una orden se abre y se cierra con un saldo negativo, el Asesor Experto dejará de funcionar durante el día.

 

Echa un vistazo a https://www.mql5.com/ru/forum/131859

Las funciones de la página 4 le serán (probablemente) útiles aquí:

isTradeToDay - Devuelve la bandera del comercio de hoy

isLossLastPos - Devuelve la bandera de pérdida de la última posición.

isCloseLastPosByStop - Devuelve la bandera para cerrar la última posición por parada
isCloseLastPosByTake - Devuelve una bandera para cerrar la última posición por Take.

NumberOfBarCloseLastPos - Devuelve el número de cierre de barra de la última posición o -1. (=0 en tfD - para el cierre de hoy)

NumberOfLossPosToday - Devuelve el número de posiciones perdedoras cerradas hoy.

etc.

 

Gracias.

 

Hola. ¿Podría ayudarme con la operación While? Hice un script que debía dibujar líneas horizontales entre niveles, pero sólo dibuja la primera línea y luego se cuelga. ¿Qué estoy haciendo mal?

Se adjunta el código.

//+------------------------------------------------------------------+

//| H_LINES.mq4

//| Copyright © 2011, MetaQuotes Software Corp.

//| http://www.metaquotes.net |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2011, MetaQuotes Software Corp.

#enlace de propiedad "http://www.metaquotes.net"


//+------------------------------------------------------------------+

//| función de inicio del programa de script |

//+------------------------------------------------------------------+

double Nivel_mínimo = 1,40000; /Límite inferior

double Nivel_máximo = 1.60000; //Límite superior

double Step = 200; // Step (distancia entre líneas) en pips

int Lines_Width = 2; // Ancho de línea

color Lines_Color = Verde; //Color de las líneas

double i; //variable formal


int inicio()

{

//----

i=Nivel_Mínimo;

while ( i < Max_Level )

{

ObjectCreate ("H_LINE",OBJ_HLINE,0,0,i);

ObjectSet ("H_LINE",OBJPROP_COLOR,Lines_Color);

ObjectSet ("H_LINE",OBJPROP_WIDTH,Lines_Width);

i = Nivel_mínimo + (Paso/10000);

}

//----

return(0);

}

//+------------------------------------------------------------------+

Gracias.

 
Gerkl:

Hola. ¿Podría ayudarme con la operación While? Hice un script que debía dibujar líneas horizontales entre niveles, pero sólo dibuja la primera línea y luego se cuelga. ¿Qué estoy haciendo mal?

Se adjunta el código.

//+------------------------------------------------------------------+

//| H_LINES.mq4

//| Copyright © 2011, MetaQuotes Software Corp.

//| http://www.metaquotes.net |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2011, MetaQuotes Software Corp.

#enlace de propiedad "http://www.metaquotes.net"


//+------------------------------------------------------------------+

//| función de inicio del programa de script |

//+------------------------------------------------------------------+

double Nivel_mínimo = 1,40000; /Límite inferior

double Nivel_máximo = 1.60000; //Límite superior

double Step = 200; // Step (distancia entre líneas) en pips

int Lines_Width = 2; // Ancho de línea

color Lines_Color = Verde; //Color de las líneas

double i; //variable formal


int inicio()

{

//----

i=Nivel_Mínimo;

while ( i < Max_Level )

{

ObjectCreate ("H_LINE",OBJ_HLINE,0,0,i);

ObjectSet ("H_LINE",OBJPROP_COLOR,Lines_Color);

ObjectSet ("H_LINE",OBJPROP_WIDTH,Lines_Width);

i = Nivel_mínimo + (Paso/10000);

}

//----

return(0);

}

//+------------------------------------------------------------------+

Gracias.

en primer lugar:

i = Nivel_mínimo + (Paso/10000);

su i no cambia


en segundo lugar

ObjectCreate ("H_LINE",OBJ_HLINE,0,0,i);

cada objeto debe tener su propio nombre único

 

Ayuda pdz.... Siguiendo estudiando el tutorial - me encontré con algo que no me queda claro, no puedo entender

//--------------------------------------------------------------------
// callindicator.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
extern int Period_MA = 21;            // Период расчётной МА
bool Fact_Up = true;                  // Факт сообщения, что цена..
bool Fact_Dn = true;                  //..находится выше или ниже МА
//--------------------------------------------------------------------
int start()                           // Спец. функция start  {
   double MA;                         // Значение МА на 0 баре    
//--------------------------------------------------------------------
                                      // Обращение к функции техн.инд.
   MA=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0); 
//--------------------------------------------------------------------
   if (Bid > MA && Fact_Up == true)   // Проверка прохода вверх     {
      Fact_Dn = true;                 // Сообщать о цене выше МА
      Fact_Up = false;                // Не сообщать о цене ниже МА
      Alert("Цена находится выше MA(",Period_MA,").");// Сообщение      }
//--------------------------------------------------------------------
   if (Bid < MA && Fact_Dn == true)   // Проверка прохода вниз     {
      Fact_Up = true;                 // Сообщать о цене ниже МА
      Fact_Dn = false;                // Не сообщать о цене выше МА
      Alert("Цена находится ниже MA(",Period_MA,").");// Сообщение      }
//--------------------------------------------------------------------
   return;                            // Выход из start()  }
//--------------------------------------------------------------------

Una simple función que me dice si el precio está por encima o por debajo de la EMA. Pero esa no es la cuestión.

¿por qué cuando Fact_Dn y Fact_UP toman valores verdaderos o falsos en el inicio de la función, estos valores también son tomados por las variables globales? No es que usemos return(Fact_Up) por ejemplo... no está claro... ¿o no podemos utilizarlo?

Razón de la queja: