Ce que RefreshRates() met à jour

 
Je voudrais savoir exactement quelles données et séries temporelles RefreshRates() met à jour et quand c'est vrai ?
 
Une fonction tellement secrète que les développeurs ne la connaissent même pas.))))
 

Je n'ai tout simplement pas la patience de répondre à de telles questions.

RefreshRates

Осуществляет обновление данных в предопределенных переменных и массивах-таймсериях.


Et ce que sont les variables prédéfinies et les tableaux de séries chronologiques peuvent être trouvés dans la documentation.

Предопределенные переменные - Справочник MQL4
Предопределенные переменные - Справочник MQL4
  • docs.mql4.com
Предопределенные переменные - Справочник MQL4
 
Alexey Viktorov:

Je n'ai tout simplement pas la patience de répondre à de telles questions.


Et vous pouvez vous renseigner sur les variables prédéfinies et les tableaux de séries chronologiques dans la documentation.

C'est-à-dire que les données de la fonction iClose() ne sont en aucun cas affectées par RefreshRates(). Alors comment faire en sorte que la fonctioniClose() produise des informations actualisées ?

 
Mikhail Nazarenko:

Ainsi, les données dans iClose() ne sont pas affectées par RefreshRates(). Alors comment puis-je faire en sorte que la fonctioniClose() produise des informations actualisées ?

Quelle est la barreiClose()?

 
Alexey Viktorov:

iClose() quelle barre ?

Zéro. Délai arbitraire.

 
Mikhail Nazarenko:

Zéro. Un délai arbitraire.

Honnêtement, je suis surpris... et c'est un euphémisme. Je pensais que iClose() récupérait les valeurs du serveur du courtier, mais non... RefreshRates() ; met à jour les valeurs obtenues par iClose()

/********************Script program start function*******************/
void OnStart()
 {
  for(int i = 0; i < 10; i++)
   {
    Print(Bid, " *** ", iClose(_Symbol, PERIOD_CURRENT, 0));
    Sleep(1000);
    RefreshRates();// Без RefreshRates(); значения iClose(_Symbol, PERIOD_CURRENT, 0) не меняются…
                   // То, что без RefreshRates(); не меняются значения Bid, это понятно и нормально…
   }
 }/******************************************************************/

Voici le résultat de l'exécution du script

2021.02.15 11:39:35.559 00 EURUSD,M5: 1.21375 *** 1.21375
2021.02.15 11:39:34.559 00 EURUSD,M5: 1.21375 *** 1.21375
2021.02.15 11:39:33.559 00 EURUSD,M5: 1.21375 *** 1.21375
2021.02.15 11:39:32.559 00 EURUSD,M5: 1.21375 *** 1.21375
2021.02.15 11:39:31.559 00 EURUSD,M5: 1.2138 *** 1.2138
2021.02.15 11:39:30.559 00 EURUSD,M5: 1.21378 *** 1.21378
2021.02.15 11:39:29.559 00 EURUSD,M5: 1.21379 *** 1.21379
2021.02.15 11:39:28.559 00 EURUSD,M5: 1.21378 *** 1.21378
2021.02.15 11:39:27.559 00 EURUSD,M5: 1.21379 *** 1.21379
2021.02.15 11:39:26.559 00 EURUSD,M5: 1.21379 *** 1.21379

Bon, ok... Je vais garder à l'esprit cette fonctionnalité et insérer RefreshRates() si nécessaire ;


ps ; Et iClose(_Symbol, PERIOD_CURRENT, 0) change dans MT5.

 
Alexey Viktorov:

Honnêtement, je suis surpris... et c'est un euphémisme. Je pensais que iClose() recevait les valeurs du serveur du courtier, mais non... RefreshRates() ; met à jour les valeurs reçues par iClose()

Voici le résultat de l'exécution du script

Bon, d'accord... Personnellement, je vais garder à l'esprit cette fonctionnalité et insérer RefreshRates() quand c'est nécessaire ;

Si je change de période pour une autre que la période actuelle, les données ne seront plus rafraîchies à temps, même avec RefreshRates(). Ainsi, iClose et d'autres fonctions fondamentales de MT4 produisent un non-sens non pertinent. Je suis sûr que 80% des infos ne tiennent pas compte de ces caractéristiques uniques de MT4. Comment vivre ?)))

 
Alexey Viktorov:

Franchement, je suis surpris... et c'est un euphémisme. Je pensais que iClose() recevait les valeurs du serveur du courtier, mais non... RefreshRates() ; met à jour les valeurs reçues par iClose()

Voici le résultat de l'exécution du script

Bon, ok... Je vais garder à l'esprit cette fonctionnalité et insérer RefreshRates() si nécessaire ;


ps ; Et iClose(_Symbol, PERIOD_CURRENT, 0) change dans MT5.

Les valeurs iXXXXXX en quadruple ont toujours été correctes. Vous ne vérifiez pas le résultat de la fonction. Quatre l'exige également (aussi étrange que cela puisse paraître à certains adeptes de la simplicité absolue)
 
Quelle est la solution ? Plus de béquilles ? Par exemple, conserver un historique des tics et recalculer toutes les échéances dans les EA par elles-mêmes. C'est au-delà du bien et du mal.))
 
Mikhail Nazarenko:
Quelle est la solution ? Plus de béquilles ? Par exemple, conserver un historique des tics et recalculer toutes les échéances dans les EA par elles-mêmes. C'est au-delà du bien et du mal))).
Non, ça ne l'est pas. Que dit l'aide de la fonction à propos de la valeur de retour ?