Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Aktien simulieren (https://www.delphipraxis.net/70908-aktien-simulieren.html)

ByStones2 6. Jun 2006 16:22


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:
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;
Ich hoffe ihr habt eine idee die funktionert,
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

DGL-luke 6. Jun 2006 16:30

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;

ByStones2 6. Jun 2006 16:32

Re: Aktien simulieren
 
Zitat:

Zitat von DGL-luke
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;

,
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 ???

DGL-luke 6. Jun 2006 16:38

Re: Aktien simulieren
 
Delphi-Quellcode:
plus_m := random(100) / 10;
Da kommen dann Zahlen von 0,0 bis 10,0, glaube ich... aber irgendwie hab ich grad ne denkblockade.

Falls irgendwo integer verlangt wird - Delphi-Referenz durchsuchenRound

ByStones2 6. Jun 2006 16:41

Re: Aktien simulieren
 
Sieht gut aus geht alles !!!!
:thumb: :thumb: :thumb: :thumb:
Danke für die Hilfe
Denkblockade: :wall: :wall: ???
Oder wie ???

DGL-luke 6. Jun 2006 16:49

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:
Panel23.Caption := FloatToStrF(wert, ffGeneral, 2, 2, []) +' €';
weiteres unter Delphi-Referenz durchsuchenFloatToStrF.

ByStones2 6. Jun 2006 16:52

Re: Aktien simulieren
 
Zitat:

Zitat von DGL-luke
Ach ja - die komisch lange Zahlen lassen sich durch eine geeignete verstringungsroutine verhindern, indem du die genauigkeit auf zwei stellen reduzierst:

Delphi-Quellcode:
Panel23.Caption := FloatToStrF(wert, ffGeneral, 2, 2, []) +' €';
weiteres unter Delphi-Referenz durchsuchenFloatToStrF.

das geht bei mir nicht ???
:wiejetzt: :wiejetzt:
muss ich vielleicht irgendetwas noch verändern ???

bei rassen die aktien immer höer, sie sinken um keinen deut !!!
Delphi-Quellcode:
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)+' €';
EDIT: Das mit dem hoch gehen hab ich behoben !!!

Alexander Roth 6. Jun 2006 16:55

Re: Aktien simulieren
 
Zitat:

Zitat von ByStones2
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

Also, wenn du es richtig ordentlich machen willst, dann würde ich eine Klasse schreiben, und die kannst du dann nach belieben ausstatten.

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;

DGL-luke 6. Jun 2006 16:56

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!)

ByStones2 6. Jun 2006 17:03

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 12:44 Uhr.
Seite 1 von 2  1 2      

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