Erreurs, bugs, questions - page 136

 
Renat:
L'indicateur créé à partir de Expert Advisor ne sera pas déchargé jusqu'à ce que vous le supprimiez explicitement ou que Expert Advisor soit terminé.

Merci d'avoir pris le temps de répondre.

Cela change beaucoup de choses, cela signifie que nous pouvons nous passer de séparer le code pour le testeur et le code pour le réel.

 
Renat:

Des conseils sur la meilleure façon d'économiser les ressources si les indicateurs sont utilisés une fois par heure :

de laisser une douzaine d'indicateurs standards s'accrocher à chaque tick ou

Déchargez-les après chaque utilisation via IndicatorRelease(indicator_handle), puis rechargez-les après une heure.

Mais la deuxième variante augmente le temps de test.

Répondez également à la question suivante : combien de temps faut-il en moyenne pour charger un masque ?

 
Urain:

Conseils sur la meilleure façon d'économiser les ressources si les indicateurs sont utilisés une fois par heure :

laisser une douzaine d'indicateurs standards à accrocher sur chaque tic ou

La meilleure chose à faire n'est pas de les décharger (les indicateurs ne sont pas vraiment nécessaires " une fois par heure "), mais.. :

  1. augmenter la taille de la mémoire avec le passage à 64 bits, ou
  2. réduire la profondeur des tableaux d'histoire
Le moment exact du chargement est impossible à dire - il dépend de plusieurs facteurs. Il est préférable de ne pas créer de problèmes en déchargeant les indicateurs - cela peut causer des problèmes à cause des processus asynchrones de création et de recalcul de l'indicateur.
 
Urain:

Des conseils sur la meilleure façon d'économiser les ressources si les indicateurs sont utilisés une fois par heure :

de laisser une douzaine d'indicateurs standards s'accrocher à chaque tick ou

Déchargez-les après chaque utilisation via IndicatorRelease(indicator_handle), puis rechargez-les après une heure.

Mais la deuxième variante augmente le temps de test.

Répondez également à la question suivante : combien de temps faut-il en moyenne pour charger un masque ?

Si vous n'utilisez pas la minuterie à d'autres fins, essayez d'envoyer des données à la minuterie à l'intervalle requis.
 

Question

Je n'utilise pas du tout les paramètres de compensation, mais j'ai vu par hasard une description sur Alligator, et j'ai commencé à réfléchir... :)

Description d'un des paramètres de l'alligator :

changement de dents

[Décalage de la ligne rouge par rapport au graphique des prix. Il faut se rappeler que le décalage de la ligne est purement visuel pour l'affichage, et que les valeurs dans le tampon de l'indicateur sont stockées sans aucun décalage. Lorsque les valeurs du tampon sont obtenues à l'aide de la fonction CopyBuffer(), la valeur du décalage n'aura aucun effet.

Bien que cela ne soit pas mentionné dans la description de l'AM, je pense que c'est une erreur et que tout est similaire.

ma_shift

[Décalage de l'indicateur par rapport au graphique des prix.

Dans l'image où se trouve l'oiseau jaune, le prix a franchi la MA sans changement. C'est clair ici, par exemple, le prix à la clôture de la barre précédente est supérieur à la MA et le prix à l'ouverture de la barre actuelle est ouvert.

Mais là où se trouve l'oiseau vert, comment pouvons-nous savoir la même chose ? C'est-à-dire lorsque le prix traverse visuellement la MA avec le décalage

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов - Документация по MQL5
 
Bonjour, j'ai écrit un script pour obtenir un prix Ask pour EURUSD.
#include <Trade\SymbolInfo.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
  CSymbolInfo SymInfo;
  Alert(SymInfo.Ask());
  }
Il retourne 0 - je pense que je dois lier
CSymbolInfo SymInfo;
au symbole du graphique, mais je ne sais pas comment spécifier le symbole de la classe
 
kirill190982:
Bonjour, j'ai écrit un script - obtenir le prix Ask pour EURUSD donne 0 - je pense que j'ai besoin de relier
au symbole du graphique, mais je ne sais pas comment spécifier le symbole de la classe
Tout d'abord, voyons de quoi il s'agit. Pour résoudre le problème, vous devez utiliser les méthodes Name et RefreshRates de cette classe.
 
Interesting:
La première chose à faire est de se familiariser avec le contenu de la classe. Pour établir un lien avec le symbole, vous devez d'abord utiliser la méthode "Name" de la classe.
//+------------------------------------------------------------------+
//|                                                   SymbolInfo.mqh |
//|                      Copyright © 2010, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//|                                              Revision 2010.02.22 |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Class CSymbolInfo.                                               |
//| Appointment: Class for access to symbol info.                    |
//+------------------------------------------------------------------+
class CSymbolInfo
  {
protected:
   string                      m_name;               // symbol name
   MqlTick                     m_tick;               // structure of tick;
.....
//--- ask parameters
   double            Ask() const                      { return(m_tick.ask); 
Je comprends que Ask dans la classe est déterminé par la structure MqlTick.
#include <Trade\SymbolInfo.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
  string Megasymbol=Symbol();
  CSymbolInfo SymInfo;
  SymInfo.Name(Megasymbol);
  Alert(SymInfo.Ask());
  }
Je n'obtiens toujours aucun résultat.
 
kirill190982:
Je comprends que Ask dans une classe est défini par la structure MqlTick; j'ai essayé les deux façons et j'obtiens toujours zéro.

Vous devez faire ce qui suit

SymInfo.Name("EURUSD");
SymInfo.RefreshRates();
Print(SymInfo.Ask());
 
Interesting:

Que diriez-vous d'essayer de cette façon ?

Merci.
Raison: