This version of YorkStockSim uses an extended notion of Trader, that of a TradingAgent, which makes trading decisions (buy or sell) based on information that becomes available to them. Such information is generated by a NewsBoard object, an agency affiliated with the stock exchange, The NewsBoard object aggregates information coming from the companies that are represented by the traded securities. It gathers and propagates Events about those companies, including announcements, release of financial statements, etc.. These events may be good for the company (GoodNews), such as increase in earnings, which entice TraderAgents to buy more stock of the company. Others may be BadNews, e.g., announcement of product defect or security breach, which make traders want to sell instead. Two classes of TradingAgents, TradingAgentConservative and TradingAgentAggressive react differently to such news: the latter (Aggressive) are more ready to buy or sell respectively at a larger quantities compared to the former (Conservative).
In the current design, a file with all the events of the next 30 days is read. A test method, StockExchangeTest, asks each TradingAgent to check to see if at the specific day a ticker on which they have a position has generated any news. If yes, they act according to their style (Conservative or Aggressive), otherwise they do nothing.
- On GitHub, fork this repository to your own account.
- Clone the forked repository locally.
- Create a branch for the first part called a2-strategy and switch to it.
- Work on the code copy and, once you are done, commit to the a2-strategy branch -- though you can keep committing throughout development.
- Subsequently, create a branch for the first part called a2-observer and switch to it.
- Work on the code copy and, once you are done, commit to the a2-observer branch -- though you can keep committing throughout development.
- Once you have committed your code, push to your github repository (the one you forked and have been working on all along).
- On eClass, submit a link to your github repository, in both text boxes where it is asked.
Please post any questions or issues on the "General News and Discussions Forum" on eClass.