Erreurs, bugs, questions - page 763

 
x100intraday:

...Si les points de magnitude sont liés à des extrema (cas particuliers) ou à des coordonnées graphiques en général - prix/temps, à quoi est lié "Scale", je me le demande ? Si certaines valeurs exactes de l'échelle sont versées dans le modèle lors de l'écriture... ou de pips par barre, il ne permet pas de restaurer le contour original dans une nouvelle session. Seules les coordonnées exactes du premier point sont conservées. En gros, les modèles basés sur l'ancrage des points à des coordonnées explicites et simples sont plus fiables.

Le 1er point est le prix et le temps, le 2ème point est le temps, le prix est calculé en considérant l'échelle en n/b.

Je ne sais pas ce qui est écrit dans le modèle, je pense qu'il devrait avoir les 4 valeurs : 2 fois, prix du premier point, échelle.

Ensuite, il peut y avoir des problèmes s'il y a des barres manquantes, je suppose.

 
Silent:

Ce n'est pas un problème de suppression, c'est un problème de création :)

J'ai eu un script avec la mauvaise boucle qui a fait la même chose. J'ai imprimé la boucle, même après avoir forcé la suppression du script via"Liste d'experts", jusqu'à ce qu'il apparaisse avec une erreur.

Je ne sais pas pourquoi cette erreur de création ?

Je crée sans boucle, je n'en ai pas besoin pour 3 objets.

Je le fais juste pour chacun d'eux :

if(ObjectFind(0,_name)!=0)//если не нашли создаем
     {
      ObjectCreate(0,_name,OBJ_RECTANGLE,0,_begin_time,_open,_end_time,_close);
         ObjectSetInteger(0,_name,OBJPROP_STYLE,STYLE_SOLID);
         ObjectSetInteger(0,_name,OBJPROP_WIDTH,Width);
         ObjectSetInteger(0,_name,OBJPROP_BACK,_Top);
         ObjectSetInteger(0,_name,OBJPROP_FILL,_BG);
         ObjectSetInteger(0,_name,OBJPROP_SELECTED,false);
         ObjectSetInteger(0,_name,OBJPROP_COLOR,_Color);
     }
else //если нашли модифицируем
     {
      ObjectMove(0,_name,0,_begin_time,_open);
      ObjectMove(0,_name,1,_end_time,_close);
      ObjectSetInteger(0,_name,OBJPROP_COLOR,_Color);
     }

En général, les premiers indices apparaissent, mais il est trop tôt pour se prononcer.

 

Vérifiez-vous la création de l'objet dans le code ?

Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
Основы языка / Операторы / Оператор создания объекта new - Документация по MQL5
 
kPVT:

Je ne comprends pas pourquoi l'erreur de création ?

...

Parce que.
kPVT:

...

Les objets sont supprimés, mais recréés et continuent à "bouger" comme si l'indicateur continuait à fonctionner.

Si elles sont supprimées manuellement, elles sont recréées avec le même nom et continuent de "bouger" au fur et à mesure que de nouveaux ticks arrivent.

...

L'indicateur les recherche à chaque tick et les crée ou les modifie, comme je le comprends.

Peut-être : si déjà présent et modifié - rien à faire (blocage) ?

 
alexvd:

Vérifiez-vous le fait que l'objet a été créé dans le code ?

Silencieux:
Peut-être : s'il y a déjà et modifié - rien à faire (bloc) manque ?

La raison en est la suivante.

Si vous récupérez la poignée de l'indicateur #1 à partir de l'indicateur #2, la désinitialisation de l'indicateur #1 n'est pas complète tant que vous n'avez pas supprimé l'indicateur #2.

S'il y a des constructions tampons, elles sont supprimées, mais les objets graphiques restent.

Voici deux indicateurs à tester.

1. Nous attachons test_del_obj, puis test_id.

2. Nous supprimons test_del_obj - le cube de test_del_obj reste.

3. Suppression de test_id - le cube est supprimé et nous voyons dans le journal que ce n'est que maintenant que le deinit de l'indicateur test_del_obj est exécuté.

Dossiers :
 

Une autre question.

La poignée de l'indicateur est-elle attachée au graphique unique ?

Si vous modifiez l'indicateur test_id en ajoutant une interrogation temporisée du handle de l'indicateur test_del_obj, vous pouvez voir que la valeur augmente de 1 pour chaque requête.

Dossiers :
 

ArrayResize() ne fonctionne pas correctement

Lors de la diminution de la taille d'un tableau dynamique, ArrayResize() coupe les éléments du mauvais côté du tableau.

Code :

   double Arr[];
   ArrayResize(Arr,5);
   Arr[0]=101;
   Arr[1]=102;
   Arr[2]=103;
   Arr[3]=104;
   Arr[4]=105;   
   Print("Начальный массив: ",Arr[0],":",Arr[1],":",Arr[2],":",Arr[3],":",Arr[4]);
   ArraySetAsSeries(Arr,true);
   ArrayResize(Arr,4);
   Print("Обрезанный массив: ",Arr[0],":",Arr[1],":",Arr[2],":",Arr[3]);

Résultat :

2012.07.04 21:28:53     Ind2 (EURUSD,H4)        Обрезанный массив: 104.0:103.0:102.0:101.0
2012.07.04 21:28:53     Ind2 (EURUSD,H4)        Начальный массив: 101.0:102.0:103.0:104.0:105.0

Même code et même résultat dans MetaTrader 4 :

2012.07.04 21:28:35     ind2 EURUSD,H4: Обрезанный массив: 105:104:103:102
2012.07.04 21:28:35     ind2 EURUSD,H4: Начальный массив: 101:102:103:104:105
Dossiers :
Ind2.mq5  2 kb
 

Chers développeurs MT5. J'attire votre attention - la chose la plus importante pour un serveur Forex est l'exactitude des cotations. Par conséquent, recherchez les erreurs dans votre MT5 (serveur MetaQuotes-Demo) :

1) Changement du volume dans les chandeliers précédemment chargés - par exemple, aujourd'hui à 8:00 EURUSD H4, les valeurs étaient 0:00 - 6171, 4:00 - 7049, 8:00 - 13361. Et lors du chargement à 20:00 (sur l'Europe), les valeurs étaient 0:00 - 7701, 4:00 - 8859, 8:00 - 16306. En général, il ne sera pas difficile pour vous de voir que le volume est en cours dans la langue russe vissé vers le haut. Puisque j'ai l'honneur de parler non seulement en mon nom, mais aussi à la demande de camarades, je dis - c'est très frustrant pour ceux qui utilisent le modèle avec volume et avec son accumulation.

2) Mettons Alpari MT4 à gauche et Metaquotes MT5 à droite et soyons étonnés que les minutes sur Metaquotes se ferment beaucoup plus tôt que sur Alpari. Nous vérifions avec time.windows.com et l'horloge de notre main - l'heure du serveur metaquotes est en avance ! - Les traders de pips se plaignent ici - il y a une source aléatoire importante dans le trading.

3) Un souhait généralement scandaleux - pouvons-nous rendre l'offre et la demande disponibles pour la sauvegarde et la visualisation, séparément et/ou conjointement. On me l'a demandé, mais je réalise que ce n'est pas réaliste. D'après ce que j'ai compris, dans MT3 en général, il y avait quelque chose entre le bid et le ask, et cela se trouve probablement dans l'historique. Maintenant, seulement le bid.

 
MoneyJinn:

ArrayResize() ne fonctionne pas correctement

C'est vrai. AsSeries est juste un drapeau.
 
TheXpert:
Tout est correct. AsSeries est juste un drapeau.

Voir le comportement des éléments du tableau influencé parArraySetAsSeries(Arr,true) et son fonctionnement en 4.

Je voudrais ajouter. qu'à la fin de 2011 tout fonctionnait correctement, car j'ai écrit du code sur ce sujet, qui maintenant ne fonctionne plus.