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: 4973
Beiträge: 43827
Benutzer: 7.219
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Hopfen&Malz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107
vor 2 Wochen
- rg-trader

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 609
Gesamt: 609
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree1Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 15.06.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

In der Tat, dank der neuen Möglichkeiten des MT4+, wäre es darüber möglich.
Ich bin noch zu sehr von der alten MT4-Variante ausgegangen und geprägt.

traderdoc
  #12 (permalink)  
Alt 15.06.14
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von max232 Beitrag anzeigen
Hallo Leute!

Ich habe mein MT4 so eingerichtet, dass ich für jedes Währungspaar, das ich handle (ca 10 Stk) ein eigenes Profil eingerichtet habe mit jew. Tages- und Wochenchart des Paares.

Ich bin Positionstrader, deshalb ist der Swap für mich sehr relevant. Ich will also ein Script schreiben, dass den Swap aller Paare ausliest und in Textfelder die bereits in allen Profilen vorhanden sind (Name: "TextSwap") den Long und Short-Swap reinschreibt.

So weit so gut, klingt ja relativ einfach. Allerdings habe ich nichts in der Hilfe/www gefunden, das man auf Textboxen in verschiedenen Profilen zugreifen kann. Weiß jemand, ob das überhaupt geht? Wenn ja, mit welchem Befehl?

Danke im voraus!
Max
easy
Code:
string name="BLA_BLA";
   ObjectCreate(0,name,OBJ_LABEL,0,0,0);
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,10);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,30);
   ObjectSetString(0,name,OBJPROP_TEXT,"BLA_BLA"+
                   ":SWAPLONG:"+DoubleToString(MarketInfo(Symbol(),MODE_SWAPLONG),5)+
                   ":SWAPSHORT:"+DoubleToString(MarketInfo(Symbol(),MODE_SWAPSHORT),5));
   ObjectSetString(0,name,OBJPROP_FONT,"Arial");
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,28);
   ObjectSetInteger(0,name,OBJPROP_COLOR,clrLime);
  #13 (permalink)  
Alt 15.06.14
Neues Mitglied
 
Registriert seit: Jan 2014
Beiträge: 20
max232 befindet sich auf einem aufstrebenden Ast
Thumbs up

Super, danke für die Info Pako!

Lt Hilfe kann man mit ObjectCreate und ObjectDelete auf Objekte in anderen Chartfenstern zugreifen. Statt ObjectGet kann man ObjectGetDouble verwenden und statt ObjectSet ObjectSetDouble. Bei all diesen Befehlen kann man die ChartID spezifizieren.

Hab ein bissl herum probiert, dürfte knifflig sein, die Logik dahinter leuchtet mir noch nicht ganz ein, aber das ist nur eine Frage der Zeit.
  #14 (permalink)  
Alt 15.06.14
Neues Mitglied
 
Registriert seit: Jan 2014
Beiträge: 20
max232 befindet sich auf einem aufstrebenden Ast
Standard

So ... Tests zu ChartID() beendet ... geht leider doch nicht!

Mit dem Scriptchen
PHP-Code:
   string name="BLA_BLA";
   
ObjectCreate(0,name,OBJ_LABEL,0,0,0);
   
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,10);
   
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,30);
   
ObjectSetString(0,name,OBJPROP_TEXT,
                   
"ChartID() :" ChartID());
   
ObjectSetString(0,name,OBJPROP_FONT,"Arial");
   
ObjectSetInteger(0,name,OBJPROP_FONTSIZE,14);
   
ObjectSetInteger(0,name,OBJPROP_COLOR,Black); 
hab ich mir zu jedem Chartfenster die ChartID anzeigen lassen.

Das Ergebnis ist, dass die ChartID (und ChartFirst und ChartNext usw) immer nur innerhalb eines Profiles weitergeschaltet werden können. D.h. die ChartIDs in einem Profil sind immer gleich und zwar so
1.Chart :130434380257626821
2.Chart: 130363500780287174
3.Chart: 130434380257626822
4.Chart: 130434380257626823

Was ich wollte, ist auf Charts anderer Profile (mit demselben Account) zugreifen. Zur Verständlichung Profile richtet man unter Files/Profiles ein.
  #15 (permalink)  
Alt 15.06.14
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von max232

Ich will , dass den Swap aller Paare ausliest und in Textfelder die bereits in allen Profilen vorhanden sind (Name: "TextSwap") den Long und Short-Swap reinschreibt.
Code:
string name="TextSwap";
   ObjectCreate(0,name,OBJ_LABEL,0,0,0);
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,10);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,30);
   ObjectSetString(0,name,OBJPROP_TEXT,"TextSwap"+
                   ":SWAPLONG:"+DoubleToString(MarketInfo(Symbol(),MODE_SWAPLONG),5)+
                   ":SWAPSHORT:"+DoubleToString(MarketInfo(Symbol(),MODE_SWAPSHORT),5));
   ObjectSetString(0,name,OBJPROP_FONT,"Arial");
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,28);
   ObjectSetInteger(0,name,OBJPROP_COLOR,clrLime);
in Textfelder die bereits in allen Profilen vorhanden sind

reinschreiben
Code:
+
                   ":SWAPLONG:"+DoubleToString(MarketInfo(Symbol(),MODE_SWAPLONG),5)+
                   ":SWAPSHORT:"+DoubleToString(MarketInfo(Symbol(),MODE_SWAPSHORT),5)[/SIZE]
  #16 (permalink)  
Alt 15.06.14
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von max232 Beitrag anzeigen
So ... Tests zu ChartID() beendet ... geht leider doch nicht!

Mit dem Scriptchen
PHP-Code:
   string name="BLA_BLA";
   
ObjectCreate(0,name,OBJ_LABEL,0,0,0);
   
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,10);
   
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,30);
   
ObjectSetString(0,name,OBJPROP_TEXT,
                   
"ChartID() :" ChartID());
   
ObjectSetString(0,name,OBJPROP_FONT,"Arial");
   
ObjectSetInteger(0,name,OBJPROP_FONTSIZE,14);
   
ObjectSetInteger(0,name,OBJPROP_COLOR,Black); 
hab ich mir zu jedem Chartfenster die ChartID anzeigen lassen.

Das Ergebnis ist, dass die ChartID (und ChartFirst und ChartNext usw) immer nur innerhalb eines Profiles weitergeschaltet werden können. D.h. die ChartIDs in einem Profil sind immer gleich und zwar so
1.Chart :130434380257626821
2.Chart: 130363500780287174
3.Chart: 130434380257626822
4.Chart: 130434380257626823

Was ich wollte, ist auf Charts anderer Profile (mit demselben Account) zugreifen. Zur Verständlichung Profile richtet man unter Files/Profiles ein.
PHP-Code:
ObjectCreate(Chart_ID,...................................................

ObjectCreate(130434380257626823,......................................................... 
  #17 (permalink)  
Alt 15.06.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Aber nach dem bereits Geschriebenen müßte doch jedes!! Chart des Accounts, egal in welchem Profile es sich befindet, eine separate ID haben.

traderdoc
  #18 (permalink)  
Alt 16.06.14
Neues Mitglied
 
Registriert seit: Jan 2014
Beiträge: 20
max232 befindet sich auf einem aufstrebenden Ast
Standard

@traderdoc
Eben nicht ... das is ja das blöde.

Ich habe im Profil DAX30 zwei Charts.
Der erste in diesem Profil angelegte Chart hat ChartID 130434380257626821
Der zweite in diesem Profil angelegte Chart hat ChartID 130363500780287174

In einem weiteren Profil GBPUSD hab ich ebenfalls zwei Charts und wiederum
Der erste in diesem Profil angelegte Chart hat ChartID 130434380257626821
Der zweite in diesem Profil angelegte Chart hat ChartID 130363500780287174

usw

Alle Object() Befehle die ich fand, haben nur ChartID, aber nicht "ProfilID" als Parameter ...

@Pako
Kann dir nicht ganz folgen.
Aber hab als letzten Test noch folgendes ausprobiert:
2 Profile: Adidas und EURUSD
In beiden Profilen ist ein Chart und da drauf je ein TextLabel namens "lbl_swaptest" angelegt mit Textinhalt "balablabblabla". Dann hab ich folgendes Script:
PHP-Code:
   ObjectSetString(130434380257626821,"lbl_swaptest",OBJPROP_TEXT,
                   
"SWAPLONG:"+DoubleToString(MarketInfo(Symbol(),MODE_SWAPLONG),5)+
                   
"SWAPSHORT:"+DoubleToString(MarketInfo(Symbol(),MODE_SWAPSHORT),5));
   
ObjectSetString(130434380257626821,"lbl_swaptest",OBJPROP_FONT,"Arial");
   
ObjectSetInteger(130434380257626821,"lbl_swaptest",OBJPROP_FONTSIZE,28);
   
ObjectSetInteger(130434380257626821,"lbl_swaptest",OBJPROP_COLOR,clrLime);

//Diese kryptische 130434380257626821 ist immer die ChartID vom erstangelegten Chart in einem Profil.) 
über Profil Adidas "gedragt". Wie erwartet hat sich dort der Text auf "SWAPLONG: ....usw" verändert. Dann hab ich ins Profil EURUSD geschaut und ..... dort hat sich nichts verändert. Ein ebenfalls dort befindliches TextLabel namens "lbl_swaptest" zeigte weiterhin "balablabblabla" an.
  #19 (permalink)  
Alt 16.06.14
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von max232 Beitrag anzeigen
In beiden Profilen ist ein Chart und da drauf je ein TextLabel namens "lbl_swaptest" angelegt mit Textinhalt "balablabblabla". Dann hab ich folgendes Script:
in diesem Fall keinen Script benutzen
In Chart je ein TextLabel "TextSwap" einfügen, in diesem Fall keinen Script benutzen,
mehr brauchen Sie nicht.
Code:
 //ohne Änderung
string name="TextSwap";
   ObjectCreate(0,name,OBJ_LABEL,0,0,0);
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,10);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,30);
   ObjectSetString(0,name,OBJPROP_TEXT,"TextSwap"+
                   ":SWAPLONG:"+DoubleToString(MarketInfo(Symbol(),MODE_SWAPLONG),5)+
                   ":SWAPSHORT:"+DoubleToString(MarketInfo(Symbol(),MODE_SWAPSHORT),5));
   ObjectSetString(0,name,OBJPROP_FONT,"Arial");
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,28);
   ObjectSetInteger(0,name,OBJPROP_COLOR,clrLime);
Angehängte Grafiken
Dateityp: jpg Unbenannt.jpg (248,2 KB, 5x aufgerufen)

Geändert von pako (16.06.14 um 21:15 Uhr)
  #20 (permalink)  
Alt 16.06.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ich verstehe schon die Situation.
@Pako, wenn die IDs in beiden Profilen bzgl. der Charts identisch sind, wie soll er denn dann den sich unterschiedlich ändernden Inhalt der Textlabels auslesen?
Man könnte nun noch das Symbol() und Period() des Charts zur Unterscheidung mit heranziehen!? Aber der Fall, dass sich in beiden Profilen dasselbe Handelsinstrument im selben TimeFrame befindet, würde dann nicht mehr lösbar sein.

traderdoc
Thema geschlossen

Lesezeichen

Stichworte
chart, mql4, programmierung, programmierung metatrader, textbox chart, textboxen

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 19:04 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.
-----------------------------------------------------------------------------------------------------------------------------