[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 89

 
keep87:
pas possible

c'est possible))

Par exemple, vous pouvez demander à l'EA de charger le tableau dans les variables globales du terminal, puis de le lire à partir de là.

 
alsu:
Décidez ce que vous voulez que le résultat soit. Si la valeur de la machine est de 5 barres en arrière, alors

ou identiques

Si c'est le cas,

il sera toujours EMPTY_VALUE, car il n'y a pas de poignet décalé sur ces barres

Je l'ai, merci !
 
alsu:
Mieux encore, ne vous embêtez pas avec les décalages dans l'EA, prenez simplement le décalage 0 et le numéro de la barre que vous voulez.
J'ai vérifié avec le testeur maintenant, il s'avère que le trade s'ouvre 5 bougies après le franchissement des moyennes mobiles, et ce n'est pas le cas... J'ai compris ce que vous pouvez faire, déplacez l'autre MA de 5 bougies en avant, alors le signal est correct...)
 
ierehon:
J'ai vérifié maintenant avec le testeur, il s'avère que le trade s'ouvre 5 bougies après le croisement des moyennes mobiles, et ce n'est pas la même... J'ai compris ce qu'il faut faire, avancer une autre MA de 5 bougies, alors le signal est correct...)

c'est la même chose))

zéro barre de la MA décalée de 5 barres vers la droite = 5ème barre de la MA non décalée

 
keep87:
ne peut pas. Il est possible de noter manuellement les données d'un tableau à l'autre dans l'EA si elles ne changent pas d'une optimisation à l'autre, le temps des tests.
Mais dans ce cas, MT devra lire le tableau depuis le fichier à chaque fois ( ?), mais pas depuis un fichier séparé, mais depuis le code.
- Y aura-t-il un gain dans ce cas ?
 
alsu:

c'est possible))

Par exemple, vous pouvez demander au conseiller expert de charger le tableau dans les variables globales du terminal, puis de le lire à partir de là.

Les éléments du tableau peuvent être de plusieurs dizaines à plusieurs centaines et pour chaque variable, il faut les déclarer au préalable.
Il sera assez difficile à mettre en œuvre (bien sûr, la tâche n'est pas non plus triviale).
 
chief2000:
Les éléments d'un tableau peuvent être de plusieurs dizaines à plusieurs centaines, et une variable doit être déclarée pour chacun d'eux au préalable.
C'est un peu compliqué à mettre en œuvre (bien sûr, la tâche n'est pas non plus triviale).

Et alors ? Manipulez les variables dans la boucle de la même manière que vous le feriez avec les éléments d'un tableau. Exemple d'utilisation :

double a[];
int n;

...
ArrayResize(a,n);
...

//запись массива в глобальные переменные

string name;
for(i=0;i<n;i++)
{
   name = StringConcatenate("__ARRAY_",i);
   GlobalVariableSet(name,a[i]);
}

//чтение в массив из глобальных

int gv = GlobalVariablesTotal();
int index;

for(i=0;i<gv;i++)
{
   name = GlobalVariableName(i);
   if(StringFind(name,"__ARRAY_")==0)
   {
      index = StrToInteger(StringSubstr(name,8));
      if(index>=0&&index<n) a[index]=GlobalVariableGet(name);
      
      //опционально - если хотим очистить список
      //GlobalVariableDel(name);
   }
}


on ne peut pas faire plus simple))

 
alsu:

Et alors ? Manipulez les variables dans la boucle de la même manière que vous le feriez avec les éléments d'un tableau. Exemple d'utilisation :

on ne peut pas faire plus simple))

De mémoire, j'ai manipulé quelques milliers de variables de cette manière, et je n'ai pas remarqué de ralentissement. Pour les grandes quantités (centaines de milliers d'articles ou plus), j'essaie généralement d'utiliser MySQL.
 
alsu:
De mémoire, j'ai travaillé de cette manière avec quelques milliers de variables, et je n'ai pas rencontré de décalage. Pour les grandes quantités (centaines de milliers d'articles ou plus), j'essaie généralement d'utiliser MySQL.
MERCI BEAUCOUP !
 

Pouvez-vous me conseiller, il y a un fichier csv avec des données au format 1.33027 ; 1.33023 et ainsi de suite.

Ensuite, je lis ce fichier mais pour une raison quelconque, les données sont lues avec une précision de 4 chiffres alors que j'en ai besoin de 5.

Lire de différentes manières et

FileReadString и FileReadDouble и FileReadInteger

n'aide pas

Raison: