THÔNG BÁO: Thử thách này hiện đã kết thúc: Tôi sẽ không còn cập nhật bảng xếp hạng và sẽ không thay đổi câu trả lời được chấp nhận. Tuy nhiên, bạn có thể tự do chạy bộ điều khiển và tự cập nhật bảng xếp hạng nếu muốn.
Tham gia trò chuyện!
Giới thiệu
Chào buổi tối, thương nhân! Bạn là tất cả các thương nhân cho công ty golf PPCG. Nhiệm vụ của bạn là kiếm càng nhiều tiền càng tốt.
Thử thách
Viết chương trình mua và bán cổ phiếu trên Sàn giao dịch chứng khoán Stack với mục đích kiếm càng nhiều tiền càng tốt.
Trò chơi
Tất cả người chơi sẽ bắt đầu với 5 cổ phiếu và 100 đô la trong ngân hàng của họ. Trò chơi luôn bắt đầu với giá cổ phiếu là 10 đô la.
Mỗi trò chơi sẽ có 1000 vòng trong đó vòng đầu tiên là vòng 1
. Trong mỗi vòng, chương trình của bạn sẽ được cung cấp bốn đối số làm đầu vào: giá cổ phiếu hiện tại, số cổ phần bạn nắm giữ, số tiền bạn sở hữu và số vòng (được lập chỉ mục 1).
Ví dụ: nếu chương trình của tôi là test1.py
, giá cổ phiếu là 100
, số cổ phần tôi nắm giữ là 3
, số tiền tôi có là 1200
và số tròn là 576
, chương trình của tôi sẽ được chạy như vậy:
python test1.py 100 3 1200 576
Trong một vòng, giá cổ phiếu cho mỗi người chơi sẽ là như nhau. Điều này không thay đổi cho đến khi kết thúc vòng.
Để đáp lại, người chơi phải in lệnh của họ. Có hai lựa chọn:
- Cổ phiếu Mua: Lệnh này được đưa ra như
bn
nơin
là số lượng cổ phiếu mà bạn muốn mua. Ví dụ: nếu bạn muốn mua 100 cổ phiếu, bạn sẽ xuất ra:
b100
Khi mua cổ phiếu, bạn được phép thấu chi tối đa 1000 đô la. Nếu bạn cố gắng mua đủ số cổ phiếu vượt quá khoản thấu chi này (số dư ngân hàng của bạn dưới $ -1000), bạn sẽ bị tuyên bố phá sản. Điều này có nghĩa là bạn sẽ mất tất cả cổ phần của mình và số dư của bạn sẽ được đặt thành 50 đô la.
Giá cổ phiếu sẽ không bị ảnh hưởng bởi lệnh của bạn nếu bạn phá sản.
(Nếu số dư của bạn là $ -1000, bạn không bị phá sản. Tuy nhiên, nếu số dư của bạn là $ -1001, bạn bị phá sản)
- Bán cổ phần: Lệnh này được đưa ra như
sn
nơin
là số lượng cổ phiếu mà bạn muốn bán. Ví dụ: nếu bạn muốn bán 100 cổ phiếu, bạn sẽ xuất ra:
s100
Bạn không thể bán nhiều cổ phiếu hơn bạn sở hữu. Nếu bạn cố gắng làm điều này, yêu cầu của bạn sẽ bị từ chối, và bạn sẽ bỏ qua vòng này.
Nếu bạn muốn bỏ qua vòng và không làm gì, hãy xuất b0
hoặc s0
.
Yêu cầu của bạn sẽ bị từ chối nếu bạn cố gắng mua hoặc bán một số lượng cổ phiếu âm và / hoặc số lượng cổ phiếu không nguyên.
Sau 5 vòng, vào cuối mỗi vòng, tất cả người chơi sẽ được trả cổ tức, giá trị bằng 5% giá cổ phiếu trung bình trung bình của 5 vòng cuối cùng.
Làm thế nào nó hoạt động?
Ban đầu giá cổ phiếu sẽ là 10 đô la. Vào cuối mỗi vòng, nó sẽ được tính toán lại bằng công thức:
Giá cổ phiếu sẽ được giới hạn để nó không bao giờ giảm xuống dưới $ 1.
Để ngăn thay đổi quá nhanh, thay đổi giá cổ phiếu được giới hạn ở mức tối đa là .
Quy tắc
- Chương trình của bạn phải có tên
- Chương trình của bạn được cho phép một tệp văn bản duy nhất để lưu trữ dữ liệu. Nó phải được lưu trong cùng thư mục với chương trình của bạn
- Bao gồm trong chi tiết câu trả lời của bạn về cách chạy chương trình của bạn
- KotH này mở cho tất cả các ngôn ngữ lập trình miễn phí sử dụng và có thể chạy trên Windows 10
- Điểm của bạn chỉ dựa trên nội dung số dư của bạn. Bất kỳ khoản tiền nào bị khóa trong cổ phiếu sẽ không được tính
- Bạn có thể chỉnh sửa chương trình của bạn bất cứ lúc nào. Trước mỗi trò chơi, mã mới nhất sẽ được lưu và biên dịch
- Bạn không nên viết mã mà cụ thể nhắm mục tiêu bot khác.
Bộ điều khiển
Bộ điều khiển được viết bằng Python và có thể tìm thấy ở đây: https://gist.github.com/beta-decay/a6abe40fc9f4ff6cac443395377ec31f
Cuối cùng, nó sẽ in bảng xếp hạng và hiển thị biểu đồ về cách giá cổ phiếu thay đổi trong suốt trò chơi.
Ví dụ, khi hai bot ngẫu nhiên đang chơi
Chiến thắng
Người chơi có số tiền cao nhất trong số dư của họ vào cuối trò chơi cuối cùng sẽ thắng.
Bảng xếp hạng
Trò chơi 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
Liên quan nhưng lối chơi và tiêu chí chiến thắng rất khác nhau đối với thử thách này.