Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit


BEEM061 Main Assignment Part B Brief

 

Abstract

Your main assignment (80%) must be handed in by Friday 14th January 2022.  It consists of two equally weighted parts:  part A) A 1,500 word essay based on Topic 2; and part B) A technical task-based assignment.  This document outlines your tasks for Part B, which on its own contributes 40% to your overall module grade.  Throughout the following tasks you MUST solve them using Jupyter Notebooks where appropriate, with each line of code stored.   You will submit your assignment as a set of documents with your notebooks stored separately (with the .ipynb extension so that they can be easily ver- ified).  You are welcome to store your own code on your own github repository or elsewhere, but the .ipynb files must be submitted.



1   Explore the Bitcoin Blockchain and Basic

Web Coding

(30 marks)

1.1    Extract Information From Your Own Transaction (15 marks)

At the start of the module you set up Moneybutton accounts, and I sent everyone a micropayment. Use the payment you received to do the following (if you did not participate, please ask other students to help you):

❼ Go to your transaction history and find a way to locate the transaction

on the blockchain. All wallets have a feature for viewing the transaction on the blockchain.  Take a note of which block your transaction is in by taking its block height.

❼ From a Jupyter notebook, extract the following information from the

same block by fetching data from the whatsonchain API.

https://api.whatsonchain.com/v1/bsv/main/block/height/ place block height here

Your notebook should fetch, then print your data in JSON format, and you should obtain the following for the block with your transaction in it:

– txcount

– time

– totalFees

– confirmations

– miner

Include some code that converts the unix timestamp into human read- able format to the nearest second.

Explain what each of these parts of the block are in words.

1.2    Basic Web Coding (15 marks)

Use the Wallet workshop materials as a reference (go to satolearn.com), and construct your own web page that does the following:

1.  Generates a random private key that is not shown on the webpage

2. From the private key, constructs a corresponding public key, and ad- dress

3. From the address, generates an associated QR code for receiving money

Your Wallet does not have to be functional for real (eg hosted on a real server etc).  It does not have to manage keys either (it is fine if it gener- ates a new private key each time it is opened up, that is not stored and/or managed).  It must be submitted as a series of files that generates a local web page from a browser, and contains some use of javascript and CSS to personally style it as well.

 

2   Time Series Investigation of Bitcoin Price (45 marks)

You are working for a FinTech firm that provides customers with real time financial data and analysis.  Part of the marketing strategy for this firm is providing a regular newsletter via a blog discussing current issues for personal portfolio management. Your boss has asked you to investigate the idea that Bitcoin is mostly viewed as a store of value.  To provide the background to this report, you are required to carry out the following (the following ignores the risk free rate, given how low and stable it has been):

2.1    Obtain Time Series Data (5 marks)

Obtain the following data by calling the FRED api from a Jupyter notebook, and provide simple time series plots of the raw data:

1. BTC Bitcoin Price in US Dollars CBBTCUSD

2.  Gold Price (including gold plated with platinum), unwrought ID7108

3.  S&P500 (index measure of the overall US stock market) SP500

You may find it helpful to label them in your Python code as the following:

1.  bitcoinprice

2. goldprice

3. market

2.2    Data Transformations (10 marks)

❼ Conduct your analysis from January 2016 to as recent as possible 

❼ Transform series 1 and 3 from daily to monthly data 

❼ Then, for series 1-3, you need to transform monthly price observations

into monthly returns by obtaining new series:

where xt  is the value of a variable for a particular observation and xt − l is its value 1 month before.

To convert the series 3 annualised percentages to monthly simply divide this series by 12. You now have 4 transformed series which we will label as follows:

1. rbt

2. rgt

3. rmt

2.3    Data Analysis(30 marks)

What is the correlation between:

1. Bitcoin Returns rbt  and Gold Returns rgt

2. Bitcoin Returns rbt  and Market Returns rmt

Interpret these results by comparing the view that Bitcoin is an alterna- tive to gold to the view that Bitcoin is a new form of high-risk high-return asset.

According to the assumptions behind the strict form of CAPM theory, equations of the following form should fully explain returns to holding any particular asset, here for bitcoin and gold:

where ubt  and ugt  are idiosyncratic unpredictable error terms associated with Bitcoin and Gold respectively. According to the strict form of CAPM, α should be zero, and β provides a systematic measure of how high up the risk/return trade-off the asset is.  Estimate α and β for Bitcoin and Gold using OLS regression, and interpret the results.


3   Machine Learning in Practice (25 marks)

The background to this section is found at this repository: https://github.com/Sarunas- Girdenas/fintech presentation. A recording of this session with full subtitles                can also be found on ele under the ’TOPIC 4 AI and Machine Learning for                FinTech’.  Sarunas is also happy to answer any questions you may have via

his email address here: [email protected]

3.1    High Level Description of FinTech Firm (10 marks)

Provide a written description of Sarunas’ FinTech firm in words.  You are not expected to explain technical parts in depth, but provide a mechanical description of what each of the four structural parts do, how they interact, and what they achieve overall. 

3.2   Written Description of Python Code (5 marks)

Reproduce Sarunas’ model (saved under model building.ipynb) within your own Jupyter notebook. To do this you will have to download the large dataset from Kaggle following Sarunas’ instructions. This data will need to be saved in your active Jupyter notebook directory. Once you have reproduced it with the same results, using cell markdown, choose 5 lines of the code and include brief verbal descriptions of what those lines perform.  Finally, save this as your own Jupyter notebook and include this in your submission.   Do not submit the dataset, only the code and results.

3.3    Build your own Machine Learning Model(10 marks)

Choose your own dataset and machine learning model to produce predictions. You may use the same Kaggle dataset as Sarunas used, or choose your own, and we suggest making use of one of the machine learning algorithms offered by the Sckit library. This section is open ended, for you to explore what you want but it must be within the realm of prediction using financial data.