Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Wie letzte Hoch/Tief von MACD ermitteln?

Geschrieben

Hallo liebe Experten,

 

ich komme mal wieder nicht richtig weiter.

Ich möchte immer das letzte Hoch und Tief des MACD(12,26,9) markieren.

 

Bisher habe ich folgenden Code (für Low).

lastlow = 0;

int iMACDLastLow1()
  { double value[100];
    for(int ii = 1; ii < 100; ii++)
      { value[ii] = iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_MAIN,ii)*1000000;
        value[ii+1] = iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_MAIN,ii+1)*1000000;
        if((value[ii] < value[ii+1]) &&
           (value[ii] < 0) &&
           (value[ii] < lastlow))
          { lastlow = value[ii];
            vDrawHLineInIndicatorWindow("lastlow/1000000", "MACD(12,26,9)", lastlow/1000000, STYLE_DOT, Green);
            break;
          }
      }
  }

 

Ich gehe also bis zu 100 Bars zurück. Sobald ein Tief gefunden ist, wird dieses Tief = lastlow gesetzt und eine LInie gezeichnet. Und die for-Schleife wird mittels break abgebrochen. (Die Multiplikation mit 1000000 dient mir nur zur besseren Lesbarkeit).

 

Soweit funktioniert es auch eigentlich, jedoch wenn das letzte Tief nicht das tiefste Tief der 100 bars ist, dann findet springt er beim nächsten Aufruf das nächsttiefere Tief an und soweiter, bis es kein Tief mehr in den 100 Bars mehr gibt.

 

Eigentlich erwarte ich, dass er bei jedem Aufruf der Funktion durch ein Tick wieder von vorne anfängt und somit nur das letzte Tief findet.

 

Was übersehe ich hier?

 

Oder wisst Ihr vielleicht eine elegantere Lösung (vielleicht wie ich nicht genau 100 Bars zurück gehe, sondern soviele, bis tatsächlich ein letztes Hoch/Tief kommt, auch wenn das mehr als 100 Bars entfernt sein sollte?

 

Schon mal wieder vielen Dank für Eure Hilfe und noch einen schönen Abend.

 

Featured Replies

Geschrieben

Sorry die blöde Frage, aber was ist das "letzte Tief"? Suchst du den letzten Wendepunkt?

Dann solltest du einfach zurückgehen bis der Wert davor und danach höher ist. Zb was in diese richtung:

 

double next= 0
double cur= iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
double prev= iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
double lastLow= cur;
for(i= 1;i < Bars-1;i++) {
next= cur;
cur= prev;
prev= iMACD(Symbol(),0,12,26,9,PRICE_CLOSE,MODE_MAIN,i+1);
if(cur < next && cur < prev) {
   lastLow= cur;
  break;
}
}
Geschrieben

Eigentlich brauchst du den Verlgeich von value[ii+1] nicht wirklich.

Es reicht doch, wenn du jeden Wert das MACD mit dem bisherigen tiefsten Tief vergleichst.

 

Ich würde lastLow bspw. auf 10000 setzen oder Math.Max (wenn es das gibt).

Dann ist der erste MACD-Wert immer kleiner. Alle weiteren findest du dann entsprechend der Iteration.

 

So bekommst du den tiefsten MACD-Wert von 100 Bars (welcher

 

Wenn du das letzte Swing-High /Low meinst, dann musst du halt X Bars links und rechts

jedes möglichen Datenpunktes schauen, ob die Werte dort allesamt höher oder tiefer liegen.

  • 1 Monat später...
Geschrieben
  • Autor

Dann solltest du einfach zurückgehen bis der Wert davor und danach höher ist. Zb was in diese richtung:

 

Hallo,

entschuldigt die späte Antwort. Ich habe es wie Mythos gemacht und es funktioniert jetzt wie gewollt.

Danke!

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.