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

 
Artyom Trishkin:

Ce n'est pas clair ce dont nous avons besoin au final - quelques réflexions bizarres.


Il s'agit de deux questions dans un seul message tout en résolvant le même problème :-)

1. Comment renvoyer une erreur de création d'objet à partir d'une fonction qui devrait renvoyer des données ?

2. Existe-t-il un moyen de parcourir en boucle les positions d'un symbole donnésans utiliser PositionsTotal à chaque fois ?

 
psyman:


Il s'agit de deux questions dans un seul message tout en résolvant le même problème :-)

1. Comment renvoyer une erreur de création d'objet à partir d'une fonction qui devrait renvoyer des données ?

2. Existe-t-il un moyen de parcourir en boucle les positions d'un symbole donnésans utiliser PositionsTotal à chaque fois ?

1. Pourquoi une fonction de création d'objet qui est juste censée créer un objet et renvoyer true en cas de succès ou false en cas d'erreur devrait-elle renvoyer autre chose ? Ça ne devrait pas. La fonction doit faire une chose et renvoyer le résultat de son travail. Ou, si vous voulez faire un monstre, renvoyer des données par référence via des variables.

2. Cela dépend du type de compte que vous avez.

3. Ouvrez enfin l'aide - vous y trouverez de nombreuses "découvertes merveilleuses".

 
Artyom Trishkin:

1. Pourquoi une fonction de création d'objet, qui est juste censée créer un objet et renvoyer true si elle réussit, ou false si elle échoue, devrait-elle renvoyer autre chose ? Ça ne devrait pas. Une fonction doit faire une chose et renvoyer le résultat de son travail. Ou, si vous voulez faire un monstre, renvoyer des données par référence via des variables.

2. Cela dépend du type de compte que vous avez.

3. Ouvrez enfin l'aide - on y trouve beaucoup de "découvertes étranges".


Je vois ce que vous voulez dire. Merci, je vais simplifier le code.

Le type de compte est une couverture.

Peut-être que les questions semblent simples, mais elles apparaissent après avoir lu l'aide, tous les détails n'y sont pas décrits, je dois chercher les détails dans les articles ou ici.

 
Roman Shiredchenko:

Camarades - regardez l'indicateur pour l'exactitude. Il existe une formule Valeur = (Open[0]-SMA(P,n))/SMA(P,n))*100%.

Je l'ai mis sur le graphique - il calcule et trace tout. Je commence à vérifier sa valeur sur une barre en utilisant la calculatrice - elle ne coïncide pas avec celle que j'ai dessinée...

Voici un exemple, je calcule Open 1,0178, MA(13) 1,0182 en utilisant la formule ((1,0178-1,0182)/1,0182) * 100% - le résultat sur la calculatrice est -0.0393. Et le graphique MT4 montre -0.0929. Est-ce une erreur dans le code ou la calculatrice ne calcule pas correctement certaines valeurs à cet endroit ? Aidez-moi, s'il vous plaît. Je joins l'indicateur.

Vous l'avez dans la formule Open[0], c'est comme ça qu'il faut faire.

 
Alekseu Fedotov:

Vous avez Open[0] dans votre formule, elle est donc conçue de cette façon.

Eh bien, oui. C'est comme ça que je vois les prix d'ouverture... Il y a une ouverture et une clôture... confus...
 
Seric29:
Comment remplir un tableau à 4 dimensions du format int Mas[1][2][2][2] avec des valeurs, comment attribuer une valeur à chaque cellule du tableau, dans ce cas, il y a un tableau à 2 dimensions int Arr[1][2]={3,4} ; comment remplir un tableau à 4 dimensions ?

Utilisez un tableau de structures, c'est beaucoup plus facile, plus clair et plus productif en termes d'exécution du programme.

struct My_St
{
   datetime tm; 
   int      mg;    
   double   tp;     
   double   sl;     
};
My_St st[];
 

Je dispose de plusieurs outils, étiquetés de manière analytique.

Je veux en changer la couleur.

Je ne veux pas le faire à la main, je veux le faire de manière intelligente.

Y a-t-il un moyen de le faire ? Par exemple, tout le texte que j'ai est noir et je veux du blanc.

Merci.

 
Roman Shiredchenko:
Eh bien, oui. C'est ainsi que j'envisage l'ouverture des prix..... Il y a un ouvreur et un klose, il semble... confus...

Je ne sais pas, c'est l'idée.


Quelle était l'idée ici,

si nous prenons la valeur de n'importe quelle barre (de History =5000 ; // le nombre de barres dans l'historique calculé)

puis l'ouverture de la même barre, mais pas zéro,

votre formule(Open[0]-SMA(P,n))/SMA(P,n))*100 %.


Roman, bonne chance

 
Igor Makanu:

Les tableaux multidimensionnels sont généralement remplis en boucle avec les bonnes valeurs - il est plus difficile de faire une erreur. Pour un tableau à quatre dimensions, cela devrait être quelque chose comme ceci, mais je peux me tromper :

Non, tu n'as pas tort. Mon erreur était de l'écrire comme ça.

A[1][2][4][2] = {{{1,2}, {0,2}, {1,2}, {1,2}},{{1,2}, {1,2}, {1,2}, {1,2}}}, 

J'aurais dû l'écrire comme ça.

A[1][2][4][2] = {{{{1,2}, {0,2}, {1,2}, {1,2}},{{1,2}, {1,2}, {1,2}, {1,2}}}}, 

Il y a 4 crochets sur les bords et j'en ai 3. Ça se lit comme ça.

A[1] - означает 1ну строку, один ярус
A[1][2] 2ка в следующих скобочках говорит о том что мы имеем дело с 2мя 3ёх-мерными массивами, другими словами, это как 2 параллельных мира
A[1][2][4][2] - последующие [4][2] описываю 3ёхмерный массив, т.е. каждый из массивов имеет 4 столбца, и в каждом по 2 значения вот пример
{{1,2}, {0,2}, {1,2}, {1,2}} 4 столбца в каждом по значения

En général, merci, si je vis assez longtemps, je m'en accommoderai.

 
Seric29:

Lorsque vous passez une structure à une fonction, vous devez écrire une fonction pour chaque structure. La fonction est donc trop statique et manque de polyvalence. Mais les structures ont un côté positif, vous pouvez combiner des tableaux de différents types dans des structures et les lire comme un seultableau multidimensionnel, mais malheureusement j'ai perdu le lien vers ce site où il était montré comment le faire. Pour dire la vérité, je ne suis pas très bon avec les structures, beaucoup moins de texte si la déclaration de variable globale qu'un point d'accéder aux champs de la structure, aussi je ne comprends pas les classes, j'ai relu le matériel de nombreuses fois dans le dernier peu plus comprendre, mais expliqué très compliqué et lourd, trop de phrases scientifiques utilisés dans l'explication, donc je n'ai pas fondamentalement compris une grande partie du matériel, et ce que les objets dynamiques exactement peut être fait pour moi aussi.