Aide avec les boutons EA, s'il vous plaît
Résultats de 1 é 8 sur 8

Sujet : Aide avec les boutons EA, s'il vous plaît

  1. #1
    Salut ? tous,

    J'ai un probl?me, je ne sais pas comment traiter ou d?crire correctement, d?sol?, mais je vais essayer.

    J'ai ?crit un EA avec des boutons sur le graphique pour m'aider dans mon trading manuel, quand l'EA est charg? sur le graphique, tout va bien, je peux cliquer sur les boutons et esp?rer obtenir les r?sultats souhait?s apr?s un certain temps (random), les boutons qui utilisent le falsetrue OBJPROP_STATE reviennent ? leur valeur par d?faut, ce qui est faux m?me s'ils ont l'air vrais (cliqu?) sur le graphique lui-m?me.

    J'ai pris le code des boutons d'un EA quelqu'un a ?t? pay? pour coder pour moi, peut-?tre que ce n'?tait pas bien ?crit, peut-?tre que je ne sais pas comment bien l'utiliser, je ne sais pas mais cela me rend fou en le d?boguant , tout fonctionne aussi longtemps que je le regarde, je pars pendant une heure (parfois plus longtemps ou plus court que ?a), je regarde le graphique et bien que tout semble bien aller, rien ne fonctionne tant que je ne clique pas desbots (d?sol?, pas s?r comment on l'appelle) boutons.

    Voici le code pour les boutons



    Merci.


    Code ins?r?/ --------------------------------------------- --------------------- /| Fonction d'initialisation experte |/ ----------------------------------------------- ------------------- int OnInit () {ObjectCreate (ChartID (), Longs Disabled, OBJ_BUTTON, 0,0,0); ObjectSet (Longs d?sactiv?, OBJPROP_BGCOLOR, clrRed); ObjectSet (Longs d?sactiv?, OBJPROP_CORNER, 1); ObjectSet (Longs d?sactiv?, OBJPROP_YDISTANCE, 60); ObjectSet (Longs d?sactiv?, OBJPROP_XDISTANCE, 120); ObjectSet (Longs Disabled, OBJPROP_XSIZE, 120); ObjectSet (Longs d?sactiv?, OBJPROP_YSIZE, 30); ObjectSetString (ChartID (), Longs d?sactiv?, OBJPROP_TEXT, Longs d?sactiv?); ObjectSet (Longs d?sactiv?, OBJPROP_COLOR, blanc); ObjectCreate (ChartID (), Shorts Disabled, OBJ_BUTTON, 0,0,0); ObjectSet (Shorts Disabled, OBJPROP_BGCOLOR, clrRed); ObjectSet (Shorts Disabled, OBJPROP_CORNER, 1); ObjectSet (Shorts Disabled, OBJPROP_YDISTANCE, 90); ObjectSet (Shorts Disabled, OBJPROP_XDISTANCE, 120); ObjectSet (Shorts Disabled, OBJPROP_XSIZE, 120); ObjectSet (Shorts Disabled, OBJPROP_YSIZE, 30); ObjectSetString (ChartID (), Shorts Disabled, OBJPROP_TEXT, Shorts Disabled); ObjectSet (Shorts Disabled, OBJPROP_COLOR, White); ObjectCreate (ChartID (), Fermer tout, OBJ_BUTTON, 0,0,0); ObjectSet (Fermer tout, OBJPROP_BGCOLOR, clrRed); ObjectSet (Close All, OBJPROP_CORNER, 1); ObjectSet (Close All, OBJPROP_YDISTANCE, 120); ObjectSet (Close All, OBJPROP_XDISTANCE, 120); ObjectSet (Close All, OBJPROP_XSIZE, 120); ObjectSet (Close All, OBJPROP_YSIZE, 30); ObjectSetString (ChartID (), Fermer tout, OBJPROP_TEXT, Fermer tout); ObjectSet (Close All, OBJPROP_COLOR, White); ObjectCreate (ChartID (), Disabled, OBJ_BUTTON, 0,0,0); ObjectSet (Disabled, OBJPROP_BGCOLOR, clrRed); ObjectSet (Disabled, OBJPROP_CORNER, 1); ObjectSet (Disabled, OBJPROP_YDISTANCE, 150); ObjectSet (Disabled, OBJPROP_XDISTANCE, 120); ObjectSet (Disabled, OBJPROP_XSIZE, 120); ObjectSet (Disabled, OBJPROP_YSIZE, 30); ObjectSetString (ChartID (), Disabled, OBJPROP_TEXT, Disabled); ObjectSet (Disabled, OBJPROP_COLOR, White); ObjectCreate (ChartID (), Buy, OBJ_BUTTON, 0,0,0); ObjectSet (Buy, OBJPROP_BGCOLOR, clrGreen); ObjectSet (Buy, OBJPROP_CORNER, 1); ObjectSet (Buy, OBJPROP_YDISTANCE, 180); ObjectSet (Buy, OBJPROP_XDISTANCE, 120); ObjectSet (Buy, OBJPROP_XSIZE, 120); ObjectSet (Buy, OBJPROP_YSIZE, 30); ObjectSetString (ChartID (), Buy, OBJPROP_TEXT, Buy); ObjectSet (Buy, OBJPROP_COLOR, White); ObjectCreate (ChartID (), Sell, OBJ_BUTTON, 0,0,0); ObjectSet (Sell, OBJPROP_BGCOLOR, clrGreen); ObjectSet (Sell, OBJPROP_CORNER, 1); ObjectSet (Sell, OBJPROP_YDISTANCE, 210); ObjectSet (Sell, OBJPROP_XDISTANCE, 120); ObjectSet (Sell, OBJPROP_XSIZE, 120); ObjectSet (Sell, OBJPROP_YSIZE, 30); ObjectSetString (ChartID (), Sell, OBJPROP_TEXT, Sell); ObjectSet (Sell, OBJPROP_COLOR, White); retourner (INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- / -------------------------- ---------------------------------------- /| Fonction ChartEvent|/ ----------------------------------------------- ------------------- void OnChartEvent (const int id, const long lparam, const double dparam, const string sparam) {if (id == CHARTEVENT_OBJECT_CLICK) {if ( sparam == Longs D?sactiv?) {if (AllowLongs) {AllowLongs = false; ObjectSetInteger (ChartID (), Longs d?sactiv?, OBJPROP_STATE, false); ObjectSetInteger (ChartID (), Longs d?sactiv?s, OBJPROP_BGCOLOR, clrRed); ObjectSetString (ChartID (), Longs d?sactiv?, OBJPROP_TEXT, Longs d?sactiv?); } else {AllowLongs = true; ObjectSetInteger (ChartID (), Longs d?sactiv?, OBJPROP_STATE, true); ObjectSetInteger (ChartID (), Longs d?sactiv?, OBJPROP_BGCOLOR, clrGreen); ObjectSetString (ChartID (), Longs d?sactiv?, OBJPROP_TEXT, Longs Enabled); }} if (sparam == Shorts Disabled) {if (AllowShorts) {AllowShorts = false; ObjectSetInteger (ChartID (), Shorts Disabled, OBJPROP_STATE, false); ObjectSetInteger (ChartID (), Shorts d?sactiv?s, OBJPROP_BGCOLOR, clrRed); ObjectSetString (ChartID (), Shorts Disabled, OBJPROP_TEXT, Shorts Disabled); } else {AllowShorts = true; ObjectSetInteger (ChartID (), Shorts Disabled, OBJPROP_STATE, true); ObjectSetInteger (ChartID (), Shorts Disabled, OBJPROP_BGCOLOR, clrGreen); ObjectSetString (ChartID (), Shorts Disabled, OBJPROP_TEXT, Shorts Enabled); }} if (sparam == Close All) {CloseAll (); ObjectSetInteger (ChartID (), Fermer tout, OBJPROP_STATE, false); } if (sparam == Disabled) {if (NotDisabled) {NotDisabled = false; ObjectSetInteger (ChartID (), Disabled, OBJPROP_STATE, false); ObjectSetInteger (ChartID (), Disabled, OBJPROP_BGCOLOR, clrRed); ObjectSetString (ChartID (), Disabled, OBJPROP_TEXT, Disabled); } else {NotDisabled = true; ObjectSetInteger (ChartID (), Disabled, OBJPROP_STATE, true); ObjectSetInteger (ChartID (), Disabled, OBJPROP_BGCOLOR, clrGreen); ObjectSetString (ChartID (), Disabled, OBJPROP_TEXT, Enabled); }} if (sparam == Buy) {if (NotDisabled) {UpCycle (); } ObjectSetInteger (ChartID (), Buy, OBJPROP_STATE, false); } if (sparam == Sell) {if (NotDisabled) {DownCycle (); } ObjectSetInteger (ChartID (), Sell, OBJPROP_STATE, false); }}}/ -------------------------------------------- ----------------------

  2. #2
    V?rifiez l'?tat de l'objet - n'assumez pas l'?tat et cela fonctionnera

  3. #3
    yayokazdo
    Guest

    Citation Envoy? par ;
    V?rifiez l'?tat de l'objet - n'assumez pas l'?tat et cela fonctionnera
    Merci d'avoir r?pondu. Pas s?r de ce que vous entendez par l?. C'est un bouton, que ce soit cliqu? ou non, non? Est-ce que j'ai r?t? quelque chose?

  4. #4

    Citation Envoy? par ;
    {quote} Merci d'avoir r?pondu. Pas s?r de ce que vous entendez par l?. C'est un bouton, que ce soit cliqu? ou non, non? Est-ce que j'ai r?t? quelque chose?
    Oui. Vous ne contr?lez pas l'?tat du bouton, mais vous v?rifiez uniquement qu'un ?v?nement est enregistr? avec le nom du bouton. Vous avez besoin de quelque chose comme ... Code ins?r? ... if (sparam == button.Name () button.State ()) ...

  5. #5

    Citation Envoy? par ;
    {quote} Oui. Vous ne contr?lez pas l'?tat du bouton, mais vous v?rifiez uniquement qu'un ?v?nement est enregistr? avec le nom du bouton. Vous avez besoin de quelque chose comme ... ... if (sparam == button.Name () button.State ()) ...
    Merci pour l'exemple, je vais le chercher et l'ajouter ? mon code. Mais comment est-ce li? au fait que je clique sur le bouton, que quelque chose se passe (permettant l'ouverture automatique de transactions longues, par exemple) et apr?s un certain temps, le bouton est toujours cliqu?, mais la fonction associ?e ne s'ex?cute pas. Cliquez ? nouveau sur le bouton pour activer et d?sactiver le cycle. Ce que je voudrais r?soudre, c???est que si on clique dessus, il doit rester cliqu? et ne pas se montrer comme cliqu?.

  6. #6
    Citation Envoy? par ;
    {quote} Merci pour l'exemple, je vais le chercher et l'ajouter ? mon code. Mais comment est-ce li? au fait que je clique sur le bouton, que quelque chose se passe (permettant l'ouverture automatique de transactions longues, par exemple) et apr?s un certain temps, le bouton est toujours cliqu?, mais la fonction associ?e ne s'ex?cute pas. Cliquez ? nouveau sur le bouton pour activer et d?sactiver le cycle. Ce que je voudrais r?soudre, c???est que si on clique dessus, il doit rester cliqu? et ne pas se montrer comme cliqu?.
    Suivez les conseils de vos a?n?s et v?rifiez l'?tat du bouton!
    Vous devez ?galement d?finir l'?tat du bouton sur false apr?s la fin de votre fonction. Code ins?r? if (sparam == button.Name () button.State ()) {some_func (); button.State (false); }

  7. #7
    Citation Envoy? par ;
    {quote} Suivez les conseils de vos a?n?s et v?rifiez l'?tat du bouton!
    Vous devez ?galement d?finir l'?tat du bouton sur false apr?s la fin de votre fonction. if (sparam == button.Name () button.State ()) {some_func (); button.State (false); }
    Je suis donc le code ressemble maintenant ? quelque chose comme ?a, je mets d?j? l'?tat dans le code donc j'ai juste ajout? la fonction ButtonState () qui retourne true ou false selon l'?tat du bouton, j'ai d? faire quelque chose de mal ou t comprendre parce que maintenant je dois cliquer 2-3 fois jusqu'? ce que le bouton a la formulation correcte et l'?tat. Pourquoi est-ce si difficile? J'ai v?rifi? mon code d'origine et il renvoie TrueFalse en cons?quence lorsque l'on clique sur ce qui peut ?ventuellement rendre l'?tat d'un bouton diff?rent de celui affich? ? l'?cran? Merci
    Code ins?r? bool ButtonState (string ButtonName) {if (ObjectGetInteger (0, ButtonName, OBJPROP_STATE) == true) {renvoie true; } else {return false; }} void OnChartEvent (const int id, const long lparam, const double dpar, const string sparam) {if (id == CHARTEVENT_OBJECT_CLICK) {if (sparam == Longs ButtonState (Longs)) {if (AllowLongs) {AllowLongs = false ; ObjectSetInteger (ChartID (), Longs, OBJPROP_STATE, false); ObjectSetInteger (ChartID (), Longs, OBJPROP_BGCOLOR, clrRed); ObjectSetString (ChartID (), Longs, OBJPROP_TEXT, Longs d?sactiv?); } else {AllowLongs = true; ObjectSetInteger (ChartID (), Longs, OBJPROP_STATE, true); ObjectSetInteger (ChartID (), Longs, OBJPROP_BGCOLOR, clrGreen); ObjectSetString (ChartID (), Longs, OBJPROP_TEXT, Longs Enabled); } ..........

  8. #8
    Si tel est le cas, vous avez certainement un probl?me en amont avec la logique qui d?finit le bool AllowLongs. Vous pouvez ?galement simplifier la v?rifiion de votre ?tat en fonction de ce qui suit: Code ins?r? bool buttonState (string button_name) {return ObjectGetInteger (0, button_name, OBJPROP_STATE); }

Régles des messages

  • Vous ne pouvez pas cr?er de sujets
  • Vous ne pouvez pas r?pondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas ?diter vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé
Le site d'sundytrading utilise des cookies
Le site d'sundytrading utilise des cookies pour vous assurer la meilleure expérience sur notre site ; certains sont déjà effectifs. Vous pouvez consulter plus de détails sur leurs usages ici. Veuillez cliquer sur le bouton à droite pour accepter nos cookies. Si vous continuez à utiliser le site internet d???sundytrading, nous considérerons que vous acceptez nos cookies.