CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Entwicklung und Softwaredesign Hier können strukturelle (Programmier-) Konzepte diskutiert und Projekte vorgestellt werden |
03.05.2010, 18:45:57
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 37
Beiträge: 11
|
|
Nach Summe die Aufträge aktualisieren
Hallo alle miteinander.
Nach einigem Schwung beim Programmieren von PHP/MySQL bin ich an einen schwierigen Punkt angelangt, wie es mir scheint.
Was soll wie funktionieren?
Nach einigen Berechnungen aus Kauf- und Verkausaufträgen wird der Aktienumsatz festgestellt. Sagen wir, es gibt 700 Kauf- und 500 Verkaufsaufträge bei einem Preis von 11 Euro. Der Umsatz in Wertpapieren läge bei 500, da es weniger Verkäufer denn Käufer gibt.
Nun sollen die Orderaufträge jener Teilnehmer aktualisiert werden, die nicht alles kaufen konnten.
Ein Beispiel: Käufer X1 will 200 Aktien kaufen, Käufer X2 will 400 Aktien kaufen und Käufer X3 will 100 Aktien kaufen. Die Aufträge gehen in dieser Reihenfolge ein. Wir wissen, dass nur 500 Aktien den Besitzer wechseln werden, weswegen Käufer X2 nur 300 Aktien kaufen kann und Käufer X3 leer ausgeht.
Meine Grundlagen
Bei mir bestehen bereits die Tabellen...
ex_Transfer (stock_id, user_id, date, time, stockprice, stockcount (Menge), value, order (2 ist Verkauf, 1 ist Kauf), endvalue
ex_calc (stock_id, stockprice, sell, buy, kurstest, totalstocks)
ex_userportfolio (user_id, stock_id, stockcount, stockbuyprice
Um zu verstehen, was was ist: Ex_Transfer sammelt sämtliche Orderaufträge der Benutzer, ganz gleich ob Verkäufer oder Käufer und trägt dabei auch Datum und Zeit ein.
Summiert werden zu jedem Preis halt die Aktienmengen zum Kauf und Verkauf, um später halt den jeweils passendsten Preis anhand des Umsatzes festzustellen.
Wenn alles fertig berechnet ist, also Umsatz und Preis feststehen, soll ein entsprechender Wert für den jeweiligen Teilnehmer eingetragen werden in Ex_transfer.Endvalue (bei Käufer x1 0, bei Käufer x2 wäre das 0.75, bei Käufer x3 0).
Wo liegt mein Problem?
Tja, die Theorie an sich ist einfach. Es hakt bei mir an der Umsetzung, weil ich nicht weiß, wie ich überhaupt anfangen soll, auch weil das sehr tiefgreifende Codes sein werden.
Ließe sich auch in Phasen aufteilen.
Phase 1: Über ein Formular werden von den Benutzern Kauf- und Verkaufsaufträge eingetrangen in ex_transfer
z.B. User-ID 12, Stock ID 2, Datum 28.04.2010, Zeit 15:07, Stockprice 22.00, Stockcount 200, Wert/Value 2400, Order 1 (Kauf), Endvalue noch 0
Als etwas übersichtlicheres Beispiel
VerKäufer 1, Stock 2, Preis 10, Menge 30, Verkauf ist 2, 0
VerKäufer 2, Stock 2, Preis 12, Menge 40, Verkauf ist 2, 0
VerKäufer 3, Stock 3, Preis 15, Menge 35, Verkauf ist 2, 0
Käufer 4, Stock 2, Preis 10, Menge 50, Kauf ist 1, 0
Käufer 5, Stock 2, Preis 12, Menge 10, Kauf ist 1, 0
Phase 2: Per Code/Befehl, wie man es nennen mag, werden alle Aufträge, Verkauf wie Kauf, dem Preis gehörend, summiert. Dies in Tabelle ex_calc.
Stock 2 /Preis 10 / Buy 50 / Sell 30 / Wert 20 / Umsatz 30
Stock 2 /Preis 12 / Buy 10 / Sell 40 / Wert -30 / Umsatz 10
Stock 3 /Preis 15 / Buy 0 / Sell 35 / Wert -35 / Umsatz 0
Per Code wird errechnet, dass Stock 2 zu einem Preis von 10 verkauft wird, weil der Umsatz von 30 Aktien am höchsten ist.
Hier beginnt der Bereich, den ich erstellen möchte.
Die Folge hieraus ist aber auch, dass nicht sämtliche Kaufaufträge gargenommen werden können. Da der Umsatz bei 30 Aktien liegt, kann Käufer 4 keine 50 Aktien kaufen, sondern nur 30, also nur 60%.
So steht dann(!) in Tabelle ex_transfer
VerKäufer 1, Stock 2, Preis 10, Menge 30, Verkauf ist 2, 1
VerKäufer 2, Stock 2, Preis 12, Menge 40, Verkauf ist 2, 0
VerKäufer 3, Stock 3, Preis 15, Menge 35, Verkauf ist 2, 0
Käufer 4, Stock 2, Preis 10, Menge 50, Kauf ist 1, 0,6
Käufer 5, Stock 2, Preis 12, Menge 10, Kauf ist 1, 0
Und hier fängt das Problem an, dass ich keine Ahnung habe, wo ich ansetzen soll. Dies ist ja "nur" ein "einfaches" Beispiel. Es kann ja auch geschehen, dass mehrere Aufträge beschnitten werden müssen.
Wie gesagt, ich habe keine Ahnung, wie ich überhaupt anfangen soll. Die Preisfindung wie oben beschrieben besteht bereits. Jetzt geht es an die Orderausführung und Korrektur. Lediglich die Theorie bei mir besteht insofern, dass ich sämtliche Aufträge aufzähle,
Die Frage von Jens sollte sich so erklären - glaube ich.
Vielleicht habe ich ein Brett vorm Kopf. Aber das hrausfinden anhand von Preis, Stock-ID, Datum und Zeit stellt mich vor Rätsel.
Wenn jemand einen guten Ansatz für mich hätte, wäre ich sehr dankbar.
|
06.05.2010, 22:02:11
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 37
Beiträge: 11
|
|
AW: Nach Summe die Aufträge aktualisieren
Hat keiner eine Idee, einen Ansatz, mit dem ich arbeiten könnte? ich weiß, dass es schwer ist, deswegen schreibe ich es auch hier rein.
Oder soll ich noch mehr Informationen zur Verfügung stellen? Auf Anfrage tue ich das gerne.
|
06.05.2010, 22:26:04
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: Nach Summe die Aufträge aktualisieren
Zitat:
Zitat von krampi
ich weiß, dass es schwer ist [...]
|
nicht schwer, sondern wirr, da du das problem so (subjektiv) beschreibst, wie es sich für dich gerade darstellt. bitte abstrahiere die aufgabe - brich das ganze runter auf das fachliche / technische problem und löse die komplexität auf.
das heisst auch, einen ansatz zu beschreiben: welche probleme siehst du? wie könnte man ihnen entgegenwirken?
cx
|
06.05.2010, 22:45:59
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 37
Beiträge: 11
|
|
AW: Nach Summe die Aufträge aktualisieren
Ein guter Hinweis, danke Cortex. Dann mal meine - hoffentlich bessere - Problemdarstellung.
In einer Tabelle ex_calc dargestellt werden zu Aktien-IDs die Summen von Kauf- und Verkaufsordern eingetragen, zugehörig zu den dazu eingetragenen Preisen. Die Daten werden aus ex_transfer extrahiert.
Von den Einträgen soll jener mit dem meisten Umsatz gewertet werden.
Die Portfolios der Benutzer müssen angepasst werden.
Heißt: Jene Benutzer, die von Aktie Xy eine Menge YY zu Preis ZZ,ZZ verkaufen oder kaufen wollten, sollen, sortiert nach Datum, bedacht werden.
Wenn die Summe an verkaufbaren Aktien größer ist als die Summe von kaufbaren Aktien, dann muss die Verkaufssumme angepasst werden. Die Ungleichheit zwischen der Kauf- und der Verkaufssumme muss aufgehoben werden.
Deswegen sollen alle Orders - sortiert nach dem Eingangsdatum der Order - überprüft werden bis zu dem Punkt, wo eine Ungleichheit zwischen beiden Summen auftritt. Diese soll beseitigt werden.
Die betroffene, spätere Benutzerorder wird dann so beschränkt, dass eine Gleichheit besteht.
Beispiel: 4 und 2 = 4*0,5 und 2 = 2 und 2
Bei eventuell nachfolgenden Benutzern muss der Wert entsprechend dem obrigen Beispiel angepasst oder mit 0 multipliziert werden.
Das größte Problem sehe ich hierbei darin, dass man eine Summe finden muss, die sich dynamisch fortentwickelt, also anhand der Werte summiert bis zu dem Punkt, wo sie gleich ist mit ihrem Orientierungswert und von da an muss erkannt werden, wie der entsprechende zu berechnen sei.
Der dynamische Aspekt der Summe wäre sehr schwer zu bewältigen, wohingegen man den Rest u.a. per If-Order lösen mag.
Jetzt hoffe ich, dass ich das besser und nicht verwirrend beschrieben habe.
|
07.05.2010, 09:27:49
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: Nach Summe die Aufträge aktualisieren
1. ich sprach davon, das problem zu abstrahieren. du hast den sachverhalt lediglich noch einmal mit anderen worten beschrieben.
abstraktion in der wikipedia:
Zitat:
Das Wort Abstraktion (lat. abstractus – "abgezogen", Partizip Perfekt Passiv von abs-trahere – "abziehen, entfernen, trennen") bezeichnet [...] den induktiven Denkprozess des Weglassens von Einzelheiten und des Überführens auf etwas Allgemeineres oder Einfacheres.
|
2. ich sagte:
Zitat:
Zitat von cortex
brich das ganze runter auf das fachliche / technische problem
|
es dürfte dürfte klar sein, dass "fachlich" die programmierung adressiert; deine ausführungen über order, kaufbaren vs. verkaufbaren aktien, orientierungswerten und if-ordern versteht wohl niemand, der sich nicht selbst mit der materie beschäftigt. du kannst nicht davon ausgehen, dass wir uns erst einmal mit einem buch à la "aktienhandel für einsteiger" auf die couch kuscheln, um dir helfen zu können.
3. eigene ansätze zu zeigen, heisst nicht nur, dem prinzip der hilfe zur selbsthilfe zu entsprechen; es würde uns dabei helfen, dein problem (besser) zu verstehen.
cx
p.s. nimm' dir (mehr) zeit, meine fragen aufzuarbeiten; ich nehme mir schliesslich auch zeit, mich in die problematik hineinzudenken.
cx
|
07.05.2010, 13:29:17
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 37
Beiträge: 11
|
|
AW: Nach Summe die Aufträge aktualisieren
Man kann nur lernen. Also danke, dass du mich darauf aufmerksam gemacht hast. Eine Schwäche von mir, wie ich gestehen muss.
Ich hoffe, dass ich es jetzt gut vereinfacht darstellen kann - ansonsten erstelle ich demnächst ein anschauliches Diagramm.
Ist eine "Summe A > Summe B", so sollen die Summanden in Summe A, die zuletzt(!) eingetragen wurden, so reduziert werden, dass "Summe A = Summe B" ist.
Demnach soll der Überschuss aus "Summe A - Summe B" subtrahiert werden, nur eben nicht willkürlich, sondern anhand der letzten Einträge, die in der Summe bedacht wurden.
Selbiges soll andersherum ebenso funktionieren.
Das besagte Problem besteht meiner Meinung nach darin, dass ein Script die letzten Einträge entsprechend bearbeitet, damit "Summe A = Summe B" ist.
|
07.05.2010, 17:44:35
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
|
|
AW: Nach Summe die Aufträge aktualisieren
Reicht es nicht, wenn du die Verkäufe/Käufe gegeneinander abrechnest, wenn sie eingehen?
Käufer A gibt Order für Aktie B auf. 30 Stk zu 30Eur/Stk (Limit 40EUR/Stk) 14:30:35 Uhr
Verkaufer B gibt Verkauf von Aktie B auf. 25 Stk zu 32 EUR/Stk 14:30:55 Uhr
Ein Kaufangebot liegt vor. Die 25 Stk könnten verkauft werden, da das Limit nicht überschritten wird. Ggf. noch eine Prüfung ob hier beim Käufer keine Stückelung erfolgen soll.
Ansonsten wäre der nächste Käufer dran. Etc. pp.
|
07.05.2010, 20:04:03
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: Nach Summe die Aufträge aktualisieren
Hi
schade das du nach 3 Wochen es immer noch nicht schaffst
auf meinen letzten Beitrag einzugehen -> hier
Ich denke du erreichst mehr wenn du mit kleineren Projekten anfängst
und Erfahrung sammelst. Wie Cortex schon meinte keiner hat hier lust
sich in dein Aktienplanungsirgendwas erst einzulesen um dir dann helfen zu können.
mfg
Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
07.05.2010, 23:04:40
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 37
Beiträge: 11
|
|
AW: Nach Summe die Aufträge aktualisieren
@ Urvater: Zwar ist deine Idee gut, nur leider ist es bei diesem Prozess nicht möglich, dass man Verkaufs- und Kaufsangebote zu unterschiedlichen Preisen dermaßen verrechnet.
Auch wenn ich hier nicht gegen die Empfehlung von Cortex agieren will, kurz eine Erläuterung: Ein Aktienkurs entsteht dadurch, dass eine Anzahl zu einem Preis entsteht, zu dem die meisten Aktien den Besitzer wechseln.
Ist der Umsatz an Aktien mit 100 Stück bei 10,5 € höher als bei 10,6 €, wo nur 99 Stück den Besitzer wechseln, so heißt der neue Preis 10,5 €.
@ CKaos: Es ist zwar nett gemeint, aber ich habe mich insoweit schon recht gut in PHP eingefunden, verlinktes Problem gelöst (das werde ich gleich noch ergänzen, insofern danke für den Hinweis).
Jedoch läuft das Lenen mit PHP, das Programmieren schon recht gut bis auf diesen eher recht knackigen Punkt, der mich, wenn er gelöst ist, schon weiterbringen würde.
Geschweige denn, dass ich auch ein Projekt brauche, das mich anstachelt. Es ist eben dies und leider kein anderes.
|
08.05.2010, 09:19:19
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: Nach Summe die Aufträge aktualisieren
Zitat:
Zitat von krampi
Ist der Umsatz an Aktien mit 100 Stück bei 10,5 € höher als bei 10,6 €, wo nur 99 Stück den Besitzer wechseln, so heißt der neue Preis 10,5 €.
|
glaub's oder nicht, aber dieser eine satz bringt mich dem problem näher als alle anderen erklärungen zuvor.
mein gedanken dazu:
1. verkauft ist verkauft - im nachhinein (nachdem x aktien verkauft wurden) kannst du den preis der verkauften papiere nicht mehr ändern, oder?
2. dein problem scheint die zeit zu sein; du hast es oben den dynamischen aspekt der summe genannt. würde man die zeitabstände ΔT immer kleiner machen, hätte man eine echtzeit-lösung. das erscheint mir persönlich a) praxisfremd und b) zu viel des guten. auch an der börse werden papiere zu einem wert gehandelt, der zu einem bestimmten zeitpunkt T fixiert wird.
3. was spricht dagegen, einen - ich nenn's mal so - verkaufszyklus der dauer T+ΔT zu durchlaufen und danach den preis der papiere anzupassen? du kannst doch häppchenweise vorgehen bzw. das problem in handlichere teile zerlegen: zuerst einmal davon ausgehen, dass sich - wie im "richtigen" leben bspw. beim bäcker - nicht alle angebotenen güter verkaufen bzw. andersherum die nachfrage grösser als das angebot ist. wenn dieses relativ einfache system funktioniert, kann man sich gedanken über das tuning / die feineinstellung des ganzen machen, sprich an ΔT herumschrauben.
(über die zeit) veränderliche prozesse werden i.a. durch integrale dargestellt. ich gehe davon aus, dass du schon mal davon gehört hast. an diesem punkt beginnt übrigens (zum wiederholten male) die abstraktion einer konkreten aufgabenstellung .-
cx
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:41:30 Uhr.
|