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)
-   -   Höchstkurs des Vortages (http://www.expert-advisor.com/forum/showthread.php?t=5133)

placebo76 26.08.16 09:12

Höchstkurs des Vortages
 
Hallo,

ich möchte mich beim Überschreiten des Vortages-High einstoppen lassen. Seltsamerweise hat die Order Punkt 8 Uhr heute als BUYSTOP den Höchstkurs des vorgestrigen Tages genommen.

Den Vortages-Höchstkurs habe ich laut Google so ermittelt:

void OnTick() {
double high = iHigh(Symbol(), PERIOD_D1, 1);
...

Wie kann es dazu kommen dass ich einen Tick zu weit zurückgegangen bin?

Als wäre er beim ersten Tick des Tages noch im "Vortagsmodus".

Gibt es evtl. eine sicherere Variante den Kurs zu ermitteln?

Gruß Daniel

placebo76 26.08.16 09:40

Mir fällt gerade ein, die Funktion wird ja permanent aufgerufen, dadurch ergibt sich dass bis 08:00 Uhr der Vortag ja noch korrekt ist, ab 08:00 entsteht die erste "heutige" Bar und das Vortages-High muss auf den nächsten Tag springen (gestern).

Wahrscheinlich wurde die OnTick-Funktion noch vor dem ersten ermittelten Kurs angelaufen und beim Ordersend() gabs dann schon die erste heutige Bar, oder?

Möglicherweise sollte ich am Anfang der OnTick() - Funktion aussteigen wenn es noch vor 08:00 Uhr ist, weil davor ich nicht getraded wird.

Sind meine Annahmen korrekt oder mache ich grundsätzlich was falsch?

Zyr 26.08.16 10:26

Hi,

Ich nehme an du möchtest mit dem vortageshoch CFD's oder ähnliches Handeln. In dem Fall muss du dem EA sagen das er erst zu beginn einer neuen Kerze die Konditionen überprüfen soll.
In deinem Fall also für das daily high zu beginn einer neuen Kerze in der Period_D1 bzw. beim ersten Tick des Tages.

Gruß
Zyr

placebo76 26.08.16 10:35

Also so wie ich geschrieben habe oder? Vor 08:00 aussteigen, und erst ab 08:00 Uhr die Routinen durchlaufen !?

Zyr 26.08.16 12:10

Richtig. Du kannst ja mal in diesen Thread schauen, da sind vortageshoch ea's. Schau dir den Code an.

placebo76 30.08.16 09:35

So ich hab das jetzt mal geloggt, sehr eigenartig ...

Code:
Code:

double high = iHigh(Symbol(), PERIOD_D1, 1);
Print("Value of last day high: ", high);

Ausgabe:
08:00:03.267 -> 10615.9 -> Vorgestern (falsch, Orders werden falsch eröffnet)
08:00:03.501 -> 10572.3 -> Gestern (korrekt)

Was soll das denn?

Gruß Daniel

placebo76 31.08.16 09:14

Da der Wert gestern erst nach 3sek. korrekt war habe ich heute erst nach 5 sek. zu Traden begonnen. Und was soll ich sagen ... auch da wieder der erste Wert falsch ...

Sieht für mich so aus als würde das Vortages-Hoch erst dann den richtigen Wert liefern, wenn mind. eine Order abgesetzt wurde. Verstehe wer will ... morgen werde ich einen unsinnigen Trade absetzen, und erst danach das Traden beginnen.

traderdoc 31.08.16 11:03

Es wäre ganz sinnvoll, den gesamten Code zu sehen. Manchmal liegt der Hase woanders begraben. Etwas stutzig macht mich das derzeitig aber auch.

traderdoc

placebo76 02.09.16 08:31

Naja ich denke es ist nachvollziehbar dass ich hier nicht den ganzen Code posten möchte.

Aber es ist wirklich unglaublich. Heite habe ich den EA erst 15min nach dem ersten Kurs gestartet, und wieder hat er nur den Vor-Vortageskurs genommen. Danach die Position manuell gelöscht, nochmal kompiliert und dann hat er den richtigen Kurs genommen.

placebo76 02.09.16 08:48

Den relevanten Code habe ich ja auch oben gepostet, danach erfolgt direkt die Ausgabe. Vor dem Code wird nichts mehr durchlaufen, es ist somit irrelevant was danach noch kommt.


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:28 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