Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 638

 
Vitaly Muzichenko:

Qualcuno può per favore consigliare chi ha incontrato e sa come ottenere da questa linea:

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

come questo:

-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,

Grazie!

La seconda stringa è più che simile a un array di char firmati. Cioè, l'intera "stringa" potrebbe essere solo una struttura binaria stampata byte per byte, e forse è stata prima criptata, quindi non c'è lo 0
 

Buon pomeriggio.

Non sono un programmatore, ma voglio fare in modo che i miei EA mi inviino notifiche via email dei segnali. Il compito è semplice e sembra funzionare, ma quando la condizione del segnale è soddisfatta inviano un numero infinito di email.

Per favore, aiutatemi a inviare solo un'email per ogni segnale.

Ecco un esempio del mio codice per la media mobile semplice. Cosa dovrei aggiungere o aggiustare?

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:

Buon pomeriggio.

Non sono un programmatore, ma voglio fare in modo che i miei EA mi inviino notifiche via email dei segnali. Il compito è semplice e sembra funzionare, ma quando la condizione del segnale è soddisfatta inviano un numero infinito di email.

Per favore, aiutatemi a inviare solo un'email per ogni segnale.

Ecco un esempio del mio codice per la media mobile semplice. Cosa dovrei aggiungere o aggiustare?


Aggiungere datetime mailTime e ricordare l'ora prima dell'invio, in modo da non dover inviare nuovamente il messaggio

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. è tempo di passare da start() a OnTick() negli EAs

pps. mailTime dovrebbe anche essere salvato nelle variabili globali del terminale in caso di riavvio di Expert Advisor.

 
Maxim Kuznetsov:

aggiungere datetime mailTime e ricordare il tempo di pre-invio in modo da non dover inviare nuovamente l'email

ps. È ora di passare da start() a OnTick() negli EA

pps. Il mailTime dovrebbe anche essere salvato nelle variabili globali del terminale nel caso in cui l'EA venga riavviato.

Non ha funzionato. Continua a inviare messaggi in continuazione.

 
ev85:

Buon pomeriggio.

Non sono un programmatore, ma voglio fare in modo che i miei EA mi inviino notifiche via email dei segnali. Il compito è semplice e sembra funzionare, ma quando la condizione del segnale è soddisfatta inviano un numero infinito di email.

Per favore, aiutatemi a inviare solo un'email per ogni segnale.

Ecco un esempio del mio codice per la media mobile semplice. Cosa dovrei aggiungere o aggiustare?



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 quest'anno non viene inviata nessuna email((
 
ev85:
Con quest'anno non vengono inviate email a tutti((
Quindi a cosa equivale il tuo ma? È per caso il ma sulla barra zero?
 
-Aleks-:
Quindi a cosa equivale la ma? Non è per caso ma sulla barra zero?

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

 
ev85:

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

Allora tutto è chiaro. Il Mach sulla barra zero è costantemente ricalcolato - quindi i segnali arriveranno ad ogni tick.

Prova in questo modo:

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);

  }


In generale, di solito si fa un confronto

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

ma>Aprire[0];


 
Maxim Kuznetsov:
la seconda stringa è più che simile a un array di char firmati. Cioè, l'intera "stringa" potrebbe essere solo una struttura binaria stampata byte per byte, e potrebbe essere stata prima criptata, quindi non c'è 0
Sì, dopo qualche azione si è scoperto che la stringa è effettivamente un carattere firmato. Ora la domanda è: come renderlo leggibile sul server?