Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 862

 

En parlant de cubes !

Pouvez-vous me dire comment effacer un "cube" inutile ?

 
im-zvv:

En parlant de cubes !

Pouvez-vous me dire comment effacer un "cube" inutile ?

Pour ce faire, il faut savoir à quelle position se trouve ce "cube", combien d'octets il occupe, réécrire un pointeur de fichier à cet endroit et écrire une nouvelle valeur à cet endroit.

Par conséquent, si les cordes ont des longueurs différentes, ce n'est tout simplement pas réaliste. Il ne sera pas possible de calculer le nombre d'octets pour obtenir le "cube" souhaité.

 
Alexey Viktorov:

Pour ce faire, vous devez savoir dans quelle position se trouve ce "cube" et combien d'octets il occupe, puis enrouler le pointeur de fichier à cet endroit et écrire la nouvelle valeur à cet endroit.

Par conséquent, si les chaînes de caractères ont des longueurs différentes, nous ne pouvons tout simplement pas le faire. Il sera impossible de calculer le nombre d'octets du bon "cube".

Évidemment, tous ces calculs augmentent le temps de traitement.

Je vais chercher d'autres méthodes.

Merci.

 
Alexey Viktorov:

Pour ce faire, il faut savoir dans quelle position se trouve ce "cube" et combien d'octets il occupe, réécrire un pointeur de fichier à cet endroit et écrire une nouvelle valeur à cet endroit.

Par conséquent, si les chaînes de caractères ont des longueurs différentes, il est tout simplement impossible de le faire. Il sera impossible de calculer le nombre d'octets pour obtenir le "cube" souhaité.

Si ce n'est pas crucial et que vous pouvez utiliser WinApi, alors je pense que la tâche peut être résolue via FileMapping.

 

Je vais tout essayer. Je vais commencer par créer un fichier "vide", avec des variables abstraites pour la réserve. Puis je le remplacerai par les données que j'obtiendrai.

Peut-être que ça va marcher. Le seul problème est la taille du fichier. Il pourrait s'agrandir. Je vais devoir créer une nouvelle sauvegarde avant chaque lecture.

 
Vous recherchez des articles sur l'utilisation dunouvel opérateur dans mql4, pouvez-vous nous conseiller de tels articles ? Qui peut expliquer brièvement pourquoi les classes sont nécessaires s'il y a des fonctions et des variables globales, j'ai regardé beaucoup de vidéos et lu l'aide plusieurs fois et je ne comprends toujours pas à quoi ça sert ?
 
Seric29:
Vous cherchez des articles sur l'utilisation dunouvel opérateur dans mql4, conseillez de tels articles ? J'ai vu de nombreux clips vidéo et lu le fichier d'aide plusieurs fois, mais je ne comprends pas à quoi cela sert ?

l'opérateur new en MQL n'est nécessaire que pour créer un pointeur vers une instance d'objet


Les programmes MQL sont assez spécialisés et la POO est principalement adaptée à l'encapsulation, j'ai donné un exemple de la classeCWorkTime ci-dessushttps://www.mql5.com/ru/forum/160683/page861#comment_11840254.

il est pratique d'utiliser l'encapsulation pour créer plusieurs instances de l'objet time-limit, comme ceci :

int OnInit()
{
   Work1=new CWorkTime(StartHour_1,StartMinute_1,StopHour_1,StopMinute_1);
   Work2=new CWorkTime(StartHour_2,StartMinute_2,StopHour_2,StopMinute_2);
}

.....


void OnTick()
  {

if(Work1.Disable() || Work1.Disable())
{
 Comment("Не торговое время!!!");
 }
else
{......

c'est-à-dire que dans mon exemple, vous pouvez maintenant spécifier 2 intervalles de temps de travail de l'EA

SZY : lire - chercher dans les articles du forum la section "Objets".

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2019.05.26
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Igor Makanu:

Il est clair que dans une plus grande mesure les classes composent les variables de données et les fonctions, et dans la mesure restante font probablement quelque chose de puissant si je comprends bien, parce que tout peut être organisé par des fonctions, peut-être que les classes fonctionnent plus rapidement que les fonctions, vous avez un accès plus rapide aux données, j'ai lu des forums écrire qu'ils utilisent la mémoire de manière plus égale et économique et tout ça.

 

Pourquoi ce code ne fonctionne-t-il pas ?

#property version   "1.00"
#property strict
string iComments="\n 
 class CArray : public Cobject 
{
public:
    double m_Array[100];
}//дальше в OnInit()
 {Carray *arr = new CArray;
   arr.m_Array[22] = 1.23456;

....
}

La classe devrait peut-être être décrite par deux points :: ? L'idée est de créer un pointeur qui pointe vers un autre pointeur.

 

Bonjour !

Merci encore àAlexey Viktorov pour le conseil sur les citations - tout fonctionne. Ce lundi, nous sommes confrontés à une situation : les Allemands ont fait du commerce, tandis que les Anglais ont un jour de congé. Il s'est avéré qu'en condition d'ouverture de la position euro, les anciennes valeurs de la livre ont été utilisées. D'où ma demande : comment vérifier dans le code que les deux symboles sont négociés ce jour-là ?

Merci.