Wie würdest DU derartige Pullbacks codieren? (+ frage)

 

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 :)

 

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
 
Bayne:

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



dennoch kommt immer 0 raus

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);
  }
 
Bayne:

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

Handelsanwendungen für MetaTrader 5 auf Bestellung
Handelsanwendungen für MetaTrader 5 auf Bestellung
  • www.mql5.com
Hi, as discussed please modify the EA 81 as discribed.  If needed please also modify DGCN in order that the discussed feature will work Let me know in case of any questions Thank you my friend! Ich suche jemanden, der mir einen einfachen EA programieren kann. Die Grundlage ist ein von mir erworbener Indikator welcher bei bestimmten Trends...
 
Christian:

Wichtig:  Debugger nutzen, nicht das Forum


Aber in diesem Fall prüfe mal den Error danach

schon alles was mir einfällt probiert. die funktion scheint komplett nutzlos zu sein.
 
Bayne:
schon alles was mir einfällt probiert. die funktion scheint komplett nutzlos zu sein.

Na los ....lies nochmal genau mein Post #2

Handelsanwendungen für MetaTrader 5 auf Bestellung
Handelsanwendungen für MetaTrader 5 auf Bestellung
  • www.mql5.com
Hi, as discussed please modify the EA 81 as discribed.  If needed please also modify DGCN in order that the discussed feature will work Let me know in case of any questions Thank you my friend! Ich suche jemanden, der mir einen einfachen EA programieren kann. Die Grundlage ist ein von mir erworbener Indikator welcher bei bestimmten Trends...
 
Bayne:
schon alles was mir einfällt probiert. die funktion scheint komplett nutzlos zu sein.

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

 
amando:

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?

@Christian

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.

 
Bayne:

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


dennoch kommt immer 0 raus

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

Dokumentation zu MQL5: Graphische Objekte / ObjectGetValueByTime
Dokumentation zu MQL5: Graphische Objekte / ObjectGetValueByTime
  • www.mql5.com
Die Funktion verwendet einen synchronen Aufruf, d.h. dass die Funktion auf die Ausführung aller Befehle wartet, die vor deren Aufruf zur Warteschlange des Charts hinzugefügt wurden, deswegen kann die Funktion viel Zeit in Anspruch nehmen. Dies muss man...