Nous avons publié une nouvelle version de MT4GUI. Tous les bêta-testeurs sont invités à me contacter
pour des échantillons : http://www.fx1.net/wiki/pmwiki.php/MT4GUI/MT4GUI
#import "toolbox.dll" int tbPutObject(int,string,int,int,int,int,string); int tbRemoveAll(int); int tbSetText(int,string,int,string); int tbSetBgColor(int,int); int tbSetTextColor(int,int); bool tbIsClicked( int ); int tbRemove(int); int tbEnable(int,int); #import
Excellente idée, mais le produit ne fonctionne pas encore. Pas sans les fichiers "libtrade.mqh" et "libvisual.mqh". Où puis-je obtenir ces fichiers pour tester réellement la mt4gui.dll ?
Sans ces fichiers, le compilateur ne peut pas définir les fonctions "pFontSize", "pReset", "p" et "CloseAllByMagic".
pro_
vous pouvez trouver les fichiers dans la section téléchargement depuis 2 jours il y a des mises à jour. Les couleurs fonctionnent maintenant et plusieurs bugs ont été corrigés.
Oui, vous avez besoin des fichiers include mais ils ne sont pas liés au projet mt4gui. Ce sont simplement mes propres routines pour définir certaines fonctions comme p (print to screen). L'exemple de code est une démonstration complète de mt4gui et d'autre part nous travaillons toujours sur ce projet.
Prochainement :
Détection de la position de la souris
Détection de l'arrière-plan du graphique pour adapter automatiquement les couleurs d'arrière-plan des objets.
Boîte de liste
Salutations
Le produit fonctionne et c'est exactement ce dont j'ai besoin. Mais...
J'ai quelques problèmes avec lui.
1) je ne peux pas placer le texte à l'écran ; (lots, SL, TP, etc. ligne)
2) les couleurs ne fonctionnent pas, peu importe ce que je fais ;
3) c'est plus une suggestion - est-il possible de placer les boutons dans une sous-fenêtre séparée ? Ce serait beaucoup plus pratique, cela ressemblerait à une console de négociation et, si la sous-fenêtre est réduite, cela permettrait d'éviter les clics accidentels sur un bouton. D'après ce que je peux voir de la fonction PutObject, les coordonnées ne sont pas liées à la fenêtre principale ou secondaire.
Mais indépendamment de tout cela, c'est un excellent produit. L'avoir implémenté dans MT4 était attendu depuis longtemps. Merci.
une dernière chose :
les boutons restent en place après le retrait de l'expert.
pro__
1) pour placer un texte à l'écran vous pouvez utiliser les objets internes de MQL voici un exemple de code :
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= string pxy(string mytext,color clr,int posx,int posy,int size) { string n="pxy3txt"+posx+posy; ObjectCreate(n, OBJ_LABEL, 0, Time[lib_startbarno], lib_nextlinelevel); ObjectSet(n, OBJPROP_CORNER, 0); ObjectSet(n, OBJPROP_XDISTANCE, posx); ObjectSet(n, OBJPROP_YDISTANCE, posy); ObjectSet(n, OBJPROP_COLOR, clr); ObjectSet(n, OBJPROP_BACK, false); ObjectSetText(n, mytext, size); return(n); }
Un autre exemple complet est :
#import "mt4gui.dll" int tbPutObject(int,string,int,int,int,int,string); int tbRemoveAll(int); int tbSetText(int,string,int,string); int tbSetBgColor(int,int); int tbSetTextColor(int,int); string tbGetText( int ); bool tbIsClicked( int ); int tbRemove(int); int tbEnable(int,int); #import #include <libtrade.mqh> #include <libvisual.mqh> // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // Login implementation demo // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= int btn1,btn2,edit1,edit2,l1,l2; int ticks; bool LoggedIn = false; string obj1=""; int init() { int hwnd=WindowHandle(Symbol(),Period()); tbRemoveAll(hwnd); ObjectsDeleteAll(); //void pxy(string mytext,color clr,int posx,int posy,int size) pxy("Please login",Yellow,250,50,19); pxy("Login :",White,250,100,17); pxy("Passwd:",White,250,140,17); l1=tbPutObject(hwnd,"text",350,100,250,30,"Username"); l2=tbPutObject(hwnd,"text",350,140,250,30,"Password"); btn1=tbPutObject(hwnd,"button",250,200,150,40,"Login"); btn2=tbPutObject(hwnd,"button",450,200,150,40,"Exit"); // set colors tbSetBgColor(btn1,Green); tbSetTextColor(btn1,White); tbSetBgColor(btn2,IndianRed); tbSetTextColor(btn2,White); tbSetText(l2,"xxxxxxxxxx",24,"Wingdings"); return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //| dont forget to remove objects on deinit() | //+------------------------------------------------------------------+ int deinit() { tbRemove(btn1);tbRemove(btn2); tbRemove(l1);tbRemove(l2); return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int hwnd=WindowHandle(Symbol(),Period()); ticks++; pReset(); if (MathMod(ticks,20)==19 && StringLen(obj1)>0) ObjectDelete(obj1); // If still not logged in we use this block if (!LoggedIn) { // exit button if (tbIsClicked(btn2)) { ObjectsDeleteAll(); tbRemoveAll(hwnd); Destroy("Authentification Failed"); return(1); } // login button if (tbIsClicked(btn1)) { if (tbGetText(l1)=="admin" && tbGetText(l2)=="pass") { PlaySound("ok.wav"); LoggedIn=true; tbRemoveAll(hwnd); ObjectsDeleteAll(); } else { PlaySound("alert2.wav"); obj1 = pxy("Authentification Failed",Red,250,20,12);} } return(1); } // From here we have the functions after login p("Admin has been autentificated successfully",Green); return(0); } // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= string pxy(string mytext,color clr,int posx,int posy,int size) { string n="pxy3txt"+posx+posy; ObjectCreate(n, OBJ_LABEL, 0, Time[lib_startbarno], lib_nextlinelevel); ObjectSet(n, OBJPROP_CORNER, 0); ObjectSet(n, OBJPROP_XDISTANCE, posx); ObjectSet(n, OBJPROP_YDISTANCE, posy); ObjectSet(n, OBJPROP_COLOR, clr); ObjectSet(n, OBJPROP_BACK, false); ObjectSetText(n, mytext, size); return(n); }
Comme vous le voyez sur mes screenshoots les démos fonctionnent. Cette version de mt4gui que je viens de télécharger en tant que version 0.3, vous pouvez prendre la dernière version. La version 0.1 ne supporte pas du tout les couleurs. Vous utilisez probablement la version 0.1.
Pour supprimer les boutons de l'écran vous devez utiliser deinit()
//+------------------------------------------------------------------+ //| expert deinitialization function | //| dont forget to remove objects on deinit() | //+------------------------------------------------------------------+ int deinit() { tbRemove(btn1);tbRemove(btn2); tbRemove(l1);tbRemove(l2); return(0); }
Consultez également https://www.youtube.com/watch?v=ym5c5gotEBU
https://www.youtube.com/watch?v=IVzm5ZAL_WU
Salut,
C'est l'addon le plus utile que j'ai jamais vu, merci pour le développement.
Y a-t-il un moyen d'obtenir l'état d'une case à cocher ou d'obtenir le texte d'une case à texte/étiquette/bouton ?
Les couleurs ne fonctionnent pas avec la version 0.2.
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Ici, je veux présenter un nouvel addon gratuit pour mt4 en avant-première. Je teste actuellement un produit appelé mt4gui. Ce produit permet de placer des boutons, des champs de texte, des champs de liste directement sur le graphique ; voici une capture d'écran en avant-première qui fonctionne déjà.
http://fx1.net/wiki/uploads/img_7.png
Les boutons réagissent immédiatement après le clic sans attendre le tick côté broker. Nous améliorons ce produit avec plus de fonctionnalités dans les semaines à venir. La raison pour laquelle j'ai posté ce message est pour obtenir des idées de la communauté sur ce qui est nécessaire. Bien sûr, tout ne peut pas être réalisé, mais je vais filtrer les idées intéressantes ici.
Voici un exemple de code très basique qui démontre l'utilisation :