ПОВІДОМЛЕННЯ: Ця проблема зараз закрита: я більше не оновлюватимуть таблицю лідерів і не зміню прийняту відповідь. Однак ви можете запустити контролер і оновити таблицю лідерів самостійно, якщо бажаєте.
Приєднуйтесь до чату!
Вступ
Доброго вечора, торговці! Ви всі торговці компанії для гольфу PPCG. Ваше завдання - заробити якомога більше грошей.
Виклик
Напишіть програму, яка купує та продає акції на фондовій біржі стеків з метою заробити якомога більше грошей.
Ігровий процес
Усі гравці розпочнуть з 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
Наприкінці він надрукує таблицю лідерів та відобразить графік того, як змінювалася ціна акцій протягом гри.
Наприклад, коли грали два випадкових бота
Перемога
Гравець з найбільшою сумою грошей у своєму балансі в кінці останньої гри виграє.
Таблиця лідерів
Гра 4: 16:14 08.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
Перегляньте графіки кожного учасника
Пов’язаний, але критерій ігрового процесу та виграшів дуже відрізняються від цієї проблеми.