Questions des débutants MQL5 MT5 MetaTrader 5 - page 694

 
Renat Akhtyamov:

alors l'indicateur cycle, dans lequel le nombre de barres est cette même ligne.

Je me demande - ce qui est clair ( ?), c'est-à-dire où lire sur les particularités de MT5 en mode hors ligne, pouvez-vous me le dire s'il vous plaît ?

L'indicateur rates_total - utilisé avec succès à la place de Bars() dans la boucle OnCalculate()
 
Artyom Trishkin:
Dans l'indicateur rates_total, il est utilisé avec succès à la place de Bars() dans la boucle de OnCalculate().

Ok. Oui, ça existe.

Y aura-t-il le même nombre de barres pour les différents instruments/horaires, parce que j'ai un indicateur multi-devises ?

Je peux modifier les paramètres ici

Bars(_Symbol,_Period);

Mais qu'en est-il des taux_total pour calculer l'indicateur pour différents délais et symboles ?

 
Renat Akhtyamov:

Ok. Oui, ça existe.

Y aura-t-il le même nombre de barres pour les différents instruments/horaires, parce que j'ai un outil multi-devises ?

Pour obtenir le nombre de barres de l'historique pour une période non courante ou un symbole non courant dans un indicateur multi-devises/multi-temporels, nous devons utiliser Bars().
 
Artyom Trishkin:
Pour obtenir le nombre de barres d'historique pour une période non courante ou un symbole non courant dans un indicateur multi-devises/multi-temporels, vous devez utiliser Bars().

C'est exactement ce que je suis en train d'écrire - que cette fonction ne fonctionne pas hors ligne, bien qu'il y ait un historique des citations.

Par conséquent, l'indicateur ne peut pas être testé hors ligne.

Il s'avère que la cotation dans MT5 est envoyée personnellement à chaque IP et peut être différente de l'historique de la cotation, qui est déjà dessinée sur le graphique ? //Ainsi va la logique...

 
Renat Akhtyamov:

et ensuite l'indicateur, dans lequel le nombre de barres est cette même ligne.

Je me demande - ce qui est clair ( ?), c'est-à-dire où lire sur les particularités de MT5 en mode hors ligne, pourriez-vous me le dire ?

Il est clair que MT5. Il n'est pas clair ce qui a été fait avant d'appeler Bars(). Ce script simple fonctionne et ne renvoie pas de zéro même lorsqu'il n'y a pas de connexion au serveur ou lorsqu'il n'y a pas de réseau du tout.

Je ne l'ai pas essayé dans les indicateurs, c'est pourquoi j'ai demandé comment cela se passe dans votre cas. Le plus souvent, lorsque le nouvel appel correspond au nombre réel de barres, le premier appel entraîne la mise à jour des données dans le cache.

void OnStart()
  {
        Print("Bars on chart - ",Bars(_Symbol,PERIOD_CURRENT));  
  }
 
Vitalie Postolache:

Il est clair que MT5. Ce qui a été fait avant d'appeler Bars() n'est pas clair. Ce script simple fonctionne pour moi et ne renvoie pas zéro, même lorsqu'il n'y a pas de connexion au serveur ou lorsqu'il n'y a pas de réseau du tout.

Je ne l'ai pas essayé dans les indicateurs, c'est pourquoi j'ai demandé comment cela se passe dans votre cas.

void OnStart()
  {
        Print("Bars on chart - ",Bars(_Symbol,PERIOD_CURRENT));  
  }
clairement
 

Quel est le meilleur moyen simple de se lier à la clôture d'une bougie pour exécuter l'EA ? Pour recalculer les indicateurs, supprimer/placer des ordres, etc.

Par minuterie ?

Mais comment démarrer la minuterie au bon moment pour qu'elle se déclenche toutes les heures à HH:00:00 ? et non pas toutes les heures à partir de l'activation de la minuterie ?

 
dimnik:

Quel est le meilleur moyen simple de se lier à la clôture d'une bougie pour exécuter l'EA ? Pour recalculer les indicateurs, supprimer/placer des ordres, etc.

Par minuterie ?

Mais comment démarrer la minuterie au bon moment pour qu'elle se déclenche toutes les heures à HH:00:00 ? et non pas toutes les heures à partir de l'activation de la minuterie ?

Vérifiez l'heure d'ouverture de la bougie actuelle et comparez-la à l'heure d'ouverture du dernier contrôle. S'ils sont égaux, cela signifie qu'une nouvelle barre ne s'est pas encore ouverte et qu'il faut revenir de OnTick(). Si ce n'est pas le cas, nous avons identifié l'ouverture d'une nouvelle barre - faites tout ce qui est écrit dans l'Expert Advisor et retenez le nouveau temps d'ouverture pour le prochain contrôle.
 
Vitaly Muzichenko:

Question graphique :

Il y a un modèle comme celui-ci

for(long currChart = ChartFirst();currChart != -1; currChart=ChartNext(currChart)) {
 if(currChart == график тестера) continue; // Что сюда написать?
  ObjectSetInteger(currChart,"Sync",OBJPROP_BGCOLOR,clrGreen);
}

Comment puis-je savoir que le graphique n'est pas le principal, mais qu'il est ouvert en mode "testeur" et le sauter ?

A titre de suggestion.

Créez un modèle pour le graphique et mettez une étiquette avec le nom, par exemple, "TesterChart" ou tout autre objet, vous pouvez utiliser des coordonnées nulles pour qu'il ne soit pas visible. Nommez ce modèle "Tester". Maintenant tous les graphiques des tests auront un objet avec ce nom. Ensuite, demandez si le tableau a cet objet, si oui, c'est "Notre Testeur", passez-le.

De part en part, mais je ne connais pas d'autre moyen.

 
Vasiliy Pushkaryov:
A titre de suggestion.

Créez un modèle pour le graphique et donnez-lui un nom tel que "TesterChart" ou tout autre objet, éventuellement aux coordonnées zéro pour qu'il ne soit pas visible. Nommez ce modèle "Tester". Maintenant tous les graphiques des tests auront un objet avec ce nom. Ensuite, demandez si le graphique a cet objet, si oui, c'est "Notre Testeur", passez-le.

Je ne sais pas comment, mais je ne connais pas d'autre moyen.

Merci, mais cette solution n'est pas adaptée dans le sens où je teste sur plus d'un modèle, mais c'est la moitié du problème, mais le fait que cet indicateur ne fonctionne pas seulement pour moi, les gens sont simplement fatigués de remplir les étiquettes dans le testeur.

Il s'avère qu'il n'y a aucun moyen de déterminer par programme que le graphique fonctionne dans le testeur ? Où êtes-vous des développeurs ?

.

Raison: