Rejoignez notre page de fans
- Vues:
- 88
- Note:
- Publié:
-
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance
Avez-vous déjà eu besoin de copier et de coller des objets graphiques entre des graphiques ouverts ? Je pense que oui. Il est surprenant de constater que MetaTrader ne propose pas de fonction "Copier & Coller" pour les objets. La seule chose qui vous permet d'obtenir un effet plus ou moins similaire sont les modèles (fichiers tpl). Mais le modèle stocke l'état complet du graphique, y compris les indicateurs, les paramètres et beaucoup de choses auxiliaires, qui peuvent être non pertinentes et inutiles pour la procédure de réplication requise.
C'est pourquoi j'ai développé cet indicateur ChartObjectsCopyPaste.mq5. Il copie les objets sélectionnés dans le presse-papiers, d'où ils peuvent être collés sur d'autres graphiques. Il n'y a pas de contraintes.
L'indicateur est basé sur un autre indicateur publié dans le livre algotrading - ObjectGroupEdit.mq5.
Veuillez suivre le lien pour en savoir plus sur toutes les classes sous-jacentes(ObjectMonitor, MapArray et autres) qui travaillent dans les coulisses.
Cet indicateur n'a pas de tampon. Il doit être attaché à au moins deux graphiques : le graphique source à partir duquel vous souhaitez copier les objets et le graphique cible sur lequel vous prévoyez de les coller.
Lorsqu'il fonctionne sur un graphique, l'indicateur suit les objets graphiques existants et prend note de ceux qui sont sélectionnés.
Comme d'habitude, les commandes "Copier et Coller" fonctionnent par paire :
- Appuyez sur la touche Ctrl+Q pour copier tous les objets sélectionnés dans le presse-papiers de Windows sous forme de texte (vous pouvez l'enregistrer et l'afficher dans n'importe quel éditeur de texte, vous trouverez un exemple ci-dessous).
- Sur un graphique cible, appuyez sur Ctrl+J pour coller tous les objets du presse-papiers.
Pourquoi Ctrl+Q/Ctrl+J ? Il s'agit de 2 combinaisons de touches libres, choisies volontairement parmi un très petit nombre. Ceci est dû au fait que MetaTrader intercepte et ne propage pas de nombreuses touches de raccourci vers les programmes MQL. C'est particulièrement le cas pour les touches standard Ctrl+C/Ctrl+V/Ctrl+Ins/Shift+Ins, qui ne fonctionnent pas dans ce contexte.
Comme le code source est disponible, vous pouvez changer les raccourcis clavier pour d'autres combinaisons.
Comme l'indicateur utilise des DLL système pour accéder au presse-papiers de Windows, vous devez autoriser les importations de DLL dans la boîte de dialogue Propriétés, dans l'onglet Dépendances.
Étant donné que la base de code n'autorise pas les importations de DLL, le code relatif au presse-papiers est enveloppé dans la directive conditionnelle du préprocesseur #ifdef DLL_LINK, veuillez donc décommenter la ligne suivante
#define DLL_LINK
avant la compilation. Sinon, vous verrez comment les stubs de la fonction presse-papiers vous montreront des alertes en réponse à l'appui sur les touches de raccourci, et aucune action réelle ne sera effectuée !
- MakeAllSelectable - drapeau pour rendre tous les objets sélectionnables (ce qui est normalement faux pour les objets créés par programme) ;
- LogDetails - Indicateur permettant d'afficher dans le journal toutes les propriétés des objets transférés ;
Voici un exemple de texte dans le presse-papiers avec 2 objets :
OBJ_VLINE H1 Vertical Line 5578 0 0 enum ENUM_OBJECT_PROPERTY_INTEGER 0 OBJPROP_COLOR 55295 1 OBJPROP_STYLE 2 2 OBJPROP_WIDTH 1 3 OBJPROP_BACK 0 4 OBJPROP_SELECTED 1 7 OBJPROP_TYPE 0 8 OBJPROP_TIME 1726739940 10 OBJPROP_SELECTABLE 1 11 OBJPROP_CREATETIME 1726847009 12 OBJPROP_TIMEFRAMES 2097151 200 OBJPROP_LEVELS 0 207 OBJPROP_ZORDER 0 208 OBJPROP_HIDDEN 0 1032 OBJPROP_RAY 1 enum ENUM_OBJECT_PROPERTY_DOUBLE 9 OBJPROP_PRICE 1.11449 enum ENUM_OBJECT_PROPERTY_STRING 5 OBJPROP_NAME H1 Vertical Line 5578 6 OBJPROP_TEXT 206 OBJPROP_TOOLTIP OBJ_CHANNEL H1 Equidistant Channel 40885 5 1 enum ENUM_OBJECT_PROPERTY_INTEGER 0 OBJPROP_COLOR 255 1 OBJPROP_STYLE 0 2 OBJPROP_WIDTH 1 3 OBJPROP_BACK 0 4 OBJPROP_SELECTED 1 7 OBJPROP_TYPE 5 8 OBJPROP_TIME 1726758000 8 OBJPROP_TIME.1 1726797600 8 OBJPROP_TIME.2 1726758000 10 OBJPROP_SELECTABLE 1 11 OBJPROP_CREATETIME 1726847883 12 OBJPROP_TIMEFRAMES 2097151 200 OBJPROP_LEVELS 0 207 OBJPROP_ZORDER 0 208 OBJPROP_HIDDEN 0 1003 OBJPROP_RAY_LEFT 0 1004 OBJPROP_RAY_RIGHT 0 1031 OBJPROP_FILL 0 enum ENUM_OBJECT_PROPERTY_DOUBLE 9 OBJPROP_PRICE -28.113879003558715 9 OBJPROP_PRICE.1 -21.708185053380777 9 OBJPROP_PRICE.2 -48.04270462633452 enum ENUM_OBJECT_PROPERTY_STRING 5 OBJPROP_NAME H1 Equidistant Channel 40885 6 OBJPROP_TEXT 206 OBJPROP_TOOLTIP
Et voici ces objets collés sur le graphique :
Traduit de l’anglais par MetaQuotes Ltd.
Code original : https://www.mql5.com/en/code/52263

Indicateur de covariance, de corrélation et de coefficient bêta de deux symboles.

Stochastic CG Oscillator est un oscillateur stochastique dont les valeurs sont calculées non pas à partir de la série de prix, mais à partir des valeurs de l'indicateur CG Oscillator.

Un hybride de moyenne mobile universelle et d'indicateur NRTR. Dans cet indicateur, les valeurs de la moyenne mobile sont corrigées à l'aide de l'algorithme NRTR (Nick Rypock Trailing Reverse).

Un système expert multidevises analysant les phénomènes de résonance sur des actifs financiers liés.