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

 
Vitaly Muzichenko:

Puede alguien por favor aconsejar que ha encontrado y sabe cómo llegar de esta línea:

29301441,1475681547,0,0.01,EURUSD,1.1207,0.0000,0.0000,1475690944,1.1213,0.00,0.00,0.60,,13134545

así:

-118,120,-39,52,-58,-76,62,-66,-49,-97,-38,-86,-125,-52,-70,-96,89,-23,13,-91,111,74,-79,16,65,127,116,-76,99,5,27,48,42,44,55,-94,84,-72,-63,115,26,18,-47,-46,5,-55,32,68,114,-20,46,-7,79,7,82,78,-91,41,82,-114,121,112,-64,-106,35,-10,24,-128,58,-81,-69,92,34,79,64,-97,52,-95,127,-18,-46,104,104,85,56,93,8,100,14,-52,-88,-38,-28,-76,-49,35,-74,27,120,74,53,124,-104,-59,-1,41,-127,-99,103,104,-38,2,47,-93,68,35,-15,44,123,47,78,-117,15,-114,-46,-98,-108,-26,

Gracias.

La segunda cadena es más que similar a una matriz de caracteres con signo. Es decir, toda la "cadena" podría ser simplemente una estructura binaria impresa byte a byte, y puede haber sido encriptada primero, por lo que no hay 0
 

Buenas tardes.

No soy programador, pero quiero hacer que mis EAs me envíen notificaciones por correo electrónico de las señales. La tarea es sencilla y parece funcionar, pero cuando se cumple la condición de la señal envían infinidad de correos electrónicos.

Por favor, ayúdenme a enviar sólo un correo electrónico en cada señal.

Aquí hay un ejemplo de mi código para la media móvil simple. ¿Qué debo añadir o arreglar?

int init()
  {
   return(0);
  }
start()
  {
//-----------------------------------------------------------------------------------------------------
// Сигналы
//-----------------------------------------------------------------------------------------------------
if(Open[1]>ma && Close[1]<ma)  {
bool res = SendMail("Сигнал", " Покупай");
}
if(Open[1]<ma && Close[1]>ma) {
SendMail("Сигна", "Продавай");
}
//-------------------------------------------------------------------
   return(0);
  }

 
ev85:

Buenas tardes.

No soy programador, pero quiero hacer que mis EAs me envíen notificaciones por correo electrónico de las señales. La tarea es sencilla y parece funcionar, pero cuando se cumple la condición de la señal envían infinidad de correos electrónicos.

Por favor, ayúdenme a enviar sólo un correo electrónico en cada señal.

Aquí hay un ejemplo de mi código para la media móvil simple. ¿Qué debo añadir o arreglar?


Añade la fecha mailTime y recuerda la hora antes de enviar, para no tener que reenviar el mensaje

datetime mailTime=0;
int init()
  {
   return(0);
  }

start()
  {
//-----------------------------------------------------------------------------------------------------
// Сигналы
//-----------------------------------------------------------------------------------------------------
if(Open[1]>ma && Close[1]<ma && Time[1]>mailTime)  {
bool res = SendMail("Сигнал", " Покупай");
if (res) mailTime=Time[1];
 }
if(Open[1]<ma && Close[1]>ma && Time[1]>mailTime) {
bool res=SendMail("Сигна", "Продавай");
if (res) mailTime=Time[1];
 }
//-------------------------------------------------------------------
   return(0);
  }

ps. es el momento de cambiar de start() a OnTick() en los EAs

pps. mailTime también debe guardarse en las variables globales del terminal en caso de reinicio del Asesor Experto.

 
Maxim Kuznetsov:

añadir datetime mailTime y recordar la hora de pre-envío para no tener que reenviar el email

ps. Es hora de cambiar de start() a OnTick() en los EAs

pps. El mailTime también debe guardarse en las variables globales del terminal por si se reinicia el EA.

No funcionó. Sigue enviando los mensajes todo el tiempo.

 
ev85:

Buenas tardes.

No soy programador, pero quiero hacer que mis EAs me envíen notificaciones por correo electrónico de las señales. La tarea es sencilla y parece funcionar, pero cuando se cumple la condición de la señal envían infinidad de correos electrónicos.

Por favor, ayúdenme a enviar sólo un correo electrónico en cada señal.

Aquí hay un ejemplo de mi código para la media móvil simple. ¿Qué debo añadir o arreglar?



static datetime TimeN=0;
int init()
  {
   return(0);
  }
start()
  {
//Операции выполняются только при появлении следующего бара
   datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return;
   TimeN=TimeC;

//-----------------------------------------------------------------------------------------------------
// Сигналы
//-----------------------------------------------------------------------------------------------------
if(Open[1]>ma && Close[1]<ma)  {
bool res = SendMail("Сигнал", " Покупай");
}
if(Open[1]<ma && Close[1]>ma) {
SendMail("Сигна", "Продавай");
}
//-------------------------------------------------------------------
   return(0);
  }
 
-Aleks-:
Con este año no se envía ningún correo electrónico((
 
ev85:
Con este año no se envía ningún correo electrónico((
¿A qué equivale tu madre? ¿Es la ma en la barra de cero por casualidad?
 
-Aleks-:
Entonces, ¿a qué equivale ma? ¿No es ma en la barra de cero por casualidad?

ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);

 
ev85:

ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);

Entonces todo está claro. El Mach en la barra cero se recalcula constantemente, por lo que las señales llegarán en cada tick.

Inténtalo de esta manera:

static datetime TimeN=0;

int Signal=0;


int init()

  {

   return(0);

  }

start()

  {

//Операции выполняются только при появлении следующего бара

   datetime TimeC=iTime(NULL,TF,0);

   if(TimeN==0)TimeN=TimeC;

   if(TimeN==TimeC && Signal==1) return;

   TimeN=TimeC;

   Signal=0;


//-----------------------------------------------------------------------------------------------------

// Сигналы

//-----------------------------------------------------------------------------------------------------

if(Open[1]>ma && Close[1]<ma)  

{

bool res = SendMail("Сигнал", " Покупай");

Signal=1;

}

if(Open[1]<ma && Close[1]>ma) 

{

SendMail("Сигнал", "Продавай");

Signal=1;

}

   return(0);

  }


En general, suele hacer una comparación

ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,1);

ma>Abrir[0];


 
Maxim Kuznetsov:
la segunda cadena es más que similar a un array char con signo. Es decir, toda la "cadena" puede ser sólo una estructura binaria impresa byte a byte, y puede haber sido encriptada primero, por lo que no hay 0
Sí, después de algunas acciones resultó que la cadena es efectivamente un char con signo. Ahora la pregunta es: ¿cómo hacer que se pueda leer en el servidor?
Razón de la queja: