Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43283
Benutzer: 7.222
Aktive Benutzer: 75
Links: 84
Wir begrüßen unseren neuesten Benutzer: AlbertZiz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einer Woche
- AlbertZiz
vor einer Woche
- michak
vor einer Woche
- Amateur
vor 2 Wochen
- infos1982
vor 2 Wochen
- Thomas75

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 91
Gesamt: 92
Team: 0
Team:  
Benutzer:  AM581
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 07.03.15
Neues Mitglied
 
Registriert seit: Feb 2013
Beiträge: 15
gehtdoch befindet sich auf einem aufstrebenden Ast
Standard Problem: EA in verschiedenen Charts


Hallo Experten,

ich habe ein Problem mit einem EA zur Trading-Unterstützung in verschiedenen Werten. Dazu vielleicht eine kurze Erklärung.
In dem jeweiligen Chart möchte ich über Button den im Chart installierten EA Einschalten/Stoppen/Ausschalten.
Ich erkenne das Problem nicht!
So sieht es aus:
Ein Bild ist ganz unten im Anhang. Ist vom DOW daher ist dort die "2" benutzt.

Und hier ein Teil vom Code:

[CODE]
//HD-AutoTrading EUR/USD "3"
// global -------------------------------------
string button1ID="Button1"; //EA starten/neustarten
string button2ID="Button2"; //EA stoppen
string button3ID="Button3"; //Position schliessen

int Start3;
//+---------------
//| inizialisierung
//+---------------
int OnInit() {

int Start1=-1;
int Start2=-2;
Start3=-3; //Damit rennt der nicht sofort bei Installation los...
int Start4=-4;
int Start5=-5;
int Start6=-6;
int Start7=-7;
int Start8=-8;
int Start9=-9;
CreateButton(button1ID, "Start AT",12,85);
CreateButton(button3ID, " Close",105,85);

return(INIT_SUCCEEDED);
}
//+---------------
//| deinizialisieren
//+---------------
void OnDeinit(const int reason) {
ObjectDelete(0,button1ID);
ObjectDelete(0,button2ID);
ObjectDelete(0,button3ID);
ObjectDelete(0,"LabelBox");
ObjectDelete(0,"Posis : ");
ObjectDelete(0,"Start : ");
}

//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam) {
//--- Check the event by pressing a mouse button
// bool AllSymbols;

if(id==CHARTEVENT_OBJECT_CLICK) {
string clickedChartObject=sparam;
if(clickedChartObject==button1ID) {
bool selected=ObjectGetInteger(0,button1ID,OBJPROP_STAT E);
if(selected) {
// Alert("Button1 clicked");
Start3 = 3; //++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++
ObjectSetInteger(0,button1ID,OBJPROP_STATE,0);
ObjectDelete(0,button1ID);
CreateButton(button2ID, "Stop AT",12, 85);
} else {

}
}
if(clickedChartObject==button2ID) {
bool selected2=ObjectGetInteger(0,button2ID,OBJPROP_STA TE);
if(selected2) {
// Alert("Button2 clicked");
Start3 = -3; //++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++
ObjectSetInteger(0,button2ID,OBJPROP_STATE,0);
ObjectDelete(0,button2ID);
CreateButton(button1ID, "Start AT",12, 85);
} else {
}
}

if (clickedChartObject==button3ID) {
int cnt;
RefreshRates();

for(cnt=OrdersTotal()-1; cnt>=0; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!=Symbol())
{
continue;
}
if(OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,2,Blue);
CreateButton(button1ID, "Start AT",12, 85);
Start3=-3; //++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++
}
if(OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,2,Blue);
CreateButton(button1ID, "Start AT",12, 85);
Start3=-3; //++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++
}
}
}
}
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,button1ID,OBJPROP_BGCOLOR,clrLi meGreen);
ObjectSetInteger(0,button2ID,OBJPROP_BGCOLOR,clrRe d);
ObjectSetInteger(0,button3ID,OBJPROP_BGCOLOR,clrBl ueViolet);
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
ObjectSetInteger(0,name,OBJPROP_XSIZE,75);//200);
ObjectSetInteger(0,name,OBJPROP_YSIZE,25);//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);
}

//---------------------| HD-AutoTrading.mq4 |------------------------
#property copyright "HD"

input double TakeProfit =100; //10.0
input double Lots =0.1; //Forex
input double TrailingStop =30; //3.0
input double Sperre =0.3; //Umschaltsperre +/- in Euro
input double AtrPeriod =4; //ATR Periode
input double Halt =5; //min Atr/Prg stoppen

extern int A = 12.0;
extern int B = 26.0;
extern int C = 9.0;
// Ende global ---------------

// lokal ----------------------
void OnTick() //start() //
{
if ((total3<1) && (Start3==3) && (PGstoppen3==1))
}
//----------------------------
// Ende lokal -----------------
}
[CODE]
Der EA läuft problemlos, aber immer nur in einem Chart. Ich kann weitere Positionen mit 1-Klick eröffnen und über "Close" alle sofort schliessen.

Meine Versuche für DAX, DOW, EURUSD, GBPUSD, EURJPY:
Kompletten EA für jeden Chart umbenannt
Verschiedenste Variablen mit einer Zahl (hier 3) erweitert
MagicNr unterschiedlich
Probleme: Starte z.B. 3 EA´s: es wird nur die erste Position eröffnet (worauf die anderen EA´s warten, weiss ich nicht, sind aber in Lauerstellung)
Irgendwann spielt alles verrückt und selbst in nicht gestarteten EA´s werden Positionen eröffnet und geschlossen. Bremsen kann ich das nur noch mit dem Hauptschalter "AutoTrading".

Kann mir bitte jemand den entscheidenden Tip geben?
Dank im voraus.
Angehängte Grafiken
Dateityp: jpg DOW30.jpg (18,6 KB, 10x aufgerufen)
  #2 (permalink)  
Alt 07.03.15
Gesperrter Benutzer
 
Registriert seit: Jan 2015
Beiträge: 477
BlackPearl befindet sich auf einem aufstrebenden Ast
Standard

Die ID mit der magic ergänzen, sodass der Knopf eindeutig wird .
Button1<magic1>
Thema geschlossen

Lesezeichen

Stichworte
ausschalten, chart, chart button, ea ausschalten, ea einschalten, einschalten, mql4, programmierung, programmierung metatrader

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 12:20 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------