Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Telegram !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Vues:
88
Note:
(8)
Publié:
\MQL5\Include\MQL5Book\
AutoPtr.mqh (1.86 KB) afficher
MQL5 Freelance 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 :

  1. 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).
  2. 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 !

Les entrées sont
  • 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 ;
L'indicateur ne vérifie pas si les objets collés correspondent au graphique cible actuel, comme le symbole, la fourchette de prix, le nombre de sous-fenêtres, etc. - vous devez le faire vous-même.

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 :

2 objets graphiques collés sur le graphique via le presse-papiers








Traduit de l’anglais par MetaQuotes Ltd.
Code original : https://www.mql5.com/en/code/52263

iBeta iBeta

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

Oscillateur stochastique CG Oscillateur stochastique CG

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.

X2MA NRTR X2MA NRTR

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).

Chasseur de résonance Chasseur de résonance

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