Erreurs, bugs, questions - page 245

 

Est-ce que l'histoire rebondit par hasard ?

Est-ce que c'est toujours sur un seul symbole ou est-ce que c'est aussi sur GBPUSD ?

Quelle construction ? Quel serveur ?

 

Le rebondissement de l'histoire appartient au passé,

Non sur toutes les paires de devises sur simbol1 ainsi que sur simbol2,

Bild 370, compte démo (alpari-demo)


Je voudrais remarquer que je n'ai qu'un seul trader (d'après la capture d'écran ci-dessus) le dépassement est de

Je voudrais remarquer que si je laisse un indicateur (sur la capture d'écran ci-dessus), le redessin n'est pas si visible,

il peut se redessiner plusieurs fois.

Je pensais que l'ordinateur était peut-être lent, mais c'est la même chose sur un ordinateur à 2 cœurs et le graphique ne défile pas.

Probablement, il attend le temps d'inactivité ou autre chose ?

Le soir, les six noyaux seront testés !

Je tiens également à souligner que rien ne s'est produit avec les autres dindes similaires.

Cela ne peut pas être à cause de calculs compliqués ! Et le plateau tournant est simple

et ça marche à prix ouvert.

 
alexluek:

Au secours ! L'indicateur fonctionne bien, affiche et calcule tout, mais

quand un nouveau tick arrive, il se réinitialise et les lignes sont recalculées.

Je l'ai régulièrement pendant les pertes de communication. Après la reconnexion, le terminal recalcule les valeurs des indicateurs, le recalcul prend du temps. De la référence :

Il convient de noter la relation entre la valeur renvoyée par OnCalculate() et le deuxième paramètre d'entrée prev_calculé. Le paramètre prev_calculé lorsque la fonction est appelée contient la valeur renvoyée par OnCalculate() lors de l' appel précédent. Cela permet d'utiliser des algorithmes économiques pour calculer l'indicateur personnalisé afin d'éviter des calculs répétés pour les barres qui n'ont pas changé depuis l'appel précédent de cette fonction.

Pour cela, il suffit généralement de renvoyer la valeur du paramètre rates_total, qui contient le nombre de barres dans l'appel de fonction actuel. Si depuis le dernier appel de OnCalculate() les données de prix ont changé (un historique plus profond a été chargé ou les blancs de l'historique ont été remplis), alors la valeur du paramètre d'entrée prev_calculated sera mise à zéro par le terminal.

Je ne sais pas quelle est votre situation exacte, mais pour ma part, j'explique ce comportement comme le fait de "combler les lacunes de l'histoire". Ou peut-être votre indicateur fonctionne-t-il de manière inefficace, recalculant toute la gamme de valeurs à chaque arrivée d'un tick ?

 

Il n'y a pas eu de perte de communication, de surcharge de tics, et plus le TF est gros, plus il est rare.

Et la méthode de calcul de la date de début à la date de fin (j'ai découvert qu'il y en a 3) sans

C'est probablement le cas (il recalcule toutes les barres), mais ce n'est pas encore précis et je ne sais pas comment le vérifier.

mais c'est juste une idée - vérifions-la...

Il y a peut-être une autre approche pour s'en débarrasser...

 
alexluek:

Il n'y a pas eu de perte de connectivité, de surcharge de tics, et plus le TF est gros, plus il est rare.

Et la méthode de calcul de la date de début à la date de fin (j'ai découvert qu'il y en a 3) sans

C'est probablement le cas (il recalcule toutes les barres), mais ce n'est pas encore précis et je ne sais pas comment le vérifier.

mais c'est juste une idée - vérifions-la...

Il y a peut-être une autre approche pour s'en débarrasser...

Bien sûr, il existe une approche. Si(prev_calculated==0), nous effectuons le calcul initial pour toutes les barres. Ensuite, pour chaque nouveau tick (si 0 < prev_calculated < rates_total) nous faisons des calculs comme for(int i=prev_calculated-1;i<rates_total;i++) seulement pour les dernières barres apparues.
 
Yedelkin:
Bien sûr, il existe une approche. Si(prev_calculated==0), nous effectuons le calcul initial pour toutes les barres. Ensuite, pour chaque nouveau tick (si 0 < prev_calculated < rates_total) nous effectuons des calculs du type for(int i=prev_calculated-1;i<rates_total;i++) uniquement pour les dernières barres apparues.
Bonne idée - essayons et répondons ! Merci !
 

Je veux obtenir la valeur de l'horizon temporel du graphique actuel sous forme de chaîne. Je l'écris comme ça :

ENUM_TIMEFRAMES period1=Period();
string periodStr;
periodStr=PeriodStr(period1);

Le compilateur me dit que 'PeriodStr' - la fonction n'est pas définie...

Quel est l'intérêt ? Collègues, aidez-nous s'il vous plaît :-)

Une telle fonction existe dans l'aide :

PeriodStr

Convertit la valeur de l'énumération ENUM_TIMEFRAMES en chaîne de caractères.

stringPeriodStr(
int val// valeur
)

Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Перечисления - Документация по MQL5
 

Chers développeurs, veuillez me dire ce qu'est un appel ambigu à une fonction surchargée (c'est ce que jure le compilateur) :

set" - appel ambigu à une fonction surchargée

class CA
  {
public:
   void set(int i,int j,long n){Print("перегрузка long");};
   void set(int i,int j,int n){Print("перегрузка int");};
  };

void OnStart()
  {
//---
   CA a;
   int Int=3;
   long Long=4;
   a.set(1,2,Int);
   a.set(1,2,Long);
  }

HH J'ai compris que si l'on remplace les constantes du premier et du deuxième paramètre par une variable de type int, alors les jurons cessent.

Mais je ne comprends pas la logique du compilateur, les deux premiers paramètres sont les mêmes dans toutes les surcharges, pas de paramètres par défaut.

Alors pourquoi le compilateur jure-t-il, quelle est l'ambiguïté de l'appel ?

Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Типы char, short, int и long - Документация по MQL5
 
denkir:

Je veux obtenir la valeur de l'horizon temporel du graphique actuel sous forme de chaîne. Je l'écris comme ça :

Le compilateur me dit que 'PeriodStr' - la fonction n'est pas définie...

Qu'est-ce qu'il y a ? Chers collègues, aidez-moi s'il vous plaît :-)

Vous voyez, le fichier d'aide a cette fonction :

PeriodStr

Convertit la valeur de l'énumération ENUM_TIMEFRAMES en chaîne de caractères.

stringPeriodStr(
int val// valeur
)

Étrange, je n'ai pas trouvé une telle fonction - PeriodStr - dans le manuel.
 
denkir:

Je veux obtenir la valeur de l'horizon temporel du graphique actuel sous forme de chaîne. Je l'écris comme ça :

Le compilateur me dit que 'PeriodStr' - la fonction n'est pas définie...

Quel est le problème ? Chers collègues, aidez-moi s'il vous plaît :-)

Une telle fonction existe dans l'aide :

PeriodStr

Convertit la valeur de l'énumération ENUM_TIMEFRAMES en chaîne de caractères.

stringPeriodStr(
int val// valeur
)

Il s'agit d'une méthode de classe

https://www.mql5.com/ru/docs/standardlibrary/technicalindicators/cindicator

#include<Indicateurs\Indicator.mqh>