Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Konzeptfrage Berechnungen Welches Vorgehen ist sinnvoll? (https://www.delphipraxis.net/36465-konzeptfrage-berechnungen-welches-vorgehen-ist-sinnvoll.html)

Hansi 20. Dez 2004 13:43


Konzeptfrage Berechnungen Welches Vorgehen ist sinnvoll?
 
Hey,

Für mein Programm möchte ich Berechnungen durchführen.

Nun meine Frage: "Wie mache ich das am besten? Mit DLL? Mit Funktion und Procedure? oder???

Was möchte ich machen? z.B.:

1. Gleitender Durchschnitt (GD)
2. Wurzel aus(Akt. Kurs-GD)hoch2.../2
3. ...
4. Also ziemlich komplizierte Berechnungen für sehr viele Daten((jeden Tag 1 bis 100) über die letzten Jahre hinweg)

Was würdet Ihr mir empfehlen?

Bin für jeden Tip dankbar!

Dax 20. Dez 2004 13:49

Re: Konzeptfrage Berechnungen Welches Vorgehen ist sinnvoll?
 
Was für Berechnungen "besser" geeignet ist, entscheidet sich aus dem Verwendungszweck des Programms. Falls du viele Updates an deinen Formeln machst (also die Formeln zum Rechnen umschreibst), solltest du die Berechnungen in einer DLL erledigen.

Ob nun Prozedur oder Funktion ist eigentlich nicht zu beantworten, denn am Ende tun beide das selbe. Sie unterscheiden sich nur darin, wie sie ihre Ergebnisse zurückliefern.

Hansi 20. Dez 2004 13:53

Re: Konzeptfrage Berechnungen Welches Vorgehen ist sinnvoll?
 
Also updates sollen eigentlich nicht vorkommen.
Wenn eine Berechnung fertig ist soll es laufen.

Welche Arten von Berechnungen gibt es noch?
Wie sieht das mit der Geschwindigkeit aus?

Oxmyx 20. Dez 2004 14:01

Re: Konzeptfrage Berechnungen Welches Vorgehen ist sinnvoll?
 
Der Aufruf einer Funktion in einer DLL unterscheidet sich nicht vom Aufruf einer Funktion in einer ausführbaren Exe-Datei. Beides ist gleichschnell. Ob Funktion oder Prozedur hängt davon ab, ob du einen Rückgabewert haben willst oder nicht. Wenn du mehrere Ergebnisse zurückliefern willst, musst du sowieso Ausgabeparameter verwenden.

Da deine Funktionen augenscheinlich mathematische Dinge berechnen sollen, würde ich die ganzen mathematischen Funktionen in eine Unit packen und bei Bedarf dann ins Programm einbinden.

ibp 20. Dez 2004 14:06

Re: Konzeptfrage Berechnungen Welches Vorgehen ist sinnvoll?
 
Zitat:

Zitat von Hansi
...Also ziemlich komplizierte Berechnungen für sehr viele Daten((jeden Tag 1 bis 100) über die letzten Jahre hinweg)...

- sind die formeln sehr rechenintensiv oder nur kompliziert zu verstehen?
- 100 Daten (=Werte?) sind doch nicht wirklich viele!
- mach doch erstmal eine, (für dich komplizierte [nicht negativ gemeint!)) berechnungs -funktion/prozedur, dann kannst du ja abschätzen ob es wirklich lange dauert...

Marcel Gascoyne 20. Dez 2004 14:09

Re: Konzeptfrage Berechnungen Welches Vorgehen ist sinnvoll?
 
Du schreibst das Deine Berechnungen über die letzten fünf Jahre hinweg laufen sollen. Falls Du diese Daten aus einer Datenbank beziehst würde ich versuchen die Berechnung direkt auf Datenbankebene über eine Stored Procedure durchzuführen. Dies entlastet zum einen das Netzwerk und zum anderen ist die Geschwindigkeit auch wesentlich höher.

Gruß,
Marcel

Oxmyx 20. Dez 2004 14:09

Re: Konzeptfrage Berechnungen Welches Vorgehen ist sinnvoll?
 
Spielt doch im Prinzip keine große Rolle, ob eine Funktion jetzt 0,0001 oder 0.001 Sekunden braucht, solange sie nicht ständig an einer zeitkritischen Stelle aufgerufen wird.

Hansi 20. Dez 2004 14:20

Re: Konzeptfrage Berechnungen Welches Vorgehen ist sinnvoll?
 
@ IBP
- 100 Werte für jeden Tag, das für jeden Arbeitstag; kommt schon was zusammen
- den Gleitenden Durchschnitt habe ich über glaube ich 5 Schleifen hinbekommen; Wenn ich den GD für eine Zeitreihe also ca. 3000 Werte, merke ich ein kleines "Ruckeln" von ca. 1/2 Sekunde(Rechner Leistung mehr als ausreichend!!)
- Die Berechnungen sind für Aktien-Indikatoren gedacht. Daraus sollen Wahrscheinlichekeiten berechnet werden, d.h. wenn der Indikator berechnet wurde soll ein Parameter geändert werden und dann neu berechnet werden.

Jelly 20. Dez 2004 14:27

Re: Konzeptfrage Berechnungen Welches Vorgehen ist sinnvoll?
 
Zitat:

Zitat von Hansi
Wenn ich den GD für eine Zeitreihe also ca. 3000 Werte, merke ich ein kleines "Ruckeln" von ca. 1/2 Sekunde

Lager die Berechnung in einen Thread mit niederiger Priorität aus, und du wirst das Ruckeln nicht mehr merken.

ibp 20. Dez 2004 14:31

Re: Konzeptfrage Berechnungen Welches Vorgehen ist sinnvoll?
 
Zitat:

Zitat von Hansi
@ IBP
- 100 Werte für jeden Tag, das für jeden Arbeitstag; kommt schon was zusammen
- den Gleitenden Durchschnitt habe ich über glaube ich 5 Schleifen hinbekommen; Wenn ich den GD für eine Zeitreihe also ca. 3000 Werte, merke ich ein kleines "Ruckeln" von ca. 1/2 Sekunde(Rechner Leistung mehr als ausreichend!!)
- Die Berechnungen sind für Aktien-Indikatoren gedacht. Daraus sollen Wahrscheinlichekeiten berechnet werden, d.h. wenn der Indikator berechnet wurde soll ein Parameter geändert werden und dann neu berechnet werden.

.. da lässt sich doch sicherlich etwas optimieren, wlchen gleitenden durchschnitt berechnest du denn, den "normalen", den gewichteten, oder den exponentiellen?

zeig doch mal den code!


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz