Wichtig:
Sitze gerade am Part mit der Trendline, bekomme aber immer nur 0 return'ed, wenn ich diese Funktion nutzen will um das PreisLevel der Linie in der Aktuellen Zeit zu bekommen
ObjectGetValueByTime
double getCurrentPriceOfTrendLine(const string name) { datetime currentBarTime = SymbolInfoInteger(_Symbol, SYMBOL_TIME); double linePrice = ObjectGetValueByTime(0,name, /*currentBarTime*/currentBarTime); return (linePrice); }
soo wird die Trendline vorher erstellt:
if(ObjectCreate(0,"consolidationline"+IntegerToString(counter),OBJ_TREND,0,PullbackbarTime,PullbackbarLow,ConsolidationTime,ConsolidationLevel)&&ObjectSetInteger(0,"Consolidationline"+IntegerToString(counter),OBJPROP_RAY_RIGHT,1) ) { Sleep(5); ChartRedraw(); counter++; }
Und so wird der Preis Gecheckt
if(getCurrentPriceOfTrendLine("consolidationline"+IntegerToString(counter-1)) != 0)dennoch kommt immer 0 raus
Wichtig:
Sitze gerade am Part mit der Trendline, bekomme aber immer nur 0 return'ed, wenn ich diese Funktion nutzen will um das PreisLevel der Linie in der Aktuellen Zeit zu bekommen
ObjectGetValueByTime
Wichtig: Debugger nutzen, nicht das Forum
Aber in diesem Fall prüfe mal den Error danach
double getCurrentPriceOfTrendLine(const string name) { datetime currentBarTime = SymbolInfoInteger(_Symbol, SYMBOL_TIME); double linePrice = ObjectGetValueByTime(0,name, /*currentBarTime*/currentBarTime); Print(_LastError); return (linePrice); }
Seid geggrüßt und wunderschönen guten Morgen,
Bin dankbar für jegliche Form /Tips von erklärungsansätzen :)
Mein Tipp: https://www.mql5.com/de/job
- www.mql5.com
schon alles was mir einfällt probiert. die funktion scheint komplett nutzlos zu sein.
Na los ....lies nochmal genau mein Post #2
- www.mql5.com
Ja du legst eine line an und fragst von einer anderen den preis an.
da muss 0 rauskommen
schau dir den namen an von der trendline
müsste doch klappen (nach der Erstellung wird counter um eins addiert "counter++;") (auch wenn ich den Counter++; befehl weglasse, und den namen exakt gleich hinschreibe bleibt es so. (das das C bei der Umwandlung in einen OBJPROP_RAY_RIGHT groß geschrieben ist hat keine Veränderung vorgerrufen.
oder woran liegt es?
4205 Object Cordinates Error
ich kann dir mal zwei Beispiele geben wie man mit MQL4 den Preis einer Trendlinie anhand von einer Candelstick Kerze bekommt:
double TrendlinienPreisKerze0=ObjectGetValueByShift("TrendlinienName",0); double TrendlinienPreisKerze1=ObjectGetValueByShift("TrendlinienName",1);
In der Funktion "ObjectGetValueByShift" schreibst du also als erstes den Namen der Trendlinie und als nachstes die Nummer der Candelstick. Die aller erste Candelstick welche sich noch im Livechart aendert, also welche noch nicht abgelaufen ist hat die Nummer 0 und alles was dahinter liegt jeweils um eins hoeher.
Wichtig:
Sitze gerade am Part mit der Trendline, bekomme aber immer nur 0 return'ed, wenn ich diese Funktion nutzen will um das PreisLevel der Linie in der Aktuellen Zeit zu bekommen
ObjectGetValueByTime
soo wird die Trendline vorher erstellt:
Und so wird der Preis Gecheckt
weil ichs gerade selber getestet habe,
also diese Funktion, die funktioniert
https://www.mql5.com/de/docs/objects/objectgetvaluebytime
Du ignorierst nur einfach die Parameter der Funktion, du hörst nach der Zeit auf und du must noch die line_ID hinzufügen
- www.mql5.com
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Seid geggrüßt und wunderschönen guten Morgen,
Anbei seht ihr, was genau ich Traden will (siehe Bild)
Ich habe jedoch einpaar problempunkte bei denen ich gerne wissen würde wie ich es zuverlässiger/ besser machen kann...
1. der Initial Move passiert bei mir momentan fest zur uhrzeit 15:30.... wie kann ich den code herausfinden lassen ob er nicht schon um 15:28 oderso stattfindet. (Wie Vergleichen ? und was mit was vergleichen) (dachte an die BarLänge im Vergleich mit dem Durchschnitt der letzten 10-20 Bars... Bessere Vorschläge sind gerne gewünscht)
2. Der Pullback.... habe momentan geschrieben, dass, verschiedene bools der reihenfolge nach aktiviert werden, wenn z.b. der Openkurs zum ersten mal tiefer liegt als vorher (Pullback), danach wird gechekt bis der Openkurs zum ersten mal wieder höher liegt (Bewegung wieder in Breakoutrichtung) und dann wieder bis der Openkurs zum ersten mal tiefer liegt als Vorher (wieder Pullback) Was kann ich besser machen?
2.1 Dazu gehört u.a. noch dass die Erholung min. 5 Bars lang sein muss, bevor die Trendlinie gezeichnet wird.
2.2 und der SL unter das "Recent Low platziert werden muss, wie kriege ich dass? (Vorher, wenn Low, einfach dieses Level speichern und sofern es kein neues Low gab verwenden?)
2.3 Das Profit Target muss genau die Hälfte des Initial Moves sein... Da wir aber oben nur die kerzen die x mal Länger als der durchschnitt sind reinkriegen wird das schwer auch den anfang des Initial Moves reinzukriegen (welcher ja bekanntlich nicht nur eine schöne Lange wie im Bild ist)
Bin dankbar für jegliche Form /Tips von erklärungsansätzen :)