Discussion de l'article "Créez vos propres panneaux graphiques en MQL5" - page 4

 

L'indicateur possède cette propriété :

#property indicator_separate_window

Cette propriété est nécessaire pour que l'indicateur soit en bas. Oui, c'est assez clair.

J'ai également besoin d'une "barre de dialogue" dans la fenêtre principale....

Et c'est tout. A cause de cette propriété, quoi que vous fassiez, quelles que soient les propriétés que vous définissez, votre barre de dialogue sera dans la sous-fenêtre de l'indicateur. Elle ne sera jamais dans la fenêtre principale.

J'ai passé trois jours à essayer de comprendre la bibliothèque standard. Je ne comprends toujours pas comment il a été possible de créer une telle omission ?

Si je me trompe, dites-moi où je me trompe. Pour l'amour de Dieu, n'écrivez pas qu'il faut spécifier 0 pour les propriétés de la fenêtre et de la sous-fenêtre.

En attendant, je vais créer mon propre panneau qui fonctionnera comme il se doit.

 
Evgeniy Scherbina bibliothèque standard. Je ne comprends toujours pas comment il a été possible de créer une telle omission ?

Si je me trompe, dites-moi où je me trompe. Pour l'amour de Dieu, n'écrivez pas qu'il faut spécifier 0 pour les propriétés des fenêtres et des sous-fenêtres.

En attendant, je vais créer mon propre panneau qui fonctionnera comme il se doit.

Je vais parcourir le code, ajouter l'option m_subwin définissant le numéro de la sous-fenêtre, intercepter les événements de "création/suppression" de la sous-fenêtre pour corriger ce cas dans l'ensemble du dialogue si ce n'est pas 0, utiliser ce m_subwin là où ObjectCreate(...) est utilisé.

les panneaux et les éléments peuvent alors être créés dans n'importe quelle fenêtre et sous-fenêtre

 
Maxim Kuznetsov #:

parcourir le code, ajouter l'option m_subwin définissant le numéro de la sous-fenêtre, intercepter les événements de "création/suppression" de la sous-fenêtre pour corriger ce cas dans l'ensemble du dialogue s'il n'est pas 0, utiliser ce m_subwin là où ObjectCreate(...) est utilisé.

les panneaux et les éléments peuvent alors être créés dans n'importe quelle fenêtre et sous-fenêtre.

Oui, oui, il s'agit d'ajouter, d'attacher, d'envelopper avec du fil d'aluminium et du ruban adhésif. Nous avons besoin d'une solution simple et correcte pour toute cette bibliothèque. Si cette solution n'existe pas, la bibliothèque doit être repensée. Je fabriquerai probablement ma boîte de dialogue moi-même.
 
Evgeniy Scherbina #:
Oui, oui, il faut ajouter tout cela, le fixer, l'entourer de fil d'aluminium et l'attacher avec du ruban adhésif. Nous avons besoin d'une solution simple et correcte pour l'ensemble de la bibliothèque. Si cette solution n'existe pas, la bibliothèque doit être repensée. Je vais probablement créer ma propre fenêtre de dialogue.

Il s'agit d'une limitation de la plateforme MetaTrader : un indicateur ne peut être affiché que dans la fenêtre principale ou dans une sous-fenêtre.

Des solutions possibles et un exemple de mise en œuvre sont présentés dans le livre.

En résumé, vous créez deux indicateurs, et l'un d'eux créera l'autre à l'aide de ChartIndicatorAdd. Ils peuvent échanger des données via des événements, des ressources, des tampons, etc.

Учебник по MQL5: Создание прикладных программ / Использование готовых индикаторов из MQL-программ / Комбинирование вывода в главное окно и вспомогательное
Учебник по MQL5: Создание прикладных программ / Использование готовых индикаторов из MQL-программ / Комбинирование вывода в главное окно и вспомогательное
  • www.mql5.com
Создание прикладных программ - Программирование на MQL5 для трейдеров - Учебник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Stanislav Korotky #:

Il s'agit d'une limitation de la plateforme MetaTrader - un indicateur ne peut se trouver que dans la fenêtre principale ou dans une sous-fenêtre.

Des solutions possibles et un exemple de mise en œuvre sont présentés dans le livre.

En bref, vous créez deux indicateurs, et l'un d'eux créera l'autre à l'aide de ChartIndicatorAdd. Ils peuvent échanger des données via des événements, des ressources, des tampons, etc.

Si ce sont les mots d'un spécialiste, alors c'est exactement ce que je voulais entendre. Et cela signifie que vous devez créer votre propre panneau.

Si ce n'est qu'une supposition... alors vous devez créer votre propre panel.

J'attends un indice sur la façon de coller le panneau dans la fenêtre principale, si l'indicateur est situé dans la sous-fenêtre.