Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Buttons / Schaltfläche im Chart (http://www.expert-advisor.com/forum/showthread.php?t=4694)

mastra73 17.01.16 23:38

Buttons / Schaltfläche im Chart
 
Hallo zusammen,
ich suche Codebeispiele, um 2 oder 3 Schaltflächen im Chart zu plazieren.
Diese Schaltflächen sollen z.B. alle Orders schließen oder SL löschen.
Diese Funktionen funktionieren gut als Skript, ich würde aber gern diese im direkten Zugriff im Chart haben.
So wie ich das bisher gelesen habe, ist das via EA möglich oder auch per Indi, aber konkrete Beispiele habe ich im Netz oder hier nicht gefunden.

außer evtl. hier
http://www.expert-advisor.com/forum/...sschalten.html

wobei ich hier das Problem habe zwei Buttons mit versch. Funktion anzulegen, naja bin eben kein Profiproggi, sondern eher ein Codeschnipselsammler mit Try und Error, komme aber leider so nicht weiter.

Kann jemand helfen oder hat Hinweise , wo ich dazu Infos finde?

Vielen Dank und LG Micha

mastra73 21.01.16 19:01

hat denn keiner eine Idee?
 
Hallo zusammen,
hat den keiner eine Idee, wie das gehen kann?
Viele Grüße

yytrader 21.01.16 20:59

Hallo masta73,

hier ein Beispiel für drei Buttons:

Code:

int OnInit()
  {
//---
  vCreateButton("Button1","Button1",100,100,100,30,clrGreenYellow,clrBlack);
  vCreateButton("Button2","Button2",100,200,100,30,clrGreenYellow,clrBlack);
  vCreateButton("Button3","Button3",100,300,100,30,clrGreenYellow,clrBlack);
//---
  return(INIT_SUCCEEDED);
  }

void vCreateButton(string name,string label,int xdist,int ydist,int xsize,int ysize,int bcolor,int fcolor)
{
  int chartId;
 
  chartId = 0;
 
  if(ObjectFind(chartId,name) < 0)
  {
      ObjectCreate(chartId,name,OBJ_BUTTON,0,0,0);
  }
   
  if(ObjectFind(chartId,name) >= 0)
  {
      ObjectSetString(chartId,name,OBJPROP_TEXT,label);
      ObjectSetInteger(chartId,name,OBJPROP_XSIZE,xsize);
      ObjectSetInteger(chartId,name,OBJPROP_YSIZE,ysize);
      ObjectSetInteger(chartId,name,OBJPROP_CORNER,CORNER_LEFT_UPPER);   
      ObjectSetInteger(chartId,name,OBJPROP_XDISTANCE,xdist);     
      ObjectSetInteger(chartId,name,OBJPROP_YDISTANCE,ydist);       
      ObjectSetInteger(chartId,name,OBJPROP_BGCOLOR,bcolor);
      ObjectSetInteger(chartId,name,OBJPROP_COLOR,fcolor);
      ObjectSetInteger(chartId,name,OBJPROP_FONTSIZE,9);
      ObjectSetInteger(chartId,name,OBJPROP_HIDDEN,true);
      ObjectSetInteger(chartId,name,OBJPROP_SELECTABLE,1);
      ObjectSetInteger(chartId,name,OBJPROP_SELECTED,0);
      //ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,ChartGetInteger(0,CHART_COLOR_FOREGROUND));
      ObjectSetInteger(chartId,name,OBJPROP_BORDER_TYPE,BORDER_RAISED); 
  }
}


void OnChartEvent(const int id,        // Event identifier 
                  const long& lparam,  // Event parameter of long type
                  const double& dparam, // Event parameter of double type
                  const string& sparam  // Event parameter of string type
                  )
{
  if(id==CHARTEVENT_OBJECT_CLICK)
  {
      if(sparam == "Button1")
      {
        Print("Button1 clicked");
      }
      if(sparam == "Button2")
      {
        Print("Button2 clicked");
      }
      if(sparam == "Button3")
      {
        Print("Button3 clicked");
      }
  }
}

Gruß

yytrader


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:52 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum