Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43260
Benutzer: 7.224
Aktive Benutzer: 75
Links: 84
Wir begrüßen unseren neuesten Benutzer: Sundaytrader
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 4 Tagen
- Sundaytrad...
vor 5 Tagen
- TS_6
vor einer Woche
- Mane
vor 3 Wochen
- AlbertZiz
vor 3 Wochen
- michak

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 186
Gesamt: 186
Team: 0
Team:  
Benutzer:  
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


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 16:21 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.
-----------------------------------------------------------------------------------------------------------------------------