Preis eines Objektes in der Nähe des Bid/Ask-Kurses

 

Hallo zusammen, 

kann mir jemand sagen, ob das möglich ist? Den Preis eines Objektes zu ermitteln, welcher sich am nächsten zum aktuellen Kurs befindet? (Es befinden sich mehrere Objekte derselben Farbe auf dem Chart).


Ich bin der Meinung, dass ich hier irgendwo mal etwas darüber gelesen hatte, finde aber den Beitrag nicht mehr. 

 

Du musst durch alle Objekte gehen:  ObjectsTotal() (https://www.mql5.com/de/docs/objects/objectstotal) und den minimalen Abstand (fabs('bid-ObjectGetDouble()) ermitteln.

Aber such (oben rechts) einfach mal nach ObjectsTotal in der CodeBase (linke Spalte)...

Dokumentation zu MQL5: Graphische Objekte / TextGetSize
Dokumentation zu MQL5: Graphische Objekte / TextGetSize
  • www.mql5.com
TextGetSize - Graphische Objekte - Nachschlagewerk MQL5 - Nachschlagewerk über die Sprache des algothitmischen/automatischen Handels für MetaTrader 5
 
Carl Schreiber #:

Du musst durch alle Objekte gehen:  ObjectsTotal() (https://www.mql5.com/de/docs/objects/objectstotal) und den minimalen Abstand (fabs('bid-ObjectGetDouble()) ermitteln.

Aber such (oben rechts) einfach mal nach ObjectsTotal in der CodeBase (linke Spalte)...

Danke für die schnelle Antwort. 

Wo genau finde ich die "linke Spalte"? Meinst du Suchfunktion in MQL5 (Programm)?

Print( (MathAbs(bid-ObjectGetDouble(ChartID(),objects_lines,OBJPROP_PRICE))));

Habe es jetzt mal so gelöst, der Abstand passt bei mir! Bzw. die "Abstände". Jetzt versuche ich mal den kleinsten raus zu filtern.. 

 
Carl Schreiber #:

Du musst durch alle Objekte gehen:  ObjectsTotal() (https://www.mql5.com/de/docs/objects/objectstotal) und den minimalen Abstand (fabs('bid-ObjectGetDouble()) ermitteln.

Aber such (oben rechts) einfach mal nach ObjectsTotal in der CodeBase (linke Spalte)...

Habe es verstanden mit dem Suchen! 

 
Leider nichts gefunden, was mir helfen könnte .. 
 

Hi, ich habe bereits gefunden, wonach ich gesucht hatte und konnte den Code für mich perfekt gestalten. temp_red_up ist der Preis der OBJ_HLINE, welche am nächsten am Bid-Kurs ist. Hast du zufällig eine Idee, wie ich den zweitnächsten erhalte? Für mich gerade unerklärbar. 


for(int i = 0; i < ObjectsTotal(0, 0, -1) ; i++){
string ObjectNameTemp = ObjectName(0, i, -1, -1);
if (ObjectGetInteger(ChartID(), ObjectNameTemp, OBJPROP_TYPE) == OBJ_HLINE && ObjectGetInteger(ChartID(), ObjectNameTemp, OBJPROP_COLOR) == clrMaroon){
double TempValue_red_zone = ObjectGetDouble(0, ObjectNameTemp, OBJPROP_PRICE);

if(MathAbs(TempValue_red_zone - bid) < Price_Difference_Min_Red_Up){
Price_Difference_Min_Red_Up = MathAbs(TempValue_red_zone - bid);
ObjektName_zone_red_up = ObjectNameTemp;
ObjektNumber_zone_red_up = i;
temp_red_up = TempValue_red_zone;
Print(temp_red_up);
}
}
}