Calcolo di un singolo array durante l'ottimizzazione - pagina 4

 

Ragazzi, come faccio a scrivere i dati su una riga, separati da virgole?)

Lo ottengo ogni volta da una nuova linea.

int Qnt=FileWrite(Handle,Time[0]);
if(Qnt<0)Alert("не получилась запись=");
   return(0);

In linea di principio, dovrebbe funzionare più velocemente se metto tutti i dati in un array in una volta sola, come consigliato:

double arr[100500]={1,2,3....} 
 
forexman77:

Ragazzi, come faccio a scrivere i dati su una riga, separati da virgole?)

Lo ottengo ogni volta da una nuova linea.

In linea di principio, dovrebbe funzionare più velocemente se tutti i dati in una volta nell'array, come consigliato:

Ho letto l'articolo sulle funzioni di stringa e penso di averlo fatto:

string str1,str2;
   for (int y=stroki-1;y>=0;y--)
   {
   str1=T[y];
   str2=str2+","+str1;
   }
   Print("str2=",str2);
2016.09.15 21:42:58.649 запись данных GBPUSD,H4: str2=,1452038400,1454022360,1454104980,1456788420,1457130840,1459205760,1459463580,1459814040,1461621600,1461710760
 
forexman77:

Ragazzi, come faccio a scrivere i dati su una riga, separati da virgole?)

Lo ottengo ogni volta da una nuova linea.

In linea di principio, dovrebbe funzionare più velocemente se metto tutti i dati in un array in una volta sola, come mi hai consigliato:

Perché vorresti farlo? Dmitry ha dato dei link alla documentazione sulla lettura e scrittura di un array in un file.

Come in "Il braccio di diamante"... "Con un gesto della mano, i pantaloni si trasformano in..." Solo in questo caso non ci sono malfunzionamenti tecnici. Dopotutto, non ho chiesto niente su come è organizzata la scrittura e la lettura della matrice.
 
Qualcuno ha istruzioni su come convertire un file normale con cifre in Bin? Non riesco a capire quale dovrebbe essere il separatore per le cifre?
 
-Aleks-:
Qualcuno ha istruzioni su come convertire un file normale con cifre in Bin? Non riesco a capire quale separatore dovrebbero avere le cifre?
Leggere le cifre in una matrice e poi scrivere la matrice nel file in modalità binaria.
 
Dmitry Fedoseev:
Leggendo le cifre, possiamo inserirle nell'array e poi scrivere l'array nel file in modalità binaria.

Capisco, cioè si può leggere il file pronto con le cifre in un array (il mio caso), poi scriverlo in un file binario, e poi usarlo.

Bene, se avete bisogno di leggere i dati di 10 array dal file, allora avete bisogno di fare uno smistatore, che capirà la fine dell'array con una cifra speciale e riempirà l'array successivo... Perché non è conveniente scrivere la dimensione dell'array ogni volta.

 
-Aleks-:

Capisco, cioè si può leggere il file pronto con le cifre in un array (il mio caso), poi scriverlo in un file binario, e poi usarlo.

Bene, se avete bisogno di leggere i dati di 10 array dal file, allora avete bisogno di fare uno smistatore, che capirà la fine dell'array con una cifra speciale e riempirà l'array successivo... perché sarebbe scomodo scrivere la dimensione dell'array ogni volta a mano.

Che casino!

Lascrittura dell'array nel file è necessaria per salvarlo per il tempo di ricaricamento di EA. Dovrebbe essere scritto prima dell'uscita e letto all'entrata.

Se ci sono 10 array nell'Expert Advisor, ci saranno 10 file. Ma prima che possa essere letto (un array), deve essere creato e scritto...

 
Alexey Viktorov:

Un casino nella testa.

Scrivere un array in un file è necessario per salvare quell'array per quando l'EA viene riavviato. Scrivere prima di uscire e leggere all'entrata.

Se ci sono 10 matrici nell'EA, ci saranno 10 file. Ma prima che possa essere letto (la matrice), deve essere creato e scritto...

Sei così bloccato, io sto parlando di soluzioni e tu stai lodando il problema. Il mio post non riguarda la soluzione del problema del top starter.

Disattenzione e aggressività - apparentemente apatia, autunno...

 
Alexey Viktorov:

Perché devo farlo? Dmitry ha dato dei link alla documentazione per leggere e scrivere un array in un file.

È come nel film "Il braccio di diamante"... "Con un movimento della mano, i pantaloni si trasformano..." Solo in questo caso non c'è nessun malfunzionamento tecnico. Dopo tutto, non ho chiesto nulla su come è organizzata la scrittura e la lettura di un array.

È possibile che sia più veloce con un file bin.

Ieri ho provato a dichiarare l'array in una volta sola. Dopo tutto, conosco l'array in anticipo, prima dell'ottimizzazione.

Per esempio, così (ho cancellato una parte di stringhe):

datetime T[411]=
   {
   1262731020,1262735700,1262821920,1262903400,1262989740,1263247200,1263339060,1263420000,1263507480,1263595500,
   1265324700,1265407200,1265752980,1265926500,1265930820,1267657200,1267740300,1267826460,1268175840,1268346360,
   1270504920,1270684140,1270768500,1272924180,1273011720,1273097100,1273272240,1273528800,1273617180,1275344100,
   1275516000,1275602400,1275689160,1276034400,1276124580,1276208700,1276211640,1278027960,1278369780,1278373920,
   1278456660,1278540000,1278626400,1278712800,1280447880,1280527200,1280789220,1280959200,1281045720,1283292000,
   1283378400,1283812200,1285626300,1285887060,1286229600,1286316000,1286404740,1288133220,1288216860,1288305120,
   1288392420,1288648860,1288735200,1288741980,1288822080,1288994400,1290722460,1290809040,1291069320,1291329540,
   1293228420,1293577020,1293666300,1293746400,1295992800,1296079320,1296253680,1296514200,1296686940,1296770400,
   1298503260,1298592000,1298672280,1298931060,1300831920,1300917600,1301609160,1301696460,1303512420,1303768920
   };

Non ha ancora funzionato così bene. Al momento i terminali sono occupati con l'ottimizzazione e cercherò di farlo in modi diversi più tardi. Suppongo di dover convertire da stringa a data.

 
Io faccio questo. Eseguo un singolo test. Durante questo test scrivo gli array in un file. Poi eseguo l'ottimizzazione nella stessa area ma gli array non vengono ricalcolati ad ogni barra o tick, vengono letti dal file. L'ottimizzazione dei prezzi di apertura su un periodo settimanale è istantanea. Senza operazioni di file ci vogliono ore.
Motivazione: