Questions des débutants MQL5 MT5 MetaTrader 5 - page 1131

 
Alexey Viktorov:

Artyom, vous n'avez pas remarqué que le type est DRAW_COLOR_HISTOGRAM2 et qu'il a deux tampons de données et un troisième tampon de couleur.

Oui, c'est vrai. Je n'ai pas fait attention.

 
Artyom Trishkin:

Oui, c'est vrai.

En général, oui. Le premier tampon est utilisé pour les calculs, DRAW_COLOR_HISTOGRAMME2 est dessiné en utilisant deux coordonnées/buffers + besoin d'un autre pour la couleur.


Alexey Viktorov:

Pourquoi cette ligne est commentée

Il devrait cependant inclure d'autres couleurs. Ou au moins un, mais la déclaration devrait être.

J'utilise soit

#property indicator_color2 GreenC,RedC

ou

PlotIndexSetInteger(1,PLOT_LINE_COLOR,0,GreenC) ;
PlotIndexSetInteger(1,PLOT_LINE_COLOR,1,RedC) ;

C'est une chose, et j'ai supposé qu'ils sont interchangeables comme dans MQL4, c'est-à-dire que l'absence de directive du préprocesseur pour le réglage de la couleur est remplacée par PlotIndexSetInteger(). N'est-ce pas le cas dans MQL5 ?

 
The_Sheikh:

En général, oui. Le premier tampon est utilisé pour les calculs, DRAW_COLOR_HISTOGRAMME2 est dessiné en utilisant deux coordonnées/buffers + besoin d'un autre pour la couleur.


J'utilise soit

#property indicator_color2 GreenC,RedC

ou

PlotIndexSetInteger(1,PLOT_LINE_COLOR,0,GreenC) ;
PlotIndexSetInteger(1,PLOT_LINE_COLOR,1,RedC) ;

C'est une chose, et j'ai supposé qu'ils sont interchangeables comme dans MQL4, c'est-à-dire que l'absence de directive du préprocesseur pour le réglage de la couleur est remplacée par PlotIndexSetInteger(). N'est-ce pas le cas dans MQL5 ?

Vous donnez des bribes de documentation. Pourquoi ne pas les étudier en profondeur ? La directive est présente dans l'exemple sans tenir compte de PlotIndexSetInteger.

 
Alexey Viktorov:

Eh bien, vous donnez des extraits de la documentation. Pourquoi ne pas l'étudier en profondeur ? La directive est présente dans l'exemple sans tenir compte de PlotIndexSetInteger.

Oui, j'ai étudié la documentation et la directive est présente dans l'exemple, mais je suis désolé, je n'ai pas vu de paragraphe disant que la directive doit être présente, donc j'ai l'habitude d'exclure la directive comme dans MQL4.

La documentation indique également que l'on peut utiliser jusqu'à 64 couleurs pour le traçage. Mais je n'ai pas trouvé de moyen d'attribuer le nombre de ces palettes sans énumérer de façon monotone chaque couleur après la directive.

Néanmoins, la question est réglée.

 
The_Sheikh:

Oui, j'ai étudié la documentation, la directive est présente dans l'exemple, mais je suis désolé, je n'ai pas remarqué un paragraphe indiquant que la directive doit être présente, donc par habitude j'exclue la directive comme dans MQL4.

La documentation indique également que l' on peut utiliser jusqu'à 64 couleurs pour le traçage. Mais je n'ai pas trouvé de moyen de définir le nombre de ces palettes sans une énumération monotone de chaque couleur après la directive.

Néanmoins, j'en ai fini avec cette question.

Et ceci

#define  GreenC 0x00FF00
#define  RedC 0x0000FF

ne peut pas être modifié dans la boucle ? Je ne le connais pas du tout et ne sais donc pas.

Après tout, un tableau de couleurs peut également être rempli dans la boucle à partir d'un autre tableau. Dans l'exemple, il y a un tableau de couleurs colors = {} ; où les couleurs sont listées. Et ensuite, ce tableau "service" est rempli avec PlotIndexSetInteger(1,PLOT_LINE_COLOR, index_in_array, couleur) ;

 

Je télécharge des cotations de différents endroits et je vois souvent des écarts de 1 à 2 barres, les données ne sont tout simplement pas là.

Comment les remplir avec une perte minimale d'informations ? Y a-t-il des algorithmes ?

Je suis sûr que Metatrader le fait.

 
Roman Sharanov:

Je télécharge des cotations à partir de différents endroits et je vois souvent des écarts de 1 à 2 barres, les données ne sont tout simplement pas là.

Comment les remplir avec une perte minimale d'informations ? Y a-t-il des algorithmes ?

Je suis sûr que Metatrader le fait.

MetaTrader ne remplit pas les trous - s'il y a une barre, elle sera dessinée, s'il n'y a pas de barre, elle sera sautée.

 
Vladimir Karputov:

Voici l'examinateur de test - tout fonctionne correctement :

et le résultat :

Merci pour cette réponse détaillée. Il s'est avéré que l'erreur est observée uniquement lors du test du conseiller expert sur l'historique, si je le connecte à des données réelles- tout est OK.

Si vous exécutez votre expert en débogage sur des données historiques, le calcul est incorrect :

2019.10.08 02:10:14.425 2019.01.01 00:00:00 Volume 1.0, profit -> -50.00

2019.10.08 02:10:16.226 2019.01.01 00:00:00 Volume 0.5, bénéfice -> -50.00


 
aveshoff:

Merci pour cette réponse détaillée. Il s'est avéré que l'erreur est observée uniquement lors du test du conseiller expert sur l'historique, s'il est connecté à des données réelles - tout est OK.

Si vous exécutez votre expert en débogage sur des données historiques, le calcul est incorrect :

2019.10.08 02:10:14.425 2019.01.01 00:00:00 Volume 1.0, profit -> -50.00

2019.10.08 02:10:16.226 2019.01.01 00:00:00 Volume 0.5, bénéfice -> -50.00


Veuillez fournir des informations complètes : code complet, symbole, délai, combien de positions et sur quels symboles sont ouverts - en général, pour pouvoir reproduire la situation.

 

Bonjour !

Pouvez-vous me dire comment trouver quel expert il s'agit par ID

ID 11032019, je ne sais pas où le trouver ?