Inspiration
Quantum computing has many far reaching applications, most notably in finance. Classical simulations for stock and option pricing can be computationally expensive, so this project explores how quantum random walks could accurately simulate real-world scenarios at a faster rate.
What it does
This Python script simulates the time evolution of a stock price using a quantum random walk. Based on the simulated stock prices, it calculates put and call option values using the Black-Scholes model. Finally, the stock and option values are visualized using graphs.
How we built it
I leveraged the inherent randomness of quantum measurements by using a qubit as a “quantum coin.” A measurement of 0 corresponds to the stock price rising, and 1 corresponds to it falling, creating a quantum random walk. The qubit is initialized in the |0⟩ state and rotated around the Y-axis of the Bloch sphere to create a biased superposition. After measurement (simulated using qiskit’s Aer simulator), the stock price is updated following a Brownian motion model (which incorporates the measurement of 0 or 1 aligning with a rise or fall), and the corresponding put and call values are calculated. The quantum_walk function returns three lists: stock prices, put option values, and call option values over time, which are then graphed.
Challenges we ran into
This is my first time ever interacting with quantum computing in general, so the learning curve for the theory behind quantum computing was pretty steep. Otherwise, another challenge was choosing appropriate models for stock price and put and call values.
Accomplishments that we're proud of
I'm proud of producing a functioning (although quite crude) stock price and put and call option simulator based on quantum computing, providing a solid foundation for more advanced simulation.
What we learned
Throughout this project I became very familiar with different qiskit modules and their functionality, as well as learning how to map classical challenges into the quantum realm.
What's next for Quantum Random Walk for Put and Call Options
Since currently my code doesn't offer that much of an advantage over a classical counterpart, the next step would be to implement the simulation of multiple stock paths in superposition before measurement, rather then measuring after each iteration. I tried to construct this method, but could not make it work within the allocated time frame. This method would provide a quantum advantage leading to an exponential speed up. Furthermore, during my exploration of the qiskit documentation database, I discovered a variety of pre-built quantum circuits that could be employed in this scenario (notably the 'EuropeanCallPricing' circuit in the qiskit-finance module), which I can test my model against.
Log in or sign up for Devpost to join the conversation.