Skip to content

Java Spring Collaborative Project built by Erik van Erp, David Moore, & Coren Frankel

Notifications You must be signed in to change notification settings

coren-frankel/VolatilitySurf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VolatilitySurf

At its core, VolatilitySurf is an open source stock options trading tool. It's a collaborative open source work-in-progress that allows the user to search by ticker for real-time stock option data, and interact with implied volatility surface data visualizations.

Table of Contents

General Information

As fellow students in full stack development at Coding Dojo, collaborators Erik van Erp, David Moore, and Coren Frankel sought to build a first draft for open source volatility surface rendering--financial data visualizations that the exclusive Bloomberg Terminal service dominates. VolatilitySurf is a Java web app project that has evolved to encapsulate the volatility surface namesake with a minimalist ticker search function and real-time stock market options data presented in conventional format and with simple but sleek User Interface.

Technologies Used

  • Java 8
  • Spring Boot - version 2.7.3
  • JavaScript libraries:
    • Plotly.js
    • D3.js
    • jQuery
  • Bootstrap
  • DataTables
  • Mboum Finance API
  • MySQL - version 8.0.28

Features

  • Minimalist home page with form search for stock tickers
  • Real-time stock options data retrieved by user request
  • Loading animation with pseudo-asynchronous progress reporting
  • Error Handling & Validations with flash error messages
  • Upon valid request, hundreds of rows of stock option contracts are retrieved
  • Successful search redirects to conventional stock options display (see Yahoo!+Finance)
  • Options contracts are filtered by expiration and defaults to next impending expiry
  • Tables are delineated and sorted into Calls and Puts
  • DataTables provide table data sorting and other interactivity
  • More on the way! (Rendered implied volatility surfaces coming soon)

Screenshots

MiniDemo Version 0.3 gif

Version 0.3 displays sorted tables by dropdown expiration date and first authentic data visualizations of options contracts in scatterplot form.

MiniDemo Version 0.4 gif

Version 0.4 demonstrates loading progress bar animation and new default table views split by Call and Put options contracts.

Project Status

Project is: 🏗️ in progress

Active Contributors:

Room for Improvement

Room for improvement:

  • The time it takes to successfully retrieve stock options varies from a couple of seconds to around 15-20 seconds depending on the amount of options contracts available for a stock.
  • Provide more seamless access between recently searched tickers
  • Rather than using the implied volatility value given from Mboum API, we intend to calculate our own implied volatility for improved accuracy in the data visualizations.

To do:

  • Determine the missing factors to normalize implied volatility between Call & Put for one surface
  • Isolate ideal filters for outlier data and implement interpolating algorithm for smooth surfaces
  • Compile coordinates for d3/plotly to render as a real volatility surface plots
  • Refactor search mechanism for speed
  • Mimic Yahoo Finance "straddle" table view

Completed:

  • The lag after search initiation is due to the great size of the data being collected and will soon be augmented (i.e. loading animation, asynchronous loading). Currently we are calling and collecting many 100 or 1000 rows of data and immediately retrieving them for display. Thus in version 0.1 our drop down list meant to separate the options by date is unfinished, and the table stretches the page to an unreadable length. (v0.2 - 0.4)
  • Provide data filtering by options expiration date manipulated by drop down (v0.2)
  • Integrate loading animations where necessary (v0.2)

Acknowledgements

  • This project was inspired by a series of conversations between Erik Van Erp and (a colleague) regarding the intriuging calculation and rendering of volatility surface plots as a means to identify opportune stock options trades... In its inception, VolatilitySurf was a demonstration of our collective ability to research, digest, and develop from many points of ignorance (i.e. financial, technical, logistical) to produce a useful and openly available trading tool with a minimalist yet interactive design.
  • This project was partially inspired by:
  • Many thanks to David Moore for his early contributions in researching and applying robust and dynamic data visualizations from the Plotly.js and D3.js libraries.

Contact