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

 
CHART_SCALE Scala int da 0 a 5 cosa significa.
 
koctja:
CHART_SCALE Scala int da 0 a 5 cosa significa.
Sei gradazioni di scala del grafico
 

Buon pomeriggio!

Domanda: è possibile con MT4 Advisor aprire un file csv di 1-5GB di dimensione, e sovrascrivere in un nuovo file csv/txt della stessa dimensione.

L'essenza è quella di trovare barre vuote, mega-barre e lacune nel file con le quotazioni dei tick. Per correggerli e riscriverli in un nuovo file (1 anno è 500-1000mb)

P.S. script e altre cose da lavorare con citazioni minime da non offrire.

Grazie!

 
MqlDateTime time1;
datetime date=TimeCurrent();

 int h=FileOpen("test1111111.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
   if(h==INVALID_HANDLE){
      Alert("Ошибка открытия файла");
      return(-1);
   }
   TimeToStruct(date,time1);
   FileWrite(h,time1.year,time1.mon,time1.day);


Il file contiene 2019510

Come posso aggiungere uno zero a un mese in modo semplice senza usare if?

 
psyman:


Il file contiene 2019510

Come posso aggiungere uno zero a un mese in modo semplice senza usare if?

Quale zero? Dove aggiungere? Posso fare un esempio?

 
Artyom Trishkin:

Quale zero? Dove aggiungere? Può farmi un esempio?

Scrivendo la data attuale nel file, ottengo 2019510 invece di20190510

Forse c'è un'impostazione di formattazione, ma l'aiuto non lo dice.

 
psyman:

Scrivendo la data attuale nel file, ottengo 2019510 invece di20190510

Forse c'è un'opzione di formattazione, ma l'aiuto non lo dice.

FileWrite(h,(string)time1.year,IntegerToString(time1.mon,2,'0'),IntegerToString(time1.day,2,'0'));
Lo fa:
Документация по MQL5: Преобразование данных / IntegerToString
Документация по MQL5: Преобразование данных / IntegerToString
  • www.mql5.com
[in]  Длина строки. Если длина полученной строки окажется больше указанной, то строка не усекается. Если длина полученной строки окажется меньше, то полученная строка будет дополнена слева символом-заполнителем.
 
Artyom Trishkin:
C'è scritto:


Strano che il riempimento non sia fatto in TimeToStruct. Guardando inIntegerToString non pensavo, visto che è lo stesso quali dati scrivere nel file, grazie.

 
psyman:


Il file contiene 2019510

Come aggiungere zero a un mese in modo semplice senza usare if?

datetime date=TimeCurrent();
int h=FileOpen("test1111111.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
if(h==INVALID_HANDLE){
      Alert("Ошибка открытия файла");
      return(-1);
}
FileWrite(h,TimeToStr(date,TIME_DATE));

Roni Iron:

Buon pomeriggio!

Domanda: è possibile con MT4 EA aprire un file csv di 1-5GB di dimensione e sovrascriverlo in un nuovo file csv/txt della stessa dimensione.

L'idea è quella di trovare barre vuote, megapips e gap nel file con le quotazioni in tick. Per correggerli e riscriverli in un nuovo file (1 anno è 500-1000mb)

P.S. script e altre cose da lavorare con citazioni minime da non offrire.

Grazie!

Controllato, è possibile:

1. aprire 2 file, uno per leggere, il secondo per scrivere e leggere e scrivere allo stesso tempo

2. È possibile leggere un file in un array, elaborare i dati, quindi scrivere l'array in un file, ma si noti che MT4 è a 32 bit e la memoria per tali programmi è limitata a 2GB, cioè la funzione ArrayResize() non alloca la memoria per ridimensionare l'array,https://docs.mql4.com/ru/array/arrayresize

SZY: Non offro sceneggiature o cose del genere.

 
psyman:


Strano che il riempimento non sia fatto in TimeToStruct. Non ho pensato di cercarlo in IntegerToString, dato che non importa quali dati vengono scritti nel file, grazie.

È molto più strano pensare che 05 sarà scritto in una int-variabile invece di 5.

05 è già un display int-number sullo schermo - lì devi specificare il formato che vuoi.

Ed ecco un esempio del perché dovreste farlo voi stessi, come citato da Igor:

Forum sul trading, sistemi di trading automatico e strategie di test

Tutte le domande dei neofiti su MQL4, aiuto e discussione su algoritmi e codici

Igor Makanu, 2019.05.11 06:16

datetime date=TimeCurrent();
int h=FileOpen("test1111111.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
if(h==INVALID_HANDLE){
      Alert("Ошибка открытия файла");
      return(-1);
}
FileWrite(h,TimeToStr(date,TIME_DATE));

Questa variante visualizza la data già formattata. Ma non nel modo in cui ne avete bisogno(come avete indicato):

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Tutte le domande dei neofiti su MQL4, aiuto e discussione su algoritmi e codici

psyman, 2019.05.10 22:14

Scrivendo la data attuale nel file, ottengo 2019510 invece di20190510

Forse c'è un'impostazione di formattazione, ma l'aiuto non lo dice.

Leggete il formato della struttura MqlDateTime per capire:

Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура даты
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура даты
  • www.mql5.com
Порядковый номер в году day_of_year в високосном году, начиная с марта, будет отличаться от порядкового номера соответствующего дня в невисокосном году.
Motivazione: