ЗАМЕЧАНИЕ. Эта задача теперь закрыта: я больше не буду обновлять таблицу лидеров и не буду менять принятый ответ. Тем не менее, вы можете запустить контроллер и обновить таблицу лидеров самостоятельно, если хотите.
Присоединяйтесь к чату!
Введение
Добрый вечер, трейдеры! Вы все трейдеры для гольф-компании PPCG. Ваша задача - заработать как можно больше денег.
Вызов
Напишите программу, которая покупает и продает акции на бирже Stack Exchange, чтобы заработать как можно больше денег.
Игровой процесс
Все игроки начнут с 5 акций и 100 долларов в своем банке. Игра всегда начинается с цены акции в 10 долларов.
Каждая игра будет иметь 1000 раундов, где первый раунд является раундом 1
. В каждом раунде вашей программе будет предоставлено четыре аргумента: текущая цена акции, количество принадлежащих вам акций, сумма ваших денег и число раундов (с 1 индексированием).
Например, если моя программа имеет test1.py
цену акции 100
, количество акций, которыми я владею 3
, количество денег, которое у меня есть 1200
, и число раундов 576
, моя программа будет работать так:
python test1.py 100 3 1200 576
В раунде цена акций каждого игрока будет одинаковой. Это не изменится до конца раунда.
В ответ игрок должен распечатать свою команду. Есть два варианта:
- Купить акции: Эта команда дается как
bn
гдеn
это количество акций , которые вы хотите купить. Например, если вы хотите купить 100 акций, вы получите:
b100
При покупке акций вам разрешается овердрафт до 1000 долларов. Если вы попытаетесь купить достаточно акций, превышающих этот овердрафт (баланс вашего банка опустится ниже $ 1000), вы будете объявлены банкротом. Это означает, что вы потеряете все свои акции и ваш баланс будет установлен на 50 долларов.
Ваша цена не повлияет на вашу цену, если вы обанкротитесь.
(Если ваш баланс составляет $ -1000, вы не банкрот. Однако, если ваш баланс составляет $ -1001, вы банкрот)
- Продать акции: Эта команда дается как
sn
гдеn
это количество акций вы хотите продать. Например, если вы хотите продать 100 акций, вы получите:
s100
Вы не можете продавать больше акций, чем у вас есть. Если вы попытаетесь это сделать, ваш запрос будет отклонен, и вы пропустите раунд.
Если вы хотите , чтобы пропустить раунд и ничего не делать, выход либо b0
или s0
.
Ваш запрос будет отклонен, если вы попытаетесь купить или продать отрицательное количество акций и / или нецелое число акций.
После 5 раундов, в конце каждого раунда, всем игрокам будут выплачиваться дивиденды, величина которых составляет 5% от средней средней цены акций за последние 5 раундов.
Как это работает?
Первоначально цена акции будет 10 долларов. В конце каждого раунда он будет пересчитан по формуле:
Цена акции будет ограничена, чтобы она никогда не опускалась ниже 1 доллара.
Чтобы предотвратить слишком быстрое изменение, изменение цены акции ограничено максимумом .
правила
- Ваша программа должна иметь имя
- Ваша программа допускает один текстовый файл для хранения данных. Он должен храниться в той же папке, что и ваша программа
- Включите в свой ответ информацию о том, как запустить вашу программу
- Этот KotH открыт для всех языков программирования, которые бесплатны и могут быть запущены в Windows 10
- Ваша оценка основана исключительно на содержании вашего баланса. Любые деньги, запертые в акциях, не будут засчитаны
- Вы можете редактировать свою программу в любое время. Перед каждой игрой последний код будет сохранен и скомпилирован
- Вы не должны писать код, специально предназначенный для другого бота.
контроллер
Контроллер написан на Python и может быть найден здесь: https://gist.github.com/beta-decay/a6abe40fc9f4ff6cac443395377ec31f
В конце он напечатает таблицу лидеров и отобразит график того, как цена акций менялась в течение игры.
Например, когда играли два случайных бота
выигрыш
Игрок с наибольшим количеством денег на балансе в конце последней игры выигрывает.
Leaderboard
Игра 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
Просмотр графиков каждого участника
Связанные, но геймплей и критерий победы очень отличаются от этой задачи.