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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3819
Beiträge: 36914
Benutzer: 6.066
Aktive Benutzer: 490
Links: 80
Wir begrüßen unseren neuesten Benutzer: flowi88
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 5 Stunden
- flowi88
vor 5 Stunden
- dealtycoon
vor 10 Stunden
- VicenteWuc
vor 13 Stunden
- sazaron
vor 16 Stunden
- MalcolmBun

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 87
Gesamt: 88
Team: 0
Team:  
Benutzer:  Richi777
Freunde anzeigen

Empfehlungen

Werbung

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 +1. Es ist jetzt 01:07 Uhr.



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