![]() |
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:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 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