Quantum Volatility Classifier

Quantum Volatility Classifier

where we are and what our next steps are

Data Curation

Sources:
- Twitter (sentiment data)
- CoinGecko (market data)


TODO:

- pick a twitter historical api

- aggregate crypto-asset market data (price, market cap) since 01-01-2014  in src/data_curation/market-collection.py

- select a basket of crypto-assets for our universe (must have consistent coinGecko data)

- aggregate tweets mentioning assets of our universe. Save the timestamp, tweet, and number of likes (to be used as weights) in src/data_curation/sentiment-collection.py

Relevance Filtering

- Does a tweet mention an asset we care about?


TODO

- Implement in /src/data-curation/relevance-filter.py

- Test implementation

finBERT

- Bidirectional Encoder Representations from Transformers, BERT is an NLP model developed by google and published in 2018

- uses transformers rather than RNNs (easy to parallelize)

-  only nlp system to score higher than a human on SQuAD

- FinBERT is just a BERT model pre-trained on financial data

- https://arxiv.org/pdf/1810.04805.pdf

- ./src/finBERT

TODO:

- make calls to finBERT and feed data in experiment.ipynb

Fractional Differentiation

- stationarity vs memory as a dilemma

- Chapter 5 afml

- ./src/data-curation/frac-diff.py


TODO:

- test adf test

- test frac-diff algorithm

- create driver functions that calls these functions and propagates data in experiment.ipynb

Conversion to Information-Driven Bars

- The fallacy of time-dependent observation periods

- Volume and Dollar bars as a solution

- afml chapter 2

- ./src/data-curation/information-bars.py


TODO

- test volume bars
- test dollar bars
- add calls to experiment.ipynb and propogate data

Observation Consolidation

- grouping of sentiment and market data into one vector to feed into k-means 

- observation period based off information bars

TODO

- implement consolidation function in experiment.ipynb, writing new observations into a csv file to be consumed by k-means

- test implementation

Classical Classification

- K-means 

- unsupervised, grouping not labeling

- src/classical-model/classifier.py

TODO

- figure out what x is (see note in source)

- test k-means algorithm


Quantum Classification

- Quantum Analogue to K-means

- experimental variable in our research

- can we achieve faster or more accurate classification?
 
- https://kth.diva-portal.org/smash/get/diva2:1381305/FULLTEXT01.pdf


TODO

- choose a variation and implement in src/quantum-model/classifier.py

- test the implementation

- call in experiment.ipynb and write classifications to a csv

Performance Measurement

- Yhang-Zhang Historical Volatility

- a historical volatility estimator that handles both opening jumps and the drift and has a minimum estimation error.

 - https://www.atmif.com/papers/range.pdf

- /src/volatility/yhang-zhang.ipynb


TODO

- test implementation

- make calls in experiment.ipynb to calculate historical volatility for consolidated observations

- compare and contrast statistical correlation of yhang zhang volatility with classifications

Paper Sections

- Abstract
- Introduction (where is quantum, why is this important, what do we aim to show )
- Problem (whats the context of the application, what assumptions do we have)
- Related Work (20 papers minimum)
- Method
  - Data Curation
  - Relevance Filtering
  - finBERT
  - Fractional Differentiation
  - Information-Driven Bars
  - Observation Consolidation
     - Tuning Data Weights
  - K-means
  - Quantum K-means 
  - yhang-zhang volatility estimator
- Results
- Limitations
- Conclusion