Einloggen Suche | Aktive Themen
Formel-Spalte Optionen
Uto
Geschrieben: Wednesday, November 20, 2013 1:37:23 PM
Gruppen: Kunde

Beiträge: 5

Hallo,
ich möchte eine Formel-Spalte mit folgenden Inhalt erstellen:

Erfüllt ein Wertpapier eine Bedingung, so soll in der Spalte eine 1 stehen.
Wird die Bedingung 2x erfüllt ein 2.
Wird die Bedingung 3x erfüllt ein 3.
u.s.w.

Der Programmcode:
A:INTEGER:=0;
IF Bedingung THEN A:= A + 1;
Result:=A;

Da die Variable initialisiert werden muss, wird bei jeder Neuberechnung
(wenn die Bedingung erfüllt ist), die Variable wieder auf Null gesetzt und
von Null auf 1 gezählt, aber leider nicht weiter.

Ist so etwas in einer Formel-Spalte möglich?
Uwe Michalowski
Geschrieben: Wednesday, November 20, 2013 10:39:50 PM
Gruppen: Kunde

Beiträge: 75

Hi,

Kurze Antwort um das Suchen zu vereinfachen : Da brauchen Sie eine Schleife (z.B. eine FOR ... NEXT oder Do .... WHILE oder WHILE - Schleife, in der ein Zähler initialisiert wird, der entsprecht hochgezählt wird und bei Bedarf als Ergebnis in der Spalte ausgegeben werden kann. Die Programmlogik ist ganz ähnlich wie in Visual Basic o.ä.

Bei Ihrem Code muss ja immer Eins herauskommen, denn am Anfang ist A=0 und wird dann um Eins hochgezählt.

Sie sollten aber das Thema Bedingung noch einmal durchdenken. Denn wenn z.B. geprüft werden soll, wie häufig die Bedingung in einem Zeitraum erfüllt worden ist, wird die Logik und der Code deutlich komplexer. Dann müssen Sie das Kursarray in dem definierten Zeitraum prüfen etc. Kurzum: was bei Ihnen locker als "Bedingung steht, bedarf einiger Konkretisierung und je nachdem was herauskommen soll, ist der Code zu schreiben.




Mit freundlichen Grüssen

Uwe Michalowski
Uto
Geschrieben: Thursday, November 21, 2013 7:15:31 PM
Gruppen: Kunde

Beiträge: 5

Hallo,

Zu der Bedingung:
Es soll für Aktien nach Börsenstart ermittelt werden, welche Aktien mit den meisten
Höchst-Kursen bzw. Tiefst-Kursen so zusagen "in den Tag starten".

Mein alter, falscher Code war so:
A:INTEGER:=0;
IF watch.Bezahlt() = watch.Hoch() THEN A:= A + 1;
Result:=A;

Leider hatte er, wie Sie sagten, immer wenn die Bdingung erfüllt wurde
von 0 bis 1 hochgezählt.

Danach soll ein Filter im Minutentakt immer die Aktien anzeigen, die seit Börsenstart die
meisten Höchst-Kurse bzw. Tiefst-Kurse bis dahin hatten.

Also werde ich das jetzt mit den Schleifen probieren.

Vielen Dank für Ihre Antwort.
Udo Schneider
Benutzer die diese Diskussion aktuell lesen
Guest

Powered by Yet Another Forum.net version 1.9.1.8 (NET v4.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.

Durch die Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zum Datenschutz finden Sie hier