Leo59: Veuillez expliquer comment décompresser les données d'un tableau (*.csv) dans un tableau statique tridimensionnel. La première colonne du tableau contient l'indice de la première dimension du tableau, . La deuxième colonne contient l'indice de la deuxième dimension du tableau, . La troisième et les autres colonnes contiennent les valeurs elles-mêmes de la troisième dimension du tableau. .
Oubliez ce que vous avez écrit ensuite. Déclarez un tableau de type approprié au niveau de la variable globale arr[][][3] et définissez vous-même la deuxième dimension.
void AAA()
{
int Handle; // Файловый описательstring File_Name = "AAA.csv"; // Имя открываемого файлаstring str_1 = ""; // 1 Номер индекса по первому измерениюstring str_2 = ""; // 2 Номер индекса по второму измерениюstring str_3 = ""; // 3 Значениеstring str_4 = ""; // 4 Значениеstring str_5 = ""; // 5 Значение
Handle=FileOpen(File_Name, FILE_READ, ";"); // Открытие файлаwhile(FileIsEnding(Handle)==false) // До тех пор, пока файловый...
{ // ...указатель не в конце файла// Чтение данных из строки до файлового разделителя
str_1 = FileReadString(Handle); // 1 Номер индекса по первому измерению
str_2 = FileReadString(Handle); // 2 Номер индекса по второму измерению
str_3 = FileReadString(Handle); // 3 Значение
str_4 = FileReadString(Handle); // 4 Значение
str_5 = FileReadString(Handle); // 5 Значение
// А здесь заполнение массива
arr[str_1][str_2][0] = str_3;
arr[str_1][str_2][1] = str_3;
arr[str_1][str_2][2] = str_4;
if(FileIsEnding(Handle)==true) // Файловый указатель в конце файлаbreak; // Выход из цикла чтения
????????????????????????????????????????????????????
}
FileClose(Handle); // Закрываем файлreturn; // Выход из функции
}
Eh bien, c'est comme ça. Et vous aurez probablement besoin de convertir les index de chaînes de caractères en nombres entiers.
Oubliez ce que vous avez écrit ensuite. Déclarez un tableau de type approprié au niveau de la variable globale arr[][][3] et définissez vous-même la deuxième dimension.
Eh bien, c'est comme ça. Et vous aurez probablement besoin de convertir les index de chaînes de caractères en nombres entiers.
MERCI BEAUCOUP !!!! Lorsque le cerveau bouillonne, on devient "aveugle" et on ne voit pas les choses simples et évidentes. Le plus intéressant est que vous savez que la solution est simple, "comme trois kopecks", mais, hélas, c'est un flou devant vos yeux. Merci encore ! !!!!
Par le fait qu'il va supprimer TOUS les objets. Même ceux qui n'appartiennent PAS à l'EA/indicateur. Que se passe-t-il si une personne marque son propre code sur un tableau depuis longtemps ? Et ensuite il a exécuté ce code dans un indicateur tiers ? Comment, et que dirait-il alors de l'auteur de ce bon code ?
En fait, tout a commencé avec la commande : ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE) ;
puis une autre variante a essayé ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE);
Cher Monsieur, lisez l'aide :)
Je ne comprends pas pourquoi mon index avec les commandes mentionnées fonctionne correctement dans Alpha-Forex, mais dans Saxo Bank les objets ne sont plus supprimés.
Puis j'ai commencé à expérimenter avec le script et celui-ci a cessé de supprimer les objets dans tous les terminaux.
Après la clôture des ordres 152, 153, 158 et 159, le bénéfice n'est pas correct (comme si le testeur avait mal calculé). Les commandes sont "suspendues" depuis plusieurs mois, comme le montre le tableau. En outre, le drawdown est correctement affiché dans le tableau mais n'est pas visible sur le graphique pour une raison quelconque.
En fait, tout a commencé avec la commande : ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE) ;
puis j'ai essayé une autre variante : ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE);
Cher Monsieur, lisez l'aide :)
Je ne comprends pas pourquoi mon index avec les commandes mentionnées fonctionne correctement dans Alpha-Forex, mais dans Saxo Bank les objets ne sont plus supprimés.
Puis j'ai commencé à expérimenter avec le script et celui-ci a cessé de supprimer les objets dans tous les terminaux.
Le premier regarde dans la fenêtre principale du graphique, le second dans toutes les fenêtres. Conclusion - 1) Utiliser l'index de la fenêtre pour réduire le nombre d'objets que la fonction parcourt pour trouver ceux qui doivent être supprimés. 2) Si vous supprimez par nom (une partie du nom, parce qu'un programme mql nomme généralement les objets avec un préfixe personnel), alors utilisez la boucle de recherche à partir du dernier objet (plus ancien par le temps de création).
Bien qu'il y ait effectivement un problème avec la suppression des objets, s'il y en a beaucoup et qu'il passe de 0 à ObjectTotal()-1, alors certains des objets ne sont pas supprimés. Question aux développeurs, peut-être qu'il n'y a pas assez de mémoire tampon allouée.
Exemple :
void DeleteObjects(int chartID, string prefix_obj_name) {
string obj_nm="";
int obj=ObjectsTotal();
// for(int k=0; k<obj; k++){ // неправильный вариант
for(int k=obj-1; k>=0; k--){
obj_nm = ObjectName(k);
if(StringFind(obj_nm,prefix_obj_name)>=0)
{
ResetLastError();
if(!ObjectDelete(chartID,obj_nm))
{
Print(__FUNCTION__,
": не удалось удалить объект ",obj_nm," Код ошибки = ",GetLastError());
}
}
}
}
// prefix_obj_name = "Obj_MQLname_"; Имена объектов создаваемых программой "Obj_MQLname_Close_"+DoubleToStr(Close[0],Digits), "Obj_MQLname_Open_"+DoubleToStr(Open[0],Digits) и т.д.
Pouvez-vous me dire si Win 8 est compatible avec MT 4 et MT 5 ? Je pose la question parce que j'ai un Mac et je me demande quel système d'exploitation choisir pour acheter un PC. Une personne m'a même montré une capture d'écran de MT 4 fonctionnant sur 8. Mais comme certains camarades prétendent qu'il n'y a pas de compatibilité totale, je me dois de clarifier... Merci.
Veuillez expliquer comment décompresser les données d'un tableau (*.csv) dans un tableau statique tridimensionnel.
La première colonne du tableau contient l'indice de la première dimension du tableau,
. La deuxième colonne contient l'indice de la deuxième dimension du tableau,
. La troisième et les autres colonnes contiennent les valeurs elles-mêmes de la troisième dimension du tableau.
.
Oubliez ce que vous avez écrit ensuite. Déclarez un tableau de type approprié au niveau de la variable globale arr[][][3] et définissez vous-même la deuxième dimension.
Eh bien, c'est comme ça. Et vous aurez probablement besoin de convertir les index de chaînes de caractères en nombres entiers.
Oubliez ce que vous avez écrit ensuite. Déclarez un tableau de type approprié au niveau de la variable globale arr[][][3] et définissez vous-même la deuxième dimension.
Eh bien, c'est comme ça. Et vous aurez probablement besoin de convertir les index de chaînes de caractères en nombres entiers.
Merci encore ! !!!!
Tu n'as pas besoin de donner des conseils stupides. Cette commande permet de supprimer complètement tous les objets du graphique.
Je ne suis pas d'accord avec vous !
Il y avait une question :
Comment supprimer tous les objets tels que OBJ_ARROW_RIGHT_PRICE ?
Solution :
En quoi la solution est-elle stupide ?
Je ne suis pas d'accord avec vous !
Il y avait une question :
Solution :
Et pourquoi cette décision est-elle stupide ?
Comment, et que dit-il alors de l'auteur de ce bon code ?
Les gens sont gentils. Ils diront ce qu'ils pensent.
Les gens sont gentils. Ils diront ce qu'ils pensent.
Je ne suis pas d'accord avec vous !
Il y avait une question :
Solution :
Et pourquoi la solution est-elle stupide ?
En fait, tout a commencé avec la commande : ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE) ;
puis une autre variante a essayé ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE);
Cher Monsieur, lisez l'aide :)
Je ne comprends pas pourquoi mon index avec les commandes mentionnées fonctionne correctement dans Alpha-Forex, mais dans Saxo Bank les objets ne sont plus supprimés.
Puis j'ai commencé à expérimenter avec le script et celui-ci a cessé de supprimer les objets dans tous les terminaux.
Salud à tous !
Une telle bizarrerie du testeur est observée.
Après la clôture des ordres 152, 153, 158 et 159, le bénéfice n'est pas correct (comme si le testeur avait mal calculé). Les commandes sont "suspendues" depuis plusieurs mois, comme le montre le tableau. En outre, le drawdown est correctement affiché dans le tableau mais n'est pas visible sur le graphique pour une raison quelconque.
Qu'est-ce que cela peut être ?
EURUSD (Euro contre Dollar US)
15 Minutes (M15) 2012.01.01 23:00 - 2014.03.07 22:59 (2012.01.01 - 2014.03.08)
1000.00
Écartement
Actuel (12)
1418.73
Bénéfice total
2045.28
Perte totale
-626.55
3.26
Gain attendu
2.41
419.34
Abaissement maximal
834.91 (58.98%)
Abattement relatif
58.98% (834.91)
№
Temps
Type
Commandez
Volume
Prix
S / L
T / P
Profit
Balance
372
2012.04.30 11:00
acheter
151
0.01
1.32193
0.00000
1.32472
373
2012.05.01 04:45
t/p
151
0.01
1.3247234
0.00000
1.32472
2.75
1402.41
374
2012.05.01 15:00
acheter
152
0.01
1.32262
0.00000
1.32713
375
2012.05.02 07:45
t/p
142
0.01
1.31949
0.00000
1.31949
-4.40
1398.00
376
2012.05.02 07:45
t/p
143
0.01
1.31949
0.00000
1.31949
0.95
1398.96
377
2012.05.02 07:45
t/p
149
0.02
1.31949
0.00000
1.31949
12.49
1411.44
378
2012.05.02 08:45
acheter
153
0.01
1.31711
0.00000
1.32237
379
2012.05.02 08:45
modifier
152
0.01
1.32262
0.00000
1.32237
380
2012.05.02 15:15
vendre
154
0.01
1.31483
0.00000
1.31352
381
2012.05.03 07:00
t/p
154
0.01
1.3135174
0.00000
1.31352
1.18
1412.63
382
2012.05.03 08:45
vendre
155
0.01
1.31454
0.00000
1.31425
383
2012.05.03 09:00
t/p
155
0.01
1.3142483
0.00000
1.31425
0.29
1412.92
384
2012.05.03 13:45
vendre
156
0.01
1.31671
0.00000
1.31256
385
2012.05.04 10:45
t/p
156
0.01
1.3125581
0.00000
1.31256
4.11
1417.02
386
2012.05.04 14:15
vendre
157
0.01
1.31527
0.00000
1.31293
387
2012.05.04 14:45
t/p
157
0.01
1.3129331
0.00000
1.31293
2.34
1419.36
388
2012.05.04 16:15
acheter
158
0.02
1.30997
0.00000
1.31742
389
2012.05.04 16:15
modifier
152
0.01
1.32262
0.00000
1.31742
390
2012.05.04 16:15
modifier
153
0.01
1.31711
0.00000
1.31742
391
2012.05.06 23:15
acheter
159
0.04
1.29845
0.00000
1.30918
392
2012.05.06 23:15
modifier
152
0.01
1.32262
0.00000
1.30918
393
2012.05.06 23:15
modifier
153
0.01
1.31711
0.00000
1.30918
394
2012.05.06 23:15
modifier
158
0.02
1.30997
0.00000
1.30918
395
2012.09.14 10:45
t/p
152
0.01
1.30918
0.00000
1.30918
-18.67
1400.70
396
2012.09.14 10:45
t/p
153
0.01
1.30918
0.00000
1.30918
-13.12
1387.58
397
2012.09.14 10:45
t/p
158
0.02
1.30918
0.00000
1.30918
-11.65
1375.93
398
2012.09.14 10:45
t/p
159
0.04
1.30918
0.00000
1.30918
22.77
1398.70
En fait, tout a commencé avec la commande : ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE) ;
puis j'ai essayé une autre variante : ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE);
Cher Monsieur, lisez l'aide :)
Je ne comprends pas pourquoi mon index avec les commandes mentionnées fonctionne correctement dans Alpha-Forex, mais dans Saxo Bank les objets ne sont plus supprimés.
Puis j'ai commencé à expérimenter avec le script et celui-ci a cessé de supprimer les objets dans tous les terminaux.
Le premier regarde dans la fenêtre principale du graphique, le second dans toutes les fenêtres. Conclusion - 1) Utiliser l'index de la fenêtre pour réduire le nombre d'objets que la fonction parcourt pour trouver ceux qui doivent être supprimés. 2) Si vous supprimez par nom (une partie du nom, parce qu'un programme mql nomme généralement les objets avec un préfixe personnel), alors utilisez la boucle de recherche à partir du dernier objet (plus ancien par le temps de création).
Bien qu'il y ait effectivement un problème avec la suppression des objets, s'il y en a beaucoup et qu'il passe de 0 à ObjectTotal()-1, alors certains des objets ne sont pas supprimés. Question aux développeurs, peut-être qu'il n'y a pas assez de mémoire tampon allouée.
Exemple :