LastBar Detector im Tester

 

Stehe gerade etwas auf dem Schlauch .


Hat jemand eine Methode parat um die LETZTE bar(Zeitpunkt) zu ermitteln bevor die OnDeinit() angesprungen wird.

Ähnlich der bekannten NewBarDetector Methode.

Wenn die letzte Bar ermitteln wurde möchte ich ein Event senden über .NET aber das nur zur Erklärung.


Ideen ?

 
Christian:

Stehe gerade etwas auf dem Schlauch .


Hat jemand eine Methode parat um die LETZTE bar(Zeitpunkt) zu ermitteln bevor die OnDeinit() angesprungen wird.

Ähnlich der bekannten NewBarDetector Methode.

Wenn die letzte Bar ermitteln wurde möchte ich ein Event senden über .NET aber das nur zur Erklärung.


Ideen ?

 versteh ich jetzt nicht ganz.

wenn die OnDeinit() ausgelöst wird, bauche ich doch nur den zeitstempel des auslösens, damit weis ich unabhängig vom Timeframe den bar.

 
amando:

 versteh ich jetzt nicht ganz.

wenn die OnDeinit() ausgelöst wird, bauche ich doch nur den zeitstempel des auslösens, damit weis ich unabhängig vom Timeframe den bar.

Guck noch mal genau hin zu meiner Frage..... Bevor DeInit angesprungen wird.
 
Christian:
Guck noch mal genau hin zu meiner Frage..... Bevor DeInit angesprungen wird.


ja der war gut, so betrachtet hast Du völlig recht. 

Wie löst Du den DeInit aus? ausschalten des EA? Entfernen aus dem Chart? oder durch Fehlerfall?

 
amando:


ja der war gut, so betrachtet hast Du völlig recht. 

Wie löst Du den DeInit aus? ausschalten des EA? Entfernen aus dem Chart? oder durch Fehlerfall?

:-) ..ja DeInit wird vom Metatrader angesprungen. So wie du schon geraten hast aber eben auch wenn die letzte Bar des Testzeitraumes durch ist ..besser gesagt der letzte Tick.


Aber es reicht mir zu wissen das ich in der letzten Bar bin. Der Tester weis es ja nur wie komme ich an diese Information.

 

ich vermute mal, das er die lastbartime verwendet. jeder bar hat ja einen Zeitstempel, den kann man umlegen auf eine normalzeit bzw in datetime lassen. Es ist nur die frage was es hilft.

eventuell kannst Du den Zeitstempel desletzten Bar abspeichern und übertragen. Wenn kein neuer mehr kommt ist der letzte deiner mit dem ende des test. Aber nachdem du das ja für ein .net Projekt exportieren willst ist die Frage ob dir das so etwas nutzt.

 
amando:

ich vermute mal, das er die lastbartime verwendet. jeder bar hat ja einen Zeitstempel, den kann man umlegen auf eine normalzeit bzw in datetime lassen. Es ist nur die frage was es hilft.

eventuell kannst Du den Zeitstempel desletzten Bar abspeichern und übertragen. Wenn kein neuer mehr kommt ist der letzte deiner mit dem ende des test. Aber nachdem du das ja für ein .net Projekt exportieren willst ist die Frage ob dir das so etwas nutzt.

Hm..es ist noch nicht ganz klarr geworden.


Ich möchte nicht den Zeitpunkt übertragen sondern in dem Moment eine bestimmte Funktion aufrufen nach der er ja dann in die DeInit() springt.

ich skizziere mal ...

void OnTick()
  {
 
 
  if SindWirInDerLetztenBar()
    {
      LetzteMöglichkeitNochEtwasZuMachen()
    }   
  }


LetzteMöglichkeitNochEtwasZuMachen()
{
  SendNetEvent(DeInit);
}

 
Christian:

Hm..es ist noch nicht ganz klarr geworden.


Ich möchte nicht den Zeitpunkt übertragen sondern in dem Moment eine bestimmte Funktion aufrufen nach der er ja dann in die DeInit() springt.

ich skizziere mal ...

void OnTick()
  {
 
 
  if SindWirInDerLetztenBar()
    {
      LetzteMöglichkeitNochEtwasZuMachen()
    }   
  }


LetzteMöglichkeitNochEtwasZuMachen()
{
  SendNetEvent(DeInit);
}


ok, das machts etwas klarer.

du weist ja, wann der Test zu ende sein soll. Das Datum kannst Du dir in eine datetime umwandeln. gleichzeitig fragst du im test ab, ob der aktuelle bar mit deiner berechneten Zeit übereinstimmt und wenn das der fall ist, dann rufst die Funktion auf

 

Das Datum weis ich vorher aber nie die wirklich letzte Zeit an dem Tag oder doch ?

Den Weg habe ich im Kopf , aber da muss ich ja immer viel rechnen.

Ist es gerade Sonntag oder nicht. Freitags ist 23 Uhr Ende ...Feiertag ..etc ...du sieht ...viel gerechne.


Etwas einfacher ?

 
Christian:

Das Datum weis ich vorher aber nie die wirklich letzte Zeit an dem Tag oder doch ?

Den Weg habe ich im Kopf , aber da muss ich ja immer viel rechnen.

Ist es gerade Sonntag oder nicht. Freitags ist 23 Uhr Ende ...Feiertag ..etc ...du sieht ...viel gerechne.


Etwas einfacher ?

von welchen Timeframe gehst du aus? das ist mal eine Frage. generell musst du nur für Freitag rechnen, im Tester, der hört immer um 23:59 auf. da macht er die letzte 1 min. Kerze. ausser Freitag, da kommt sie (je nach broker) um rund eine Stunde früher.


anders kannst du vorgehen, wenn dich die kerze nicht interessiert, dann nimm einfach die letzte zeit des tages. quasi 1 sekunde vor mitternacht.

 

Ich rede vom 1 Min Chart.

Und es soll natürlich so klein wie möglich sein da es ja in OnTick() ständig durchlaufen wird. Eventuell kann es ja in die new bar Methode rein.

Die es ja schon gibt.

Jedes Fitzel extra bremst die Tester Geschwindigkeit aus.


Im englischem Forum sucht jemand auch so eine Möglichkeit. Dort wird gerate die Log auszulesen. Da steht ja Tester Start und End drin . Nur kommst du an die Datei aus mql5 nicht dran.

Naja , ich warte mal ab.... vielleicht kennt ja noch jemand anderes eine elegantere Methode.

Der Weg den du beschreibst ist ja machbar. Aber was universielles wäre schön.

Grund der Beschwerde: