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