Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1163

 
l'indice della barra e lo prendo per determinare il tempo della barra. A quanto pare abbiamo bisogno di scavare più a fondo qui, andando a secondi in tempo di formazione bar
 
Evgeniy Butakov:
Prendo l'indice della barra per determinare il tempo della barra. A quanto pare, abbiamo bisogno di scavare più a fondo qui, per passare ai secondi in tempo di formazione della barra

Leggete attentamente la documentazione. Fate attenzione ai sovraccarichi di funzione.

Perché prende il numero di barre di volta in volta? Vi scrivo di tanto in tanto.

int  CopyRates( 
   string           symbol_name,       // имя символа 
   ENUM_TIMEFRAMES  timeframe,         // период 
   datetime         start_time,        // с какой даты 
   datetime         stop_time,         // по какую дату 
   MqlRates         rates_array[]      // массив, куда будут скопированы данные 
   );

Da quale data a quale data, non solo data, ma date_time. Quindi, prendete dal tempo di apertura della barra meno 2*PeriodSeconds(PERIOD_M15) al tempo della prossima barra H4

 
Alexey Viktorov:

Leggete attentamente la documentazione. Fate attenzione ai sovraccarichi di funzione.

Perché prendete il numero di barre di volta in volta? Vi scrivo di tanto in tanto.

Da quale data a quale data, non solo data, ma date_time. Dovete prendere dal tempo di apertura della barra meno 2*PeriodSeconds(PERIOD_M15) al tempo della prossima barra H4

Ho capito come funziona... Ho convertito il tempo necessario "da quale data" e "a quale data" in secondi e lo sto seguendo... E perché esattamente 2*PeriodSeconds(PERIOD_M15)? 900 secondi mi bastano, cioè una barra su M15. Grazie mille!!!

 
Evgeniy Butakov:

Ho capito... Ho convertito il tempo richiesto "da quale data" e "a quale data" in secondi e ci sto ballando... E perché esattamente 2*PeriodSeconds(PERIOD_M15)? 900 secondi mi bastano, cioè una barra su M15. Grazie mille!!!

Sulla base di questo desiderio

Evgeniy Butakov:

Buon pomeriggio!

Per la seconda volta con il mio compito di calcolare all'interno della barra di frame superiore (H4) a scapito delle barre di quello inferiore. Ho capito come ottenere i dati su M15 sulla barra da H4. Ma a questo punto mi sono bloccato. Per esempio, raccolgo i dati dal TF M15 sulla terza candela H4 e di conseguenza elaboro tutte le 16 candele all'interno della terza barra. Ma come faccio ad avere altre barre su M15 oltre a quelle 16, perché saranno già dalla quarta candela su H4? Per favore guidatemi, datemi un suggerimento.

Per recuperare i dati da M15 usa il seguente codice:

Se hai bisogno di una sola barra, non moltiplicare e basta.

E un altro consiglio gratuito: rinunciare ai secondi. Che è più chiaro quando si legge il codice di qualcun altro o il proprio dopo un po' di tempo 1800 o 2*PeriodSeconds(PERIOD_M15) che significa 2 barre del periodo M15 espresso in secondi. E cosa sarà una settimana o un mese in pochi secondi? Devo ricalcolare ogni volta o intasare le mie cellule di memoria con informazioni inutili?

 
Alexey Viktorov:

Sulla base di questo desiderio.

Se hai bisogno di una sola barra, non moltiplicare e basta.

E un altro suggerimento gratuito: eliminare i secondi. Che è più chiaro quando si legge il codice di qualcun altro o il proprio dopo un po' di tempo 1800 o 2*PeriodSeconds(PERIOD_M15) che significa 2 barre del periodo M15 espresso in secondi. E cosa sarà una settimana o un mese in pochi secondi? Devo ricalcolare ogni volta o intasare le mie cellule di memoria con informazioni inutili?

Sì, Alexey, grazie per la guida e la direzione. Ho completamente dimenticato la funzione PeriodSeconds ;).
 
int file = FileOpen("expert_file", FILE_WRITE | FILE_BIN);
   if (file != INVALID_HANDLE){
      uint file_bytes = FileWriteArray(file, file_data);
      FileClose(file);
      Print("Bytes count: ", file_bytes);
      Print("Error: ", GetLastError());
   } else{
      return false;  
   }    

Cercando di scrivere un array di byte in un file.

Log

Il file stesso.

Cioè, il programma restituisce che ha scritto 186368 byte nel file, ma il file stesso è completamente vuoto. E non c'è nessun errore.

 

Ciao.

C'è un problema. Un deposito di, diciamo, 1k è stato fatto su un conto di intermediazione. Poi questo deposito è stato riempito con altri 5k. Come risultato nel rapporto "storia" di MT5 il 1k iniziale è mostrato come un deposito e la ricostituzione è mostrata come un profitto, e naturalmente tutti i risultati del commercio stanno andando sopra la cima.


Domanda: Posso impostare manualmente la dimensione del saldo iniziale di trading, da cui dovrebbe calcolare il profitto?


Grazie in anticipo ^^

 
MQL_User:

C'è un modo per determinare dall'OnChartEvent se è stato premuto un pulsante sulla tastiera quando il mouse ha cliccato sul grafico?

C'è una funzione chiamata GetAsyncKeyState. Può essere usato nel codice?

Ho provato una tale costruzione:

#import "user32.dll"
int GetAsyncKeyState(int a0);
#import

printf("--"+(GetAsyncKeyState(88));

Ma il caricamento della DLL non è permesso.

Ho spuntato la casella "Allow DLL imports " all'inizio. Non ha aiutato.
 
Forse sono nel thread sbagliato, che gli dei mi perdonino Mcl!!! Ho bisogno di scrivere un indicatore, che darebbe un segnale da una combinazione di quattro o cinque indicatori. O un consulente pronto all'uso.Possibili consigli per favore!!!!!!!!!!
 
Come posso aggiungere un expert advisor a una cartella mql5 e farlo apparire nella sezione advisor?