Freitag, 19. April 2024, 07:36 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

rlo

unregistriert

1

Montag, 6. April 2009, 13:39

Wie wird If(.... in Investox abgearbeitet?

Hallo Investox

ich habe folgendes Problem: Ich baue gerade an einem HS, welches während der Periode schaltet. Also bei Erreichen von bestimmmten Levels. Zur Auswertung und um unkontrollierte Schaltvorgänge zu unterbinden muß ich hierfür die Tickanalyse einsetzen. Dabei dauert die Optimierung und was noch kritischer ist - die Berechnung des HS naturgemäß (es müssen ja alle Ticks analysiert werden) recht lange.

Bringt hier der Einsatz von IF(... etwas? ?(

Einfaches Beispiel: High Limit 4100 Low Limit 4000

Das System soll bei überschreiten von 4100 Long und bei unterschreiten von 4000 Short gehen.

Normalerweise reicht der Befehl: TickOrder(4100, 4000)=1

Dies erfordert bei anderen Einstellungen und vielen Perioden aber viel Rechenzeit - insbesonde Realtime.

Meine Frage: Kann die Rechenzeit optimiert werden wenn folgender Befehl ausgeführt wird???

Springt das Progrann sozusagen weiter wenn die Bedingung wahr wird und erfüllt den ersten Befehl oder wird der 2. Befehl der Bedingung

im Hintergrund in jeder Periode automatisch mitberechnet?

global calc HL: 4100;

global calc LL: 4000;

IF(Low>HL or High<LL or (High<HL and Low>LL),0, {Kein Limit erreicht}

IF(High>=HL and Low>LL,1, {nur High Limit erreicht}

IF(High<HL and Low<=LL,-1, {nur Low Limit erreicht}

Tickdaten(HL,LL) )))=1 {Berchnung der Tickdaten nur wenn HL und LL in einer Periode erreicht wurden

Das funktioniert natürlich nur wenn die IF Bedinung in dem Fall, dass ihr Wert wahr ist , den ersten Befehl ausführt und danach weiterspringt ohne den 2. Befehl zu bearbeiten, sprich wenn in den Perioden, wo High und Low Limit nicht gleichzeitig erreicht werden die Tickanalyse nicht berechnet wird.

Wenn dies die Tickanalyse jedoch schon selbst intern tut hat sich die Frage fast erübrigt.



Viele Grüße

rlo

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

2

Dienstag, 7. April 2009, 09:57

Hallo,

>>Meine Frage: Kann die Rechenzeit optimiert werden wenn folgender Befehl ausgeführt wird???

Nein, da alle if()-Bestandteile durchgerechnet werden (auch aus Geschwindigkeitsgründen).

Viele Grüße

Andreas Knöpfel

rlo

unregistriert

3

Mittwoch, 8. April 2009, 15:58

Hallo Herr Knöpfel,

Danke für die schnelle Rückantwort. Das Problem der Rechenzeit für die Tickanalyse hat sich wenigstens Realtime durch Änderung des Leistungsschemas gelöst. Nur die Optimierung dauert (naturgemäß) noch etwas lange. Das ist aber auch kein Problem.

Viele Grüße

rlo

Ähnliche Themen