stockimulate

A platform for open outcry stock exchange simulations

  View on GitHub

About this page

Stockimulate is a platform for open outcry stock exchange simulation competitions. Initially developed as a undergraduate project at Concordia University to run the 2014 John Molson Stock Exchange (JMSX) competition, the platform has undergone several rounds of improvement for each edition of JMSX and has recently been adopted by Collège Jean-de-Brébeuf to run their very own competition.

The project is now open-sourced on GitHub through the MIT License.

Features

New features and improvements are always in the pipeline. Below is a list of Stockimulate's most useful features.

  • Generic placeholder image
    Real-time Stock Ticker

    The platform features a real-time ticker for each fictitious traded instrument. The ticker includes the current price, the last change as well as the current quarter, day, and market status (open, or closed).

    This page also includes a box for news headlines. Prices, changes, and news are fed to the page and updated dynamically.

  • Generic placeholder image
    Trade Entry Form

    Trades are submitted to into the system through a user-friendly and error-tolerant form. In the context of a competition, this form will be password-protected and accessible only by volunteers who will be in charge of inputing participants' trades. Furtheremore, volunteers can be limited to which instruments they're allowed to process trades for, which is particularly useful if the trading floor is divided into individual trading pits for each instrument.

  • Generic placeholder image
    Profit & Loss Reports

    As part of the competition, teams and players can keep track of their performance by viewing their cumulative P&L reports. The report includes individual P&L as well as team P&L, each segmented into realized and unrealized components for each traded instrument, using the spot price as theoretical exit price.

    The team's average individual P&L is also given for reference purposes since teams are ranked on average P&L in order to factor in teams of different sizes.

    The current position, average open price, and current spot price are also displayed in the report.

  • Generic placeholder image
    Trade Monitoring

    As this is a simulation, it is expected that teams and participants will try to cheat through collusion. Fortunately, the platform features a page where an administrator can search through trades. Trades flagged by the system for having too large of discrepancy between the trade price and spot price at the time of trade will be highlighted in red.

Tech Stack

Stockimulate is implemented as an ASP.NET Core MVC application with a plain-old HTML5, CSS3, and JavaScript front-end, with the unparalelled magic of Bootstrap with Font Awesome glyphs.

The ticker charts are implemented using Chart.js.

Real-time updates are made possible through the use of Pusher.

The platform is designed for hosting on a Microsoft Azure App Service.

The code is hosted on GitHub as a public repository open-sourced with the MIT License.

Debugging was primarily done on Google Chrome but various other browsers were used for testing and compatibility purposes, including Safari, Mozilla Firefox, Microsoft Edge, and Internet Explorer.

Development of the current version was mostly done on Visual Studio Code (I opted for the Insiders build). Although I feel it necessary to also acknowledge Microsoft for their wonderful work on Visual Studio for Mac as well as well as the various earlier versions of Visual Studio without which this project would never have seen the light of day, back when it was powered by ASP.NET Web Forms.

I also took advantage of JetBrains' phenomenal new .NET IDE, Rider as well as the invaluable ReSharper add-on for Visual Studio, all of which were made available through generous trial and student licenses as well as Early Access Previews.

Acknowledgements

Many people have contributed to this project in some shape or form over the years and I'd like to acknowledge them all. I'm sorry if I forgot anyone.

Jessica Falco and George Valergas for their front-end wisdom.

John Akhras, Charles Lachapelle, Jen Paragios, Medrick Santavicca, Alejandro Vivanco, Naji Baydoun, Felix Lebrun and the rest of the folks at FISA for sharing their financial knowledge and getting me involved in this project.

Dr. Terry Fancott at Concordia University for his wonderful support (and the generous A+).

Amine Hadbi for stress testing the living **** out of it and kicking *** at every competition it's been used for.