SEMTM0031: Introduction to Financial Technology (INFT)
Academic Year 2025-26.
Main Coursework.
Release date: Friday 14/11/2025 (via Blackboard)
Due date: Tuesday 09/12/2025 (1pm via Blackboard)
What to submit: 7-page PDF report and all code used to generate your results
Marks available: 70
Individual assessment: You should work alone on this assessment.
PDF report: You should submit your answers to all questions in a single PDF file, 7-page maximum length, font size 11. Suggested approximate length for each question: Q1: ~1 page, Q2: ~1 page, Q3: ~2 pages, Q4: ~2 pages. Page penalty: 5 points deducted for every page over 7.
Code files: We should be able to run your code for all your work. For each question, submit a separate Jupyter notebook containing your code for that question and give it an easily identifiable name, e.g., qu1.ipynb, qu2.ipynb, etc. Also submit your BSE.py file and any other python files that you write. Finally, if you use any input price data to configure your experiments, also submit those data files.
Use of AI: Minimal - You may only use tools such as spelling and grammar checkers in this assignment, and their use should be limited to corrections of your own work rather than substantial re-writes or extended contributions of code or text. See: https://www.bristol.ac.uk/students/support/academic-advice/using-artificial- intelligence/#categories
Academic integrity guidelines - For more information on the use of AI and academic integrity guidelines, see: https://www.bristol.ac.uk/students/support/academic-advice/academic-integrity/
Late submissions penalties - Please refer to the 'Due Date' section for the assessment deadline, unless you have an approved extension. Late submissions will incur late penalties. From this academic year (2025/26), under Article 24.3 of the Regulations and Code of Practice for Taught Programmes, any work submitted more than 96 hours after the deadline (or your extended deadline) will not be marked and will count as a non-submission. If you have any issues or queries, please contact the School Office via semt-student-enquiries@bristol.ac.uk.
Question 1: You want to address the claim, “ZIP traders generate more profit than ZIC traders in homogeneous and periodic BSE markets with static and symmetric demand and supply curves”.
Using BSE, configure and run a series of experiments and perform a suitable statistical hypothesis test to address this claim. Provide a brief description and motivation of your choices. Present one figure to best summarise your experimental results and interpret and explain your findings.
[15 marks]
Question 2: In Vernon Smith’s seminal 1962 paper, he performed a series of trading experiments.
Each experiment, human participants are divided into buyers and sellers. Buyers and sellers are allocated a card with a reservation price (maximum price to buy; or minimum price to sell) and then asked to trade. When no more trades take place, a new “period” begins. At the start of the new period, buyers and sellers are re-allocated a new reservation card and asked to trade again. The experiment repeats for P periods. Results from one of Smith’s experiments (“Chart 5”) is copied below.
Using BSE, reproduce Smith’s Chart 5 experimental framework as closely as you can, but replace human participants with heterogeneous markets containing approximately equal numbers of ZIP, SHVR, and ZIC trading agents. Describe your experimental configuration. Then show two plots of demand and supply, before and after market shock, with equilibrium price indicated by horizontal dotted line. Finally, plot your trading results in the same style. as Smith, with “transaction prices” on the y-axis and “transaction number (per period)” on the x-axis and dotted lines indicating theoretical equilibrium price and the start/end of each period. Describe how your results compare with Smith’s results. You can re-run your market as many times as you like, but you should only show results from one representative run.
[20 marks]
Smith Chart 5: Reproduced from Vernon Smith (1962), An experimental study of competitive market behaviour, Journal of Political Economy, 70(2), pp. 111-137. (Available online: PDF).
Question 3: BSE includes a Minimal Market Maker MMM01, which has three configuration parameters with default settings: n_past_trades=1, bid_percent=0.5, ask_delta=25.
Your task is to systematically explore MMM01 parameter values to determine a set of robust values that maximise profits. To do this, you should test different vectors of parameter values by configuring a series of BSE experiments with various market conditions, perform enough IID runs to get useful data, and then perform. data analytics, visualisation, and hypothesis testing to draw valid conclusions. Finally, clearly state the three parameter values that you select as your best performing configuration – we will call this best configuration MMM01*.
To achieve a high mark, you should carefully consider the market configurations that you will use to test MMM01 profitability: your configurations should include at least one market that incorporates real pricing data as input to offset supply and demand; and at least one market that does not incorporate real pricing data as input. You should also carefully select the length of simulations that you will run and the number of repeated IID trials, N. Finally, consider which other trader types you will include in the market. You should clearly state your configurations and provide a brief justification of why you have chosen these configurations. When presenting results, you should minimise the number of figures you present – i.e., only include figures that are necessary.
[20 marks]
Question 4: BSE also includes a Minimal Market Maker MMM02, which contains identical code to MMM01. (Code for Trader MMM02 is listed in BSE.py lines 2302-2512: the “respond” method is listed in BSE.py lines 2390-2467.)
Your task is to edit the logic of MMM02 within BSE.py to improve its performance. You should describe your new MMM02 logic and rationale for including this logic. You should then perform a series of BSE experiments to compare the performance of MMM02 against MMM01* (where MMM01* is configured using the best parameter values that you discovered in Question 3). To do this you should perform. enough IID runs to get useful data, and then perform data analytics, visualisation, and hypothesis testing to draw valid conclusions.
[15 marks]