Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   vorherigen Wert speichern (http://www.expert-advisor.com/forum/showthread.php?t=7010)

MarkusWilhelm89 02.06.21 18:45

vorherigen Wert speichern
 
Hi,
ich stehe gerade ziemlich auf dem Schlauch (sehe vor lauter Bäumen den Wald nicht sozusagen).

Ich habe einen SMA200.
- Wenn der Kurs den SMA kreuzt, speichere ich mir den Zeitpunkt und Close-Preis in einer Variable.
- Wenn der Kurs den SMA erneut kreuzt, will ich das Gleiche wieder tun, ABER den vorherigen Zeitpunkt und Close-Preis in einer weiteren Variable speichern (um die dann hinterher in einem Vergleich zu nutzen)

Code:

if((Close[2]>SMA && Close[1]<SMA) || (Close[2]<SMA && Close[1]>SMA)) // wenn der Kurs den MA kreuzt
{
  Crossing_Time  = Time[1];
  Crossing_Price = iClose(Symbol(),PERIOD_CURRENT,1);
}


last_Crossing_Time  ...???
last_Crossing_Price  ...???


traderdoc 02.06.21 19:44

Code:

if((Close[2]>SMA && Close[1]<SMA) || (Close[2]<SMA && Close[1]>SMA)) // wenn der Kurs den MA kreuzt
{
  last_Crossing_Time = Crossing_Time;
  Crossing_Time  = Time[1];
  last_Crossing_Price = Crossing_Price;
  Crossing_Price = iClose(Symbol(),PERIOD_CURRENT,1);
}

traderdoc

MarkusWilhelm89 03.06.21 08:29

danke, dachte auch dass es so wäre aber leider geht es nicht.
Denn wenn ich zB im H1 unterwegs bin, ist die Bedingung ja eine Stunde lang korrekt und somit wird der last_... Wert eine Stunde lang bei jedem Tick überschrieben...ergo habe ich wieder in beiden Variablen die gleichen Werte stehen

traderdoc 03.06.21 19:13

Code:

if ((Close[2]>SMA && Close[1]<SMA) || (Close[2]<SMA && Close[1]>SMA)) { // wenn der Kurs den MA kreuzt
  if (!cross_flag) {
      last_Crossing_Time = Crossing_Time;
      Crossing_Time  = Time[1];
      last_Crossing_Price = Crossing_Price;
      Crossing_Price = iClose(Symbol(),PERIOD_CURRENT,1);
      cross_flag = true;
  }
} else cross_flag = false;

traderdoc

MarkusWilhelm89 05.06.21 08:14

danke dir !
Hatte schon vermutet dass die eleganteste Lösung ein bool'scher Schalter ist... war mir aber unsicher:)


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:09 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum