Java-Programm für "Börsenanalyse" schreiben

S

super-girl

Gast
Hallo ihr schlauen und hübschen Menschen!

Bin Wirtschaftsinformatik-Studentin und im zweiten Semester. Ich muss sagen, Programmieren ist nicht meine Stärke, eher BWl. Aber JAVA-Programmieren gehört halt dazu.

Wir haben jetzt folgende Aufgabe gestellt bekommen, an der ich hänge (Meine Ansätze schreibe ich nach der Aufgabe):

Für eine Analyse des Börsenkurses einer speziellen Aktie soll der Kursverlauf in einem bestimmten
Zeitraum untersucht werden. Dabei soll nachträglich der beste Einkaufstag festgestellt werden.
Es wird angenommen, dass in dem gesamten Zeitraum nur einmal ein Kauf und ein Verkauf
stattfindet. Der beste Einkaufstag wäre derjenige gewesen, der zu einem eingesetzten Betrag den
höchsten Gewinn erbracht hätte (Steuern etc. ausgelassen).
Der Kursverlauf der Aktie in dem betrachteten Zeitraum ist durch eine Zahlenfolge gegeben. Die
erste Zahl ist der Kurs der Aktie am ersten Börsentag und jede folgende Zahl gibt die Kursveränderung gegenüber dem Vortag an. Der Kurs, der sich für einen gewissen Tag ergibt, gilt für
alle Käufe und Verkäufe dieses Tages.
Zum Beispiel liefert die Eingabe
127.5 -0.5 2 -1 1 3.5 -13 7 -2 -6 -9 -21 -17 -5 0.5 4 -7 -12 2.5 -3 2
das Ergebnis:
Ein bester Einkaufstag wäre der 14. Börsentag gewesen,
ein dazugehöriger Verkaufstag der 16. Börsentag.
Der so realisierte Gewinn wäre 6.7669 % vom eingesetzten Betrag gewesen.

Schreiben Sie ein Java-Programm, das für die Aktie aus einer gegebenen Zahlenfolge nachträglich
einen besten Einkaufstag, einen besten Verkaufstag und den dabei höchsten erzielbaren Gewinn
(in Prozent vom eingesetzten Betrag) ermittelt.
Das Programm soll für einen beliebig vorgegebenen Anfangskurs (größer 0) und beliebig viele
Kursdifferenzen funktionieren. Alle Kurse mit dem zugehörigen Tag sowie das Ergebnis sollen auf
dem Bildschirm ausgegeben werden.

Um den Verlauf des Aktienkurses darzustellen, verwenden Sie ein Array, das entsprechend viele Objekte der Klasse StockTick enthält, die folgendermaßen definiert ist: Die einzige private
Komponente ist der Tageskurs double kurs der Aktie.

Neben geeigneten Konstruktoren und Methoden zur Ein- und Ausgabe enthält die Klasse die folgenden zwei Methoden:
double getKurs(); //Gibt den Tageskurs zurÄuck.
void setKurs(double letztKurs, float kursDiff); //Berechnet den aktuellen Kurs aus dem Kurs des Vortages letztKurs und der Kursdifferenz kursDiff.

Verwenden Sie zunächst den Anfangskurs und die Kursänderungen des obigen Beispiels um zu
testen, ob Ihr Programm für diese Zahlen funktioniert.
Erzeugen Sie dann mit einem Zufallszahlengenerator einen Anfangskurs zwischen 600€ und 800€
sowie 20 Kursdifferenzen zwischen -30 € und +30 €. Hierbei genügt es, Integer-Zahlen zu verwenden.


--

Wollte jetzt zunächst die sich aus den Kursdifferenzwerten ergebenden tatsächlichen Kurse in ein Array speichern. Also z. B.: Der Anfangskurs ist 100, der Kurs am nächsten Tag ist -10, am dritten +30. Jetzt wollte ich praktisch in die Werte 100, 90 und 120 in ein Array speichern. Daran hänge ich, hier meine Code: (Tipps bzgl., was ich falsch mache, genügen. Will es ja auch verstehen. Gern gesehen sind auch Tipps, was ich anders machen soll oder generell, wie ich die Aufgabe angehe. DANKE! :))

Java:
package exerciseTwo;

public class StockAnalysis {

	public static void main(String[] boss) {
		
		double stockInstantiate[] = {127.5, -0.5, 2, -1, 1, 3.5, -13, 7, -2, -6,
									-9, -21, -17, -5, 0.5, 4, -7, -12, 2.5, -2, 2};	
		
		double dayRate[] = null;
		
		double firstStockRate = stockInstantiate[0];
		
		for (int counter = 0; counter < stockInstantiate.length; counter++) {
			
		dayRate[counter] = firstStockRate + stockInstantiate[counter+1];
		
		}
		
		for (int printOut = 0; printOut < dayRate.length; printOut++) {
			
			System.out.println(dayRate[printOut]);
			
		}	
	}
}
 

Tom299

Bekanntes Mitglied
Ich habs nur schnell überflogen, aber denke das ist falsch. Du iterierst immer mit der firstStockRate als Basis, aber die Änderung bezieht sich doch auf den Vortag, oder?

Code:
dayRate[counter] = firstStockRate + stockInstantiate[counter+1];

Ich glaub es müßte eher so sein:
Code:
if (counter == 0) {
   //dayRate[counter] = firstStockRate (ist wohl nicht notwendig)
   dayRate[counter] = stockInstantiate[counter] // counter ist ja 0
}
else {
   dayRate[counter] = dayRate[counter-1] + stockInstantiate[counter]
   // Tageswert = Vortageswert + Änderung
}

Alles Ohne Gewähr und für Börsenverluste komme ich auch nicht auf ;-)
 

Highchiller

Bekanntes Mitglied
Ich versteh deine Frage nicht.

Und was die Aufgabe an sich angeht steht eigentlich auch alles da was du tun sollst, oder wo ist dein Problem?

Dir einfach die Lösung posten tun wir sicher nicht :p

Schreiben Sie ein Java-Programm, das für die Aktie aus einer gegebenen Zahlenfolge nachträglich
einen besten Einkaufstag, einen besten Verkaufstag und den dabei höchsten erzielbaren Gewinn
(in Prozent vom eingesetzten Betrag) ermittelt.

Also erst mal eine Klasse schreiben die über eine Main-Methode verfügt. Am sinnvollsten wäre es, wenn der Kurs dabei als Parameter übergeben wird. Dann musst du aus dem String[] nur erst mal ein double[] machen. Aber das ist ja kein Problem.

Um diese Main Methode baust du dann deine Klasse auf.

Das Programm soll für einen beliebig vorgegebenen Anfangskurs (größer 0) und beliebig viele
Kursdifferenzen funktionieren. Alle Kurse mit dem zugehörigen Tag sowie das Ergebnis sollen auf
dem Bildschirm ausgegeben werden.


Um den Verlauf des Aktienkurses darzustellen, verwenden Sie ein Array, das entsprechend viele Objekte der Klasse StockTick enthält, die folgendermaßen definiert ist: Die einzige private
Komponente ist der Tageskurs double kurs der Aktie.

Also bekommt dein Konstruktor ein double Array übergeben und die Klasse besitzt ein double Array mit dem Kurs.
Sinnvoll wäre es wenn du dieses Array nicht veränderst. Also leg dir lieber ein neues Array an das dann den tatsächlichen aktuellen Wert speichert.

Neben geeigneten Konstruktoren und Methoden zur Ein- und Ausgabe enthält die Klasse die folgenden zwei Methoden:
double getKurs(); //Gibt den Tageskurs zurÄuck.
void setKurs(double letztKurs, float kursDiff); //Berechnet den aktuellen Kurs aus dem Kurs des Vortages letztKurs und der Kursdifferenz kursDiff.

Steht ja schon da. Jetzt noch 2 Methoden implementieren. Allerdings ist die Aufgabe hier sehr irreführend. Ich würd der Methode getKurs() noch ein Parameter übergeben, nämlich den Tag. Aus der Aufgabenstellung wird für mich nicht ersichtlich von welchem Tag getKurs den Kurs zurück geben soll.
setKurs setzt einfach die Werte deines 2. Arrays. Das kannst du direkt im konstruktor einmal durchlaufen. Das hast du in deinem Beispielcode ja quasi schon gemacht.

Erzeugen Sie dann mit einem Zufallszahlengenerator einen Anfangskurs zwischen 600€ und 800€
sowie 20 Kursdifferenzen zwischen -30 € und +30 €. Hierbei genügt es, Integer-Zahlen zu verwenden.

Zufallszahlen kannst du mit Math.random() erzeugen. Allerdings nur zufallszahlen zwischen als double zwischen 0 und 1. Bissl rechnen und du kannst das so biegen das zufallszahlen zwischen 600 und 800 rauskommen. Danach einfach auf int casten.

Das wars schon.

Nu hab ichs doch sehr umfangreich gemacht. Eigentlich sollte alles klar sein.

Grüße
Highchiller

PS: Hups da war einer schneller als ich :D stimmt der Code war falsch :D naja jetzt haste gleich noch ne Anleitung für die Aufgabe bekommen
 
Zuletzt bearbeitet:
S

super-girl

Gast
Hey!

Wow, danke ihr beiden! :)

@Tom299, ich habe mir deinen Programmcode angeguckt und habe ihn verstanden. Bevor ich ihn in Eclipse gepastet habe, dachte ich auch, dass er klappen würde. Leider sagt Eclipse aber, "Exception in thread "main" java.lang.NullPointerException at exerciseTwo.StockAnalysis.main(StockAnalysis.java:14)"

Zeile 14 ist: dayRate[counter] = stockInstantiate[counter];

Sehr komisch! Ich bin deinen Code sicher 10 mal durchgegangen und finde ihn eigentlich sehr clever.

@Highchiller. Danke für deine ausführliche Beschreibung! Und ich will sicher nicht, dass mir hier einer die Lösung einfach hinklatscht :D. Ich finde deine Idee, schon beim Programmaufruf Parameter zu übergeben, interessant. Ich weiß, wie das normalerweise geht. Aber wie kann ich das in Eclipse machen? Habe da ja nicht die Konsole, wo ich Parameter mit gebe.

Danke!!
 

Highchiller

Bekanntes Mitglied
:) das liegt an Zeile 10:
Java:
double dayRate[] = null;

Klar das dann eine NullPointer fliegt, wenn du dayRate gar nicht instanziiert hast.
Also
Java:
double dayRate[] = new double[stockInstantiate.length];
sollte das Problem lösen.

Was Eclipse angeht:
Run -> Run Configurations
Dann links die Klasse auswählen die du starten möchtest.
Rechts wechselst du zu "Arguments" und dort fügst du in "Program arguments:" deine Übergabewerte ein.
Aber achte darauf nicht ein Array einzugeben. Der compiler trennt bei Leerzeichen die Schriftblöcke und steckt sie in das Array von main(String[] args).
Wenn du da also eingibst.
"10 -1 -4 5 12"
Dann wird main aufgerufen mit: main( ["10", "-1", "-4", "5", "12"] ).
Und das sind Strings UND du musst drauf achten eine Kommastelle als Punkt zu verwenden. Also 1.5 und nicht 1,5.

Ein String in ein Integer umwandelst machst du dann mit:
Java:
public static void main(String[] args){
    double[] values = new double[args.length];
    for ( int i = 0; i < values.length; i++ ) {
        values[i] = Double.parseDouble( args[i] );
    }
}

Fertig. Damit stehen alle Werte aus args in values.
Die Fehlerbehandlung hab ich weggelassen. Kann ja sein das jemand auf die doofe idee kommt und das programm mit "du du du" startet. Dann fliegt dir natürlich alles um die Ohren :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Brauche Hilfe bei Planung für JAVA-Programm Allgemeine Java-Themen 3
J Installer für Java-Programm Allgemeine Java-Themen 5
MQue aktuelle Wetterdaten für Java- Programm Allgemeine Java-Themen 9
oltoko PID für das laufende Java Programm herausfinden Allgemeine Java-Themen 3
P Installationsroutine für eigenes Java-Programm Allgemeine Java-Themen 3
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
B Java Programm auf virutellem Desktop laufen lassen? Allgemeine Java-Themen 1
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
Dann07 Java-Programm findet DLLs nicht! Allgemeine Java-Themen 20
P USER Management in SQL übergreifend auf JAVA Programm Allgemeine Java-Themen 41
D Verkauf von einem Programm welches ich in Java geschrieben habe Allgemeine Java-Themen 4
D Boolean von ein anderem Java Programm während der Laufzeit ändern Allgemeine Java-Themen 23
L Excel Datei löscht sich selbst im Programm - Java Allgemeine Java-Themen 3
ralfb1105 Starten Java App(s) (.jar) aus einem Java Programm Allgemeine Java-Themen 18
temi Java Programm aus einer DB laden und starten Allgemeine Java-Themen 2
E Java Programm mit Clients erweitern - Möglichkeiten? Allgemeine Java-Themen 2
J Java "Bank Programm" Brauche eure Hilfe Allgemeine Java-Themen 3
S Java Programm (Spiel mit den Boxen) Allgemeine Java-Themen 1
A Java Programm verbessern/vereinfachen Allgemeine Java-Themen 20
E Mit Java ein Python Programm starten Allgemeine Java-Themen 20
Q-bert Daten von Java Programm speichern Allgemeine Java-Themen 4
P Schnittstelle java Programm zu Webserver / Browser Allgemeine Java-Themen 2
Blender3D Java Swing Programm Windows 10 Autostart Problem Allgemeine Java-Themen 2
F Java-Programm lizensieren Allgemeine Java-Themen 21
T Java Programm in Internetseite? Allgemeine Java-Themen 4
T Java Programm frisst RAM Allgemeine Java-Themen 6
H Alter Java-Programm läuft nicht mehr. Laut strace fehlt libpthread.so.0 Allgemeine Java-Themen 3
L Java-Programm Zahlenkombinationen ausgeben Allgemeine Java-Themen 10
T Java Programm sauber beenden (Mac OS) Allgemeine Java-Themen 7
F In OSX: Java-Programm über URI-Scheme aufrufen mit Parameter? Allgemeine Java-Themen 0
itwestnet Mein Java-Programm läuft nicht in China Allgemeine Java-Themen 4
B SMS von Vodafone Mobile Connest mit JAVA-Programm lesen Allgemeine Java-Themen 0
J Java Auf anderes Programm warten Allgemeine Java-Themen 9
R Java .class-File-Konstrunkt mit Programm visualisieren Allgemeine Java-Themen 18
Developer_X OpenStreetMap in Java Programm einbinden Allgemeine Java-Themen 10
Developer_X Java Programm Beenden Allgemeine Java-Themen 3
T Dateien zur Laufzeit in Java-Programm packen? Allgemeine Java-Themen 3
S Java-Programm verbraucht zu viel RAM Allgemeine Java-Themen 8
U Eclipse Java Programm beschädigt .tar.gz dateien beim Entpacken Allgemeine Java-Themen 7
M Problem mit (etwas komplizierterem) Java Programm Allgemeine Java-Themen 14
L Prüfen, ob Programm über 32bit oder 64bit Java ausgeführt wird Allgemeine Java-Themen 4
J Java Programm - ausführbare Jar Datei erstellen Allgemeine Java-Themen 2
C Programm von C++ auf Java umschreiben Allgemeine Java-Themen 27
J Java-Programm Allgemeine Java-Themen 13
I Java-Programm: Zahlen in Worte Allgemeine Java-Themen 22
P Check, welche Java Version installiert bevor ein Programm ausgeführt wird. Allgemeine Java-Themen 12
Java-Insel Wie kann ich ein Java-Programm zum "automatischen Öffner" einer Dateisorte machen? Allgemeine Java-Themen 13
O Java-Programm lastet CPU aus Allgemeine Java-Themen 8
C Registration im Web mit Java-Programm durchführen Allgemeine Java-Themen 6
R Java Programm beenden mit SIGTERM Allgemeine Java-Themen 9
T Java Programm als Batch Befehl Allgemeine Java-Themen 6
G Runtime.exec beendet Programm unter Linux, wenn Java Programm beendet wird Allgemeine Java-Themen 3
H Java-Programm nur mit SDK ausführbar? Allgemeine Java-Themen 5
C Java Programm über SSH starten Allgemeine Java-Themen 16
S jar Datei mit Java Programm öffnen Allgemeine Java-Themen 3
J Java-Programm im Hintergrund Allgemeine Java-Themen 3
Jackii Java Programm aus anderen Java Programm starten Allgemeine Java-Themen 20
Madlip Erste Schritte Java speichert Daten im Programm?!? Allgemeine Java-Themen 9
G Java Programm aus Java Programm starten Allgemeine Java-Themen 6
M Wie Java Programm mit grafischen Oberfläche versehen Allgemeine Java-Themen 2
JAVATUX Java Programm mit ATI Stream Unterstützung Allgemeine Java-Themen 3
J Java programm lässt sich in win7 nach linux install nicht mehr ausführen Allgemeine Java-Themen 18
C Mit Java in einem anderes Programm eingreifen Allgemeine Java-Themen 21
S C++/C KeyListener zusammen mit Java Programm Allgemeine Java-Themen 4
S Java Programm -System Neustart überleben? Allgemeine Java-Themen 3
T Java Programm aus anderem Java Programm starten Allgemeine Java-Themen 13
J Eclipse Java Programm aus anderem Java Programm starten Allgemeine Java-Themen 14
F Anderes Java-Programm aufrufen Allgemeine Java-Themen 2
B Excel Datei in einem Java Programm mit GUI darstellen Allgemeine Java-Themen 9
M Java Programm als Dienst starten... Allgemeine Java-Themen 4
A Installation von Java ME Programm auf Sony Ericsson Handy Allgemeine Java-Themen 3
M Rein informativ - Daten aus Excel-Tabelle in Java-Programm importieren Allgemeine Java-Themen 3
N Programm starter in Java? Allgemeine Java-Themen 12
X Aus Java Applikation externes Programm starten Allgemeine Java-Themen 3
T Mit JNI von C++ auf ein laufendes Java-Programm zugreifen Allgemeine Java-Themen 10
H aus Java-Programm Dateien öffnen Allgemeine Java-Themen 5
Z Java Programm - xxxxx auf der Konsole ausgeben Allgemeine Java-Themen 4
T cpp Programm via jna in java nutzen Allgemeine Java-Themen 3
M Variablen an Java-Programm übergeben Allgemeine Java-Themen 3
G Java Programm mit Freischalt code entwickeln Allgemeine Java-Themen 30
clupus Meldung an laufendes Java-Programm schicken - Wie? Allgemeine Java-Themen 6
E Zweites Java Programm sichtbar starten Allgemeine Java-Themen 4
T Mit Java Programm auf Firefox zugreifen Allgemeine Java-Themen 2
Airwolf89 *.exe mit java programm ausführen Allgemeine Java-Themen 1
V Java-Programm automatisch starten Allgemeine Java-Themen 2
O Programm mittels Java installieren Allgemeine Java-Themen 15
K Java Chat Programm Allgemeine Java-Themen 2
M Java programm über cmd öffnen Allgemeine Java-Themen 2
Schandro Datei öffnen mit... Bestimmten Dateityp mit einen Java-Programm öffnen lassen Allgemeine Java-Themen 5
N Per Java-Programm onClick ausführen Allgemeine Java-Themen 5
D mit Java das Programm "Editor" öffnen Allgemeine Java-Themen 7
M Wie Java-Programm über Batch-file starten? Allgemeine Java-Themen 8
G Logikhindernisse im Java- Programm Allgemeine Java-Themen 6
V Java-Programm nur "mit halber Kraft" arbeiten lass Allgemeine Java-Themen 11
_SeiA_ Hilfe Kleines Java Programm schreiben. Summen. Allgemeine Java-Themen 3
G Java- Programm mit bat- Datei starten Allgemeine Java-Themen 16
V Java-Programm richtig neustarten? Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben