Dienstag, 16. April 2024, 23:16 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: INVESTOX-Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Registrierungsdatum: 6. August 2010

Beiträge: 311

1

Donnerstag, 31. Mai 2012, 21:29

Fehler im Programmablauf mit L&P-Daten

Hallo zusammen,

ich habe zwei Fehler, welche mit adjustierten Endlosdaten (z.B. FSMI, FGBL, FESTX) von L&P auftreten. Mit IB-Einzelkontrakten oder auch mit IB-Kombititeln läuft das System sauber durch. Die Titeleinstellungen sind identisch.

Kennt ihr die Fehler bzw. habt eine Lösung dafür?



Vielen Dank!
Beste Grüße!
Livermore

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

2

Donnerstag, 31. Mai 2012, 22:07

mit adjustierten Endlosdaten

jenachdem, wie da adjustiert wurde, können in der Vergangenheit negative Kurse wie auch 0 Kurse "virtuell" aufgetreten sein. Möglicherweise verträgt das Dein Coding nicht, und so kommt es dann zur Divison durch 0. Prüfe doch mal die Kursdatenreihe (durch Ansicht im Chart und mittels dem Dateninspektor), ob es so ist.
Gruss
Bernd

Registrierungsdatum: 6. August 2010

Beiträge: 311

3

Freitag, 1. Juni 2012, 09:54

Hallo Bernd,

danke für deine Antwort.

Ich habe die Kursdatenreihe gecheckt. Es gibt keine Kurse gleich oder kleiner Null.
Beste Grüße!
Livermore

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

4

Freitag, 1. Juni 2012, 10:33

Dann musst Du als nächstes Deine Formeln noch genauer untersuchen; irgendeine der Formeln wird einen Divisor zu 0 erzeugen auf einem der L&P Daten, so dass der Wert des Quotienten nicht berechnet werden kann.

Am besten ist es meist, von vornherein die Divisoren mit einem +0.000001 abzusichern.

Etwa so:
global calc Wert_des_Quotienten: Dividend / (Divisor + 0.000001);

Das würde natürlich dann nicht klappen, wenn die Formel für den Divisor auch einmal -0.000001 erzeugen würde; dann wäre das Ergebnis wieder eine Division durch 0 ... Du musst also intelligent überlegen, was in den Formeln passiert :D
Gruss
Bernd

Registrierungsdatum: 6. August 2010

Beiträge: 311

5

Freitag, 1. Juni 2012, 12:08

Bernd, das ist völlig verrückt und mit ´ner "0-1-Denke" nicht zu erklären.

Bei der "Fehler"-Suche habe ich stückweise die Formeln, welche eine Division verwenden, eliminiert. Übrig blieb nur noch eine etwas aufwändige MoMa-Berechnung.
In den Testbedingungen unter Management stand bei fester Kontrakt, Anzahl "MoMa". Ich dachte, ok schreibste da eine "1" rein und eliminierst die MoMa-Berechnung unter Definitionen. Da Unerklärliche war nun, dass INV eine andere Fehlermeldung brachte, die sich auf "MoMa" bezog. Nur "MoMa" war im gesamten HS nicht mehr vorhanden bzw. wurde auch nirgends in HS verwendet. Kurzum habe ich mit "Global const MoMa: 1;" unter Definitionen, MoMa wieder bei Anzahl eingetragen. Das HS lief fehlerfrei durch. "Konstante MoMa" wieder durch "Berechnung MoMa" ersetzt und siehe da: KEIN FEHLER.

Kennst du oder auch andere INV-Nutzer derartiges???
Beste Grüße!
Livermore

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

6

Freitag, 1. Juni 2012, 12:23

Da Unerklärliche war nun, dass INV eine andere Fehlermeldung brachte, die sich auf "MoMa" bezog. Nur "MoMa" war im gesamten HS nicht mehr vorhanden bzw. wurde auch nirgends in HS verwendet.

Hab' ich auch schon manchmal gedacht - und später dann Verwendung der betreffenden Variablen doch noch irgendwo gefunden.

Sei es in den Zusatzbedingungen zu Stops weil ich da noch was schlaues reinprogrammiert hatte oder in Anwender-Testergebnissen oder sonstwo ... Also irgendwo wirst Du sicher demnächst auf die Variable treffen, dann kommt der Aha-Effekt :D Jedenfalls hat sich Investox bei mir bisher so eine Fehlermeldung nie aus den Digital-Fingern gezogen ...
Gruss
Bernd

Registrierungsdatum: 6. August 2010

Beiträge: 311

7

Freitag, 1. Juni 2012, 13:43

Ich konnte die Ursache der Fehlermeldung (vorerst) lokalisieren:

Unter Definitionen:
global const backtestkapital: 100000;
global const RpT: 1; // in %
Global Calc Risiko: backtestkapital*RpT/100;

In den Testbedingungen steht unter Startkapital "backtestkapital". Damit tritt die eingangs erwähnte Fehlermeldung auf. Wenn ich nun unter Startkapital "100000" rein schreibe, läuft es ohne Fehler duch.
Aber was hat das mit der zugrundeliegenden Kursdatenreihe zu tun??? :baby:

btw:
Das HS wurde mehrfach dupliziert und immer wieder verändert.
Wenn ich das Leistungsschema verändere kommt nur beim ersten Aufruf des HS eine Fehlermeldung, welche sich auf die Underwater-Berechnung der Kap.kurve bezieht. Diese Berechnung (aus einer älteren Version dieses HS) ist im aktuellen Chart aber gar nicht mehr vorhanden. Ich habe den Eindruck, dass noch einige Informationen in den Speicherzellen stehen, die nicht richtig überschrieben bzw. gelöscht wurden.
Beste Grüße!
Livermore

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

8

Samstag, 2. Juni 2012, 15:28

Ich habe den Eindruck, dass noch einige Informationen in den Speicherzellen stehen, die nicht richtig überschrieben bzw. gelöscht wurden.

Wie geschrieben hatte ich den Eindruck auch schon manchmal - und habe dann doch noch irgendwo versteckt eine Referenz auf einen Bezeichner gefunden, den ich herausgenommen zu haben glaubte.

An dieser Stelle wünschte ich mir eine Cross-Referenz (Liste) mit allen Bezeichnern, die im Handelssystem, im Projekt, in der Instanz, in Aufgaben usw. verwendeten
* calc's
* global calc's
* Indikatoren, inkl. in Indikatoren verwendeter Indikatoren und Schlüsselwörter
* Bezeichnern in Testergebnissen
usw.

Kurzum eine Cross-Referenz über jeden Bezeichner, Indikator und jedes selbst definierte Dingsbums, welcher/welches in der ganzen Instanz gefunden werden kann mit genauer Angabe des Fundortes. Die "kleine Alternative" wäre eine Suche Funktion nach irgendeinem Suchwort, das im ganzen Instanz-Universum gesucht wird und zu den Fundorten verweisst.

So wie es ist muss man sich erinnern, ob man *damals* ein (ggf. sogar "ehemaliges" Schlüssel-) Wort in den Definitionen, im Chart (Projekt-Layout oder Handelssystem-Layout oder Titel-Layout ?), in den Enter/Exit Bedingungen, im ORM, in den Stops (vielleichts als Zusatzbedingung oder als Einstiegsbedingung?) und was weiss ich noch wo alles abgelegt hat! Die Suche im Fehlerfall ist zugegebenermassen im Fehlerfall - komplex und es ist Kombinationsgabe zusammen mit Erinnerung gefragt, was man "seinerzeit" wohl gemacht und sich gedacht hat.

Vielleicht kann Herr Knöpfel da sogar auf einfache Weisse mit einer Cross-Referenz aushelfen?, denn eine Investox-Instanz hat ja von allen Bezeichnern und deren Vorkommen Kenntnis, sonst würde das ganze Investox nicht laufen können.
Gruss
Bernd

Registrierungsdatum: 6. August 2010

Beiträge: 311

9

Samstag, 2. Juni 2012, 21:36

Hallo Bernd,

eine Art Suchfunktion oder die von dir beschriebene Cross-Referenz würde sicher bei der Fehlersuche helfen.

Bis jetzt habe ich den Fehler leider noch nicht finden können. Das ist extrem zeitaufwändig.

Was mir immer noch nicht in den Kopf geht, ist, dass es mit einer Datenreihe fehlerfrei läuft und mit einer anderen (die ich auf Null-Werte gecheckt habe) nicht. Ich hoffe, dass am Ende des dunklen Tunnels ein Aha-Erlebnis auf mich wartet. :engel:
Beste Grüße!
Livermore