Inhalte aufrufen

  • Über Facebook anmelden Über Twitter anmelden Über WindowsLive anmelden Log In with Google Anmelden
  • Mitglied werden
Profilbild

umständlich?

- - - - -

  • Du kannst leider keine neuen Themen eröffnen
  • Please log in to reply
10 Antworten zu diesem Thema

  #1
OFFLINE   ping

Hi,

 

bin ich hier umständlich, um aus Time[0] den Tagesanfang rauszufiltern? Oder gibt es da etwas eleganteres.

Also für heute will ich erhalten: 2017.01.26 00:00:00

Please Login or Register to see this Hidden Content

ciao [Pilger] - ping


8(|In Wirklichkeit  *_* ist die Realität ganz anders! 8(| 8(|¡sɹəpuɐ zuɐɓ ʇıəʞɥɔıๅʞɹıM əıp ʇsı*_*ʇəɐʇıๅɐəଧ ɹəp uI8(|


  #2
OFFLINE   traderdoc

Ja, das geht in der Tat einfacher:

 

string Datum = TimeToStr(TimeCurrent(), TIME_DATE) + " 00:00:00";

 

traderdoc


  • ping gefällt das

Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

 


  #3
OFFLINE   ping

Ja, das geht in der Tat einfacher: string Datum = TimeToStr(TimeCurrent(), TIME_DATE) + " 00:00:00"; traderdoc

 

...wieder wie die Feuerwehr!

 

ich möchte es aber nicht erst in (string) umwandeln wollen, sondern im datetime Format behalten, gibts da auch was? Grund: das Umwandeln kostet irre viel Performance (in der Iteration)


8(|In Wirklichkeit  *_* ist die Realität ganz anders! 8(| 8(|¡sɹəpuɐ zuɐɓ ʇıəʞɥɔıๅʞɹıM əıp ʇsı*_*ʇəɐʇıๅɐəଧ ɹəp uI8(|


  #4
OFFLINE   traderdoc

Aber Du hattest doch selbst den string deklariert.

Ich kann da nicht viel Performancereduktion sehen.

Aber so bleibst Du im datetime.

 

datetime date = iTime(NULL, PERIOD_D1, 0);

 

Leider funktioniert das nur bedingt in der erstmalig aufzurufenden OnInit()-Funktion, aber vollständig in der OnTick()-Funktion.

In der OnInit()-Funktion wird dabei der Tagesanfang zuvor ermittelt, wenn der EA am aktuellen Tag das erste Mal angeschaltet wird. Keiner weiss warum, ist aber so.

Man müsste dann eigentlich zu diesem Ergebnis halt 86400 dazuaddieren. Ungünstig ist nur, wenn am aktuellen Tag ein weiteres Mal der EA initialisiert wird, entweder durch

Compilierung des Codes im MetaEditor oder durch TimeFramewechsel oder Neuinstallation auf dem Chart, dann stimmt der Wert von date tatsächlich mit dem aktuellen

Datum überein, so dass die evtl. addierten 86400 dann wiederum nicht korrekt wären.

In der OnStart()-Funktion wird aber tatsächlich der aktuelle Tagesanfang als Sekundenzeit abgelegt.

 

traderdoc


Bearbeitet von traderdoc, 26 Januar 2017 - 18:48 Uhr,

Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

 


  #5
OFFLINE   ping

So, hat etwas länger gedauert...

 

das war die Ausgangslage: (es konnten nur ganze Stunden angegeben werden)

Please Login or Register to see this Hidden Content

nun wollte ich aber eine Uhrzeit im 'hh:mm'-Format vorgeben wollen:

Please Login or Register to see this Hidden Content

die Umsetzung funzt auch soweit (obwohl ich nicht verstehe, warum im Alert 07:59:59 erscheint), aber irgendwie finde ich diese Umsetzung "von hinten durch die Brust ins Auge"


8(|In Wirklichkeit  *_* ist die Realität ganz anders! 8(| 8(|¡sɹəpuɐ zuɐɓ ʇıəʞɥɔıๅʞɹıM əıp ʇsı*_*ʇəɐʇıๅɐəଧ ɹəp uI8(|


  #6
OFFLINE   traderdoc

Der Code ist mir jetzt zu aufwändig.

Wenn ich z.B. zwischen

extern string VonZeit = "08:00";
extern string BisZeit= "08:22";

nicht handeln will, dann löse ich das so:

Please Login or Register to see this Hidden Content

traderdoc


Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

 


  #7
OFFLINE   ping

Ja würd ich auch so lösen. Ich markiere aber in der Vergangenheit den vorgegebenen Zeitbereich. Also ist die Aufgabe abzuchecken, ob die Uhrzeit von Time[i] (für jede Bar) in der vorgegebenen Zeitspanne liegt.


8(|In Wirklichkeit  *_* ist die Realität ganz anders! 8(| 8(|¡sɹəpuɐ zuɐɓ ʇıəʞɥɔıๅʞɹıM əıp ʇsı*_*ʇəɐʇıๅɐəଧ ɹəp uI8(|


  #8
OFFLINE   traderdoc

Ok, dann eben so:

Please Login or Register to see this Hidden Content

traderdoc


Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

 


  #9
OFFLINE   ping

ja, so hab ich es ja auch gelöst. Ich dacht man könnte das hin und her umwandeln noch irgendwie "kürzen" und in einer "reinen" datetime-Rechnerei einfacher (eleganter) lösen.


8(|In Wirklichkeit  *_* ist die Realität ganz anders! 8(| 8(|¡sɹəpuɐ zuɐɓ ʇıəʞɥɔıๅʞɹıM əıp ʇsı*_*ʇəɐʇıๅɐəଧ ɹəp uI8(|


  #10
OFFLINE   traderdoc

ja, so hab ich es ja auch gelöst. Ich dacht man könnte das hin und her umwandeln noch irgendwie "kürzen" und in einer "reinen" datetime-Rechnerei einfacher (eleganter) lösen.

 

Also da sehe ich in Deinem Code aber irgendwie ständig irgendwelche Subtraktionen und Umrechnungen etc., die aus meiner Sicht nicht nötig sind, gemäß des o.g. Codes.

Einfacher muss ja nicht unbedingt eleganter sein.

 

traderdoc


Bearbeitet von traderdoc, 26 Januar 2017 - 20:03 Uhr,

Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

 


  #11
OFFLINE   ping

so gesehen hast du nun wieder Recht, auch mit dem fehlenden else ist deine Version eleganter. Aber mir ging's ja jetzt um die hin und her-Konvertierung.


8(|In Wirklichkeit  *_* ist die Realität ganz anders! 8(| 8(|¡sɹəpuɐ zuɐɓ ʇıəʞɥɔıๅʞɹıM əıp ʇsı*_*ʇəɐʇıๅɐəଧ ɹəp uI8(|






0 Benutzer lesen gerade dieses Thema

0 Mitglieder, 0 Gäste, 0 anonyme Nutzer