Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 439

 
Leanid Aladzyeu:
...
¿Cómo puedo obtener los valores de las matrices sin llamar a la función? ¿O cómo hacer que un array recuerde los últimos valores que se escribieron?
...


Para recuperar algo de un array, primero hay que escribir ese "algo" en el array.

Leanid Aladzyeu:
...
¿O cómo hacer que un array recuerde los últimos valores que se escribieron?
...
Para qué condiciones: ¿Debe guardarse la matriz cuando se cambia el marco temporal o después de recargar el terminal?
 
Karputov Vladimir:


Si quiero tomar algo de un array, primero tengo que escribirlo en el array.

Para qué condiciones: ¿se debe guardar la matriz al cambiar el marco temporal del gráfico o después de recargar el terminal?

no durante los trabajos de la EA

Si pongo returnee en la función, cuando hay una orden en el mercado, me da arrays nulos (pongo returnee antes de anular los arrays),

 
Leanid Aladzyeu:

Si una orden está en el mercado me da cero arrays (pongo el retornado antes de que los arrays se pongan a cero),

¿Qué son las matrices que "da" la orden? ¿Dónde se declaran y dónde se rellenan? También, por favor, inserte el código correctamente.
 
Karputov Vladimir:

Los parámetros de la función deben ser revertidos a la versión original, de lo contrario simplemente no serán llamados:

Este es el código del archivo SignalAC estándar

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

//| "Votando" que el precio crecerá. |

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

int CSignalAC::LongCondition(void)

Lo entiendo así: el código envía una señal y los parámetrosdouble& price,double& sl,double& tp,datetime& expiration son necesarios para colocar una orden,

¿esto se gestiona con otro bloque de EA?

 

corregido el código a una variante:

int CSampleSignal::ShortCondition(void)

El experto comenzó a hacer algo, ¡gracias por el consejo!

 
pr0gre5:

corregido el código a una variante:

int CSampleSignal::ShortCondition(void)

El experto comenzó a hacer algo, ¡gracias por el consejo!

No hay de qué. Pide, pide cuando y donde lo necesites :)
 

Esta pregunta, ¿sirve este código para limitar el cálculo, contando sólo una vez en una nueva barra?

static datetime TimeN=0;
   datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return(0);

 
-Aleks-:

Esta pregunta, ¿sirve este código para limitar el cálculo - contar sólo una vez en una nueva barra?

static datetime TimeN=0;
   datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return(0);

Si la nueva barra está en un marco temporal M1, entonces imprimimos un mensaje:

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   static datetime TimeN;
   datetime TimeC=iTime(NULL,PERIOD_M1,0);
   if(TimeN==TimeC)
      return;
   TimeN=TimeC;
// новый бар, выполняем код
   Print("New bar");
   return;
  }
 
Karputov Vladimir:

Si la nueva barra está en el marco temporal M1, imprime un mensaje:

Así que estoy en lo cierto, ¿esto es un cheque para un nuevo bar?
 
-Aleks-:
Así que estoy en lo cierto, ¿es un nuevo control de barra?
Si te refieres a mi código, entonces sí, mi código es un nuevo control de barras.