PEMBERITAHUAN: Tantangan ini sekarang sudah ditutup: Saya tidak akan lagi memperbarui papan peringkat dan tidak akan mengubah jawaban yang diterima. Namun, Anda bebas menjalankan controller dan memperbarui sendiri leaderboard, jika diinginkan.
Bergabunglah dengan obrolan!
pengantar
Selamat malam, pedagang! Anda semua adalah pedagang untuk perusahaan golf PPCG. Tugas Anda adalah menghasilkan uang sebanyak mungkin.
Tantangan
Tulis sebuah program yang membeli dan menjual saham di Stack Exchange Stock Exchange dengan tujuan menghasilkan uang sebanyak mungkin.
Gameplay
Semua pemain akan mulai dengan 5 saham dan $ 100 di bank mereka. Permainan selalu dimulai dengan harga saham $ 10.
Setiap permainan akan memiliki 1000 putaran di mana babak pertama adalah putaran 1
. Dalam setiap putaran, program Anda akan diberikan empat argumen sebagai input: harga saham saat ini, jumlah saham yang Anda miliki, jumlah uang yang Anda miliki dan jumlah putaran (1-diindeks).
Misalnya, jika program saya adalah test1.py
, harga sahamnya 100
, jumlah saham yang saya pegang 3
, jumlah uang yang saya miliki 1200
, dan angka bulatnya 576
, program saya akan dijalankan seperti ini:
python test1.py 100 3 1200 576
Dalam satu putaran, harga saham yang diberikan kepada masing-masing pemain akan sama. Ini tidak berubah sampai akhir putaran.
Sebagai tanggapan, pemain harus mencetak perintah mereka. Ada dua opsi:
- Beli saham: Perintah ini diberikan di
bn
manan
jumlah saham yang ingin Anda beli. Misalnya, jika Anda ingin membeli 100 saham, Anda akan menampilkan:
b100
Saat membeli saham, Anda diizinkan cerukan hingga $ 1000. Jika Anda mencoba membeli saham yang melebihi cerukan ini (saldo bank Anda di bawah $ -1000), Anda akan dinyatakan pailit. Ini berarti bahwa Anda akan kehilangan semua saham Anda dan saldo Anda akan ditetapkan menjadi $ 50.
Harga saham tidak akan terpengaruh oleh perintah Anda jika Anda bangkrut.
(Jika saldo Anda $ -1000, Anda tidak bangkrut. Namun jika saldo Anda $ -1001, Anda bangkrut)
- Jual saham: Perintah ini diberikan di
sn
manan
jumlah saham yang ingin Anda jual. Misalnya, jika Anda ingin menjual 100 saham, Anda akan menampilkan:
s100
Anda tidak boleh menjual lebih banyak saham daripada yang Anda miliki. Jika Anda mencoba melakukan ini, permintaan Anda akan ditolak, dan Anda akan melewatkan putaran.
Jika Anda ingin melewatkan putaran dan tidak melakukan apa pun, output salah satu b0
atau s0
.
Permintaan Anda akan ditolak jika Anda mencoba membeli atau menjual sejumlah saham negatif dan / atau jumlah saham non-integer.
Setelah 5 putaran, pada akhir setiap putaran, semua pemain akan dibayar dividen, nilainya 5% dari rata-rata harga saham dari 5 putaran terakhir.
Bagaimana cara kerjanya?
Awalnya harga saham akan menjadi $ 10. Pada akhir setiap putaran, itu akan dihitung ulang menggunakan rumus:
Harga saham akan terbatas sehingga tidak pernah jatuh di bawah $ 1.
Untuk mencegah perubahan yang terlalu cepat, perubahan harga saham dibatasi hingga maksimum .
Aturan
- Program Anda harus memiliki nama
- Program Anda diperbolehkan satu file teks untuk penyimpanan data. Itu harus disimpan dalam folder yang sama dengan program Anda
- Masukkan rincian jawaban Anda tentang cara menjalankan program Anda
- KotH ini terbuka untuk semua bahasa pemrograman yang bebas digunakan dan dapat dijalankan di Windows 10
- Skor Anda hanya didasarkan pada isi saldo Anda. Uang yang dikunci dalam saham tidak akan dihitung
- Anda dapat mengedit program Anda kapan saja. Sebelum setiap pertandingan, kode terbaru akan disimpan dan dikompilasi
- Anda tidak boleh menulis kode yang secara khusus menargetkan bot lain.
Pengendali
Pengontrol ditulis dalam Python dan dapat ditemukan di sini: https://gist.github.com/beta-decay/a6abe40fc9f4ff6cac443395377ec31f
Pada akhirnya itu akan mencetak papan peringkat dan menampilkan grafik tentang bagaimana harga saham berubah sepanjang permainan.
Misalnya, ketika dua bot acak diputar
Kemenangan
Pemain dengan jumlah uang tertinggi dalam saldo mereka pada akhir pertandingan terakhir menang.
Papan peringkat
Game 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
Lihat grafik masing-masing kontestan
Terkait tetapi gameplay dan kriteria kemenangan sangat berbeda dengan tantangan ini.