HINWEIS: Diese Herausforderung ist jetzt geschlossen: Ich werde die Bestenliste nicht mehr aktualisieren und die akzeptierte Antwort nicht ändern. Es steht Ihnen jedoch frei, den Controller selbst auszuführen und die Bestenliste zu aktualisieren, wenn Sie dies wünschen.
Tritt dem Chat bei!
Einführung
Guten Abend, Händler! Sie sind alle Händler für das Golfunternehmen PPCG. Ihre Aufgabe ist es, so viel Geld wie möglich zu verdienen.
Herausforderung
Schreiben Sie ein Programm, das Aktien an der Stack Exchange Stock Exchange kauft und verkauft, um so viel Geld wie möglich zu verdienen.
Spielweise
Alle Spieler beginnen mit 5 Aktien und 100 $ auf ihrer Bank. Das Spiel beginnt immer mit einem Aktienkurs von 10 USD.
Jedes Spiel hat 1000 Runden, in denen die erste Runde ist 1
. In jeder Runde erhält Ihr Programm vier Argumente als Eingabe: den aktuellen Aktienkurs, die Anzahl der von Ihnen gehaltenen Aktien, den Betrag, den Sie besitzen, und die Rundennummer (1-indexiert).
Zum Beispiel, wenn mein Programm ist test1.py
, der Aktienkurs ist 100
, die Anzahl der Aktien, die ich halte 3
, der Geldbetrag, den ich habe 1200
, und die runde Zahl ist 576
, wird mein Programm wie folgt ausgeführt:
python test1.py 100 3 1200 576
In einer Runde ist der Aktienkurs, den jeder Spieler erhält, derselbe. Dies ändert sich erst am Ende der Runde.
Als Antwort muss der Spieler seinen Befehl ausdrucken. Es gibt zwei Möglichkeiten:
- Kaufen Aktien: Dieser Befehl wird gegeben , wie ,
bn
won
die Anzahl der Aktien , die Sie kaufen möchten. Wenn Sie beispielsweise 100 Aktien kaufen möchten, würden Sie Folgendes ausgeben:
b100
Beim Kauf von Anteilen ist eine Überziehung von bis zu 1000 USD zulässig. Wenn Sie versuchen, genügend Aktien zu kaufen, die diesen Überziehungsbetrag überschreiten (Ihr Kontostand liegt unter -1000 USD), werden Sie für bankrott erklärt. Dies bedeutet, dass Sie alle Ihre Anteile verlieren und Ihr Kontostand auf 50 USD festgelegt wird.
Der Aktienkurs bleibt von Ihrem Befehl unberührt, wenn Sie in Konkurs gehen.
(Wenn Ihr Guthaben -1000 US-Dollar beträgt, sind Sie nicht bankrott. Wenn Ihr Guthaben jedoch -1001 US-Dollar beträgt, sind Sie bankrott.)
- Verkaufen Aktien: Dieser Befehl wie angegeben ,
sn
won
die Anzahl der Aktien , die Sie verkaufen möchten. Wenn Sie beispielsweise 100 Aktien verkaufen möchten, würden Sie Folgendes ausgeben:
s100
Sie dürfen nicht mehr Aktien verkaufen als Sie besitzen. Wenn Sie dies versuchen, wird Ihre Anfrage abgelehnt und Sie überspringen die Runde.
Wenn Sie die Runde überspringen und nichts tun möchten, geben Sie entweder b0
oder aus s0
.
Ihre Anfrage wird abgelehnt, wenn Sie versuchen, eine negative Anzahl von Aktien und / oder eine nicht ganzzahlige Anzahl von Aktien zu kaufen oder zu verkaufen.
Nach 5 Runden erhalten alle Spieler am Ende jeder Runde eine Dividende, deren Wert 5% des durchschnittlichen Aktienkurses der letzten 5 Runden beträgt.
Wie funktioniert es?
Zunächst wird der Aktienkurs 10 US-Dollar betragen. Am Ende jeder Runde wird es nach folgender Formel neu berechnet:
Der Aktienkurs wird begrenzt, so dass er niemals unter 1 USD fällt.
Um zu schnelle Änderungen zu vermeiden, ist die Änderung des Aktienkurses auf maximal .
Regeln
- Ihr Programm muss einen Namen haben
- Ihrem Programm ist eine einzige Textdatei zur Datenspeicherung gestattet. Es muss im selben Ordner wie Ihr Programm gespeichert sein
- Geben Sie in Ihrer Antwort an, wie Sie Ihr Programm ausführen
- Diese KotH steht allen frei verwendbaren Programmiersprachen offen, die unter Windows 10 ausgeführt werden können
- Ihre Punktzahl basiert ausschließlich auf dem Inhalt Ihres Guthabens. Etwaiges in Anteilen gebundenes Geld wird nicht gezählt
- Sie können Ihr Programm jederzeit bearbeiten. Vor jedem Spiel wird der neueste Code gespeichert und kompiliert
- Sie sollten keinen Code schreiben, der speziell auf einen anderen Bot abzielt.
Regler
Der Controller ist in Python geschrieben und hier zu finden: https://gist.github.com/beta-decay/a6abe40fc9f4ff6cac443395377ec31f
Am Ende wird eine Rangliste gedruckt und eine Grafik darüber angezeigt, wie sich der Aktienkurs im Laufe des Spiels verändert hat.
Zum Beispiel, wenn zwei zufällige Bots gespielt wurden
Gewinnen
Der Spieler mit dem höchsten Geldbetrag am Ende des letzten Spiels gewinnt.
Bestenliste
Spiel 4: 16:14 10/08/2018
Name Balance
Experienced Greedy Idiot $14802860126910608746226775271608441476740220190868405578697473058787503167301288688412912141064764060957801420415934984247914753474481204843420999117641289792179203440895025689047561483400211597324662824868794009792985857917296068788434607950379253177065699908166901854516163240207641611196996217004494096517064741782361827125867827455285639964058498121173062045074772914323311612234964464095317202678432969866099864014974786854889944224928268964434751475446606732939913688961295787813863551384458839364617299883106342420461998689419913505735314365685264187374513996061826694192786379011458348988554845036604940421113739997490412464158065355335378462589602228039730
Equalizer $763185511031294813246284506179317396432985772155750823910419030867990447973211564091988995290789610193513321528772412563772470011147066425321453744308521967943712734185479563642323459564466177543928912648398244481744861744565800383179966018254551412512770699653538211331184147038781605464336206279313836606330
Percentage Trader $448397954167281544772103458977846133762031629256561243713673243996259286459758487106045850187688160858986472490834559645508673466589151486119551222357206708156491069820990603783876340193236064700332082781080188011584263709364962735827741094223755467455209136453381715027369221484319039100339776026752813930
OYAIB $8935960891618546760585096898089377896156886097652629690033599419878768424984255852521421137695754769495085398921618469764914237729576710889307470954692315601571866328742408488796145771039574397444873926883379666840494456194839899502761180282430561362538663182006432392949099112239702124912922930
Chimps on a Typewriter $176504338999287847159247017725770908273849738720252130115528568718490320252556133502528055177870
Greedy B*****d $17689013777381240
Illiterate Dividend Investor $2367418699671980
Lucky Number 6 $4382725536910
Lone Accountant $90954970320
Buy/Reinvest $127330
Technical Analysis Robot $126930
Dollar Cost Averager $106130
Fibonacci $69930
Novice Broker $28130
Buy Low $6130
Naive Statistician $6130
Fallacious Gambler $6130
Passive Trader $4980
Half More or Nothing $4920
Monkeys on a Typewriter $66
Sehen Sie sich Diagramme der einzelnen Teilnehmer an
Verwandte aber das Gameplay und gewinnt Kriterium ist auf diese Herausforderung sehr unterschiedlich.