Coursework: Trading and Fintech Module 3356 (2025)
Submission Deadline: 30th April 2025
Total Marks: 100.
Late Submissions:
You must apply for extenuating circumstances through UniHub if you require an extension. Late submissions without approved extenuating circumstances will not be accepted.
Submission Instructions:
• Compile all your answers into a single .zip file.
• Upload the .zip file to the Turnitin box in the Assessment and Feedback folder on your UniHub account.
• Important: Coursework submitted via email will not be graded.
• The Word file cannot be longer than 10 pages
Code Requirements:
• All code must run properly. Codes that fail to execute correctly will not be evaluated.
• It is essential to use and modify the provided code templates. Rewriting code from scratch is not permitted.
Assistance and Support:
• The lecturer cannot assist with coding issues, platform-related problems, or syntax errors.
• Support is available only for interpreting the coursework questions.
• There will be at least two q&a sessions dedicated to the coursework Academic Integrity:
• If your answers are very similar to other students’ work or there is a legitimate
suspicion that your work is AI-generated , your coursework will be submitted for Academic Misconduct review.
Additional Notes:
• Ensure that all required components are included in your submission.
• Check your work for spelling, grammar, and formatting before submission.
• Video: Record a video using any desktop recording application of your choice. In the video, describe your answers to each question, focusing more on your comments and explanations, and less on the actual C code. The total length of the video should not exceed 10 minutes.
You may allocate your time proportionally based on the marks for each question. For example, if Question 4 is worth 40 marks, you might spend approximately 4 minutes on it, and only 1 minute on Question 1 if it’s worth 10 marks. However, you do not need to follow this strictly—use your judgment.
Make sure your screen and face are clearly visible. Your face can appear in a smaller window in the corner of the video, but it must be large enough to confirm your identity.
Question 1: Compare the Market and Model Price of a Stock Option (10 points)
• Select Two Stocks
o Choose any two stocks from the S&P 500.
o From Yahoo Finance, find the market prices of either a call or a put option for each selected stock.
o Choose options with an expiration date between 30 and 180 days and a strike price of your choice.
• Document the Market Prices
o Take a screenshot showing the option’s price, the stock’s name, and the
expiration date. Ensure these details are clearly visible, copy and paste it in a Jupiter notebook cell.
• Monte Carlo Simulation (with Control Variates)
o Modify one of the Monte Carlo pricing codes provided during class to price one of the chosen options.
o Requirements:
Price the selected option using a Monte Carlo simulation with control variates.
The standard error of the simulation must be below 0.1. (This may require a high number of simulation paths.)
Print out the difference between your model’s calculated price and the market price.
Use an interest rate of 4% in your model.
Comment each block of code to explain what it does.
Include only the essential code necessary for pricing. Remove any extra code.
If there is a substantial difference (e.g., your model returns $10 while the market price is $50), recheck parameters.
• Remember to include:
The screenshot of the option details (price, stock name, expiration date).
o All the necessary Print statements and screenshots in your code.
o Your answer in a file “question1.ipynb” and ensure it runs without errors.
Question 2: Jump Diffusion Pricing Models (10 points)
• Select One Stock and Corresponding Option
o Pick one stock from the S&P 500.
o From Yahoo Finance, obtain the price of either a call or a put option with an expiration date between 30 and 180 days. Choose any strike price you prefer.
• Model Calibration
o Using the Jump Diffusion model code provided in class, ensure the model is correctly calibrated (i.e., parameters such as jump intensity, volatility, etc., are sensible).
• Monte Carlo or Closed-Form. Solution
o You may either use the Monte Carlo version of the jump-diffusion model or the closed-form. solution but remove any irrelevant code to keep it concise.
• Comparison with Market Price
o Print the difference between the model’s calculated option price and the market price.
o Include a screenshot clearly showing the option’s market price, the stock name, and the expiration date.
• Remember to include:
o Your answer in a Jupyter Notebook as “question2.ipynb.”
o All the necessary Print statements and screenshots in your code.
o Ensure the notebook is well commented and that it runs correctly.
Question 3: Build a Momentum Investment Strategy (30 points)
In this question, you will design and implement a momentum-based investment strategy using one of the code templates provided in class. You will illustrate the economic rationale behind momentum investing, optimize your chosen methodology, and evaluate its performance in both in-sample and out-of-sample periods.
• Base Code Requirement
o Your code must be based on one of the provided templates from the
lectures. You can merge codes together, or modify them , but you must comment on each modification.
o Any strategy built using completely different code, or code from an LLM, will not be accepted.
• Code Quality
o The code must be well commented and free of unnecessary parts.
• Strategy
o In a separate Word document, describe your momentum strategy in detail, including the real economic rationale explaining why it can be effective in the market.
o Discuss the strategy’s performance, highlighting its pros and cons, and clarify why your chosen momentum approach is preferable to other variations you considered.
o For example, if you choose to buy stocks that had the best returns over the last three months, compare that rule to a different momentum criterion
(e.g., a 6-month look-back) using at least in-sample data to illustrate why your rule appears more effective.
• Parameter Optimization
o Show the steps of your optimization process.
o While a brute force approach is not recommended, demonstrate that your
chosen parameters perform better than at least a few significantly different parameter choices (e.g., moving average of 100 days vs. 200, 20, or 50 days).
• Backtesting
o Perform. an in-sample and out-of-sample backtest.
o Your entire backtest should cover at least 15 years ending on March 1, 2025.
o The out-of-sample period should be the last 3 years (2022-2025).
o Compare the strategy’s performance (returns, risk) in-sample vs. out-of- sample and comment on stability or instability.
o The profitability and risk profile of your strategy will impact the evaluation.
• Results and Presentation
o Include a Word document with the strategy description, with all the required screenshots.
o Show results in either Excel or Python (you can create additional code if desired).
o Include screenshots of charts demonstrating performance, parameter optimization, and any relevant findings.
o Save your final notebook as instructed (e.g., “question3.ipynb”) and your Word file separately.
Question 4: Develop Two Profitable Technical Analysis Strategies (50 points) Create two distinct profitable trading strategies based on technical analysis rules.
• Allowed Positions
o Each strategy may trade long, short, or both.
• Initial Capital and Trades
o Start with an initial account size of $100,000.
o Make at least 10 trades per year.
• Backtesting Framework
o Use the same Python library we employed in class for the backtest. Strategies using a different library will not be accepted.
o The backtest should span 10 years minimum (in total), but not more than 20 years.
o Split your test into in-sample and out-of-sample (the last 3 years as out-of- sample).
o A profitable strategy is essential. Achieving stability out of sample is a higher standard but not mandatory for passing the question.
o Ensure the implemented code matches the strategy description exactly.
• Originality and Simplicity
o Your strategies must not be identical to those demonstrated in class. Copying and pasting code provided during lectures is not permitted as an answer.
However, you may use the provided code as inspiration to develop and build your own unique strategy..
o You are encouraged to use new technical indicators not already in the lecture materials.
o If two strategies have similar results, the simpler strategy (fewer rules and parameters) is preferred.
• Visual Verification
o Include at least two screenshots of Barcharts (with relevant indicators/entry- exit signals) for each strategy to illustrate how and when trades are triggered. This totals four screenshots across both strategies.
• Results and Presentation
o Provide a thorough description of each strategy and commentary on its performance in a Word file, the same used to answer question 3.
o Each strategy can be in its own code or combined if clearly separated.
o Make sure all code is well commented and runs without errors.