Hallo Sky!
Ich habe mir jetzt einige Zeit genommen und diesen Thread fleißig verfolgt. Eigentlich würde ich gerne das aktuelle System beibehalten. Aber wer nichts beiträgt darf später nicht meckern, richtig?
Entschuldigt bitte gleich im Vorfeld den langen Post.
Ich habe ich mir also überlegt wie ich das selbst lösen würde und stimme da in einigen Punkten dem hier bereits gesagten zu. Die Fragen die ich mir hierbei gestellt habe sind:
Wie kann ich...
1. ... eine Nachfrage anhand der Verkaufszahlen simulieren?
2. ... eine Marktsättigung simulieren?
3. ... einen kontrollierbaren und nachvollziehbaren Preisverlauf generieren?
4. ... Manipulation vorbeugen?
5. ... den Preisverlauf "lebendig" halten
"Die Nachfrage bestimmt das Angebot" - Diesen Satz kennen sicher alle. D.h. das Angebot strebt immer der Nachfrage entgegen, egal in welche Richtung. Da wir aber leider nur das Angebot kennen bleibt uns nichts anderes übrig als das Pferd von hinten auf zu zäumen: "Das Angebot bestimmt die Nachfrage" nun gut, fast
Nehmen wir die Marktsättigung mit in unsere Überlegung. Der Preis eines Items wird auch bei steigendem Angebot solange steigen, solange die Nachfrage größer ist, also der Markt noch nicht gesättigt. Nehmen wir dazu an dass sich der Bedarf im System nur allmählich und nicht schlagartig ändert. Wir benötigen also einen Punkt ab welchem die Nachfrage gedeckt ist und der Markt gesättigt. Und das ganze in Abhängigkeit des Marktverlaufes.
Das brachte mich auf die Idee eines Schwellenwert - Systems in Abhängigkeit der Verkaufszahlen. Zu bestimmten Vielfachen der durchschnittlichen Verkaufsmengen im Zeitraum X eines Items wird der Preis um ein gewisses Maß angepasst. Da sich die durchschnittliche Verkaufsmenge ständig ändert tut dies auch unsere simulierte Nachfrage. Liegt das Angebot unter dem Durchschnitt, so steigt der Preis, da die Nachfrage nicht gedeckt werden kann. Liegt es darüber sinkt der Preis, denn der Markt ist gesättigt.
Durch definierbare Schwellenwerte und Preisänderungen entsteht so ein kontrollierbares und nachvollziehbares System. Leider reicht ein einfacher Durchschnittswert für diese Schwellenwerte nicht aus, da vereinzelte Massenverkäufe diesen ins unermessliche Steigern. Daher würde ich hier ein gestutztes Mittel verwenden.
Um Manipulationen vorzubeugen ist jeder Schwellenwert noch mit einer Zufallszahl zu multiplizieren um zu verhindern dass gezielte Mengen verkauft werden und um mehr Leben in das System zu bringen.
Desweiteren sollte nicht nur der aktuelle Tag, sondern auch der Zeitraum von ca. 1 Woche betrachtet werden um "Trends" zu ermöglichen und das ganze interessant zu halten (Danke an EmptySoul_Agony für diese Idee).
Leider sind meine Java-Kenntnisse stark eingerostet und ich konnte das gestutzte Mittel nach folgender Formel nicht in das Programmbeispiel integrieren:
http://prntscr.com/f99ore
Dennoch wollte ich zu Verdeutlichung ein erstes Beispiel für meinen Ansatz geben:
Code:
// M = Gestutztes Mittel der Verkaufszahlen der letzten 30 Tage (0,07 alpha) in Items
// V6= Summe der Verkaufszahlen der vorherigen 6 Tage in Items
// V = aktuelle Verkaufszahlen in Items
// RND = Zufallszahl zwischen 90 und 110
// P = Preis des Items in ct
// Pmax= Maximal möglicher Preis für Item in ct
// Pmin= Minimal möglicher Preis für Item in ct
// S = Schwellenwert
S := ((M*RND) / 100)
if (((V+V6) / 7) > (S*4)) {
P := P*0,91
} else {
if (((V+V6) / 7) > (S*3)) {
P := P*0,94
} else {
if (((V+V6) / 7) > (S*2)) {
P := P*0,97
} else {
if (((V+V6) / 7) > (S)) {
P := P
} else {
if (((V+V6) / 7) > (S*0,9)) {
P := P*1,03
} else {
if (((V+V6) / 7) > (S*0,75)) {
P := P*1,06
} else {
P := P*1,09
} // end of if-else
} // end of if
} // end of if-else
} // end of if
} // end of if-else
} // end of if
if (P > Pmax) {
P := Pmax
} else {
if (P < Pmin) {
P := Pmin
} // end of if
} // end of if-else
Die Werte sind selbstverständlich nur Beispielhaft und können gerne nach Belieben diskutiert und angepasst werden. Da Minimal- und Maximalpreise ja scheinbar erwünscht / gefordert sind, habe ich diese auch eingefügt.
Ich würde mich über reges Feedback zu diesem Ansatz freuen und bin mir sicher dass ich noch die ein oder andere Sache übersehen habe^^
MfG
_Pigdog_