![]() |
Aktien simulieren
Hi,
ich hätte da mal eine Frage: Wie kann man in d2005 am besten aktien simulieren. Ich habs mal probiert, doch es war ein totaler reinfal:
Delphi-Quellcode:
Ich hoffe ihr habt eine idee die funktionert,
procedure TForm1.AktienKTimer(Sender: TObject);
var akte, plus_m, wert :double; begin if wert = 0 then wert := 100; akte := random(1) +1; plus_m := random(10); if akte = 1 then wert := wert + akte else wert := wert- akte; Panel23.Caption := floattostr(wert)+' €'; end; wenn ja schreibt sie bitte hin. Schon mal jetzt danke ByStones EDIT: zur erläuterung: akte heißt, ob die aktie steigt oder sinkt plus_m heißt um wie viel sie steigt bzw. sinkt wert ist der wert der aktie nach sinken, steigen Der Timer hat den interval 1000 |
Re: Aktien simulieren
du hast da vor allem einen fehler drin...
Delphi-Quellcode:
if akte = 1 then
wert := wert + {akte} plus_m; else wert := wert- {akte} plus_m; |
Re: Aktien simulieren
Zitat:
cool jetzt geht's Danke für die hilfe doch manchmal kommen so komisch lang zahlen !!! Wie kann man machen, dass die aktie auch um zwei kommastellen steigen isnken kann ??? |
Re: Aktien simulieren
Delphi-Quellcode:
Da kommen dann Zahlen von 0,0 bis 10,0, glaube ich... aber irgendwie hab ich grad ne denkblockade.
plus_m := random(100) / 10;
Falls irgendwo integer verlangt wird - ![]() |
Re: Aktien simulieren
Sieht gut aus geht alles !!!!
:thumb: :thumb: :thumb: :thumb: Danke für die Hilfe Denkblockade: :wall: :wall: ??? Oder wie ??? |
Re: Aktien simulieren
Ach ja - die komisch lange Zahlen lassen sich durch eine geeignete verstringungsroutine verhindern, indem du die genauigkeit auf zwei stellen reduzierst:
Delphi-Quellcode:
weiteres unter
Panel23.Caption := FloatToStrF(wert, ffGeneral, 2, 2, []) +' €';
![]() |
Re: Aktien simulieren
Zitat:
:wiejetzt: :wiejetzt: muss ich vielleicht irgendetwas noch verändern ??? bei rassen die aktien immer höer, sie sinken um keinen deut !!!
Delphi-Quellcode:
EDIT: Das mit dem hoch gehen hab ich behoben !!!
if wert = 0 then
wert := 100; akte := random(1) +1; plus_m := random(100) / 10; if akte = 1 then wert := wert + {akte} plus_m else wert := wert- {akte} plus_m; Panel23.Caption := floattostr(wert)+' €'; |
Re: Aktien simulieren
Zitat:
Aber zu deinem Beispiel: Du kannst doch einfach akte weglassen. Und wie willst du überhaupt wert initialisieren? In deinem Beispiel dürfte es nicht funktionieren; denn wert hat sicherlich einen wert, aber bestimmt nicht 0. Du kannst einfach eine Globale Vaiable nehmen. Deswegen: Globale Variable heißt wert. (und wurde ganz am Anmfang :=0 gesetzt)
Delphi-Quellcode:
procedure TForm1.AktienKTimer(Sender: TObject);
const maxRaufRunter=9; var plus_m:double; begin if wert = 0 then wert := 100; if random(2)=0 then plus_m := random(maxRaufRunter+1) else plus_m := -random(maxRaufRunter+1); wert := wert + plus_m; Panel23.Caption := floattostr(wert)+' €'; end; |
Re: Aktien simulieren
Alles, was du evtl. ändern musst bzw. units, die du einbinden musst, sollten in der OH (Delphi-Online-Hilfe) stehen.
Allerdings brauchst du ja auch für Floattostr bereits die SysUtils-Unit, ich weiß also nicht, was genau bei dir nicht funktioniert. (Merke: "Geht nicht" ist keine ausreichende Fehlerbeschreibeung!) |
Re: Aktien simulieren
ich brauch nur noch einen Befehl um eine Variable (gewinn) auf zwei nachkommastellen zu kürzen, beim rest habt ihr mir sehr geholfen, danke :thumb: :thumb: :thumb:
|
Re: Aktien simulieren
Zitat:
|
Re: Aktien simulieren
Zitat:
Grüße Klaus |
Re: Aktien simulieren
ok hat sich alles gelöst
:-D :-D :-D :thumb: :thumb: :thumb: Danke an alle !!!! |
Re: Aktien simulieren
Achja, bei Aktien solltest du keine gleichverteilte zufallsvariable wie random verwenden, man nimmt in der Theorie der Finanzwirtschaft zumindest an, dass die Aktienpreise lognormalverteilt sind, und die Renditen davon standardnormalverteilt sind. Ich würde mit Renditen rechnen und einfach eine standardnormalverteilte Zufallsvariable hernehmen.
Grüsse jus |
Re: Aktien simulieren
Zitat:
@ByStones: Nicht missverstehen... |
Re: Aktien simulieren
Zitat:
Ok, hast recht alzaimar. Ich nehme alles zurück. :duck: Aber es war ja schon spät und da hat bei mir die Konzentration auch schon nachgelassen. :wink: jus |
Re: Aktien simulieren
Ich sage dazu nur:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz