Dienstag, 16. April 2024, 23:02 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.

Lasse1 Männlich

Benutzer

Registrierungsdatum: 19. Mai 2007

Beiträge: 15

1

Montag, 29. August 2011, 20:15

Geschwindigkeit von VBA Berechnungen

Bei der Umsetzung von einigen Ideen in VBA habe ich jetzt festgestellt, dass die Berechnung verhältnismäßig lange dauert.
Besonders bei einer hohen Anzahl von Loops steigt die Berechnungszeit enorm an.
Bei meinen Tests zeigten sich ca. 140 000 Perioden Berechnungen pro Sekunde (Dual Core mit 2.6 G). Wenn ich einen Indikator mit quadratischer Rechenzeit in Abhängigkeit der Periodenlänge habe, so komme ich da schnell an die Grenze!
Nach 60 Sekunden erscheint dann bereits eine Fehlermeldung, die man nur per Hand überspringen kann:“
The script you executing is taking longer expected to run. Click End to abort the script or continue to continue script execution.“
Dazu habe ich mal einige Fragen:
1. Kann man die Fehlermeldung unterdrücken bzw. den Timer anders einstellen?
2. Ist eine Berechnung über externe DLL schneller als VBA? Wie groß ist der Geschwindigkeitsvorteil?

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

2

Montag, 29. August 2011, 21:18

Hallo,

zu 1): ist kurzfristig geplant.
zu 2): sicher schneller, wie sehr, hängt stark vom Einzelfall ab, kann aber schon Faktor 5-10 bringen.

Viele Grüße
Andreas Knöpfel

Ganesha

unregistriert

3

Montag, 29. August 2011, 22:35

Wenn Du quadratische Operationen hast, dann bekommst Du in jeder Programmiersprache und auf jedem Rechner Probleme. Der Weg ist hier möglicherweise nicht eine Auslagerung, sondern die Rückführung auf ein lineares Problem und/oder eine Begrenzung der Perioden. Immerhin willst Du das HS ja vermutlich auch mal im Echtzeitbetrieb arbeiten lassen. Bezüglich externe Indikatoren: Kann sein, dass es dadurch u.U. sogar langsamer wird, da Du ja für jede Periode einen Aufruf des externen Indikators einschließlich umfangreichen Kopieraktionen machen musst.

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

4

Montag, 29. August 2011, 22:53

Wenn Du quadratische Operationen hast, dann bekommst Du in jeder Programmiersprache und auf jedem Rechner Probleme. Der Weg ist hier möglicherweise nicht eine Auslagerung, sondern die Rückführung auf ein lineares Problem und/oder eine Begrenzung der Perioden. Immerhin willst Du das HS ja vermutlich auch mal im Echtzeitbetrieb arbeiten lassen. Bezüglich externe Indikatoren: Kann sein, dass es dadurch u.U. sogar langsamer wird, da Du ja für jede Periode einen Aufruf des externen Indikators einschließlich umfangreichen Kopieraktionen machen musst.


Es gibt leider auch Dinge, die man tatsächlich nicht Linear lösen kann (ich hab da so welche).

Bzgl. Externer Indikatoren kann ich Dir so nicht recht geben, der wird eben nicht pro Periode einmal aufgerufen sondern funktioniert im Prinzip genau wie alles andere auch in Investox.
Alle Daten auf einmal rein, Indikator darf alle Daten verarbeiten, und alle Ergebnisse auf einmal zurück geben für alle Perioden.
If you think it´s expensive to hire a professional, wait until you hire an amateur.