Einzelnen Beitrag anzeigen
  #11 (permalink)  
Alt 19.08.14
traderdoc traderdoc ist offline
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von gehtdoch Beitrag anzeigen
Hallo zusammen, habe von dem regen Austausch hier noch garnichts mitbekommen. Aber ich habe evtl. für alle Beteiligten etwas interessantes gefunden.

Gibt nur eigentlich nur zwei Möglichkeiten: 1.kennt keiner, 2.taugt nichts

Es geht um die Seite MT4GUI
Es lohnt sich bestimmt einmal aufmerksamer zu lesen. Ein Kommentar dazu würde mich freuen.

Da werden jede Menge Möglichkeiten mit Button gezeigt und erklärt.
Selbstverständlich habe ich auch nach Anleitung runtergeladen. Bekomme aber bisher kein Ding zum Laufen.

Vielleicht schaut ihr Fachleute dort mal nach und helft mir damit evtl. weiter.

Ich möchte einen Button mit "Start(grün) und Stop(rot)" (Farbwechsel) im Chart haben, mit dem ich einen EA steuern kann. Das hört sich so einfach an.
Warum möchte ich auch erklären: Z.B. einen EA in 2 Stück 1min-Charts nutzen. Erkennbare Umschaltgrenzen die flattern(long/short/long/short) könnten, durch zeitweises abschalten ruhigstellen. Jetzt kommt vielleicht die Frage: Wer will schon so traden? Einfache Antwort: Ich.

Was für mich erschwerend hinzu kommt. Ich habe zwei kleinere MT4-Livekonten und zwei MT4-Demokonten. Da ist die Zuordnung der Ordner unter Win7 schnell mal durcheinander (und funktioniert nicht)

Allen MT4lern einen schönen Abend.

PS: Der abgebildete Code sollte sicher nur ein Code-Beispiel sein, hat bei mir leider 3 Fehlermeldungen.
MT4GUI war früher eine nützliche Sache, als man noch nicht per MQL Button setzen und verwalten konnte, da mußte man auf die WinAPI zurückgreifen. Das hat sich mittlerweile überholt.
Ich hänge nochmal eine korrigierte Version an, sogar mit zwei Buttons.#

Code:
string button1ID="Button1";
string button2ID="Button2";

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit() {
  
   CreateButton(button1ID, "Out1",100, 100);
   CreateButton(button2ID, "Out2",100, 400);
   
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason) {
   ObjectDelete(0,button1ID);
   ObjectDelete(0,button2ID);
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick() {

}
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam) {
//--- Check the event by pressing a mouse button
   if(id==CHARTEVENT_OBJECT_CLICK) {
      string clickedChartObject=sparam;
      if(clickedChartObject==button1ID) {
         bool selected=ObjectGetInteger(0,button1ID,OBJPROP_STATE);
         if(selected) {
            Alert("Button1 clicked");
            ObjectSetInteger(0,button1ID,OBJPROP_STATE,0);
         } else {

         }
      }
      if(clickedChartObject==button2ID) {
         bool selected=ObjectGetInteger(0,button2ID,OBJPROP_STATE);
         if(selected) {
            Alert("Button2 clicked");
            ObjectSetInteger(0,button2ID,OBJPROP_STATE,0);
         } else {

         }
      }
      ChartRedraw();
   }
}
void CreateButton(string name, string text, int x, int y) {
   ObjectCreate(0,name,OBJ_BUTTON,0,100,100);
   ObjectSetInteger(0,name,OBJPROP_COLOR,clrWhite);
   ObjectSetInteger(0,name,OBJPROP_BGCOLOR,clrGray);
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
   ObjectSetInteger(0,name,OBJPROP_XSIZE,200);
   ObjectSetInteger(0,name,OBJPROP_YSIZE,50);
   ObjectSetString(0,name,OBJPROP_FONT,"Arial");
   ObjectSetString(0,name,OBJPROP_TEXT,text);
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,10);
   ObjectSetInteger(0,name,OBJPROP_SELECTABLE,0);
}
Viele Spaß!

traderdoc

PS. Die Fehlermeldung im 1. Code kam aus clrGra y, welches aus irgendwelchen Gründen ein Freizeichnen bekommen hatte, wo keines hingehört.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.