Calcul d'un seul tableau pendant l'optimisation - page 4

 

Les gars, comment puis-je écrire les données sur une ligne, séparées par des virgules) ?

Je l'obtiens à chaque fois d'une nouvelle ligne.

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

En principe, cela devrait fonctionner plus rapidement si je mets toutes les données dans un tableau en une seule fois, comme conseillé :

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

Les gars, comment puis-je écrire les données sur une ligne, séparées par des virgules) ?

Je l'obtiens à chaque fois d'une nouvelle ligne.

En principe, cela devrait fonctionner plus rapidement si toutes les données sont placées en même temps dans le tableau, comme cela est conseillé :

J'ai lu l'article sur les fonctions des chaînes de caractères, je crois que j'ai réussi :

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:

Les gars, comment puis-je écrire les données sur une ligne, séparées par des virgules) ?

Je l'ai à chaque fois avec une nouvelle ligne.

En principe, cela devrait fonctionner plus rapidement si je place toutes les données dans un tableau en une seule fois, comme vous l'avez conseillé :

Pourquoi voulez-vous faire ça ? Dmitry a donné des liens vers la documentation sur la lecture et l'écriture d'un tableau dans un fichier.

Dmitry Fedoseev:

https://www.mql5.com/ru/docs/files/filereadarray

https://www.mql5.com/ru/docs/files/filewritearray

Vous trouverez également des exemples dans les liens.

Comme dans "Le bras de diamant"... "D'un geste de la main, le pantalon se transforme en..." Dans ce cas seulement, il n'y a pas de dysfonctionnement technique. Après tout, je n'ai pas demandé pour rien comment l'écriture et la lecture du tableau sont organisées.
 
Quelqu'un a-t-il des instructions sur la façon de convertir un fichier normal avec des chiffres en Bin ? Je n'arrive pas à savoir quel doit être le séparateur pour les chiffres ?
 
-Aleks-:
Quelqu'un a-t-il des instructions sur la façon de convertir un fichier normal avec des chiffres en Bin ? Je n'arrive pas à savoir quel séparateur les chiffres doivent avoir ?
Lire les chiffres dans un tableau, puis écrire le tableau dans le fichier en mode binaire.
 
Dmitry Fedoseev:
En lisant les chiffres, nous pouvons les insérer dans le tableau et ensuite écrire le tableau dans le fichier en mode binaire.

Je vois, c'est-à-dire que vous pouvez lire le fichier prêt avec des chiffres dans un tableau (mon cas), puis l'écrire dans un fichier binaire, et ensuite l'utiliser.

Eh bien, si vous avez besoin de lire les données de 10 tableaux à partir du fichier, alors vous devez faire un trieur, qui comprendra la fin du tableau par un chiffre spécial et remplira le tableau suivant... En effet, il n'est pas pratique d'écrire la taille du tableau à chaque fois.

 
-Aleks-:

Je vois, c'est-à-dire que vous pouvez lire le fichier prêt avec des chiffres dans un tableau (mon cas), puis l'écrire dans un fichier binaire, et ensuite l'utiliser.

Eh bien, si vous avez besoin de lire les données de 10 tableaux à partir du fichier, alors vous devez faire un trieur, qui comprendra la fin du tableau par un chiffre spécial et remplira le tableau suivant... car il serait peu pratique d'écrire la taille du tableau à chaque fois à la main.

Quel gâchis.

L'écriture d'un tableau dans un fichier est nécessaire pour le sauvegarder au moment du rechargement de l'EA. Il doit être écrit avant la sortie et lu à l'entrée.

S'il y a 10 tableaux dans l'Expert Advisor, il y aura 10 fichiers. Mais avant qu'il (un tableau) puisse être lu, il doit être créé et écrit...

 
Alexey Viktorov:

Un désordre dans la tête.

L'écriture d'un tableau dans un fichier est nécessaire pour sauvegarder ce tableau lors du redémarrage de l'EA. Écrire avant de sortir et lire à l'entrée.

S'il y a 10 tableaux dans l'EA, il y aura 10 fichiers. Mais avant de pouvoir être lu (le tableau), il doit être créé et écrit...

Tu es tellement coincé, je parle de solutions et tu fais l'éloge du problème. Mon post n'a pas pour but de résoudre le problème du top starter.

Inattention et agressivité - apparemment apathie, automne...

 
Alexey Viktorov:

Pourquoi dois-je le faire ? Dmitry a donné des liens vers la documentation sur la lecture et l'écriture d'un tableau dans un fichier.

C'est comme dans le film "Le bras de diamant"... "D'un seul geste de la main, le pantalon se transforme..." Dans ce cas seulement, il n'y a pas de dysfonctionnement technique. Après tout, je n'ai rien demandé sur l'organisation de l'écriture et de la lecture d'un tableau.

Il est tout à fait possible qu'il soit plus rapide avec un fichier bin.

Hier, j'ai essayé de déclarer le tableau en une seule fois. Après tout, je connais le tableau à l'avance, avant l'optimisation.

Par exemple, comme ceci (j'ai supprimé une partie des chaînes de caractères) :

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

Ça n'a pas encore bien fonctionné. Actuellement, les terminaux sont occupés par l'optimisation et j'essaierai de le faire de différentes manières plus tard. Je suppose que je dois convertir la chaîne en date.

 
Je fais ça. Je lance un seul test. Pendant ce test, j'écris des tableaux dans un fichier. J'effectue ensuite une optimisation dans la même zone mais les tableaux ne sont pas recalculés à chaque barre ou tick, ils sont lus depuis le fichier. L'optimisation par les prix d'ouverture sur une période hebdomadaire est instantanée. Sans opérations sur les fichiers, cela prend des heures.
Raison: