AVISO: Este desafío ahora está cerrado: ya no actualizaré la tabla de clasificación y no cambiaré la respuesta aceptada. Sin embargo, puede ejecutar el controlador y actualizar la tabla de clasificación usted mismo, si lo desea.
¡Únete al chat!
Introducción
Buenas tardes, comerciantes! Todos ustedes son comerciantes de la compañía de golf PPCG. Su tarea es ganar tanto dinero como sea posible.
Reto
Escriba un programa que compre y venda acciones en la Bolsa de Valores de Stack Exchange con el objetivo de ganar la mayor cantidad de dinero posible.
Jugabilidad
Todos los jugadores comenzarán con 5 acciones y $ 100 en su banco. El juego siempre comienza con un precio por acción de $ 10.
Cada juego tendrá 1000 rondas donde la primera ronda es redonda 1
. En cada ronda, su programa recibirá cuatro argumentos como entrada: el precio actual de las acciones, la cantidad de acciones que posee, la cantidad de dinero que posee y el número de ronda (1 indexado).
Por ejemplo, si mi programa es test1.py
, el precio de la acción es 100
, el número de acciones que tengo es 3
, la cantidad de dinero que tengo es 1200
, y el número redondo es 576
, mi programa se ejecutará de la siguiente manera:
python test1.py 100 3 1200 576
En una ronda, el precio de la acción dado a cada jugador será el mismo. Esto no cambia hasta el final de la ronda.
En respuesta, el jugador debe imprimir su comando. Hay dos opciones:
- Comprar acciones: este comando se da como
bn
dónden
está el número de acciones que desea comprar. Por ejemplo, si desea comprar 100 acciones, generaría:
b100
Al comprar acciones, se le permite un sobregiro de hasta $ 1000. Si intenta comprar suficientes acciones que excedan este sobregiro (su saldo bancario es inferior a $ -1000), se declarará en quiebra. Esto significa que perderá todas sus acciones y su saldo se establecerá en $ 50.
El precio de la acción no se verá afectado por su orden si se declara en quiebra.
(Si su saldo es de $ -1000, no está en bancarrota. Sin embargo, si su saldo es de $ -1001, está en bancarrota)
- Vender acciones: este comando se da como
sn
dónden
está el número de acciones que desea vender. Por ejemplo, si desea vender 100 acciones, generaría:
s100
No puede vender más acciones de las que posee. Si intenta hacer esto, su solicitud será denegada y omitirá la ronda.
Si desea omitir la ronda y no hacer nada, imprima ya sea b0
o s0
.
Su solicitud será denegada si intenta comprar o vender un número negativo de acciones y / o un número no entero de acciones.
Después de 5 rondas, al final de cada ronda, todos los jugadores recibirán un dividendo, cuyo valor es el 5% del precio promedio promedio de las últimas 5 rondas.
¿Como funciona?
Inicialmente, el precio de la acción será de $ 10. Al final de cada ronda, se volverá a calcular utilizando la fórmula:
El precio de la acción será limitado para que nunca caiga por debajo de $ 1.
Para evitar un cambio demasiado rápido, el cambio en el precio de la acción se limita a un máximo de .
Reglas
- Tu programa debe tener un nombre
- Su programa tiene permitido un solo archivo de texto para el almacenamiento de datos. Debe almacenarse en la misma carpeta que su programa
- Incluya en su respuesta detalles sobre cómo ejecutar su programa
- Este KotH está abierto a todos los lenguajes de programación que son gratuitos y se pueden ejecutar en Windows 10
- Su puntaje se basa únicamente en el contenido de su saldo. Cualquier dinero encerrado en acciones no será contado
- Puede editar su programa en cualquier momento. Antes de cada juego, el último código se guardará y compilará
- No debe escribir código que se dirija específicamente a otro bot.
Controlador
El controlador está escrito en Python y se puede encontrar aquí: https://gist.github.com/beta-decay/a6abe40fc9f4ff6cac443395377ec31f
Al final, imprimirá una tabla de clasificación y mostrará un gráfico de cómo cambió el precio de la acción a lo largo del juego.
Por ejemplo, cuando dos bots aleatorios estaban jugando
Victorioso
El jugador con la mayor cantidad de dinero en su saldo al final del último juego gana.
Tabla de clasificación
Juego 4: 16:14 08/10/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
Ver gráficos de cada concursante
Relacionado, pero la jugabilidad y el criterio ganador son muy diferentes a este desafío.