|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Simple Anfängerfrage
Hi,
ich mache gerade meine ersten Gehvesuche also nicht gleich köpfen. Meine erste Übung: ich möchte den Durchschnittsclose-Wert der 3 letzten Bars im Tradingjounal ausgeben. Der Tester läuft auf USD/EUR 5min und einem Tag per Datum eingeschränkt. Demnach müsste ich mehrer Duzend Einträge erhalten. Meine Idee: double hilfe1; double hilfe2; double hilfe3; double hilfe4; hilfe1 = Close[0]; hilfe2 = Close[1]; hilfe3 = Close[2]; hilfe4 = (hilfe1+hilfe2+hilfe3)/3; Print("der durchschnitt ist ", DoubleToStr(hilfe4,5)); Das Problem ist das der Close[0] scheinbar immer den aktuellen Bar ausliest aber das mit den vorgängern funktioniert nicht. Jetzt habe ich schon recherchiert das vermutlich alle selektierten Bars durchgezählt werden und demnach der Close[1] immer der gleiche ist ? KOmisch aber das dann der Close[0] funktioniert. Das verwirrt mich zumindest. Demnach wäre mein nächster Versuch die Zählung in einer Schleife laufen zu lassen? |
|
|||
Zitat:
Ja, Close[0] ist der aktuelle Kurs. PHP-Code:
|
|
|||
OK Danke,
also ich habe einen neuen EA gemacht mit deinem Code. Ich verstehe jetzt nicht die Ausgabe im Journal: Warum bekomme ich jetzt ganz viele Einträge für jede MInute, ich erwarte nur einen Eintrag für alle 5 Minuten?! 2013.08.26 17:59:48 2013.08.22 23:30 TEST EURUSD,M5: Durchschnitt = 1.33566000 2013.08.26 17:59:48 2013.08.22 23:31 TEST EURUSD,M5: Durchschnitt = 1.33566000 2013.08.26 17:59:48 2013.08.22 23:31 TEST EURUSD,M5: Durchschnitt = 1.33566000 |
|
|||
Hallo AiGelb,
der Grund liegt daran, dass die Print funktion häufiger, wahrscheinlich bei jedem Tick aufgerufen wird. Die Berechnung wird immer wieder neu durchgeführt, kommt aber immer zum gleichen Ergebnis, daran siehst du das mit dem Tick. Schönen Abend, Dave |
|
|||
So etwas hatte ich befürchtet.
Wünschenswert wäre natürlich wenn es die in dem Strategietester verwendete Zeitintervalle verwendet. (hier zum Beispiel 5 Min). Muss dies dann mittels Programmcode abgefangen werden? Wie sehe soetwas aus?! Besteht die Möglichkeit dynamisch das ausgewählte Zeitintervall zu verwenden des Testers zu verwenden? |
|
|||
Zitat:
PHP-Code:
|
|
|||
Ah okay ich verstehe die Idee...
So sieht der Code jetzt aus. PHP-Code:
2013.08.26 22:46:59 2013.08.19 00:02 TEST EURUSD,M5: Durchschnitt = 1.33245000 2013.08.26 22:46:59 2013.08.19 00:01 TEST EURUSD,M5: Durchschnitt = 1.33245000 2013.08.26 22:46:59 2013.08.19 00:01 TEST EURUSD,M5: Durchschnitt = 1.33245000 2013.08.26 22:46:59 2013.08.19 00:01 TEST EURUSD,M5: Durchschnitt = 1.33245000 2013.08.26 22:46:58 2013.08.19 00:01 TEST EURUSD,M5: Durchschnitt = 1.33245000 usw... |
|
|||
Zitat:
PHP-Code:
23:18:59 test: loaded successfully 23:19:00 TestGenerator: spread set to 2 23:19:00 test test started 23:19:00 2013.08.12 00:00 test EURUSD,M1: Durchschnitt = 1.33371000 23:19:07 2013.08.12 00:05 test EURUSD,M1: Durchschnitt = 1.33370333 23:19:10 2013.08.12 00:10 test EURUSD,M1: Durchschnitt = 1.33370667 23:19:15 2013.08.12 00:15 test EURUSD,M1: Durchschnitt = 1.33371000 Geändert von pako (26.08.13 um 23:36 Uhr) |
|
|||
Ok dumm, habe es jetzt verstanden. Ein Schritt weiter.
Danke für die Unterstützung. Was an diesem Beispiel nun blöd ist das wenn nach 5 Minuten in dieser Sekunde kein Folge Tick da ist, verschiebt sich das Konstrukt allerdings immer etwas. Über längere Zeit ist passiert dann wohl dies 2013.08.27 07:18:40 2013.08.20 09:41 TEST EURUSD,M5: Durchschnitt = 1.33688667 2013.08.27 07:18:40 2013.08.20 09:36 TEST EURUSD,M5: Durchschnitt = 1.33637333 2013.08.27 07:18:40 2013.08.20 09:30 TEST EURUSD,M5: Durchschnitt = 1.33611333 2013.08.27 07:18:40 2013.08.20 09:25 TEST EURUSD,M5: Durchschnitt = 1.33581333 Vermutlich müsste man die Überschuss-Sekunden abrunden und dann den 300er Vergleich ziehen. Aber gut ich versuche nun mal meine nächste Übung! |
Lesezeichen |
Stichworte |
close, durchschnittswert, durchschnittswert close, mql4, programmierung, programmierung metatrader |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|