Dienstag, 16. April 2024, 08:35 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

LowTrader

Fortgeschrittener

Registrierungsdatum: 3. Juli 2014

Beiträge: 115

1

Freitag, 10. Juni 2016, 16:28

Code verursacht rätselhafte Probleme

Hallo,
Bei dem unternstehenden Code kommt es (je nach Tag) zu sehr unterschiedlichen Problemen. Das ganze ist ziemlich rätselhaft.
Teil 1 des Systems lief im Test immer Prbolemlos, sobald der Code von untern hinzugefügt wurde begannen die Probleme wie:
  • beim Testen kam die Fehlermeldung "Testen von... blieb ohne Ergebnis".
  • Oft verändert sich der Zeitraum der getestet wird. Der Gesamtzeitraum in den HS Einstellungen geht bis "11.04.2016). Oft läuft der Test nur bis 19.06.1992 in den entsprechenden csvs ist dort aber nichts besonderes. Manchmals wenn ich auf manuell aktualisieren clicke Läuft das System wieder bis 11.04.2016
  • heute kam dann Häuiger Fehlermeldungen beim Ausführen des Codes zu Schalter oder Unterbrechung, später ließ sich der unveränderte Code aber wieder ausführen und lief sogar bis 11.04.2016
Testete ich nur Teil1 des Systems (der auch einiges an Berechnungen enthält) läuft es aber immer problemlos, es muss also etwas an diesem Code Instabil/fehleranfällig sein:

Zitat

//US-Dollarsystem
// Handelsjahr ist je nach Jahrzent unterschiedlich

const 60er: -248; //60er bekommen eine 0 von Schalter
const 70er: -249; //70er eine 1
const 80er: -250; //80er 2
const 2000er: -254; //2000er 3

calc SchalterJahr: Schalter(0, DateMark(1, 1, 1970, 0, 0), 1, DateMark(1, 1, 1980, 0, 0), 2) + Schalter(0, DateMark(1, 1, 2000, 0, 0), 1, 0, 500);

calc HandelstageJahr: If(SchalterJahr=0, 60er,If(SchalterJahr=1, 70er,If(SchalterJahr=2, 80er,If(SchalterJahr=3, 2000er, 5.5))));


calc MinDiff: 0.008; //Wenn MIndiff >0 heißt das, dass der heutige Eurokurs um mehr also die MinDiff unter dem Vorjahreskurs liegen muss

calc EuroNiedriger: Close("1EUR_inUSD_KT_1953_Heute")+MinDiff< RefVar(Close("1EUR_inUSD_KT_1953_Heute"), HandelstageJahr);

//EuroNiedriger


// Oder Falls wie im Buch beschrieben die Prüfung ob Eurokurs niedriger als vor einem Jahr nur am Anfang des Monats durchgeführt werden soll (wie im Buch beschrieben) und nicht tgl.

calc AnfangMonat: Abschnitt("Dax ab 1959_KT_fortgefuehrtMitGdaxi", m, 1, k, m);

calc EuroNiedrigerAnfangMon: If(AnfangMonat, EuroNiedriger, -2); // -2 soll nur erkennbar machen, dass kein Monatswechsel vorliegt, sollte von 0 und 1 verschieden sein deshalb -2


Schalter(0, EuroNiedrigerAnfangMon=1, 1, EuroNiedrigerAnfangMon=0, 0)
Der Code ist vielleicht nicht effizient genug? Generell ist er auf eine bessere Lesbarkeit hin geschrieben nicht Effizienz. Gibt es da einen Punkt an dem es IV zu viel wird? Aber in Teil1 werden ebenfalls einige Schalterlogiken, und Ifs verwendet und er ist deutlich umfangreicher... Das zu viel Speicher verbraucht würde kann ich auch nicht sagen im Taskmanager wird nur sehr wenig Ram verbraucht. Die Csvs sind auch sehr "sparsam" Close-Kurse vom Dax und USD-Kurse geht schon weiter zurück ist aber nicht so dramatisch.

Edit ein paar Zusatzinfos nützen vielleicht:
die letzte Stunde habe ich nun versucht den Unterschied einer veränderten Variable "MinDiff" auf die Rendite mir anzuschauen, im Augenblick läuft es jetzt immer so: ich ändere im Code den Wert der Variable, danach berechnet berechnet IV unter Testergebnis bis 19.06.1992, dann clicke ich auf manuell Chart aktualisieren (Der Haken bei Titelzwischenspeicher leeren ist drin), dann berechnet IV den richtigen Zeitraum (bis 11.4.2016). Das Spiel geht jetzt seit 1h so. Wieso berechnet IV erst einen veränderten Zeitraum und dann nach leeren des Caches den richtigen?
- Das Modell testet nur Longsignale also stehen die Definitionen alle nur unter "Enter long" ist das Performancetechnisch vielleicht besser das global unter Definitionen zu machen?




Gruß
Lowtrader

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »LowTrader« (10. Juni 2016, 18:08)


Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

2

Samstag, 11. Juni 2016, 08:11

Hallo LowTrader

Ich habe ein neues Handelssystem angelegt und Dein Coding dort hineinkopiert, Deine Titel-Namen dabei natürlich durch die entsprechenden Titel-Definitionen aus meinem Titelkatalog ersetzt.

Danach kann ich soviel herum-edieren wie ich will im Coding, aber es kommen keine Fehlermeldungen und das Charting ist stehts komplett.

Welche Investox Version verwendest Du denn?

Gibt es da einen Punkt an dem es IV zu viel wird?

Die Titel, die ich zum testen verwendet habe, sind einfache Text-Dateien mit dem DAX rückgerechnet ab 1959 bzw. dem EURUSD, rückgerechnet ab 1953. Aus den von Dir verwendeten Titel-Namen ("_KT_" in der Mitte und dazu den Stichwörtern _Heute bzw. fortgefuehrt) kann man annehmen, Du verwendest stattdessen einen Kombi-Titel. Mit der entsprechenden csv Datei und dann ab einem bestimmten Datum mit Ticks?

In dem Fall gibt es einige Möglichkeiten, sich Fehler einzufangen. Am besten ist es, wenn Du nicht nur die offfensichtliche Fehlermeldung im Popup liesst, sondern auch im Investox Log nachschaust, was da sonst noch für Fehler gemeldet werden. Vielleicht ja doch ein Memory Problem, auch wenn es für Dich im Taskmanager gut auszuschauen scheint?

stehen die Definitionen alle nur unter "Enter long"

Bei mir hat sich bewährt, alles Coding in die Definitionen zu schreiben und zwar als global const bzw. global calc. Unter Enter Long steht dann z.B. nur noch die entsprechend definierte Variable EnterLong usw. (die Vorteile globaler Variablen in den Definitionen des Handelssystems sind in der Hilfe aufgeführt unter "Globale Variablen"), während das Coding übersichtlich an einem Fleck steht und von überall im Handelssystem und in den Charts darauf Bezug genommen werden kann.
Gruss
Bernd

LowTrader

Fortgeschrittener

Registrierungsdatum: 3. Juli 2014

Beiträge: 115

3

Montag, 13. Juni 2016, 19:43

Kombititel der Übeltäter

Hi Bernd,

schön von Dir zu hören.

Deine Vermutung, dass ich einen Kombititel nutze ist übrigens richtig. Nachdem ich heute beim rumspielen mit dem Kombititel dann häufig folgende Fehlermeldung bekam:

Zitat

Modul: Handelssysteme


Prozedur: Evaluierung


Vorgang: Überprüfung der Daten und Einstellungen


Titel: Dax ab 1959_KT_fortgefuehrtMitGdaxi


Meldung: Keine ausreichenden Daten zum Testen im
eingestellten Zeitraum vorhanden. Überprüfen Sie bitte die Handelsregeln und
die Einstellungen der Testbedingungen sowie die verwendeten Titel. Prüfen Sie
auch die Einstellung des Zeitraums, der für die Berechnung relevant ist
(Optimierung bzw. Kontrolle für aktuelles Signal).
Was inhaltlich nicht sinnvoll ist, habe ich mich entschlossen für den USD nicht mehr den Kombititel zu verwenden sondern die beiden csvs in Excel zu einer zusammenzufügen und daraus einen neuen Titel zu erstellen.

Das überraschende ist nun: Mit dem neu angelegten Titel läuft es einwandfrei. Es muss also am Kombititel liegen.

Solche Probleme hatte ich bisher mit KTs noch nicht. Mich würde jetzt interessieren was das Problem daran ist, da ich eigentlich gerne Kombititel nutze. Ich habe mal die beiden csvs vom Kombititel angehängt. Da die Dateien zu groß habe ich euch 2 .jpegs zur illustration zum Aufbau der csvs angehängt.

Kann es irgendwie sein, dass RefVar() mit etwas davon nicht klarkommt?

Hoffe jemand kann erkennen was das Problem dabei ist.

Grüße!


PS

Zitat

Welche Investox Version verwendest Du denn?
XL Version 5 die letzte.
»LowTrader« hat folgende Bilder angehängt:
  • 3.JPG
  • 4.JPG

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

4

Montag, 13. Juni 2016, 20:56

Hi

Solche Probleme hatte ich bisher mit KTs noch nicht. Mich würde jetzt interessieren was das Problem daran ist, da ich eigentlich gerne Kombititel nutze.

Ich nutze sie auch sehr intensiv. Eigentlich, eine der Top 10 genialsten Erfindungen in Investox! Und korrekt angewandt klappt das auch sehr sehr gut.

Also prima, dass Du jetzt das Problem etwas einkreisen konntest!

Meldung: Keine ausreichenden Daten zum Testen im
eingestellten Zeitraum vorhanden.

Das gibt schon einen Hinweis auf eine Miss-Konfiguration, wie geschrieben ...
In dem Fall gibt es einige Möglichkeiten, sich Fehler einzufangen.


Was gibt es denn an dieser Front von Dir zu berichten?:
Am besten ist es, wenn Du nicht nur die offfensichtliche Fehlermeldung im Popup liesst, sondern auch im Investox Log nachschaust, was da sonst noch für Fehler gemeldet werden.


Dann könnteste Du auch die genaue Definition des Kombititels in Form von Hardcopies hier reinstellen und dazu die Investox-Settings unter Investox anpassen / Chart und auch unter / Daten; dazu die Einstellung des verwendeten Leistungsschemas.

Und wie gesagt, die Rundherum-Fehlermeldungen aus dem Investox Log. Irgendwo da wird der Fehler schon stecken :D

Am Ende, nachdem ich obiges getextet hatte, sehe ich Deine Versions-Nummer, und revidiere mich ein wenig:

Zur Version, "XL Version 5 die letzte", also wir haben aktuell die Version 7, und ganz ehrlich?, seit der letzten Version 5 hat Investox für die Kombititel so viele zusätzliche Features erhalten - und dazu im Bereich Speicher-Management.

Mein dringender Rat, unbedingt upgraden. Wann?: gestern. Sonst ist es nicht wert, hier zu diskutieren über dieses Problem :love: (es wird auch kaum noch jemand geben, der diese Version auf der Platte hat und Deine Fehlermeldungen aus dieser Verison nachvollziehen kann; also schon, um kompetente Ansprechpartner in ausreichender Zahl im Forum zu finden, tu' Dir den Gefallen - und uns)
Gruss
Bernd

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »Bernd« (13. Juni 2016, 21:13)


LowTrader

Fortgeschrittener

Registrierungsdatum: 3. Juli 2014

Beiträge: 115

5

Dienstag, 14. Juni 2016, 18:10

Neuer Stand

Hi Bernd,

nach einigem weiter testen ist jetzt der Stand folgender.
Ich habe jetzt mal den die 2 wichtigsten Titel in ein neues Projekt (Dax + Dollar), dadurch verschwindet schon mal die oben stehende Fehlermeldung.

Wenn ich die Komprimierungseinstellung des HS von "täglich" auf Ticks, dann gibt es keine Probleme.
daher denke ich auch nicht, dass es unbedingt was mit V 5 zu tun hat. Klingt mehr nach einem Problem bei der "Komprimierung" /Synchronisation. Irgendwie scheint sich die Komp des HS mit der restlichen Komp "zu beißen".

Starte ich hingegen das Projekt mit der HS Einstellung Komprimierung "täglich", dann berechnet IV erstmal den Backtest für einen zu kurzen Zeitraum (jetzt bis 29.06.1992), clicke ich dann auf aktualisieren (mit Titelcache löschen) dann wird wie gewünscht der Zeitraum bis zum 11.04.2016 getestet (siehe auch Bilder im Anhang (Schritt1, Schritt2).
Etwas unerklärlich daran ist, dass wenn ich in einem Teilchart den USD-Kombititel anzeigen lasse, dann geht er meist nie über den 29.06.1992 hinaus, im "2. Anlauf" geht der Backtest aber sehr wohl darüber hinaus. Der Chart des USD Kombinationstitel bleibt beim 29.06. "hängen" (Schritt2 Anhang)

Backtest läuft, Chart aber nicht ?(

Die Einstellungen in IV sind:
Bilder

Zitat

In dem Fall gibt es einige Möglichkeiten, sich Fehler einzufangen. Am besten ist es, wenn Du nicht nur die offfensichtliche Fehlermeldung im Popup liesst, sondern auch im Investox Log nachschaust, was da sonst noch für Fehler gemeldet werden.


Wo finde ich die Log-Datei? habe den Programmordner durchsucht und auch in der Hilfe aber ich finde Sie leider nicht??

EDIT: Wer dem Grübelnden Lowtrader weiterhelfen will :baby: aber es zu anstrengend ist mit den csvs nachzuvollziehen, hier die Kurzfrage:
Wie kommt es dazu dass der Backtest nur bis 1992 rechnet, wenn die HS Einstelllung auf "täglich" steht, aber es problemlos durchgeht bei der Einstellung "ticks". Und das bei Daten, die in der csv schon "täglich" komprimiert sind und bei einem KT der ebenfalls täglich komprimiert ist. Wenn alles täglich ist sollte es doch gut zueinander passen oder :?:

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »LowTrader« (15. Juni 2016, 18:28)


Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

6

Mittwoch, 15. Juni 2016, 18:34

Wo finde ich die Log-Datei?

Eigentlich werden die neuesten Meldungen in einem eigenen Fenster angezeigt, das "Investox Logbuch" heisst. Alte Meldungen kann man noch später nachsehen unter dem Ordner, in dem Investox installiert ist gibt es einen ordner Logs und das Ding heisst InvestoxLogProtokoll.txt
Gruss
Bernd

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

7

Mittwoch, 15. Juni 2016, 18:35

... ahhh ... ber natürlich nur, wenn Du das Erzeugen von Log Meldungen nicht eigens ausgeschaltet hast unter Investox anpassen / Programm -> Keine Logbuchmeldungen ausgeben

Dann hättest Du Dich von der wichtigensten Informationsquelle hinsichtlich möglicher Probleme verabschiedet und Investox kann Dir nur noch die aller dringlichsten Nachrichten per Popup schicken.

;)
Gruss
Bernd

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Bernd« (15. Juni 2016, 18:40)


LowTrader

Fortgeschrittener

Registrierungsdatum: 3. Juli 2014

Beiträge: 115

8

Mittwoch, 15. Juni 2016, 19:05

Hi Bernd, danke für den Input...

Zitat

.. ahhh ... ber natürlich nur, wenn Du das Erzeugen von Log Meldungen nicht eigens ausgeschaltet hast unter Investox anpassen / Programm -> Keine Logbuchmeldungen ausgeben

Dann hättest Du Dich von der wichtigensten Informationsquelle hinsichtlich möglicher Probleme verabschiedet und Investox kann Dir nur noch die aller dringlichsten Nachrichten per Popup schicken.


O.K. jetzt wirds es etwas unheimlich die Option ist bei mir NICHT angehakt. Es gibt im Ordner C:\Programme\Investox alle möglichen Ordner aber nicht diesen Ordner und auch keine Log-Datei. Habe danach gesucht in Groß -Kleinschreibung etc.. Und was heißt das jetzt? IV drüberinstallieren? ?(
EDIT wenn ich das Popupfenster schließe kommt immer so eine Meldung nach dem Motto: "Logbuch schließen dabei werden alle Meldungne gelöscht" aber auch wenn ich das noch nicht clicke finde ich in dem Ordner trotzdem keine Datei...

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »LowTrader« (15. Juni 2016, 19:11)


Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

9

Mittwoch, 15. Juni 2016, 21:12

HiLowTrader

O.K. jetzt wirds es etwas unheimlich ... Es gibt im Ordner C:\Programme\Investox alle möglichen Ordner aber nicht diesen Ordner und auch keine Log-Datei.


Ich habe in den Dokumentationen der alten Releaes für Dich nachgesehen, und finde dies in der Sammeldoku zu V6:

Zitat

Die Protokolldateien (Order, Logbuch, Signalprotokoll) werden im Unterordner „Logs“ gespeichert.


Was soll ich sagen? Vielleicht nochmals dies: es ist einfach so, zwischen Deiner V5 und der aktuellen V7 gibt es soviele Innovationen. Für Kombititel. Im Bereich der Speicherverwaltung, wie jetzt zu sehen im Logging usw. Da Du auf V5 sitzt kannst Du das nicht nachvollziehen und denkst auch, Kombititel ist Kombititel usw. Es ist jedoch nicht so. Tatsächlich sind es Welten, die uns trennen, Dich V5er und die V7er Kollegen.

Ich hatte es ja schon einmal angedeutet:
Mein dringender Rat, unbedingt upgraden. Wann?: gestern. Sonst ist es nicht wert, hier zu diskutieren über dieses Problem :love: (es wird auch kaum noch jemand geben, der diese Version auf der Platte hat und Deine Fehlermeldungen aus dieser Verison nachvollziehen kann; also schon, um kompetente Ansprechpartner in ausreichender Zahl im Forum zu finden, tu' Dir den Gefallen - und uns)


Verstehe das nicht miss, ich evaluiere auch immer wieder andere Plattformen, und kann sagen, schon die V5 wird besonders im Bereich Backtest, Kombititel und Feature-Reichtum noch die meisten Konkurrenz-Produkte Stand Juni 2016 mit deren aktueller Version schlagen, Punkt

Aber die V7, also es ist schon das ausgereifteste Investox, das es je gab
Gruss
Bernd

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Bernd« (15. Juni 2016, 21:17)