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

 
Vitaly Muzichenko:

Je ne peux pas le toucher avec l'événementOnCalculate(...), je peux toucher n'importe quelle fonction, mais je ne peux pas toucher celle-ci. La minuterie n'est pas une option, l'indicateur n'est pas nécessaire si souvent, et il serait mieux de l'utiliser avec un clic sur un élément graphique.

Comment le mettre en œuvre ?

Vous attrapez le clic sur l'objet dans l'indicateur et le gestionnaire d'événement, puis vous recalculez les tampons de l'indicateur comme à un nouveau départ. Vous n'avez pas besoin de tirer OnCalculate
 
-Aleks-:

Pouvez-vous me dire comment rechercher correctement les endroits du code les plus gourmands en ressources qui chargent le CPU ?

Exécuter le profilage du code à partir de l'éditeur.
 
Artyom Trishkin:
Exécuter le profilage du code à partir de l'éditeur.

Merci, mais comment le faire hors ligne - pendant un jour de congé ?

 
Quel pourrait être le problème ?

Un morceau de code :

for(i=1 ; i<=Bars ; i++)
{
if(Open[i]-Close[i]==0)

Lors des tests, le débogueur génère une erreur sur la ligne if. Le tableau est hors de portée.

Merci d'avance.
 
Andy-D:
Quel pourrait être le problème ?

Un morceau de code :

for(i=1 ; i<=Bars ; i++)
{
if(Open[i]-Close[i]==0)

Lors des tests, le débogueur génère une erreur sur la ligne if. Le tableau est hors de portée.

Merci d'avance.
for(i=1; i<Bars; i++)
  {
   if(Open[i]-Close[i]==0)
     {

     }
  }
...
 
Sergey Gritsay:
for(i=1; i<Bars; i++)
  {
   if(Open[i]-Close[i]==0)
     {

     }
  }
...
Merci a aidé, je suppose que je n'aurais pas dû mettre "<=" ? C'est bizarre, cependant. Je ne comprends pas pourquoi. Où dois-je mettre le signe plus ?
 
Andy-D:
Merci a aidé, je suppose que je n'aurais pas dû mettre "<=" ? C'est bizarre, cependant. Je ne comprends pas pourquoi. Où mettre le signe plus ?
L'indexation du tableau commence par 0 et se termine par Bars-1 (dans ce cas). Par conséquent, la valeur de Bars entraîne un dépassement du tableau.
 
Andy-D:
Merci a aidé, je suppose que je n'aurais pas dû mettre"<=" ? C'est étrange. Je ne comprends pas pourquoi. Où mettre un signe plus ?
En effet, l'indexation des tableaux commence par zéro. Ainsi, par exemple, si le nombre de barres dans Bars est de 1, pour obtenir une valeur de cette seule barre, vous devez prendre la valeur de la cellule dont l'indice est 0.

Voici un tableau comparatif :

Nombre de bars dans Bars
1 2 3 4 5 6 7 8 9 10 Tableau extérieur
Index de boucle référençant les données
0 (i<Bars)1 (i<Bars)2 (i<Bars)3 (i<Bars) 4 (i<Bars)5 (i<Bars) 6 (i<Bars) 7 (i<Bars)8 (i<Bars)9 (i<Bars) 10 (i==Bars)
 
Sergey Gritsay:
Pour ce faire, vous devez créer un serveur en dehors de l'ordinateur local et transférer les données par le biais de ce serveur, respectivement, pour MT vous devez écrire un indicateur ou un Expert Advisor qui traite ces données, ou mettre les terminaux sur un serveur VPN et mettre en place un copieur de transactions de votre compte vers les comptes de vos amis là-bas. Une autre option consiste à copier vos transactions exécutées sur des niveaux donnés par le biais d'un service de signaux. En général, vous devez tenir compte de vos capacités financières pour commander le logiciel approprié.
J'ai trouvé un indicateur (mq4) avec un principe de cartographie similaire. J'ai vu ses résultats et ils ne me conviennent pas. J'ai mes propres données. Je pense qu'elles sont plus précises. Je dispose de mes propres données. Puis-je les modifier pour les rendre plus précises, supprimer certains mappings inutiles et indiquer le chemin d'accès à mes données ? Prenez-le comme base.
 
Artyom Trishkin:
Puisque l'indexation des tableaux commence par zéro, par exemple, si le nombre de barres dans Bars est de 1, alors pour obtenir la valeur de cette seule barre, nous devons prendre la valeur de leur cellule avec l'index 0.

Voici le tableau comparatif :

Nombre de bars dans Bars
1 2 3 4 5 6 7 8 9 10 Tableau extérieur
Index de boucle référençant les données
0 (i<Bars)1 (i<Bars)2 (i<Bars)3 (i<Bars) 4 (i<Bars)5 (i<Bars) 6 (i<Bars) 7 (i<Bars)8 (i<Bars)9 (i<Bars) 10 (i==Bars)
Merci beaucoup, cela a plus de sens maintenant.
Raison: