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: 4324
Beiträge: 39781
Benutzer: 6.657
Aktive Benutzer: 209
Links: 80
Wir begrüßen unseren neuesten Benutzer: karakar
Mit 1.311 Benutzern waren die meisten Benutzer gleichzeitig online (16.09.19 um 01:18).
Neue Benutzer:
vor einem Tag
- karakar
vor einem Tag
- exesor
vor einem Tag
- edition87
vor 6 Tagen
- patex
vor einer Woche
- sami10

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

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 03.09.19
Neues Mitglied
 
Registriert seit: May 2017
Beiträge: 25
Gondiego befindet sich auf einem aufstrebenden Ast
Standard Auslesen von Objekten

Hallo zusammen,

habe da nochmal eine Frage. Ich habe hier einen Indikator, welchen ich in einen EA einbinden möchte. Jedoch lässt sich das hier nicht mit iCustom bewerkstelligen, da dieser keine Werte ausgibt, sondern mit Farben arbeitet. Dieses Gebiet betrete ich dann aber zum ersten Mal...

Ich habe mir schonmal sagen lassen, dass man Objekte "auslesen" kann. Denke ich habe in der MQL4 Reference, das richtige gefunden, komme aber nicht so weit damit. Vielleicht habe ich auch ein Verständnisproblem.

Diese Zeile
Code:
color oldColor=ObjectGet("hline12", OBJPROP_COLOR);
ist denke ich mal, genau das, was ich brauche.

Nach meinem Verständnis müsste sie dann für meinen Inidi wie folgt aussehen
Code:
color T1=ObjectGet("FXVTF1", OBJPROP_COLOR);
Oder nicht? (für die anderen beiden dementsprechend auch)

Wollte das nun durch einen Print anzeigen lassen, sprich ob die Farbe nun auch ausgegeben wird (um dann damit weiter arbeiten zu können), doch es passiert nichts.

Wo liegt mein Fehler? Bin für jede Hilfe dankbar.


Grüße
Angehängte Dateien
Dateityp: ex4 FXVDA1.ex4 (20,5 KB, 1x aufgerufen)
Mit Zitat antworten
  #2 (permalink)  
Alt 03.09.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.249
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Wenn das Object u.a. so heisst, dann wäre

Code:
color T1=ObjectGet("FXVTF1", OBJPROP_COLOR);
so richtig. Ich glaube jedoch, dass die Objecte alle unterschiedlich heißen oder wenigstens einen Basic-Namen haben und einen Zahlenzusatz, der sich im Laufe der Zeit von Object zu Object ändert.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #3 (permalink)  
Alt 03.09.19
Neues Mitglied
 
Registriert seit: May 2017
Beiträge: 25
Gondiego befindet sich auf einem aufstrebenden Ast
Standard

Ja, richtig.

Visuell sind die Drei mit T1, T2 und T3 bezeichnet. Wenn man jedoch mit der Maus darüber zeigt, dann wird einem FXVTF1, FXVTF2 und FXVTF3 angezeigt. Ja, man sieht dann auch Werte dabei stehen, die sich jedes Mal verändern, wenn man den Mauszeiger wieder drüber hält. Scheinen wohl Werte aus anderen Timeframes zu sein.

Sollte mir denn bei einem Print nun die "ausgelesene" Farbe angezeigt werden?
Code:
Print(T1);
Wäre so doch richtig oder?

Geändert von Gondiego (03.09.19 um 20:09 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 03.09.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.249
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Nein, Werte anderer TFs sind das nicht.

Was gibt er denn aus bei Print(T1)?

Was stehen nach dem Drücken von Strg + b für Objekte in der Liste?

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #5 (permalink)  
Alt 03.09.19
Neues Mitglied
 
Registriert seit: May 2017
Beiträge: 25
Gondiego befindet sich auf einem aufstrebenden Ast
Standard

Nichts. Das ist ja mein Problem, bzw. kann da noch nicht nachvollziehen warum.

Auf dem Bild ist zu sehen, was die Tabelle so hergibt.
Angehängte Grafiken
Dateityp: png A.png (16,1 KB, 5x aufgerufen)
Mit Zitat antworten
  #6 (permalink)  
Alt 03.09.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.249
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ok und wenn Du jetzt in dieser Tabelle mit der Maus z.B. auf eines der drei Objekte klickst und dann bei "Bearbeiten" danach auf den Reiter "Allgemein" gehst, was siehst Du da für eine Farbe rechts?

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #7 (permalink)  
Alt 03.09.19
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 234
AVT befindet sich auf einem aufstrebenden Ast
Standard

geht hier:
Code:
  string Rect1Name="FXVTF1"; //these are colored letters Wingdings "n"
  string Rect2Name="FXVTF2";
  string Rect3Name="FXVTF3";
  
  color TestBlue=clrBlue, TestRed=clrRed;
     Print(" Blue="+IntegerToString(TestBlue)+" Red="+IntegerToString(TestRed) ); //Get values
  
  long T1Color=ObjectGetInteger(0,Rect1Name,OBJPROP_COLOR);      //16711680 =Blue 255 =Red
     Print(" color "+Rect1Name+"="+IntegerToString(T1Color) );
  long T2Color=ObjectGetInteger(0,Rect2Name,OBJPROP_COLOR);      //16711680 =Blue 255 =Red
     Print(" color "+Rect2Name+"="+IntegerToString(T2Color) );
  long T3Color=ObjectGetInteger(0,Rect3Name,OBJPROP_COLOR);      //16711680 =Blue 255 =Red
     Print(" color "+Rect3Name+"="+IntegerToString(T3Color) );
Die Zahlen sind irgendwelche Farbumwandlungen von HEX zu sonstwas. AVT
Mit Zitat antworten
  #8 (permalink)  
Alt 04.09.19
Neues Mitglied
 
Registriert seit: May 2017
Beiträge: 25
Gondiego befindet sich auf einem aufstrebenden Ast
Standard

Erstmal eine Danke @traderdoc und @AVT für die Hilfe.

Werde heute wahrscheinlich nicht mehr dazu kommen, das auszuprobieren bzw. muss erst mal sehen, was da in dem Code genau passiert bzw. wie ich damit jetzt weiter arbeiten kann.

Wollte aber zumindest schonmal einen Dank dalassen.

Grüße
Mit Zitat antworten
  #9 (permalink)  
Alt 05.09.19
Neues Mitglied
 
Registriert seit: May 2017
Beiträge: 25
Gondiego befindet sich auf einem aufstrebenden Ast
Standard

Danke nochmal für den Code @AVT

Mich irretieren jetzt noch was die Zahlen in den Kommentaren. Muss ich diese nutzen wenn ich eine if-Abfrage der Farbe starte oder kann ich da mit TestBlue und TestRed arbeiten?

Letztendlich ist mein Ziel, immer alle drei in betracht zu ziehen, spriche wenn alle drei blau sind, soll es ein UP-Trend sein, wenn alle rot, dann ein DOWN-Trend.

Grüße
Mit Zitat antworten
  #10 (permalink)  
Alt 05.09.19
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 234
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Gondiego Beitrag anzeigen
Mich irretieren jetzt noch was die Zahlen in den Kommentaren. Muss ich diese nutzen wenn ich eine if-Abfrage der Farbe starte oder kann ich da mit TestBlue und TestRed arbeiten?
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.

Zitat:
Zitat von Gondiego Beitrag anzeigen
Letztendlich ist mein Ziel, immer alle drei in betracht zu ziehen, spriche wenn alle drei blau sind, soll es ein UP-Trend sein, wenn alle rot, dann ein DOWN-Trend.
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
Mit Zitat antworten
Antwort

Lesezeichen


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 03:51 Uhr.


Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2019 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.
-----------------------------------------------------------------------------------------------------------------------------