Questions des débutants MQL5 MT5 MetaTrader 5 - page 731
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
10 000 x 10 000 n'est-il pas bidimensionnel ?
et tout ça...
Eh bien oui c'est bidimensionnel, ce n'est pas comme ça que je l'ai dit, apparemment ce n'est pas une matrice mais un tableau. Une matrice implique-t-elle la multidimensionnalité ?
Ce qui freine dans ce code n'est pas l'écriture d'un tableau mais une boucle dans une boucle.
D'accord. Ce n'est pas ce qui a été dit et a été mal compris.
Ce qui freine dans ce code n'est pas l'écriture d'un tableau mais une boucle dans une boucle.
Est-il nécessaire de procéder à un portage vers un autre environnement de programmation, ou ce problème n'est-il pas commun à tous les types de langages ? Quelle peut être la solution pour accélérer les choses ?
Si une boucle et augmenter la valeur de la variable de la boucle supprimée
{
int arr++
if(arr=ARRAY_SIZE_X) {z++;arr=0;}
arra[q]=sm.d[q].m[nBar-z]; // M(I) SMA
}
//--- запишем данные массива в конец файла FileTell IsFileLineEnded
FileSeek(handle,0,SEEK_END);
FileWriteArray(handle,arra);
J'ai peut-être vérifié, mais je ne veux pas déranger l'ordinateur. S'il n'accélère pas, le disque dur sera à nouveau soumis à une pression supplémentaire.)
Est-il nécessaire de passer à un autre environnement de programmation, ou n'est-ce pas un problème courant pour tous les types de langages ? Quelle peut être la solution pour accélérer les choses ?
Si l'on fait une boucle et que l'on augmente la valeur de la variable de la boucle supprimée, est-ce que cela accélère ?
Je pourrais le vérifier, mais je ne veux pas torturer l'ordinateur, s'il n'est pas accéléré, cela mettra à nouveau un stress supplémentaire sur le disque dur))).
Ne pouvez-vous pas écrire le tableau après la boucle ? Est-il possible de le faire uniquement sur chaque ligne ? Je fais référence à la première variante où la boucle est dans la boucle.
Bien sûr, vous pouvez également insérer un compteur et écrire sur ce compteur, et non sur chaque ligne séparément, mais il est peu probable que cela accélère le processus au point d'être perceptible sans mesure.
Un tableau de cette taille ne tiendrait pas dans la RAM allouée.
Bien sûr, vous pouvez également insérer un compteur et enregistrer en fonction de ce compteur, et non de chaque ligne séparément, mais il est peu probable que cela accélère le processus au point d'être perceptible sans mesure.
Dites-moi, la documentation dit (et le compilateur aussi) que :"L'indicateurAS_SERIES ne peut pas être défini pour les tableaux multidimensionnels"
Question : Comment trier un tableau dans mql5 ?
void Func()
{
double m[][3];
if(условия)
{
// много кода
c++;
ArrayResize(m, c);
m[c-1][0]= Lots();
m[c-1][1]= Ticket();
m[c-1][2]= Profit();
}
BySort(m); // передаём в функцию "BySort"
}
void BySort(double &mas[][3])
{
// Сортируем по размеру лота от большего к меньшему
ArraySort(mas);
ArraySetAsSeries(mas,true); // при такой записи mql5 ругается, в mql4 работает
... здесь работа с массивом и основной код
}Veuillez me conseiller, la documentation dit (et le compilateur aussi) que :"L'indicateurAS_SERIES ne peut pas être défini pour les tableaux multidimensionnels".
Question : comment trier le tableau :
if(условия)
{
// много кода
c++;
ArrayResize(m, c);
m[c-1][0]= Lots();
m[c-1][1]= Ticket();
m[c-1][2]= Profit();
}
void BySort(double &mas[][3])// выделенное лишнее
{
// Сортируем по размеру от большего к меньшему
ArraySort(mas, WHOLE_ARRAY, 0, MODE_DESCEND); // вот это не работает в mql5
ArraySort(mas);
ArraySetAsSeries(mas,true); // а при такой записи ругается // это тоже лишнее
}
1 - il change la direction de l'indexation des cellules du tableau sans changer leur contenu et 2 - il change le contenu des cellules sans changer leur indexation afin qu'elles soient triées par ordre croissant ou décroissant.
De plus, la documentation indique que le tableau ne peut être trié que sur la première dimension.
AS_SERIES et le tri sont des concepts complètement différents.
1 - change la direction de l'indexation des cellules du tableau sans changer leur contenu, et 2 - sans changer l'indexation, change le contenu des cellules pour qu'elles soient triées par ordre croissant ou décroissant.
De plus, la documentation indique que le tableau ne peut être trié que sur la première dimension.
Ici, il trie dans l'ordre ascendant
Comment puis-je l'inverser maintenant ? Il faut que ce soit en ordre décroissant, c'est du triage par lots.
Ici, il trie dans l'ordre ascendant
Comment puis-je l'inverser maintenant ? Vous en avez besoin dans l'ordre décroissant, cela trie les lots.
Et l'option la plus stupide est de réécrire le tableau entier dans l'ordre inverse. Cela en vaut-il la peine ?
Ici, il trie dans l'ordre ascendant
Comment puis-je l'inverser maintenant ? Vous en avez besoin dans l'ordre décroissant, cela trie les lots.
Que se passe-t-il si, après le tri, vous modifiez l'ordre d'indexation à l'aide de ArraySetAsSeries ?
Alors ça se passe comme ça: