Boutons et champs de texte sur le graphique mt4 possible maintenant - page 6

 

Bonjour,

Est-ce que quelqu'un ici peut me fournir les fichiers pour ceci s'il vous plaît ? J'aimerais vraiment pouvoir utiliser ce genre de fonctionnalité, je suis allé sur fx1.net et je ne trouve rien du tout. J'ai essayé de googler mais je n'ai pas eu de chance de trouver les téléchargements de tous les fichiers.

Si quelqu'un pouvait avoir la gentillesse de fournir des copies, ce serait très apprécié. Mon adresse électronique est paul@lukafour3.com ou envoyez-moi un message.

Cordialement

Paul

 
fridaystreet:

Bonjour,

Est-ce que quelqu'un ici peut me fournir les fichiers pour ceci s'il vous plaît ? J'aimerais vraiment pouvoir utiliser ce genre de fonctionnalité, je suis allé sur fx1.net et je ne trouve rien du tout. J'ai essayé de googler mais je n'ai pas eu de chance de trouver les téléchargements de tous les fichiers.

Si quelqu'un avait la gentillesse de me fournir des copies, ce serait très apprécié. Mon email est paul@lukafour3.com ou bien envoyez-moi un message.

Cordialement

Paul


En fait, je ne comprends pas votre problème.

J'ai obtenu mes copies en visitant d'abord fx1.net qui m'a conduit à ce site :

https://www.mql5.com/go?link=http://taurus-traders.com/index.php/de/services/forex-download/viewdownload/6-plugins/246-mt4gui-toolbox-addon-for-metatrader

J'ai obtenu les dlls à partir de là. Le bouton "Download" se trouve en bas de la page, après le texte.

Tout est expliqué sur la façon d'utiliser les fonctions pour créer des boutons.

N'oubliez pas les inconvénients et testez d'abord soigneusement votre programme sur des démos, pour éviter les mauvaises surprises.

si vous comptez utiliser ces boutons dans un compte réel de trading en direct ! !!

Lisez également ce fil de discussion du début à la fin !

ET : Avez-vous cherché sur Google "mt4gui.dll" ? ??? Essayez, vous serez surpris de voir à quel point c'est facile ! !!

 

Bonjour,

J'ai écrit un EA simple basé sur MT4GUI, mais malheureusement MT4 se plante, lorsque j'essaie de changer de timeframe (par exemple de M1 à M5). Quelqu'un d'autre a-t-il fait l'expérience de ce problème ou a-t-il une idée de la façon de le résoudre ?

J'ai essayé de nombreuses façons mais je n'ai pas encore trouvé de solution. Même l'EA le plus simple avec des boutons se bloque lorsqu'on change d'horizon temporel. J'ai rencontré ce problème sur les builds 432 et 438.

Merci

 
darksamu:

Bonjour,

J'ai écrit un EA simple basé sur MT4GUI, mais malheureusement MT4 se plante, lorsque j'essaie de changer de timeframe (par exemple de M1 à M5). Quelqu'un d'autre a-t-il fait l'expérience de ce problème ou a-t-il une idée de la façon de le résoudre ?

J'ai essayé de nombreuses façons mais je n'ai pas encore trouvé de solution. Même l'EA le plus simple avec des boutons se bloque lorsqu'on change d'horizon temporel. J'ai rencontré ce problème sur les builds 432 et 438.

Merci

Oui, c'est le cas. J'ai écrit à ce sujet plus tôt.

Il n'y a rien que vous puissiez faire, c'est un problème de dll.

Il suffit de contourner le problème en ouvrant plusieurs graphiques, chacun avec des TF différents.

Ou, je le fais aussi comme ceci :

Il y a une autre situation, où les dll plantent MT4, lorsque vous voulez modifier les externes en cliquant sur le smiley.

C'est pourquoi j'ai créé le bouton Defaults, qui supprime l'EA et l'ouvre à nouveau, en faisant apparaître la fenêtre de lancement de l'EA.

 

Salut Dadas,

pouvez-vous insérer une partie de votre code, s'il vous plaît ? Je ne sais pas si le menu "Select Lot size" a été créé. Merci.

 
endy5:

Salut Dadas,

pouvez-vous insérer une partie de votre code, s'il vous plaît ? Je ne sais pas si le menu "Select Lot size" a été créé. Merci.


int    hwnd = WindowHandle(Symbol(),Period());

string MinimumLot = DoubleToStr(MarketInfo(Symbol(),MODE_MINLOT),2);

int SelectLotSizeBox = tbPutObject(hwnd,"list",-130,213,60,9,"");
    tbAddListItem(hwnd,SelectLotSizeBox,MinimumLot);
    if(MinimumLot=="0.01"){
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.02");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.03");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.04");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.05");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.06");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.07");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.08");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.09");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.10");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.20");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.30");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.40");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.60");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.70");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.80");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.90");
    tbAddListItem(hwnd,SelectLotSizeBox ,"1.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"2.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"3.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"4.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"5.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"6.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"7.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"8.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"9.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"10.00");}
    if(MinimumLot=="0.10"){  
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.20");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.30");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.40");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.60");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.70");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.80");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.90");
    tbAddListItem(hwnd,SelectLotSizeBox ,"1.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"2.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"3.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"4.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"5.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"6.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"7.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"8.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"9.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"10.00");}
    if(MinimumLot=="1.00"){    
    tbAddListItem(hwnd,SelectLotSizeBox ,"2.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"3.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"4.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"5.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"6.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"7.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"8.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"9.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"10.00");    
    }
    tbSetListSel(hwnd,SelectLotSizeBox ,0);
C'est comme ça que je fais.
 
Bonjour.
Désolé pour mon anglais je suis français.
Je ne comprends pas très bien comment les listes.
pouvez-vous me dire comment il récupère ses valeurs ?

exemple .

    tbAddListItem(hwnd,SelectLotSizeBox ,"2.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"3.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"4.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"5.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"6.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"7.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"8.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"9.50"); 

tbAddListItem(hwnd,SelectLotSizeBox ,"10.00") ;

cordialement
 

Salut Dadas,

merci beaucoup d'avoir inséré votre ancien code ! !! Je l'ai fait dans mon code :-)

Mais j'ai une question - comment puis-je obtenir la valeur (taille du lot) du menu de sélection (objet SelectLotSizeBox).

J'ai trouvé la fonction :string tbGetListSel(int hwnd, int object) ;

Code :string size=tbGetListSel(hwnd, SelectLotSizeBox);

retour pour sélectionner la taille de lot 0.01 valeur zéro,

pour la taille de lot 0.02 valeur 1, etc. Il s'agit du numéro de série de l'article sélectionné. Puis-je obtenir directement la valeur lotsize (0.01 ; 0.02 ; etc.) ?

Merci de votre aide.

 
phenix77:
Bonjour.
Désolé pour mon anglais je suis français.
Je ne comprends pas très bien comment les listes.
pouvez-vous me dire comment il récupère ses valeurs ?

exemple .

tbAddListItem(hwnd,SelectLotSizeBox ,"10.00") ;

Cela vous est-il familier ?

  string tbVersion();         
  int tbPutObject(int,string,int,int,int,int,string); // hwnd,type,x,y,w,h,label     
  int tbSetBgColor(int,int,int); // hwnd,object,bgcolor  
  int tbSetTextColor(int,int,int); // hwnd,object,color  
  int tbRemove(int,int);
  int tbRemoveAll(int); // hwnd 
  int tbEnable(int,int,int); // hwnd, object, 0|1   
  bool tbIsClicked( int,int ); // hwnd,object  
  int tbSetText(int,int,string,int,string); // hwnd,object,text,fontsize,fontname     
  string tbGetText(int,int); // hwnd,object 
  int tbAddListItem(int,int,string); // hwnd,object,item  
  int tbGetListSel(int,int); // hwnd,object  
  int tbSetListSel(int,int,int); // hwnd,object,index 
Vous obtiendrez ainsi la valeur :
Lot=StrToDouble(tbGetText(hwnd,SelectLotSizeBox));

Le texte dans la boîte de sélection est un texte, donc une chaîne de caractères - n'est-ce pas ?

Et vous devez transformer cette chaîne en double, n'est-ce pas ?

 
endy5:

Salut Dadas,

J'ai trouvé la fonction :string tbGetListSel(int hwnd, int object) ;

Code :string size=tbGetListSel(hwnd, SelectLotSizeBox);

retour pour sélectionner la taille de lot 0.01 valeur zéro,

pour la taille de lot 0.02 valeur 1, etc. Il s'agit du numéro de série de l'article sélectionné. Puis-je obtenir directement la valeur lotsize (0.01 ; 0.02 ; etc.) ?

Merci de votre aide.

// It is:
string tbGetText(int,int); // hwnd,object 
// This one is int (integer):
int tbGetListSel(int,int); // hwnd,object  
// You are looking for:
double size = StrToDouble(tbGetText(hwnd,SelectLotSizeBox));