Erreurs, bugs, questions - page 2467

 
Oh, je pense avoir trouvé ce fil de discussionhttps://www.mql5.com/ru/forum/6729
В MQL5 всегда есть место подвигу ! ;)
В MQL5 всегда есть место подвигу ! ;)
  • 2012.05.16
  • www.mql5.com
Общее обсуждение: В MQL5 всегда есть место подвигу ! ;)
 
Sergey Dzyublik:

Ce problème a été résolu il y a 4 ou 5 ans, il existait une branche distincte avec des solutions toutes prêtes.
Parmi les participants actifs, peu ont survécu jusqu'à ce jour, la plupart ont été re-bannis...

P.s. Ce n'était pas un tableau à deux dimensions, mais un tableau à trois dimensions sur les classes.

Eh bien, j'ai regardé dans ce fil de discussion - il n'y a pas un seul compte qui a été banni ou supprimé. Toutes les personnes de cette branche sont là, et toujours en vie.

C'est comme ça que vous avez décidé de créer un scandale, en le jetant sur l'administration ? C'est idiot, n'est-ce pas ? Arrêtez de voir le mal par ici.

 
Sergey Dzyublik:
Oh, je pense que j'ai trouvé cette branchehttps://www.mql5.com/ru/forum/6729

Je crois avoir lu ce fil de discussion le mois dernier, je regarderai à nouveau ce soir.

mais mes expériences avec la surcharge [][] ont abouti à la réalisation que je peux implémenter la valeur L ou la valeur R dans MQL en utilisant la surcharge [][].

Si vous avez une solution complète pour un tableau dynamique à deux dimensions - mettez-la dans CodeBase, c'est une chose utile - je n'ai rien trouvé de mieux que CMatrixDouble de MT : #include Math Alglib

 
class A{
public:
   uchar data1;
};

A func(){
   A a;
   a.data1 = 1;
   return a;      //object of 'A' cannot be returned, copy constructor 'A::A(const A &)' not found
}


void OnStart(){  
   A a;

   //1
   A aa = a;
   a = aa;
   
   //2
   a = func();   
}

Quelle est la différence entre //1 et //2 ?
Malheureusement, ce problème ne peut être évité lors de l'utilisation de modèles dans des conteneurs avec un type de données arbitraire.

Dans un cas particulier, pour résoudre le problème, nous pouvons implémenter l'héritage, définir un constructeur de copie pour la classe parent et remplacer le type de retour dans la fonction problématique de la base vers le parent.

 
Les développeurs :
Veuillez ajouter une fonction qui renvoie la capacité d'un tableau (le nombre d'éléments pour lesquels un espace est réservé en mémoire). À ne pas confondre avec le paramètre de réserve pour ArrayResize.
Il y aStringBufferLen pour les chaînes mais rienpour les tableaux.
 

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Bugs, bugs, questions

Sergey Dzyublik, 2019.05.22 16:01

Merci encore àTheXpert pour avoir fourni le code.
Nous avons les résultats suivants sur la capacité ArrayResize MT5(build 2057) :


Résultat :
2019.05.22 17:00:50.249 Test_array_resize (EURUSD,H1)   TEST_ArrayCapacity:TEST_ArrayCapacity
2019.05.22 17:00:50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store,100,0):100
2019.05.22 17:00:50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store,100,100):100
2019.05.22 17:00:50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store,101,100):201
2019.05.22 17:00:50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store,200,100):201
2019.05.22 17:00:50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store,201,100):201
2019.05.22 17:00:50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store,202,100):302
2019.05.22 17:00:50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store,100,1):302
2019.05.22 17:00:50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store,100,400):302
2019.05.22 17:00:50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store,300,400):302
2019.05.22 17:00:50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store,301,600):302
2019.05.22 17:00:50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store,302,600):302
2019.05.22 17:00:50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store,303,600):903
2019.05.22 17:00:50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store,100,0):903
2019.05.22 17:00:50.249 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store,100,100):903
2019.05.22 17:00:50.250 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store,100,-1):100
2019.05.22 17:00:50.250 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store,100,100):100
2019.05.22 17:00:50.250 Test_array_resize (EURUSD,H1)   TestArrayCapacity(store,105,100):205

 

Bonsoir !

Quelqu'un peut-il me dire ce qui se passe ?

C'est la première fois que je vois ça. Code simple dans une des fonctions.

double yyy=28/50*100;
   
Print("test yyy=", yyy);

Résultat :

"2019.05.21 19:38:29.364 2019.04.01 00:05:00 test yyyy=0.0"


 
Michael2K:

Bonsoir !

Quelqu'un peut-il me dire ce qui se passe ?

int(28) / int(50) * int(100) == int(0) * int(100) == int(0) == double(0.0)


Utilisez un point pour spécifier le type double:

double yyy=28./50*100;
 
Sergey Dzyublik:
Veuillez également fournir un pseudocode pour l'utilisation du paramètre reserve_size dans ArrayResize.
Il n'y a pas de description du comportement du système lorsqu'une nouvelle valeur reserve_size est définie pour le prochain ArrayResize.
Sergey Dzyublik:


L'hypothèse suivante est-elle correcte lors d'un appel séquentiel :

Le pseudo-code qu'ils ont donné une fois dans ce fil, regardez-le. Autant que je me souvienne, la capacité est augmentée uniquement lorsque la taille du tableau dépasse cette capacité. Bien sûr, quelque chose a pu changer.

Et la fonction permettant d'obtenir la valeur d'une saracité est vraiment très utile.

 
Alexey Navoykov:

Le pseudo-code qu'ils ont donné dans ce fil il y a quelque temps, cherchez-le. Autant que je me souvienne, la capacité est augmentée uniquement lorsque la taille du tableau dépasse cette capacité. Bien que quelque chose ait pu changer bien sûr.

Et la fonction pour obtenir la valeur de saracity est vraiment très nécessaire.

Merci pour l'information, jusqu'à présent j'ai trouvé comment fxsaber cherchait la même chose ;)).

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Bugs, bugs, questions

fxsaber, 2018.04.13 10:04

Aide à trouver le poste de développeur où le code source de ArrayResize a été posté. La recherche sur Google de "site:mql5.com/fr/forum ArrayResize+reserve" ne donne rien.

Je me souviens qu'il y avait un code source. Vous pouvez y voir immédiatement la logique de mise en œuvre du paramètre de réserve.

J'ai cherché sur Google, j'ai cherché sur les forums, j'ai cherché dans les profils des principaux développeurs...
A part la possibilité d'utiliser reserve_size avec la valeur -1 dans ArrayResize pour vider la mémoire précédemment allouée, je n'ai rien trouvé.