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)
-   -   Auslesen von Objekten (http://www.expert-advisor.com/forum/showthread.php?t=6496)

Gondiego 05.09.19 20:21

Zitat:

Die TestBlue und TestRed sind dazu da, um herauszufinden, welche "Farbzahl" herauskommt, wenn die Farbe "clrBlue" oder "clrRed" heißt. Das sind die Vorgabewerte aus dem Indikator. (Solltest Du die mal ändern, also statt "Blue" z.B. "YellowGreen" einstellen, wird sich auch die "Farbzahl" ändern).

Um die Farbe eines Objektes zu auszulesen, nimmt man ObjectGetInteger(...), man erfragt also eine Integer-Zahl (genau gesagt sind die "Farbzahlen" vom Typ long integer). Da es aber keine (jedenfalls ist mir so was nicht bekannt) Umwandlung von IntegerToColor oder sowas gibt, ist das einfachste mit dem Zahlwert zu arbeiten.
Hab ich verstanden, klasse. Danke für die Erleuterung!

Zitat:

Dann brauchst Du trotzdem die beiden unterschiedlichen Zahlen, damit Du weißt, ob Du grad blau oder rot zu fassen hast. Wenn Du diese Farben vom Indikator nie änderst, dann kannst Du deren Zahlwerte vorher festlegen, der Rest ist dann die Bedingung
Code:

long UpColor=16711680; // Blue
long DnColor=255; // Red

if( ObjectGetInteger(0,FXVTF1,OBJPROP_COLOR)==UpColor
&& ObjectGetInteger(0,FXVTF2,OBJPROP_COLOR)==UpColor
&& ObjectGetInteger(0,FXVTF3,OBJPROP_COLOR)==UpColor )
{
//dann kaufen
}

ungetestet, sollte aber eigentlich so funktionieren. AVT
Das werde ich dann bei Gelegenheit mal ausprobieren, wird aber sicherlich genau das sein, was ich brauche.
Nochmal vielen vielen Danke!

Grüße

Gondiego 07.09.19 17:13

Ich habe das ganze nun mal in eine Funktion gepackt (mache ich zunmindest immer so) aber ich bekomme immer noch kein "Ergebnis", im Sinne eines Prints, geschweige denn, wenn ich mit "Trend" weiterarbeite.

Code:

string Trend;
string up, down;
string Rect1Name = "FXVTF1";
string Rect2Name = "FXVTF2";
string Rect3Name = "FXVTF3";
long UpColor = 16711680; 
long DnColor = 255;       
string FXVTF()
  {
      if(  ObjectGetInteger(0,Rect1Name,OBJPROP_COLOR) == UpColor
        && ObjectGetInteger(0,Rect2Name,OBJPROP_COLOR) == UpColor
        && ObjectGetInteger(0,Rect3Name,OBJPROP_COLOR) == UpColor)
            {
              Trend = up;
            }
      if(  ObjectGetInteger(0,Rect1Name,OBJPROP_COLOR) == DnColor
        && ObjectGetInteger(0,Rect2Name,OBJPROP_COLOR) == DnColor
        && ObjectGetInteger(0,Rect3Name,OBJPROP_COLOR) == DnColor)
            {
              Trend = down;
            }
      else Trend = "";
       
      Print(Trend);
       
      return(Trend);     
  }

Habe ich doch noch was falsch verstanden?

Grüße

AVT 07.09.19 22:29

Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Gondiego (Beitrag 42832)
Ich habe das ganze nun mal in eine Funktion gepackt (mache ich zunmindest immer so) aber ich bekomme immer noch kein "Ergebnis", im Sinne eines Prints, geschweige denn, wenn ich mit "Trend" weiterarbeite.

Code:

string Trend; //Variable ohne Anfangswert
string up, down; //2 weitere Variablen ohne Anfangswert
string FXVTF()
{
  if( ... ) Trend = up; //Trend bekommt den Wert von Variable up
  if( ... ) Trend = down; //Trend bekommt den Wert von Variable down
  else    Trend = ""; //Trend bekommt den Wert Leer
       
  Print(Trend);
  return(Trend);     
}

Habe ich doch noch was falsch verstanden?

Sieh Dir mal an, was mit Deinen Variablen passiert. Zum Vergleich mal eine Version angehängt (da Wochenende ist, ist ein Aufruf in OnInit). AVT

Gondiego 08.09.19 12:37

Liste der Anhänge anzeigen (Anzahl: 1)
Danke für die Anmekungen.
Aber auch mit deinem Watcher erhalte ich nichts...:confused:

Steh ich jetzt komplett auf dem Schlauch?

AVT 08.09.19 13:25

Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Gondiego (Beitrag 42835)
Danke für die Anmekungen.
Aber auch mit deinem Watcher erhalte ich nichts...:confused:
Steh ich jetzt komplett auf dem Schlauch?

Ich auch, ich habe Dir mal ein Bild angehängt wie das bei mir aussieht. Geladen: nur der VXDA1.ex4 Indikator und dann der FXDA1watcher.ex4. Sobald der zweite auf den Chart gezogen wird, erscheinen unter "Experten" die Print Meldungen. Du mußt unter "Experten" nachsehen und nicht unter "Journal". AVT

Gondiego 08.09.19 14:05

Liste der Anhänge anzeigen (Anzahl: 1)
Super, danke dir.

Hoffentlich letzte Frage, wie zu sehen ist jetzt beim zweiten kein Trend (none) vorhanden, trotz das alle rot sind. Kann es daran liegen,dass Wochenende ist? Nur zum Verständnis für mich.

AVT 11.09.19 14:46

Zitat:

Zitat von Gondiego (Beitrag 42838)
Hoffentlich letzte Frage, wie zu sehen ist jetzt beim zweiten kein Trend (none) vorhanden, trotz das alle rot sind. Kann es daran liegen,dass Wochenende ist? Nur zum Verständnis für mich.

Tschuldigung, war unterwegs. Ne, eigentlich sollte der im Init schon den korrekten Wert anzeigen, aber das tut er hier selbst im OnCalculate nicht, ich krieg momentan ein "none" obwohl down ist.
Jetzt weiß ich auch nicht mehr weiter, sorry ich bin nicht nur mit meinem Latein am Ende, sondern auch mit Griechisch und Germanisch :confused: AVT

Gondiego 13.09.19 16:43

Zitat:

Tschuldigung, war unterwegs. Ne, eigentlich sollte der im Init schon den korrekten Wert anzeigen, aber das tut er hier selbst im OnCalculate nicht, ich krieg momentan ein "none" obwohl down ist.
Jetzt weiß ich auch nicht mehr weiter, sorry ich bin nicht nur mit meinem Latein am Ende, sondern auch mit Griechisch und Germanisch AVT
Oha...das heißt ja dann schon was :eek:
Dann muss ich wohl mal gucken, ob ich das irgendwie anders bewerkstelligt bekomme bzw. ob ich den Indi durch einen anderen ersetzen kann.

Trotzdem danke nochmal.

Grüße

Gondiego 15.09.19 12:03

Zitat:

Tschuldigung, war unterwegs. Ne, eigentlich sollte der im Init schon den korrekten Wert anzeigen, aber das tut er hier selbst im OnCalculate nicht, ich krieg momentan ein "none" obwohl down ist.
Jetzt weiß ich auch nicht mehr weiter, sorry ich bin nicht nur mit meinem Latein am Ende, sondern auch mit Griechisch und Germanisch AVT
@AVT, ich kann dich beruhigen, du bist nicht mit deinem Latein, Griechisch oder Germanisch am Ende...du hast einfach den Wald vor lauter Bäumen nicht mehr gesehen.

Ich bin bisher nicht dazu gekommen meinen EA live zu testen und habe bei dem auftretenden "Fehler", komischerweise, immer in meinem EA geguckt, wo der Fehler liegen könnte. Habe es da aber tatsächlich richitg geschrieben. Wenn du jetzt nochmal in deinen FXDA1watcher reingucken wirst, wirst du jetzt wahrscheinlich schnell feststellen, dass du bei beiden Bedingungen das Gleiche reingeschrieben hast :)

Code:

if(        ObjectGetInteger(0,Rect1Name,OBJPROP_COLOR)==UpColor
              && ObjectGetInteger(0,Rect2Name,OBJPROP_COLOR)==UpColor
              && ObjectGetInteger(0,Rect3Name,OBJPROP_COLOR)==UpColor)
             
        Trend = "up";
       
      else if(  ObjectGetInteger(0,Rect1Name,OBJPROP_COLOR)==UpColor
              && ObjectGetInteger(0,Rect2Name,OBJPROP_COLOR)==UpColor
              && ObjectGetInteger(0,Rect3Name,OBJPROP_COLOR)==UpColor)
       
        Trend = "down"

Kann dann ja logischerweise kein "down" erfüllt werden.
Funktioniert also einwandfrei ;)

Grüße und schönen Sonntag noch

AVT 15.09.19 19:22

Zitat:

Zitat von Gondiego (Beitrag 42857)
@AVT, ich kann dich beruhigen, du bist nicht mit deinem Latein, Griechisch oder Germanisch am Ende...du hast einfach den Wald vor lauter Bäumen nicht mehr gesehen.

Wenn du jetzt nochmal in deinen FXDA1watcher reingucken wirst, wirst du jetzt wahrscheinlich schnell feststellen, dass du bei beiden Bedingungen das Gleiche reingeschrieben hast :)

Kann dann ja logischerweise kein "down" erfüllt werden.
Funktioniert also einwandfrei ;)

Suuuper, daß Du das gesehen hast :D:D dann ist ja meine Welt wieder im Lot! Danke und erfolgreiche nächste Woche. AVT


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:48 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