All Projects → OscarJHernandez → qc_portfolio_optimization

OscarJHernandez / qc_portfolio_optimization

Licence: Apache-2.0 license
A program that implements the portfolio optimization experiments using a hybrid quantum computing algorithm from arXiv:1911.05296. The code was developed as part of the 2020 Quantum mentorship program. Many thanks to my mentor Guoming Wang from Zapata Computing!

Programming Languages

python
139335 projects - #7 most used programming language
Jupyter Notebook
11667 projects
javascript
184084 projects - #8 most used programming language
C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
XSLT
1337 projects

Projects that are alternatives of or similar to qc portfolio optimization

Learnquantum
Repo of resources to help learn about quantum computing.
Stars: ✭ 143 (+580.95%)
Mutual labels:  quantum, quantum-computing
Q
Quantum Computation Simulator written in golang
Stars: ✭ 99 (+371.43%)
Mutual labels:  quantum, quantum-computing
Qrack
Comprehensive, GPU accelerated framework for developing universal virtual quantum processors
Stars: ✭ 79 (+276.19%)
Mutual labels:  quantum, quantum-computing
Q.js
Quantum computing in your browser.
Stars: ✭ 158 (+652.38%)
Mutual labels:  quantum, quantum-computing
Quantum Nc
Microsoft Quantum Computing Libraries for noncommercial use
Stars: ✭ 126 (+500%)
Mutual labels:  quantum, quantum-computing
Quantum Benchmarks
benchmarking quantum circuit emulators for your daily research usage
Stars: ✭ 70 (+233.33%)
Mutual labels:  quantum, quantum-computing
Quantum Learning
This repository contains the source code used to produce the results presented in the paper "Machine learning method for state preparation and gate synthesis on photonic quantum computers".
Stars: ✭ 89 (+323.81%)
Mutual labels:  quantum, quantum-computing
Pennylane
PennyLane is a cross-platform Python library for differentiable programming of quantum computers. Train a quantum computer the same way as a neural network.
Stars: ✭ 800 (+3709.52%)
Mutual labels:  quantum, quantum-computing
Teach Me Quantum
⚛ 10 week Practical Course on Quantum Information Science and Quantum Computing - with Qiskit and IBMQX
Stars: ✭ 118 (+461.9%)
Mutual labels:  quantum, quantum-computing
Qmlt
The Quantum Machine Learning Toolbox (QMLT) is a Strawberry Fields application that simplifies the optimization of variational quantum circuits (also known as parametrized quantum circuits).
Stars: ✭ 106 (+404.76%)
Mutual labels:  quantum, quantum-computing
Quimb
A python library for quantum information and many-body calculations including tensor networks.
Stars: ✭ 170 (+709.52%)
Mutual labels:  quantum, quantum-computing
Quantum Neural Networks
This repository contains the source code used to produce the results presented in the paper "Continuous-variable quantum neural networks". Due to subsequent interface upgrades, these scripts will work only with Strawberry Fields version <= 0.10.0.
Stars: ✭ 207 (+885.71%)
Mutual labels:  quantum, quantum-computing
Qpga
Simulations of photonic quantum programmable gate arrays
Stars: ✭ 68 (+223.81%)
Mutual labels:  quantum, quantum-computing
Quantum Circuit
Quantum Circuit Simulator implemented in JavaScript
Stars: ✭ 157 (+647.62%)
Mutual labels:  quantum, quantum-computing
Qutip
QuTiP: Quantum Toolbox in Python
Stars: ✭ 985 (+4590.48%)
Mutual labels:  quantum, quantum-computing
Pyepr
Powerful, automated analysis and design of quantum microwave chips & devices [Energy-Participation Ratio and more]
Stars: ✭ 81 (+285.71%)
Mutual labels:  quantum, quantum-computing
Quantumcomputingbook
Companion site for the textbook Quantum Computing: An Applied Approach
Stars: ✭ 386 (+1738.1%)
Mutual labels:  quantum, quantum-computing
Strawberryfields
Strawberry Fields is a full-stack Python library for designing, simulating, and optimizing continuous variable (CV) quantum optical circuits.
Stars: ✭ 505 (+2304.76%)
Mutual labels:  quantum, quantum-computing
Awesome Quantum Computing
A curated list of awesome quantum computing learning and developing resources.
Stars: ✭ 1,350 (+6328.57%)
Mutual labels:  quantum, quantum-computing
Qpanda 2
QPanda 2 is an open source quantum computing framework developed by OriginQC that can be used to build, run, and optimize quantum algorithms.
Stars: ✭ 128 (+509.52%)
Mutual labels:  quantum, quantum-computing

drawing

A variational Quantum algorithm for portfolio optimization and rebalancing

Open In Colab Build Status

This project was carried out with support from Zorc Finance by Oscar Javier Hernandez for research and development purposes as well as being part of the Quantum open-source foundations mentorship program for 2020. Many thanks to my mentor Guoming Wang!

Create a new virtual environment

python3 -m venv /path/to/new/virtual/environment

After installing the virtual environment locally, run the following command to install the environment requirements

python -m pip install --upgrade pip pip install -r requirements.txt

Activate environment

$ source env/bin/activate

In order to deactivate the environment

$ deactivate

Add the virtual environment to the jupyter notebook Kernel

pip install ipykernel ipython kernel install --user --name=projectname

About

The Quantum open source foundation (qosf) offers a quantum mentorship program that allows newcomers to the field to work on an open source project with the support of an expert. I applied and was selected to participate in this program in 2020 with the support of my mentor Guoming Wang. The project allowed me to learn more about quantum computing and to implement an algorithm that had previously not been released as an open source code. This work was also carried out for research and developement purposes for Zorc Finance.

drawing

Project

The topic that was selected for this project was to implement the portfolio optimization problem as defined arXiv:1911.05296 who solve the portfolio rebalancing optimization problem using both soft and hard constraints. We use different optimization methods to determine the optimal angles for the quantum circuits. In particular, I implemented the cross-entropy method for optimizing the angles that has also been used in arXiv:2003.05292 to determine the best penalty-scaling hyperparameters.

Blog article

To learn more about the project, you can find more details here

Optimized portfolios with variational quantum algorithms

Notebooks

The following notebooks are included in this repository

Quantum portfolio optimization notebook

  • Contains the main contributions of this project. Shows how to use the QAOA algorithm to optimize an N-stock portfolio.

Cross entropy optimization explanation notebook

  • Provides an explanation of the cross-entropy optimization method and applies it to a simple problem.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].