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

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

LowTrader

Fortgeschrittener

Registrierungsdatum: 3. Juli 2014

Beiträge: 115

1

Dienstag, 1. März 2016, 11:02

Nicht funktionierende Schalterlogik

Hallo,

folgende Logik gibt leider nicht wie erwartet die Werte aus:

Quellcode

1
2
3
4
calc Schalter: Schalter(0, DateMark(29, 5, 1998, 0, 0), 1, DateMark(2, 3, 1999, 0, 0), 2);


If(schalter=0, Close("K1"), If(schalter=1, Close("K2"), 0))


Anstatt bis zum 29.5.1998 die Kurse von K1 auszugeben wird generell nur K2 angezeigt.

Wo hat sich der Fehler eingeschlichen?

Gruß
Lowtrader

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 051

Wohnort: Giessen

2

Dienstag, 1. März 2016, 15:03

Anstatt bis zum 29.5.1998


doofe Frage:
in der Vergleichszeitreihe in der Du das Chartest und in K1 sowie K2 gibt es den 29.5.1998 ?
Wenn Du den Schalter direkt in den Chart legst, bekommst Du 0,1,2 angezeigt im Zeitverlauf ?

PS. die meisten Programmiersprachen killen für sowas: Variablen Name identisch mit Funktionsname

Quellcode

1
calc Schalter: Schalter


ich weiß das Investox das normalerweise "frisst", habe aber auch schon damit mal nen Bauchplatscher gemacht.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

LowTrader

Fortgeschrittener

Registrierungsdatum: 3. Juli 2014

Beiträge: 115

3

Dienstag, 1. März 2016, 16:34

Hallo Lenzelott,

Zitat

doofe Frage:

in der Vergleichszeitreihe in der Du das Chartest und in K1 sowie K2 gibt es den 29.5.1998 ?
In der Basisreihe sind die Daten natürlich vorhanden.
In K1 sind auch beide Daten vorhanden, obwohl das gar nicht nötig ist oder? Es soll ja einfach an dem Tag der Wechsel auf eine andere Kursreihe erfolgen da spielt es doch eigentlich keine Rolle ob ein Kurs vorhanden ist, oder liege ich da falsch?

in K2 ist 29.5. vorhanden aber 2.3.1999 nicht.

Zitat

Wenn Du den Schalter direkt in den Chart legst, bekommst Du 0,1,2 angezeigt im Zeitverlauf ?
Ja am richtigen Datum.

Zitat

PS. die meisten Programmiersprachen killen für sowas: Variablen Name identisch mit Funktionsname
habe es mit "Schalter1" probiert, ändert nix.

Was ich so überhaupt nicht verstehe ist, wieso K2 angezeigt wird aber nicht K1. Ich habe mir das so vorgestellt, das Investox am Anfang bei K1 beginnt, das soweit durchknattert bis es am 29.5. dann auf K2 springt. Das aber K2 aber nicht K1 angezeigt wird ist verwirrend ?( Zumal die Basisreihe bis weit vor K2 zurückreicht..

Gruß
Lowtrader

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »LowTrader« (1. März 2016, 16:41)


Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

4

Dienstag, 1. März 2016, 17:05

Hallo,

Zitat

in K2 ist 29.5. vorhanden aber 2.3.1999 nicht.


das dürfte ein Problem sein, da nur Bereich berechnet werden, in denen in allen verwendeten Berechnungsteilen Daten vorhanden sind. Daher "Ersatz"-Funktion verwenden, wie z.B.

Ersatz(Close("K2"), 0)

Viele Grüße
Andreas Knöpfel

LowTrader

Fortgeschrittener

Registrierungsdatum: 3. Juli 2014

Beiträge: 115

5

Mittwoch, 2. März 2016, 18:17

Hallo Herr Knöpfel,

toll die Lösung funktioniert, die Funktion wird nun richtig berechnet!!

Dankeschön und Grüße

Lowtrader