Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
J'essaie de faire un bouton de réinitialisation de lot, mais j'ai besoin d'obtenir un meilleur résultat que cela, mais je ne peux pas.
( Je n'aime pas tous mes ea's et indicateurs Bouton objets parce que tous très laid comme celui-ci. )
J'ai besoin de deux choses de vous les gars qui peuvent aider et me donne de bons conseils, s'il vous plaît j'ai vraiment besoin de votre aide.
J'ai passé beaucoup de temps, et je n'arrive pas à comprendre quel est le problème avec mon code.
Merci d'avance.
//--- deuxième édition - pendant que j'écris ce commentaire, je me suis peut-être endormi...
ObjectSetString ( 0, "button lot reset", OBJPROP_TEXT , "x" );
ObjectSetString ( 0, "button lot reset", OBJPROP_FONT , "Verdana" );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_FONTSIZE , 14 );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_XDISTANCE , 16 );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_YDISTANCE , 16 );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_XSIZE , 18 );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_YSIZE , 18 );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_CORNER , CORNER_LEFT_UPPER );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_COLOR , White );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_BGCOLOR , Black );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_BORDER_COLOR , Black );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_STATE , false );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_BACK , false );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_SELECTABLE , false );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_SELECTED , false );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_HIDDEN , true );
ObjectSetInteger ( 0, "button lot reset", OBJPROP_ZORDER , true );
//| Create the button |
//+------------------------------------------------------------------+
bool ButtonCreate(const long chart_ID=0, // chart's ID
const string name="Button", // button name
const int sub_window=0, // subwindow index
const int x=0, // X coordinate
const int y=0, // Y coordinate
const int width=50, // button width
const int height=18, // button height
const ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // chart corner for anchoring
const string text="Button", // text
const string font="Arial", // font
const int font_size=10, // font size
const color clr=clrBlack, // text color
const color back_clr=C'236,233,216', // background color
const color border_clr=clrNONE, // border color
const bool state=false, // pressed/released
const bool back=false, // in the background
const bool selection=false, // highlight to move
const bool hidden=true, // hidden in the object list
const long z_order=0) // priority for mouse click
{
//--- reset the error value
ResetLastError();
//--- create the button
if(!ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_window,0,0))
{
Print(__FUNCTION__,
": failed to create the button! Error code = ",GetLastError());
return(false);
}
//--- set button coordinates
ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
//--- set button size
ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
//--- set the chart's corner, relative to which point coordinates are defined
ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
//--- set the text
ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
//--- set text font
ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
//--- set font size
ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
//--- set text color
ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- set background color
ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
//--- set border color
ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,border_clr);
//--- display in the foreground (false) or background (true)
ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- set button state
ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state);
//--- enable (true) or disable (false) the mode of moving the button by mouse
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- hide (true) or display (false) graphical object name in the object list
ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- set the priority for receiving the event of a mouse click in the chart
ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- successful execution
return(true);
}
//+------------------------------------------------------------------+
Vous pouvez utiliser la fonction de la documentation 'telle quelle' pour créer les boutons. Ajoutez-la au bas de votre code et vous pouvez appeler la fonction et passer les paramètres.
Ainsi, vous pouvez simplement appeler :
Aussi
Merci, je l'ai corrigé, c'était juste une erreur.
--------------------------------------------
Vous pouvez utiliser la fonction de la documentation 'telle quelle' pour créer les boutons. Il suffit de l'ajouter au bas de votre code et vous pouvez appeler la fonction et passer les paramètres.
Donc, vous pouvez simplement appeler :
Merci Marco, cela va beaucoup m'aider, et les codes de mon EA semblent avoir été nettoyés.
J'ai aussi besoin de demander à propos du code ci-dessous, qu'est-ce que c'est, comment ça marche ? ( même si j'ai lu à ce sujet mais je ne comprends pas plus clairement )
Merci de m'expliquer un peu plus, merci d'avance.
----------------------------------------
J'ai également besoin d'utiliser void au lieu de bool comme le code ci-dessous,lequel est le bon ?
// or
void ButtonCreate(...)
La fonction renvoie true (vrai) ou false (faux) selon que la création du bouton a réussi ou non. C'est donc à vous de vérifier si le bouton a bien été créé.
Pour la deuxième question, l'info-bulle est ce qui devient visible lorsque vous passez votre souris sur l'objet dans le graphique.
La façon dont vous travaillez actuellement a des limites.
Si vous voulez aller plus loin, lisez les articles suivants :
https://www.mql5.com/en/search#!keyword=graphical%20interfaces&module=mql5_module_articles
La fonction renvoie true (vrai) ou false (faux) selon que la création du bouton a réussi ou non. C'est donc à vous de vérifier si le bouton a bien été créé.
Pour la deuxième question, l'info-bulle est ce qui devient visible lorsque vous passez votre souris sur l'objet dans le graphique.
La façon dont vous travaillez actuellement a des limites.
Si vous voulez développer, veuillez lire les articles suivants :
https://www.mql5.com/en/search#!keyword=graphical%20interfaces&module=mql5_module_articles
Un grand merci.
WOW, vous allez devenir mon homme, M. Marco.
( depuis votre premier commentaire - vous m'avez beaucoup aidé - vous essayez toujours de comprendre mes préoccupations - une fois de plus un grand merci )
J'ai besoin d'utiliser le format de fichier .PNG dans le code de mon EA, pour l'icône LotSize.
Mais je n'ai trouvé que le format de fichier .BMP, alors quelqu'un peut-il m'aider / me conseiller ?
Si un commentaire pourrait rapidement beaucoup apprécier, juste je suis pressé un peu plus.
Merci d'avance.
J'essaie de faire en sorte que si la taille du lot est supérieure à la valeur du lot, l'état soit vrai, sinon l'état soit faux.
( lorsque je clique sur 'Reset', l'objet devient 'state false' et après avoir augmenté la taille du lot, l'état ne devient pas vrai).
Le code ci-dessous est-il incorrect ?
if ( sparam == _namelotRset )
{
if ( _lotSize > _lotValue )
{
ObjectSetInteger( 0, sparam, OBJPROP_STATE, true );
} //---if Close
else
{
ObjectSetInteger( 0, sparam, OBJPROP_STATE, false );
} //---if Close
_lotSize = _lotValue * _lotMin;
_infoUpdate();
return;
} //---if Close
Merci !
//--- deuxième édition
J'essaie de faire tourner'ON OFF' avec le code ci-dessous.
Veuillez consulter :
https://www.mql5.com/en/docs/constants/objectconstants/enum_object/obj_bitmap
Pour le problème du bitmap.
Et pour l'autre problème, vous pouvez le diviser en parties séparées pour définir l'état en dehors de sparam.