MetaTrader 4 Build 529 beta publié avec un nouveau compilateur - page 108

 

Suis-je le seul ?

L'historique par symbole est chargé par F2. Je fais des tests sur tous les tics. Une semaine seulement. Du 02/12/2013 au 10/12/2013.

Le testeur commence à charger M1 et c'est tout... Éteignez la lumière, lancez une grenade. 8 minutes de chargement de l'historique, puis encore 5 minutes où tout le système fait du surplace. Ensuite, pendant trois minutes, j'ai appuyé sur Abandon sur les fenêtres de Mozilla qui apparaissaient, indiquant que le script ne répondait pas... Le test n'a commencé qu'environ 15 minutes après avoir appuyé sur Start dans le testeur. Et c'est comme ça à chaque fois que je démarre sur tous les tics. Cela ne s'est jamais produit auparavant.

 
MetaDriver:

J'essaie de ne jamais donner de noms russes aux dossiers. Pour éviter de tels problèmes.

// Et pas de patriotisme la nuit. :)


Seulement dans la journée ? :)
 
tara:

Seulement pendant la journée ? :)
Parfois aussi au coucher du soleil
 
artmedia70:
Parfois aussi au coucher du soleil


Aimez la patrie, votre mère !
 

La fonction place un objet texte dans la fenêtre graphique donnée :

//+----------------------------------------------------------------------------+
void SetArrowText(int ww, string text, color cl, string font="Arial", string nm="", datetime t1=0, double p1=0, int sz=0) {
   if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_TEXT, ww, 0, 0);
   ObjectSet(nm, OBJPROP_TIME1    , t1);
   ObjectSet(nm, OBJPROP_PRICE1   , p1);
   ObjectSetText(nm, text,sz, font, cl);
}
//+----------------------------------------------------------------------------+

Je l'appelle comme ça :

         if(DrawGraphics) {                           // если рисуем графические объекты
            nm=Prefix+"_RPBar_"+TimeToStr(Time[i]);
            SetTLine(RedPointLineColor,0,nm,Time[i],Low[i],Time[i],WindowPriceMin(0),false,redPointLineStile,redPointLineWidth);
            wnd=WindowFind("i_StdDev("+sdperiod+")"); // номер окна индикатора
            if(wnd>0) {                               // если индикатор на графике, нарисуем метку
               nm=Prefix+"_RedPoint"+TimeToStr(Time[i]);
               SetArrowText(wnd, "RP", RedPointArrowColor, RedPointFont, nm, Time[i], dev(i), redPointArrowSize);
               }
            }

C'est-à-dire que nous dessinons d'abord la ligne de tendance sur le graphique des prix, puis, s'il y a une fenêtre d'indicateur, nous dessinons un objet texte dans celle-ci. La ligne de tendance sur le graphique des prix est affichée correctement et elle est positionnée là où elle doit l'être - au moment où l'événement se produit. Cependant, le texte dans la fenêtre de l'indicateur - oh mon dieu ... il se déplace derrière la barre de zéro. Et c'est là que commence la chose la plus intéressante. Le texte et l'étiquette de texte se comportent exactement de la même manière - ils restent là où ils ont été placés. Dès que vous faites en sorte que l'objet texte soit sélectionné et, voilà, il reste là où il est. Pour illustrer. Tous les objets texte se sont empilés près de la barre de zéro (j'ai déplacé le graphique d'avant en arrière, et les objets restent là où ils étaient parce qu'ils ne sont pas sur la barre de zéro) :


Mais maintenant, je n'ai qu'à cliquer sur eux avec la souris et ils prendront tous leur place :


ZS. Qu'ils ont supprimé du nom des objets le chemin d'accès à ceux-ci depuis le répertoire de données - merci.

 
 
artmedia70:



Vous travaillez pour vra ?))
 
Patrol:

Oui, j'ai déjà compris cela. Je voulais m'assurer que je comprenais correctement la nouvelle structure, j'ai donc fait référence à MQL4\Samples\DLLSample\DLLSample.cpp dans la nouvelle version 555, mais il est toujours là :

Je pense qu'il devrait en être ainsi, tel que je le comprends :

Veuillez clarifier.

Oui, tu as raison.

PS. D'ailleurs, vous pouvez résoudre le problème avec peu d'efforts.

Formez un tableau de structures dans l'ancien format et transférez ce tableau à une DLL, comme auparavant. Qui n'aura pas besoin d'être réécrit non plus.

 
Zhunko:
Le remplacement de la structure du bar n'est pas seulement une embuscade, c'est un guet-apens !
Ce problème est très facile à résoudre. Vous formez un tableau de structures dans l'ancien format et, comme précédemment, vous le passez à la DLL
 
stringo:
Ce problème est très facile à résoudre. Vous formez un tableau de structures dans l'ancien format et, comme précédemment, vous le passez à la DLL

C'est juste quelque chose que j'ai dit en plaisantant. Le travail de l'ancienne fonction ne change pas.

Il y a environ 4 ans, j'ai commencé à écrire un ensemble de cours pour toutes les occasions avec l'histoire des citations. Je le fais depuis 3 ans, en même temps que des tests. Au départ, je voulais créer un modèle de structure de barres avec trois paramètres, mais j'ai vu que personne n'utilisait une telle variété. J'ai décidé de le faire avec deux paramètres. Maintenant, je vais devoir en ajouter d'autres.