Erreurs, bugs, questions - page 154

 

Pour une raison quelconque, je ne peux pas obtenir les données de l'indicateur en utilisant la bibliothèque standard. Voici le script :

//---------------------------------------------------------------------
#include  <Indicators\Trend.mqh>
//---------------------------------------------------------------------
CiSAR  price_source;
//---------------------------------------------------------------------
void
OnStart( )
{
  if( price_source.Create( Symbol( ), PERIOD_CURRENT, 0.01, 0.2 ) == true )
  {
    for( int i = 0; i < 10; i++ )
    {
      Print( "Price[ ", i, " ] = ", price_source.Main( i ));
    }
  }
}
//---------------------------------------------------------------------

Voici le résultat de son opération :

2010.10.04 13:31:17 TestIndicator (AUDUSD,H1) Prix[ 9 ] = 1.797693134862316e+308
2010.10.04 13:31:17 TestIndicator (AUDUSD,H1) Prix[ 8 ] = 1.797693134862316e+308
2010.10.04 13:31:17 TestIndicator (AUDUSD,H1) Prix[ 7 ] = 1.797693134862316e+308
2010.10.04 13:31:17 TestIndicator (AUDUSD,H1) Prix[ 6 ] = 1.797693134862316e+308
2010.10.04 13:31:17 TestIndicator (AUDUSD,H1) Prix[ 5 ] = 1.797693134862316e+308
2010.10.04 13:31:17 TestIndicator (AUDUSD,H1) Prix[ 4 ] = 1.797693134862316e+308
2010.10.04 13:31:17 TestIndicator (AUDUSD,H1) Prix[ 3 ] = 1.797693134862316e+308
2010.10.04 13:31:17 TestIndicator (AUDUSD,H1) Prix[ 2 ] = 1.797693134862316e+308
2010.10.04 13:31:17 TestIndicator (AUDUSD,H1) Prix[ 1 ] = 1.797693134862316e+308
2010.10.04 13:31:17 TestIndicator (AUDUSD,H1) Prix[ 0 ] = 1.797693134862316e+308

Apparemment, EMPTY_VALUE est affiché à la place des valeurs.

Qu'est-ce que je fais de mal ?

 
Dima_S:


Qu'est-ce que je fais de mal ?


Essayez d'ajouter

price_source.Refresh(-1);


Avant de demander des données.

 

Merci, c'est utile. Il serait bon d'en tenir compte dans l'aide.

void CIndicator::Refresh(int flags)

Je comprends donc que les drapeaux sont un masque binaire des délais qui sont rafraîchis ? Si -1, alors toutes les TF sont rafraîchies ?
 
Dima_S:
J'en déduis que flags est un masque binaire des délais qui sont rafraîchis ? Si -1, alors toutes les TF sont rafraîchies ?

Exactement. Vous pouvez utiliser des constantes de visibilité des objets.

https://www.mql5.com/ru/docs/constants/objectconstants/visible

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Видимость объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Видимость объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Видимость объектов - Документация по MQL5
 

Je ne comprends pas, j'ai dû le rater. Ceci :

class dfgdfg
{                                
   void sgsfd();
};

compile normalement. C'est censé être comme ça ?

Je comprends donc que l'optimiseur considère la méthode comme non utilisée avant la compilation et que, par conséquent, le message d'erreur 111 n'est pas généré.

+En outre, les méthodes inutilisées présentant des erreurs d'implémentation sont compilées sans message.

 

Mon problème intéresse-t-il quelqu'un ?

https://www.mql5.com/ru/forum/2172/page1

Не обновляются некоторые графики
Не обновляются некоторые графики
  • www.mql5.com
Непосредственно в индикаторе выбирается необходимый инструмент и период графика.
 

Il y a aussi un problème.

Les tableaux ne sont initialisés que lorsque l'indicateur démarre.

Cela correspond à une sorte d'erreur dans le zigzag standard :


 
MT 5 ne fonctionne pas à travers les proxies (http,socks 4,5) Build 328. Cependant, MT 4 fonctionne bien à travers ces proxys.
 
AlexSTAL:

Mon problème intéresse-t-il quelqu'un ?

https://www.mql5.com/ru/forum/2172/page1

Oui, vos messages ont été vus.

J'essaie de le faire à nouveau.

 
AlexSTAL:

Il y a aussi un problème.

Les tableaux ne sont initialisés que lorsque l'indicateur démarre.

Cela correspond à une sorte d'erreur dans le zigzag standard :


Lorsque vous obtenez une exception de mémoire, il est inutile de continuer à exécuter le terminal. La chose la plus sensée est de redémarrer le terminal et de déterminer pourquoi il a pris autant de mémoire et d'essayer de réduire l'appétit.