Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 351

 

¡Buenos días!

El problema surgió de la nada, el Asesor Experto estaba funcionando, sin problemas, pero en cuanto inserté una nueva función (trailing stop), OrderSelect no funcionó en todo mi EA y el error 4051 ERR_INVALID_FUNCTION_PARAMVALUE - Invalid value of function parameters. Al principio no lo entendí, pensé que podría haber cambiado algo en alguna parte, quité el trailing stop y devolví todo como estaba, pero OrderSelect sigue generando error.

Aquí está el código por si acaso:

         for(int i = OrdersTotal(); i > 0; i--)
           {
            if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)
              {
               if(OrderType() == OP_SELL)
                 {
                  if(!OrderClose(OrderTicket(), Lots, Ask, slippage, clrRed))
                    {Print("Error Order Close SELL = ", GetLastError());}
                 }
              }
            else
              {Print("Error order select, try order close SELL = ", GetLastError());}
           }


 
Vitaliy Sendyaev:

¡Buenos días!

El problema surgió de la nada, el Asesor Experto estaba funcionando, sin problemas, pero en cuanto inserté una nueva función (trailing stop), OrderSelect no funcionó en todo mi EA y el error 4051 ERR_INVALID_FUNCTION_PARAMVALUE - Invalid value of function parameters. Al principio no lo entendí, pensé que podría haber cambiado algo en alguna parte, quité el trailing stop y devolví todo como estaba, pero OrderSelect sigue generando error.

Aquí está el código por si acaso:



Este no es el código completo. Lo más probable es que se haya eliminado un paréntesis en alguna parte.
 
Vitaliy Sendyaev: OrderSelect genera el error 4051 ERR_INVALID_FUNCTION_PARAMVALUE - Valor no válido de un parámetro de función

Aquí está el código por si acaso: for(int i = OrdersTotal(); i > 0; i--)

necesitamos que para (int i = OrdersTotal() -1; i>=0; i--) los pedidos se numeren empezando por cero, de modo que el número mayor sea 1 menos que el número

 
STARIJ:

necesitamos que para (int i = OrdersTotal() -1; i>=0; i--) los pedidos se numeren a partir de cero y por tanto el número más alto sea 1 menos que el número

¡Exactamente! No me di cuenta de que... Necesito dormir más


 
STARIJ:

Necesitamos que para (int i = OrdersTotal() -1; i>=0; i--) los pedidos se numeren a partir de cero y por tanto el número más alto sea 1 menos que el número


Gracias.

 
Valerius:

Esto no es serio... Qué son (input y extern) para entonces....

¿Qué es lo que no es serio? Has hecho una pregunta en la rama de código y has obtenido una respuesta adecuada.
Pues bien, si no se te ha ocurrido reiniciar el terminal, ya se te ha contestado: servicedesk.

 
Valerius:¿Qué hago si, por ejemplo, establezco los ajustes en el EA hoy, y al día siguiente algunos de los ajustes están en blanco?

Es difícil adivinar cómo lo has hecho. No quiero mostrarte el código del Asesor Experto, y me da pereza mirarlo todo. Haga una copia con otro nombre, borre todo excepto los parámetros y vacíe la función OnTick (o Start ???). ¿Sigue el efecto? Mostrar el código resultante

 
Vitaliy Sendyaev: Gracias.

¿Ha servido de algo? ¿Cómo funcionaba antes?

 

Lo siento, pero no entiendo por qué oncalculate debe pasar valores de variables predefinidas si son globales y también están disponibles

 
ijonhson:

Hola, quiero hacer un EA basado en un indicador, he copiado el código del indicador en ontick, me faltan las variables de la función onCalculate, tengo que conseguirlo todo a través de copytime copyhigh copylow, etc. o hay alguna forma más fácil y rápida?

iCustom al rescate

iCustom - Технические индикаторы - Справочник MQL4
iCustom - Технические индикаторы - Справочник MQL4
  • docs.mql4.com
[in] input-параметры пользовательского индикатора, разделенные запятыми. Тип и порядок следования параметров должен соответствовать. Если параметры не указаны, то будут использованы значения по умолчанию.
Razón de la queja: