Skip to content

Instantly share code, notes, and snippets.

@sherrytp
Last active October 27, 2025 15:25
Show Gist options
  • Save sherrytp/58e0fdd4cfea1cba5dd4fd7aa168a322 to your computer and use it in GitHub Desktop.
Save sherrytp/58e0fdd4cfea1cba5dd4fd7aa168a322 to your computer and use it in GitHub Desktop.

Revisions

  1. sherrytp revised this gist Jun 27, 2023. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion Awesome_CSVideos.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,5 @@
    # Computer Science courses with video lectures

    [https://github.com/Developer-Y/cs-video-courses/master/README.md](https://github.com/Developer-Y/cs-video-courses)
    ## Introduction

    - Please check [NOTES](https://github.com/Developer-Y/cs-video-courses/blob/master/NOTES.md) for general information about this list.
  2. sherrytp revised this gist Jun 27, 2023. 1 changed file with 1056 additions and 0 deletions.
    1,056 changes: 1,056 additions & 0 deletions Awesome_CSVideos.md
    1,056 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
  3. sherrytp revised this gist Jun 26, 2023. 3 changed files with 1011 additions and 0 deletions.
    1,011 changes: 1,011 additions & 0 deletions Awesome_CS.md
    1,011 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
    File renamed without changes.
    File renamed without changes.
  4. sherrytp revised this gist Jun 26, 2023. 1 changed file with 62 additions and 0 deletions.
    62 changes: 62 additions & 0 deletions quantopian.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,62 @@
    ## Migrate Quantopian Environment into a Local Zipline Environment - Something to try

    **For Fundamentals data**

    1. Register on Quandl and find your API Access Key. You would also need a subscription to the Sharadar/SF1 dataset (~$30/month).
    2. Clone or download the following [repo](https://github.com/pbharrin/alpha-compiler). Install the libraries quandl, zipline into a new environment with Python 2.X.

    `$ conda create --name env_alphacompile python=2.7`

    `$ conda activate env_alphacompile`
    1. Navigate to where you unzipped the file, and launch setup.py. Then, open up load_quandl_sf1.py in *..\envs\env_alphacompile\Lib\site-packages\alphacompiler\data*
    2. Append your API Key somewhere at the top as an environment variable with

    `os.environ['QUANDL_API_KEY'] = 'abc' # Put your API key here`
    3. Add a start_date you would like to query from, and change the bottom lines of code into the following. Then, modify the fields list with the fundamental data you need. See the Quandl dataset documentation for values.
    ```
    if __name__ == '__main__':
    BUNDLE_NAME = 'quantopian-quandl'
    fields = [] # List of your fields you want to query
    num_tickers = all_tickers_for_bundle(fields, BUNDLE_NAME)
    tot_tickers = num_tkrs_in_bundle(BUNDLE_NAME)
    pack_sparse_data(tot_tickers + 1, # number of tickers in bundle + 1
    os.path.join(BASE,RAW_FLDR),
    fields,
    os.path.join(BASE,FN))
    ```
    4. Open `.\alpha-compiler-master\alpha-compiler-master\alphacompiler\util\sparse_data.py`. Under `init()`, change
    `self.data_path='SF1.npy'`. Under `pack_sparse_data()`, replace the df statement with:
    ```
    dateparse = (lambda x: pd.datetime.strptime(x, '%Y-%m-%d'))
    df = pd.read_csv(os.path.join(rawpath,fn),
    index_col="Date",
    parse_dates=['Date'],
    date_parser=dateparse
    )
    ```
    5. Launch `load_quandl_sf1.py` . This will start fetching data via API calls and would take some time.
    ```$ cd .\alpha-compiler-master\alpha-compiler-master\alphacompiler\data
    $ python load_quandl_sf1.py
    ```
    6. Open `sf1_fundamentals.py` and change the fields to the same as in a previous step. Copy and paste the whole alpha_compiler folder with the processed dataset into `env_zipline\Lib\site_packages` (Python 3 is fine).
    7. Reactivate the env_zipline environment
    8. If everything has worked as they should, import the library and Fundamentals should be accessible.
    ```
    from alphacompiler.data.sf1_fundamentals import Fundamentals
    fd = Fundamentals()
    # Replace all calls to Fundamentals with fd
    # Example: fd.capex
    ```
    Make sure you update the fundamentals references in your algorithm (i.e. PE_RATIO) with the same names used in fields in load_quandl_sf1.py. If fundamentals are used in a CustomFactor, make sure to manually specify they are window safe.
    ```
    class MyFactor(CustomFactor):
    inputs = [fd.currentratio]
    window_length=1
    fd.currentratio.window_safe = True
    def compute(self,today,assets,out,value):
    out[:] = # Do something
    ```
    Note: There are certain proprietary Q features such as the universe filter QTradableStocksUS, Risk Model, and Optimize API. You could attempt to replicate this locally, but otherwise I would recommend only moving the Research component locally to develop your model before feeding its outputs back on Q for the actual backtesting.
  5. sherrytp revised this gist Jun 26, 2023. 2 changed files with 69 additions and 0 deletions.
    69 changes: 69 additions & 0 deletions Plotly_Dash.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,69 @@
    ## Plotly Dash Tutorials
    - [Introducing Plotly Dash](https://medium.com/@plotlygraphs/introducing-dash-5ecf7191b503) - A high level introduction to Dash by Chris Parmer, the author of Dash. This essay was released as part of Dash's official launch (June 21, 2017).
    - [Plotly's tutorials - Part 1: App Layout](https://plot.ly/dash/getting-started)
    - [Plotly's tutorials - Part 2: Interactivity](https://plot.ly/dash/getting-started-part-2)
    - [Plotly's tutorials - Part 3: Interactive Graphing](https://plot.ly/dash/interactive-graphing)
    - [Plotly's tutorials - Part 4: Callbacks With State](https://plot.ly/dash/state)
    - [Interactive Web-Based Dashboards in Python](https://alysivji.github.io/reactive-dashboards-with-dash.html) - How the MVC model pertains to Dash and a walkthrough of building an app.
    - [Using Plotly’s Dash to deliver public sector decision support dashboards](https://medium.com/a-r-g-o/using-plotlys-dash-to-deliver-public-sector-decision-support-dashboards-ac863fa829fb) - Buiding a complex dashboard step-by-step.
    - [OPS CodeDay: Dash Plotly Map + Graph](https://radumas.info/blog/tutorial/2017/08/10/codeday.html) - How to use Jupyter notebooks in tandom with Dash to create mapping viz.
    - [Creating Interactive Visualizations with Plotly’s Dash Framework](http://pbpython.com/plotly-dash-intro.html) - High level overview of how to get started with Dash.
    - [Finding Bigfoot with Dash, Part 1](https://timothyrenner.github.io/datascience/2017/08/08/finding-bigfoot-with-dash-part-1.html) - Walkthrough of building a dashboard of Bigfoot sightings. [Part 2](https://timothyrenner.github.io/datascience/2017/08/09/finding-bigfoot-with-dash-part-2.html), [Part 3](https://timothyrenner.github.io/datascience/2017/08/10/finding-bigfoot-with-dash-part-3.html).
    - [Visualize Earthquakes with Plotly Dash](https://www.giacomodebidda.com/visualize-earthquakes-with-plotly-dash/) - Environmental scan of alternatives to Dash followed with a tutorial.
    - [ARGO Labs - Plotly Dash Tutorial (Video)](https://www.youtube.com/watch?v=yfWJXkySfe0) - Detailed introduction to creating interactive dashboards.
    - [Data Visualization GUIs with Dash and Python (Video playlist)](https://www.youtube.com/watch?v=J_Cy_QjG6NE&list=PLQVvvaa0QuDfsGImWNt1eUEveHOepkjqt) - Five-part series exploring Dash features.
    - [Interactive Visualization of Machine Learning and Computer Vision with Dash](https://www.youtube.com/watch?v=3F5AR-uUqJc) - Official introduction video.
    - [Webinar: Converting React components to Dash components](https://www.youtube.com/watch?v=wifoPPRgG_I) - Official tutorial about how to convert React components to Dash components using the Dash Component Boilerplate cookiecutter template.
    - [Interactive Image Processing with Dash-Canvas](https://www.youtube.com/watch?v=LKXSFBB5ccI) - Official introduction video to the Dash Canvas components.
    - [Dash Cytoscape Component](https://www.youtube.com/watch?v=snXcIsCMQgk) - Official introduction video to the Dash Cytoscape components.
    - [An introduction to Dash DataTable](https://www.youtube.com/watch?v=dueejcyrYh8) - Official introduction video to the Dash DataTable components.

    ## Component Libraries
    - [Tutorial on creating custom Dash components with React.js.](https://plot.ly/dash/plugins)
    - [Dash Bio Components](https://dash.plot.ly/dash-bio) - Suite of bioinformatics components that make it simpler to analyze and visualize bioinformatics data and interact with them in a Dash application.
    - [Dash Canvas Components](https://dash.plot.ly/canvas) - Module for image annotation and image processing using Dash.
    - [Awesome React Components](https://github.com/brillout/awesome-react-components) - Catalog of React.js components potentially interesting to be wrapped into Dash components.
    - [Awesome React](https://github.com/enaqx/awesome-react) - Helpful resources for developing React.js components.
    - [Dash Core Components](https://github.com/plotly/dash-core-components)
    - [Dash Cytoscape Component](https://dash.plot.ly/cytoscape) - Graph visualization component for creating easily customizable, high-performance, interactive, and web-based networks.
    - [Dash DataTable Component](https://dash.plot.ly/datatable) - Interactive table that supports rich styling, conditional formatting, editing, sorting, filtering, and more.
    - [Dash DAQ Components](https://dash.plot.ly/dash-daq) - Set of controls that make it simpler to integrate data acquisition and controls into your Dash applications.
    - [Dash ECharts Components](https://github.com/mergeforward/dash_echarts) - ECharts(V5) Components for Dash.
    - [Dash HTML Components](https://github.com/plotly/dash-html-components)
    - [mydcc](https://github.com/jimmybow/mydcc) - Extension of Dash Core Components.
    - [sd-material-ui](https://github.com/StratoDem/sd-material-ui) - StratoDem Analytics implementations of material-ui components for Dash.
    - [sd-range-slider](https://github.com/StratoDem/sd-range-slider) - Range Slider Dash component.
    - [dj-plotly-dash](https://github.com/pikhovkin/dj-plotly-dash) - Plotly Dash fork for Django.
    - [dash-flexbox-grid](https://github.com/pikhovkin/dash-flexbox-grid) - Wrapper around react-flexbox-grid for Plotly Dash.
    - [dash-color-picker](https://github.com/vivekvs1/dash-color-picker) - Wrapper around react-color.
    - [dash-dual-listbox](https://github.com/vivekvs1/dash-dual-listbox) - Wrapper around react-duallist.
    - [dash-bootstrap-components](https://dash-bootstrap-components.opensource.asidatascience.com/) - Layout engine, default styles and high-level components based on Bootstrap.
    - [dash-uploader](https://github.com/np-8/dash-uploader) - Upload component for Dash. Supports large data files.

    ## App Examples
    - [Oil and Gas Explorer](https://plot.ly/dash/gallery/new-york-oil-and-gas/) - Explore oil and gas production over time and with linked visualisations. [Source Code.](https://github.com/plotly/dash-oil-and-gas-demo)
    - [Uber Rides](https://plot.ly/dash/gallery/uber-rides/) - Displays all of the Uber rides in New York City in 2014. Pandas on the backend filters a 0.5gig datafile. [Source Code.](https://github.com/plotly/dash-uber-rides-demo)
    - [Simple Stock Tickers](https://plot.ly/dash/gallery/stock-tickers/) - Queries data from Google Finance and displays the results as candlestick charts. [Source Code.](https://github.com/plotly/dash-stock-tickers-demo-app)
    - [Volatility Surface Explorer](https://plot.ly/dash/gallery/volatility-surface) - Fetches CBOE options chain data from Yahoo Finance with Pandas Datareader and calculates the implied volatility of each option visualised in a 3D mesh chart. [Source Code.](https://github.com/plotly/dash-volatility-surface)
    - [Drug Discovery](https://plot.ly/dash/gallery/drug-explorer/) - Displays a description of the drug as you hover over points in the graph. [Source Code.](https://github.com/plotly/dash-drug-discovery-demo/)
    - [Live Wind Streaming](https://plot.ly/dash/gallery/live-wind-data/) - Continually queries a SQL database and displays live charts of wind speed and wind direction. [Source Code.](https://github.com/plotly/dash-wind-streaming)
    - [Recession in 255 Charts](https://plot.ly/dash/gallery/recession-report/) - Adapted from NYTimes's excellent [How the Recession Reshaped the Economy in 255 Charts](https://www.nytimes.com/interactive/2014/06/05/upshot/how-the-recession-reshaped-the-economy-in-255-charts.html). [Source Code.](https://github.com/plotly/dash-recession-report-demo)
    - [3D Yield Curve](https://plot.ly/dash/gallery/yield-curve/) - Adapted from NYTimes's excellent [A 3-D View of a Chart That Predicts The Economic Future: The Yield Curve](https://www.nytimes.com/interactive/2015/03/19/upshot/3d-yield-curve-economic-growth.html). [Source Code.](https://github.com/plotly/dash-yield-curve)
    - [Finding Bigfoot](https://bigfoot-sightings-dash.herokuapp.com/) - Several plots (including a map), a grid layout built with Bootstrap, interactions with an input field, and caching (See also [Tutorials](#tutorials)). [Source Code.](https://github.com/timothyrenner/bigfoot-dash-app)
    - [Visualize Earthquakes with Plotly Dash](https://belle-croissant-54211.herokuapp.com/) - Great UI and usage of geospatial analytics with Dash. Includes [basic unit tests](https://github.com/jackdbd/dash-earthquakes/tree/master/tests). [Source Code.](https://github.com/jackdbd/dash-earthquakes)
    - [Street Quality IDentification [SQUID]](https://squid-syracuse.herokuapp.com/) - Highlights poor quality roads with maps, data table and photos of the offending piece of road. [Source Code.](https://github.com/amyoshino/SQUID-Syracuse-Dashboard)
    - [VoxelViz](http://lukas-snoek.com/voxelviz) - Competition winning Visualization tool for (f)MRI data-sets. [Source Code.](https://github.com/lukassnoek/VoxelViz)
    - [Traffic Accidents UK](https://traffic-accidents-uk.herokuapp.com/) - Explore the 140,008 traffic accidents in the UK in 2015. [Source Code.](https://github.com/richard-muir/uk-car-accidents)
    - [New York Taxi Rides](https://dash.vaex.io/) - A full year of the YellowCab Taxi company data from their prime, numbering well over 100 million trips. Dash + Vaex dataframe with over a 100 million rows. [Source Code.](https://github.com/vaexio/dash-120million-taxi-app)
    - [GutenSearch](https://gutensearch.com/) - Look inside the books of Project Gutenberg. [Source Code.](https://github.com/cordb/gutensearch)

    ## Idiomatic examples
    - [Dash recipes](https://github.com/plotly/dash-recipes) - A collection of scripts and examples created of the plotly team while answering questions from the greater Dash community.

    ## Galleries
    - [Plotly App Gallery](https://plot.ly/dash/gallery) - Plotly's collection of Dash applications.
    - [Dash Recipes GitHub](https://github.com/plotly/dash-recipes) - Collection of scripts and examples created while answering questions from the greater Dash community.
    - [Dash Data Dashboards and Apps](https://www.dashboardom.com/) - Collection of data dashboards with real life data, for various topics, as well as a few apps for online marketing built with Dash.

    ## Cheat sheets
    - [plotly.py Cheat Sheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf)
    File renamed without changes.
  6. sherrytp revised this gist Jun 26, 2023. 1 changed file with 95 additions and 0 deletions.
    95 changes: 95 additions & 0 deletions Code_Review.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,95 @@
    # Guide to Code Review

    This is a guide/ checklist for generic code review. The guidelines are divided
    in to different sections for easy reference. These are guidelines, meaning
    exceptions are allowed, except otherwise mentioned.

    ### Functionality and implementation
    + code implements the logic and flow in a simple and readable manner
    + when required, the code includes **unit test** cases
    + try to cast your problem statement in to accepted design patterns
    + if the code is not a minor bug-fix or feature additions, the implementation
    logic should be discussed with other team members before coding
    + all repeated code should be factored out in functions
    + There is no commented out code block
    + There is no dead code block (i.e. run time execution will never reach that
    block)
    + data structures are precise, and whenever possible, use built-in types
    + no code blocks that can be replaced by common library functions
    + loops are replaced with **vectorized** operations if possible
    + block of codes inside loops are minimized or factored out in functions
    + all loops terminate with clearly identified conditions
    + check for race conditions **whenever accessing any resource** and resolve
    such race conditions within the code itself
    + use proper exception handling **whenever accessing any resource**

    ### Variables and functions and classes
    + all variables should be in the **lowest possible scope**
    + minimize global variables, ensure all variables are **initialized**
    + do not use logical comparison on unsupported types. Cast floating points to
    int before equality checks
    + functions should be self-contained and [**without side-effects**](https://en.wikipedia.org/wiki/Side_effect_(computer_science)) as much as
    possible. For functions with side effects, they either should be common (like
    a file I/O operation) or clearly identifiable
    + funtions should not return None or Null - exceptions allowed
    + no print statements in final code version
    + all types of collections are checked for bounds (i.e. out of bounds access).
    Also all collections are initialized with lowest estimated size
    + anonymous functions are either one-liner, or used inside a closure which is
    not global in scope
    + return **early** from functions/ method before implementing the logic for
    valid inputs, scenarios etc.
    + whenever possible use **composition** than inheritence to implement
    polymorphism
    + always stick to the [Law of Demeter](https://en.wikipedia.org/wiki/Law_of_Demeter)
    + always follow Do not Repeat Yourself (DRY) principle for class design
    + always stick to the [S.O.L.I.D.](https://en.wikipedia.org/wiki/SOLID) principles for class design

    ### Documentations, debugging and logging
    + follow standard documentation depending on the programming language
    and the doctools used (e.g. `docstring` (`python`), `roxygen` (`R`), `javadocs`
    etc.
    + required logs are present
    + debug codes, if present, are clearly identified
    + do not catch all exceptions in a generic single line
    + catch expressions are fine-grained to capture specific exception
    + exceptions, once caught are re-raised, unless it is intended by design
    + all variable and function names should capture their purpose if possible
    + all significantly large functions should have proper in-line documentation
    + all public APIs, methods etc. are properly documented
    + edge cases found during code review, if any, are included in the doc until
    a better version is implemented

    ### Resource handling
    + all file descriptors, sockets, database cursors are released and destroyed
    when no longer needed
    + all file descriptors, sockets, database cursors are released and destroyed
    when caught in exceptions
    + all non-local scope variables are destroyed when no longer needed
    + if the programming language does not support automatic garbage collection,
    make sure you are doing proper clean-up
    + use **context managers** whenever accessing any OS resource, if supported by
    the programming language
    + separate functionalities that do computation from those who co-ordiantes
    (e.g. threading, queueing etc.)

    ### Security and performance
    + always do input validation **for all public APIs**
    + add **API rate limiting** for all public APIs
    + check for sand-boxing and ensure for sensetive codes, there is always some code which is
    responsible for checking which users can run this and in which capacity
    + for functions/ scripts using more than a threshold time/ resource, take a
    profile and document future performance improvement scopes
    + always check for scalability. If this piece of code runs million instance in
    parallel, will it break?
    + check stack trace generated in exceptions and delivered as UI message; does it contain sensitive
    information

    ### Coding styles
    + for python styles, refer [this](https://github.com/google/styleguide/blob/gh-pages/pyguide.md)
    + for javascripts, refere [here](https://google.github.io/styleguide/jsguide.html)
    + for shell scripts, refer [here](https://google.github.io/styleguide/shell.xml)
    + for HTML/ CSS, refer [here](https://google.github.io/styleguide/htmlcssguide.html)
    + for R, refer [here](http://adv-r.had.co.nz/Style.html)
    + for python, try and use the future package to make the code version
    independent as much as possible
  7. sherrytp revised this gist Jun 26, 2023. 1 changed file with 150 additions and 0 deletions.
    150 changes: 150 additions & 0 deletions Quant_Prep.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,150 @@
    ## Books for Quant Finance Interviews. (*comments on the usefulness* are based on the score of 0-5).

    ## Brain Teasers

    *comments on the usefullness*: 5 for fresh graduate, `max(2, 5 - #years of experience)` for experienced hires.

    ### Basic
    [A Practical Guide To Quantitative Finance Interviews](http://www.amazon.com/Practical-Guide-Quantitative-Finance-Interviews/dp/1438236662)

    All Martin Gardner's books,
    [book1](http://www.amazon.com/Mathematical-Logic-Puzzles-Dover-Recreational/dp/0486281523) * |
    [book2](http://www.amazon.com/Entertaining-Mathematical-Puzzles-Martin-Gardner/dp/0486252116) *

    ### Advanced

    [Mathematical Olympaid Challenges](http://www.amazon.com/Mathematical-Olympiad-Challenges-Titu-Andreescu/dp/0817645284) *

    [The USSR Olympiad Problem Book](http://www.amazon.com/The-USSR-Olympiad-Problem-Book/dp/0486277097) *

    ## Algorithms / Whiteboard Programming

    *comments on the usefullness*: 5 for high frequency or algo trader/researcher, pricing quants (model validation roles), start arb strategists.

    [Algorithm for interviews](http://www.amazon.com/Algorithms-Interviews-Adnan-Aziz/dp/1453792996) *

    [Leetcode](https://leetcode.com/)

    Cracking the Coding Interviews by [Careercup.com](http://www.careercup.com/) *

    ## Quant Equity / Portfolio Theory

    *comments on the usefullness*: 5 for quant equity strategists, 4 for quant macro strategists.

    [Quantitative Equity Portfolio Management: Modern Techniques and Applications](http://www.amazon.com/Quantitative-Equity-Portfolio-Management-Applications/dp/1584885580) *

    [Active Equity Management](http://www.amazon.com/Active-Equity-Management-Xinfeng-Zhou/dp/0692297774) *

    [Financial Modeling of the Equity Market: From CAPM to Cointegration](http://www.amazon.com/Financial-Modeling-Equity-Market-Cointegration/dp/0471699004) *

    ## Statistics

    *comments on the usefullness*: 5 for all roles.

    Linear regression is the most heavily tested topic in statistics. Unfortunately, there are not many good books on this topic (either too elementary or too advanced). Greene's [Econometric Analysis](http://www.amazon.com/Econometric-Analysis-7th-William-Greene/dp/0131395386) * might be an overshoot due to its length. Honestly, if you are able to manually calculate all outputs from R regression functions, you should be fine. (see my comments on R)

    [Analysis of Financial Time Series](http://www.amazon.com/Analysis-Financial-Time-Series-Ruey/dp/0470414359) * I personally like other books more, but this book exposes one to the most number of time series models.

    [Time Series Analysis](http://press.princeton.edu/titles/5386.html) A much better book, also more expensive.

    ## C/C++

    *comments on the usefullness*: 5 for high frequency or algo trader/researcher, pricing quants (model validation roles), start arb strategists.

    If you rarely program in C/C++, start with [C++ Design Patterns and Derivatives Pricing](http://www.amazon.com/Patterns-Derivatives-Pricing-Mathematics-Finance/dp/0521721628). This is by no means a complete introduction, but it gives you an overview of the language.

    Try using a **build system**, do not use an IDE. I prefer the naive [makefile](http://www.amazon.com/Managing-Projects-Make-Nutshell-Handbooks/dp/0596006101) and the advanced [CMake](http://www.cmake.org/). (My personal view is Autotools is unpretty and out-dated.) IDEs are nice to work with, but helpless for interview prep.

    Try writing C++ using only objects. Templates are nice to have as well. Use [Design Patterns](https://sourcemaking.com/) whenever you can.

    Here is a short but interesting article on [Expression Template](https://github.com/dmlc/mshadow/tree/master/guide/exp-template) that examplifies some basic usage of C++ templates.

    You **must** finish Scott Meyers'

    - [Effective C++](http://www.amazon.com/Effective-Specific-Improve-Programs-Designs/dp/0321334876) *
    - [Effective STL](http://www.amazon.com/Effective-STL-Specific-Standard-Template/dp/0201749629)

    before your first C++ interview. There are other books, [More Effective C++](http://www.amazon.com/More-Effective-Improve-Programs-Designs/dp/020163371X) and [Effecive Mordern C++](http://www.amazon.com/Effective-Modern-Specific-Ways-Improve/dp/1491903996), but I haven't read them yet.

    ## R

    *comments on the usefullness*: not heavily tested during interviews, but very helpful.

    There's no real good book for R. Hadley's [Advanced R](http://adv-r.had.co.nz/) is an excellent book, but it is only for advanced users.

    I would suggest starting from [An Introduction to R](https://cran.r-project.org/doc/manuals/r-release/R-intro.html) and familarize yourself with the following packages:

    - data.table
    - dplyr
    - foreach
    - ggplot2
    - reshape2

    and these packages as well:

    - stringr
    - lubridate
    - Matrix
    - gridExtra

    Once you are fluent with R, take a look at these advanced packages:

    - Rcpp
    - devtools
    - testthat
    - roxygen2

    Make sure you understand the usage and output of these functions: `lm`, `glm`, `anova`, `summary.lm`, `plot.lm`, `acf`, `pacf`.

    ## Python

    *comments on the usefullness*: 5 for all roles



    # Quant Interview Questions
    **Questions**:
    For a 3 sets tennis game, would you bet on it finishing in 2 sets or 3 sets?
    I have a square, and place three dots along the 4 edges at random. What is the probability that the dots lie on distinct edges?
    You have 10 people in a room. How many total handshakes if they all shake hands?
    Two decks of cards. One deck has 52 cards, the other has 104. You pick two cards separately from a same pack. If both of two cards are red, you win. Which pack will you choose?
    What is 39*41?
    A group of people wants to determine their average salary on the condition that no individual would be able to find out anyone else's salary. Can they accomplish this, and, if so, how?
    How many digits are in 99 to the 99th power?
    A line of 100 passengers is waiting to board a plane. They each hold a ticket to one of the 100 seats on that flight. (For convenience, let's say that the nth passenger in line has a ticket for the seat number n.) Unfortunately, the first person in line is crazy, and will ignore the seat number on their ticket, picking a random seat to occupy. All of the other passengers are quite normal, and will go to their proper seat unless it is already occupied. If it is occupied, they will then find a free seat to sit in, at random. What is the probability that the last (100th) person to board the plane will sit in their proper seat (#100)?
    What is the sum of the numbers one to 100?
    You have a 3 gallon jug and 5 gallon jug, how do you measure out exactly 4 gallons? Is this possible?
    You have 17 coins and I have 16 coins, we flip all coins at the same time. If you have more heads then you win, if we have the same number of heads or if you have less then I win. What's your probability of winning?
    What is the probability you draw two cards of the same color from a standard 52-card deck? You are drawing without replacement.
    You’re in a room with three light switches, each of which controls one of three light bulbs in the next room. You need to determine which switch controls which bulb. All lights are off to begin, and you can’t see into one room from the other. You can inspect the other room only once. How can you find out which switches are connected to which bulbs? Is this possible?
    In world series, what are the odds it goes 7 games if each team equal chance of winning?
    Given 100 coin flips, what is the probability that you get an even number of heads?
    There are 5 balls, 3 red, and 2 black. What is the probability that a random ordering of the 5 balls does not have the 2 black balls next to each other?
    What is the least multiple of 15 whose digits consist only of 1's and 0's?
    Is 1027 a prime number?
    Does the price of a call option increase when volatility increases?
    2 blue and 2 red balls, in a box, no replacing. Guess the color of the ball, you receive a dollar if you are correct. What is the dollar amount you would pay to play this game?
    What is the singles digit for 2^230?

    **Answers**:
    Two sets - Let p=prob team 1 wins and q=prob team 2 wins. p^2 + q^2 = probability finish in two sets. 2*p*q = probability finish in three sets. p^2 + q^2 always >= 2*p*q, so the answer is two sets.
    3/8 - Given the edge the first dot is on, the probability the other two dots are on distinct edges is (3/4)*(2/4)
    45 - (10 choose 2) = 45 -- this is the total number of ways two people can shake hands.
    104 card pack - (52/104)*(51/103) > (26/52)*(25/51), or 51/103 > 25/51
    1599 - 39*41 = (40-1)*(40+1) = 40*40 - 1 = 1599
    Yes, it’s possible - The first person thinks of a random number, say X. This person adds this number to her salary. The rest of the group simply adds their salary to the initial number. Then, the first person subtracts the random number X and divides the total salary sum by the size of the group to obtain the average.
    198 - 99^99 = (100)^(99) * (.99)^99 = (10)^(198) * (.99)^99. You can convince yourself 10^198 has 199 digits, and 0.99^.99 approaches 1/e. Thus, (10)^(198) * (.99)^99 has 198 digits.
    0.5 - The fate of the last passenger is determined the second either the first or last seat on the plane is taken. This statement is true because the last person will either get the first seat or the last seat. All other seats will necessarily be taken by the time the last passenger gets to pick his/her seat. Since at each choice step, the first or last seat has an equal probability of being taken, the last person will get either the first or last with equal probability: 0.5.
    5050 - Sum of numbers from 1,2....n = n*(n+1)/2. You can also think about this problem by pairing off numbers - 1 and 100, 2 and 99, 3 and 98, 4 and 97, etc. We have 50 of these pairs, and each pair sums up to 101, so the final sum = 50*101 = 5050.
    Yes, it’s possible - Fill up the 3 gallon jug. Then, pour the liquid into the 5 gallon jug. Fill the 3 gallon jug again, and then fill the 5 gallon jug until it is full. We now have 1 gallon remaining in the 3 gallon jug. We empty the five gallon jug and pour the remaining 1 gallon into our 5 gallon jug. Finally, we fill the 3 gallon jug and add this to the 5 gallon jug (which already had 1 gallon). We are left with 4 gallons in the 5 gallon jug.
    0.5 - Use recursion - The initial 16 flips have the same probability of everything. Thus, the game completely depends on if the last coin flip is tails or head (50/50 chance of H vs. T).
    25/51 - You either draw a black or a red card first. Then, there are 51 cards left in the deck and 25 of these cards have the same color. Thus, the probability is 25/51.
    Yes, it’s possible - Leave switch 1 off. Then, turn switch 2 on for ten minutes. After the ten minutes, turn it off and quickly turn on switch 3. Now, go into the room. The currently lit up bulb connects to switch 3. The bulb that off but still warm is from switch 2, and the remaining bulb is from switch 1.
    20/64 - Out of the first three games, each team needs to win three. Thus, (6 choose 3)*(.5^6) = 20/64, as each team has a 1/2 probability of winning each game.
    1/2 - Whether there is an odd or even number of heads is ultimately determined by the final flip (50/50 chance of being heads vs. tails), for any number of flips.
    0.6 - Because of repeats of black/red balls, there are 10 combinations of red/black balls: (5 choose 2) or (5 choose 3) spots to put the black or red balls, respectively. There are 4 places that 2 black balls can be next to each other, so the other 6 combinations do NOT have two black balls next to each other.
    1110 - The last digit must be zero (30, 45, 60, 75, etc.). Multiples of 15 never end in 1. Then, starting checking numbers. 10, 100, 110, 1000, 1100, 1110. You will quickly arrive at the answer if you are good with your mental math.
    No - 1027 = 1000 + 27 = 10^3 + 3^3. We know a^3 + b^3 can be factored, so 1027 is NOT prime.
    Yes - sometimes a rare finance question is included in these interviews; remember that both time and volatility increase the prices of both calls and puts
    17/6 dollars - You’ll always get the last ball right as your sampling w/o replacement. The first ball you have a 50% chance of getting right. The second ball you have a 2/3 chance of getting right.
    4 - Repeating patterns -- 2,4,8,6,2 -- follow the pattern.
  8. sherrytp created this gist Jun 26, 2021.
    453 changes: 453 additions & 0 deletions Quant.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,453 @@
    # awesome-quant Languages
    - [Python](#python)
    - [R](#r)
    - [Matlab](#matlab)
    - [Julia](#julia)
    - [Java](#java)
    - [JavaScript](#javascript)
    - [Haskell](#haskell)
    - [Scala](#scala)
    - [Ruby](#ruby)
    - [Elixir/Erlang](#elixirerlang)
    - [Golang](#golang)
    - [CPP](#cpp)
    - [CSharp](#csharp)
    - [Frameworks](#frameworks) - frameworks that support different languages
    - [Reproducing Works](#reproducing-works) - repositories that reproduce books and papers results or implement examples
    - [Links](#links) - from legacy.txt links
    ## Python

    ### Numerical Libraries & Data Structures

    - [numpy](https://www.numpy.org) - NumPy is the fundamental package for scientific computing with Python.
    - [scipy](https://www.scipy.org) - SciPy (pronounced “Sigh Pie”) is a Python-based ecosystem of open-source software for mathematics, science, and engineering.
    - [pandas](https://pandas.pydata.org) - pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language.
    - [quantdsl](https://github.com/johnbywater/quantdsl) - Domain specific language for quantitative analytics in finance and trading.
    - [statistics](https://docs.python.org/3/library/statistics.html) - Builtin Python library for all basic statistical calculations.
    - [sympy](https://www.sympy.org/) - SymPy is a Python library for symbolic mathematics.
    - [pymc3](https://docs.pymc.io/) - Probabilistic Programming in Python: Bayesian Modeling and Probabilistic Machine Learning with Theano.

    ### Financial Instruments and Pricing

    - [PyQL](https://github.com/enthought/pyql) - QuantLib's Python port.
    - [pyfin](https://github.com/opendoor-labs/pyfin) - Basic options pricing in Python. [ARCHIVED]
    - [vollib](https://github.com/vollib/vollib) - vollib is a python library for calculating option prices, implied volatility and greeks.
    - [QuantPy](https://github.com/jsmidt/QuantPy) - A framework for quantitative finance In python.
    - [Finance-Python](https://github.com/alpha-miner/Finance-Python) - Python tools for Finance.
    - [ffn](https://github.com/pmorissette/ffn) - A financial function library for Python.
    - [pynance](https://pynance.net) - PyNance is open-source software for retrieving, analysing and visualizing data from stock and derivatives markets.
    - [tia](https://github.com/bpsmith/tia) - Toolkit for integration and analysis.
    - [hasura/base-python-dash](https://platform.hasura.io/hub/projects/hasura/base-python-dash) - Hasura quickstart to deploy Dash framework. Written on top of Flask, Plotly.js, and React.js, Dash is ideal for building data visualization apps with highly custom user interfaces in pure Python.
    - [hasura/base-python-bokeh](https://platform.hasura.io/hub/projects/hasura/base-python-bokeh) - Hasura quickstart to visualize data with bokeh library.
    - [pysabr](https://github.com/ynouri/pysabr) - SABR model Python implementation.
    - [FinancePy](https://github.com/domokane/FinancePy) - A Python Finance Library that focuses on the pricing and risk-management of Financial Derivatives, including fixed-income, equity, FX and credit derivatives.
    - [gs-quant](https://github.com/goldmansachs/gs-quant) - Python toolkit for quantitative finance
    - [willowtree](https://github.com/federicomariamassari/willowtree) - Robust and flexible Python implementation of the willow tree lattice for derivatives pricing.
    - [financial-engineering](https://github.com/federicomariamassari/financial-engineering) - Applications of Monte Carlo methods to financial engineering projects, in Python.
    - [optlib](https://github.com/dbrojas/optlib) - A library for financial options pricing written in Python.
    - [tf-quant-finance](https://github.com/google/tf-quant-finance) - High-performance TensorFlow library for quantitative finance.

    ### Indicators

    - [pandas_talib](https://github.com/femtotrader/pandas_talib) - A Python Pandas implementation of technical analysis indicators.
    - [finta](https://github.com/peerchemist/finta) - Common financial technical analysis indicators implemented in Pandas.
    - [Tulipy](https://github.com/cirla/tulipy) - Financial Technical Analysis Indicator Library (Python bindings for [tulipindicators](https://github.com/TulipCharts/tulipindicators))
    - [lppls](https://github.com/Boulder-Investment-Technologies/lppls) - A Python module for fitting the [Log-Periodic Power Law Singularity (LPPLS)](https://en.wikipedia.org/wiki/Didier_Sornette#The_JLS_and_LPPLS_models) model.

    ### Trading & Backtesting

    - [TA-Lib](https://ta-lib.org) - perform technical analysis of financial market data.
    - [trade](https://github.com/rochars/trade) - trade is a Python framework for the development of financial applications.
    - [zipline](https://www.zipline.io) - Pythonic algorithmic trading library.
    - [QuantSoftware Toolkit](https://github.com/QuantSoftware/QuantSoftwareToolkit) - Python-based open source software framework designed to support portfolio construction and management.
    - [quantitative](https://github.com/jeffrey-liang/quantitative) - Quantitative finance, and backtesting library.
    - [analyzer](https://github.com/llazzaro/analyzer) - Python framework for real-time financial and backtesting trading strategies.
    - [bt](https://github.com/pmorissette/bt) - Flexible Backtesting for Python.
    - [backtrader](https://github.com/backtrader/backtrader) - Python Backtesting library for trading strategies.
    - [pythalesians](https://github.com/thalesians/pythalesians) - Python library to backtest trading strategies, plot charts, seamlessly download market data, analyse market patterns etc.
    - [pybacktest](https://github.com/ematvey/pybacktest) - Vectorized backtesting framework in Python / pandas, designed to make your backtesting easier.
    - [pyalgotrade](https://github.com/gbeced/pyalgotrade) - Python Algorithmic Trading Library.
    - [tradingWithPython](https://pypi.org/project/tradingWithPython/) - A collection of functions and classes for Quantitative trading.
    - [Pandas TA](https://github.com/twopirllc/pandas-ta) - Pandas TA is an easy to use Python 3 Pandas Extension with 115+ Indicators. Easily build Custom Strategies.
    - [ta](https://github.com/bukosabino/ta) - Technical Analysis Library using Pandas (Python)
    - [algobroker](https://github.com/joequant/algobroker) - This is an execution engine for algo trading.
    - [pysentosa](https://pypi.org/project/pysentosa/) - Python API for sentosa trading system.
    - [finmarketpy](https://github.com/cuemacro/finmarketpy) - Python library for backtesting trading strategies and analyzing financial markets.
    - [binary-martingale](https://github.com/metaperl/binary-martingale) - Computer program to automatically trade binary options martingale style.
    - [fooltrader](https://github.com/foolcage/fooltrader) - the project using big-data technology to provide an uniform way to analyze the whole market.
    - [zvt](https://github.com/zvtvz/zvt) - the project using sql,pandas to provide an uniform and extendable way to record data,computing factors,select securites, backtesting,realtime trading and it could show all of them in clearly charts in realtime.
    - [pylivetrader](https://github.com/alpacahq/pylivetrader) - zipline-compatible live trading library.
    - [pipeline-live](https://github.com/alpacahq/pipeline-live) - zipline's pipeline capability with IEX for live trading.
    - [zipline-extensions](https://github.com/quantrocket-llc/zipline-extensions) - Zipline extensions and adapters for QuantRocket.
    - [moonshot](https://github.com/quantrocket-llc/moonshot) - Vectorized backtester and trading engine for QuantRocket based on Pandas.
    - [PyPortfolioOpt](https://github.com/robertmartin8/PyPortfolioOpt) - Financial portfolio optimisation in python, including classical efficient frontier and advanced methods.
    - [Eiten](https://github.com/tradytics/eiten) - Eiten is an open source toolkit by Tradytics that implements various statistical and algorithmic investing strategies such as Eigen Portfolios, Minimum Variance Portfolios, Maximum Sharpe Ratio Portfolios, and Genetic Algorithms based Portfolios.
    - [riskparity.py](https://github.com/dppalomar/riskparity.py) - fast and scalable design of risk parity portfolios with TensorFlow 2.0
    - [mlfinlab](https://github.com/hudson-and-thames/mlfinlab) - Implementations regarding "Advances in Financial Machine Learning" by Marcos Lopez de Prado. (Feature Engineering, Financial Data Structures, Meta-Labeling)
    - [pyqstrat](https://github.com/abbass2/pyqstrat) - A fast, extensible, transparent python library for backtesting quantitative strategies.
    - [NowTrade](https://github.com/edouardpoitras/NowTrade) - Python library for backtesting technical/mechanical strategies in the stock and currency markets.
    - [pinkfish](https://github.com/fja05680/pinkfish) - A backtester and spreadsheet library for security analysis.
    - [aat](https://github.com/timkpaine/aat) - Async Algorithmic Trading Engine
    - [Backtesting.py](https://kernc.github.io/backtesting.py/) - Backtest trading strategies in Python
    - [catalyst](https://github.com/enigmampc/catalyst) - An Algorithmic Trading Library for Crypto-Assets in Python
    - [quantstats](https://github.com/ranaroussi/quantstats) - Portfolio analytics for quants, written in Python
    - [qtpylib](https://github.com/ranaroussi/qtpylib) - QTPyLib, Pythonic Algorithmic Trading <http://qtpylib.io>
    - [Quantdom](https://github.com/constverum/Quantdom) - Python-based framework for backtesting trading strategies & analyzing financial markets [GUI :neckbeard:]
    - [freqtrade](https://github.com/freqtrade/freqtrade) - Free, open source crypto trading bot
    - [algorithmic-trading-with-python](https://github.com/chrisconlan/algorithmic-trading-with-python) - Free `pandas` and `scikit-learn` resources for trading simulation, backtesting, and machine learning on financial data.
    - [DeepDow](https://github.com/jankrepl/deepdow) - Portfolio optimization with deep learning
    - [Qlib](https://github.com/microsoft/qlib) - An AI-oriented Quantitative Investment Platform by Microsoft. Full ML pipeline of data processing, model training, back-testing; and covers the entire chain of quantitative investment: alpha seeking, risk modeling, portfolio optimization, and order execution.
    - [machine-learning-for-trading](https://github.com/stefan-jansen/machine-learning-for-trading) - Code and resources for Machine Learning for Algorithmic Trading
    - [AlphaPy](https://github.com/ScottfreeLLC/AlphaPy) - Automated Machine Learning [AutoML] with Python, scikit-learn, Keras, XGBoost, LightGBM, and CatBoost
    - [jesse](https://github.com/jesse-ai/jesse) - An advanced crypto trading bot written in Python
    - [rqalpha](https://github.com/ricequant/rqalpha) - A extendable, replaceable Python algorithmic backtest && trading framework supporting multiple securities.
    - [FinRL-Library](https://github.com/AI4Finance-LLC/FinRL-Library) - A Deep Reinforcement Learning Library for Automated Trading in Quantitative Finance. NeurIPS 2020.
    - [bulbea](https://github.com/achillesrasquinha/bulbea) - Deep Learning based Python Library for Stock Market Prediction and Modelling.
    - [ib_nope](https://github.com/ajhpark/ib_nope) - Automated trading system for NOPE strategy over IBKR TWS.
    - [OctoBot](https://github.com/Drakkar-Software/OctoBot) - Open source cryptocurrency trading bot for high frequency, arbitrage, TA and social trading with an advanced web interface.
    - [bta-lib](https://github.com/mementum/bta-lib) - Technical Analysis library in pandas for backtesting algotrading and quantitative analysis.
    - [Stock-Prediction-Models](https://github.com/huseinzol05/Stock-Prediction-Models) - Gathers machine learning and deep learning models for Stock forecasting including trading bots and simulations.
    - [tda-api](https://github.com/alexgolec/tda-api) - Gather data and trade equities, options, and ETFs via TDAmeritrade.

    ### Risk Analysis

    - [pyfolio](https://github.com/quantopian/pyfolio) - Portfolio and risk analytics in Python.
    - [empyrical](https://github.com/quantopian/empyrical) - Common financial risk and performance metrics.
    - [fecon235](https://github.com/rsvp/fecon235) - Computational tools for financial economics include: Gaussian Mixture model of leptokurtotic risk, adaptive Boltzmann portfolios.
    - [finance](https://pypi.org/project/finance/) - Financial Risk Calculations. Optimized for ease of use through class construction and operator overload.
    - [qfrm](https://pypi.org/project/qfrm/) - Quantitative Financial Risk Management: awesome OOP tools for measuring, managing and visualizing risk of financial instruments and portfolios.
    - [visualize-wealth](https://github.com/benjaminmgross/visualize-wealth) - Portfolio construction and quantitative analysis.
    - [VisualPortfolio](https://github.com/wegamekinglc/VisualPortfolio) - This tool is used to visualize the perfomance of a portfolio.
    - [universal-portfolios](https://github.com/Marigold/universal-portfolios) - Collection of algorithms for online portfolio selection.
    - [FinQuant](https://github.com/fmilthaler/FinQuant) - A program for financial portfolio management, analysis and optimisation.
    - [Empyrial](https://github.com/ssantoshp/Empyrial) - Portfolio's risk and performance analytics and returns predictions.

    ### Factor Analysis

    - [alphalens](https://github.com/quantopian/alphalens) - Performance analysis of predictive alpha factors.
    - [Spectre](https://github.com/Heerozh/spectre) - GPU-accelerated Factors analysis library and Backtester

    ### Time Series

    - [ARCH](https://github.com/bashtage/arch) - ARCH models in Python.
    - [statsmodels](http://statsmodels.sourceforge.net) - Python module that allows users to explore data, estimate statistical models, and perform statistical tests.
    - [dynts](https://github.com/quantmind/dynts) - Python package for timeseries analysis and manipulation.
    - [PyFlux](https://github.com/RJT1990/pyflux) - Python library for timeseries modelling and inference (frequentist and Bayesian) on models.
    - [tsfresh](https://github.com/blue-yonder/tsfresh) - Automatic extraction of relevant features from time series.
    - [hasura/quandl-metabase](https://platform.hasura.io/hub/projects/anirudhm/quandl-metabase-time-series) - Hasura quickstart to visualize Quandl's timeseries datasets with Metabase.
    - [Facebook Prophet](https://github.com/facebook/prophet) - Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth.
    - [tsmoothie](https://github.com/cerlymarco/tsmoothie) - A python library for time-series smoothing and outlier detection in a vectorized way.

    ### Calendars

    - [exchange_calendars](https://github.com/gerrymanoim/exchange_calendars) - Stock Exchange Trading Calendars.
    - [bizdays](https://github.com/wilsonfreitas/python-bizdays) - Business days calculations and utilities.
    - [pandas_market_calendars](https://github.com/rsheftel/pandas_market_calendars) - Exchange calendars to use with pandas for trading applications.

    ### Data Sources

    - [yfinance](https://github.com/ranaroussi/yfinance) - Yahoo! Finance market data downloader (+faster Pandas Datareader)
    - [findatapy](https://github.com/cuemacro/findatapy) - Python library to download market data via Bloomberg, Quandl, Yahoo etc.
    - [googlefinance](https://github.com/hongtaocai/googlefinance) - Python module to get real-time stock data from Google Finance API.
    - [yahoo-finance](https://github.com/lukaszbanasiak/yahoo-finance) - Python module to get stock data from Yahoo! Finance.
    - [pandas-datareader](https://github.com/pydata/pandas-datareader) - Python module to get data from various sources (Google Finance, Yahoo Finance, FRED, OECD, Fama/French, World Bank, Eurostat...) into Pandas datastructures such as DataFrame, Panel with a caching mechanism.
    - [pandas-finance](https://github.com/davidastephens/pandas-finance) - High level API for access to and analysis of financial data.
    - [pyhoofinance](https://github.com/innes213/pyhoofinance) - Rapidly queries Yahoo Finance for multiple tickers and returns typed data for analysis.
    - [yfinanceapi](https://github.com/Karthik005/yfinanceapi) - Finance API for Python.
    - [yql-finance](https://github.com/slawek87/yql-finance) - yql-finance is simple and fast. API returns stock closing prices for current period of time and current stock ticker (i.e. APPL, GOOGL).
    - [ystockquote](https://github.com/cgoldberg/ystockquote) - Retrieve stock quote data from Yahoo Finance.
    - [wallstreet](https://github.com/mcdallas/wallstreet) - Real time stock and option data.
    - [stock_extractor](https://github.com/ZachLiuGIS/stock_extractor) - General Purpose Stock Extractors from Online Resources.
    - [Stockex](https://github.com/cttn/Stockex) - Python wrapper for Yahoo! Finance API.
    - [finsymbols](https://github.com/skillachie/finsymbols) - Obtains stock symbols and relating information for SP500, AMEX, NYSE, and NASDAQ.
    - [FRB](https://github.com/avelkoski/FRB) - Python Client for FRED® API.
    - [inquisitor](https://github.com/econdb/inquisitor) - Python Interface to Econdb.com API.
    - [yfi](https://github.com/nickelkr/yfi) - Yahoo! YQL library.
    - [chinesestockapi](https://pypi.org/project/chinesestockapi/) - Python API to get Chinese stock price.
    - [exchange](https://github.com/akarat/exchange) - Get current exchange rate.
    - [ticks](https://github.com/jamescnowell/ticks) - Simple command line tool to get stock ticker data.
    - [pybbg](https://github.com/bpsmith/pybbg) - Python interface to Bloomberg COM APIs.
    - [ccy](https://github.com/lsbardel/ccy) - Python module for currencies.
    - [tushare](https://pypi.org/project/tushare/) - A utility for crawling historical and Real-time Quotes data of China stocks.
    - [jsm](https://pypi.org/project/jsm/) - Get the japanese stock market data.
    - [cn_stock_src](https://github.com/jealous/cn_stock_src) - Utility for retrieving basic China stock data from different sources.
    - [coinmarketcap](https://github.com/barnumbirr/coinmarketcap) - Python API for coinmarketcap.
    - [after-hours](https://github.com/datawrestler/after-hours) - Obtain pre market and after hours stock prices for a given symbol.
    - [bronto-python](https://pypi.org/project/bronto-python/) - Bronto API Integration for Python.
    - [pytdx](https://github.com/rainx/pytdx) - Python Interface for retrieving chinese stock realtime quote data from TongDaXin Nodes.
    - [pdblp](https://github.com/matthewgilbert/pdblp) - A simple interface to integrate pandas and the Bloomberg Open API.
    - [tiingo](https://github.com/hydrosquall/tiingo-python) - Python interface for daily composite prices/OHLC/Volume + Real-time News Feeds, powered by the Tiingo Data Platform.
    - [iexfinance](https://github.com/addisonlynch/iexfinance) - Python Interface for retrieving real-time and historical prices and equities data from The Investor's Exchange.
    - [pyEX](https://github.com/timkpaine/pyEX) - Python interface to IEX with emphasis on pandas, support for streaming data, premium data, points data (economic, rates, commodities), and technical indicators.
    - [alpaca-trade-api](https://github.com/alpacahq/alpaca-trade-api-python) - Python interface for retrieving real-time and historical prices from Alpaca API as well as trade execution.
    - [metatrader5](https://pypi.org/project/MetaTrader5/) - API Connector to MetaTrader 5 Terminal
    - [akshare](https://github.com/jindaxiang/akshare) - AkShare is an elegant and simple financial data interface library for Python, built for human beings! <https://akshare.readthedocs.io>
    - [yahooquery](https://github.com/dpguthrie/yahooquery) - Python interface for retrieving data through unofficial Yahoo Finance API.
    - [investpy](https://github.com/alvarobartt/investpy) - Financial Data Extraction from Investing.com with Python! <https://investpy.readthedocs.io/>
    - [yliveticker](https://github.com/yahoofinancelive/yliveticker) - Live stream of market data from Yahoo Finance websocket.
    - [bbgbridge](https://github.com/ran404/bbgbridge) - Easy to use Bloomberg Desktop API wrapper for Python.
    - [alpha_vantage](https://github.com/RomelTorres/alpha_vantage) - A python wrapper for Alpha Vantage API for financial data.
    - [FinanceDataReader](https://github.com/FinanceData/FinanceDataReader) - Open Source Financial data reader for U.S, Korean, Japanese, Chinese, Vietnamese Stocks

    ### Excel Integration

    - [xlwings](https://www.xlwings.org/) - Make Excel fly with Python.
    - [openpyxl](https://openpyxl.readthedocs.io/en/latest/) - Read/Write Excel 2007 xlsx/xlsm files.
    - [xlrd](https://github.com/python-excel/xlrd) - Library for developers to extract data from Microsoft Excel spreadsheet files.
    - [xlsxwriter](https://xlsxwriter.readthedocs.io/) - Write files in the Excel 2007+ XLSX file format.
    - [xlwt](https://github.com/python-excel/xlwt) - Library to create spreadsheet files compatible with MS Excel 97/2000/XP/2003 XLS files, on any platform.
    - [DataNitro](https://datanitro.com/) - DataNitro also offers full-featured Python-Excel integration, including UDFs. Trial downloads are available, but users must purchase a license.
    - [xlloop](http://xlloop.sourceforge.net) - XLLoop is an open source framework for implementing Excel user-defined functions (UDFs) on a centralised server (a function server).
    - [expy](http://www.bnikolic.co.uk/expy/expy.html) - The ExPy add-in allows easy use of Python directly from within an Microsoft Excel spreadsheet, both to execute arbitrary code and to define new Excel functions.
    - [pyxll](https://www.pyxll.com) - PyXLL is an Excel add-in that enables you to extend Excel using nothing but Python code.

    ### Visualization

    - [D-Tale](https://github.com/man-group/dtale) - Visualizer for pandas dataframes and xarray datasets.
    - [mplfinance](https://github.com/matplotlib/mplfinance) - matplotlib utilities for the visualization, and visual analysis, of financial data.
    - [finplot](https://github.com/highfestiva/finplot) - Performant and effortless finance plotting for Python.
    - [finvizfinance](https://github.com/lit26/finvizfinance) - Finviz analysis python library.

    ## R

    ### Numerical Libraries & Data Structures

    - [xts](https://cran.r-project.org/web/packages/xts/index.html) - eXtensible Time Series: Provide for uniform handling of R's different time-based data classes by extending zoo, maximizing native format information preservation and allowing for user level customization and extension, while simplifying cross-class interoperability.
    - [data.table](https://cran.r-project.org/web/packages/data.table/index.html) - Extension of data.frame: Fast aggregation of large data (e.g. 100GB in RAM), fast ordered joins, fast add/modify/delete of columns by group using no copies at all, list columns and a fast file reader (fread). Offers a natural and flexible syntax, for faster development.
    - [sparseEigen](https://github.com/dppalomar/sparseEigen) - Sparse pricipal component analysis.
    - [TSdbi](http://tsdbi.r-forge.r-project.org/) - Provides a common interface to time series databases.
    - [tseries](https://cran.r-project.org/web/packages/tseries/index.html) - Time Series Analysis and Computational Finance.
    - [zoo](https://cran.r-project.org/web/packages/zoo/index.html) - S3 Infrastructure for Regular and Irregular Time Series (Z's Ordered Observations).
    - [tis](https://cran.r-project.org/web/packages/tis/index.html) - Functions and S3 classes for time indexes and time indexed series, which are compatible with FAME frequencies.
    - [tfplot](https://cran.r-project.org/web/packages/tfplot/index.html) - Utilities for simple manipulation and quick plotting of time series data.
    - [tframe](https://cran.r-project.org/web/packages/tframe/index.html) - A kernel of functions for programming time series methods in a way that is relatively independently of the representation of time.

    ### Data Sources

    - [IBrokers](https://cran.r-project.org/web/packages/IBrokers/index.html) - Provides native R access to Interactive Brokers Trader Workstation API.
    - [Rblpapi](https://cran.r-project.org/web/packages/Rblpapi/index.html) - An R Interface to 'Bloomberg' is provided via the 'Blp API'.
    - [Quandl](https://www.quandl.com/tools/r) - Get Financial Data Directly Into R.
    - [Rbitcoin](https://cran.r-project.org/web/packages/Rbitcoin/index.html) - Unified markets API interface (bitstamp, kraken, btce, bitmarket).
    - [GetTDData](https://cran.r-project.org/web/packages/GetTDData/index.html) - Downloads and aggregates data for Brazilian government issued bonds directly from the website of Tesouro Direto.
    - [GetHFData](https://cran.r-project.org/web/packages/GetHFData/index.html) - Downloads and aggregates high frequency trading data for Brazilian instruments directly from Bovespa ftp site.
    - [Reddit WallstreetBets API](https://dashboard.nbshare.io/apps/reddit/api/) - Provides daily top 50 stocks from reddit (subreddit) Wallstreetbets and their sentiments via the API
    - [td](https://cran.r-project.org/package=td) - Interfaces the 'twelvedata' API for stocks and (digital and standard) currencies

    ### Financial Instruments and Pricing

    - [RQuantLib](http://dirk.eddelbuettel.com/code/rquantlib.html) - RQuantLib connects GNU R with QuantLib.
    - [quantmod](https://cran.r-project.org/web/packages/quantmod/index.html) - Quantitative Financial Modelling Framework.
    - [Rmetrics](https://www.rmetrics.org) - The premier open source software solution for teaching and training quantitative finance.
    - [fAsianOptions](https://cran.r-project.org/web/packages/fAsianOptions/index.html) - EBM and Asian Option Valuation.
    - [fAssets](https://cran.r-project.org/web/packages/fAssets/index.html) - Analysing and Modelling Financial Assets.
    - [fBasics](https://cran.r-project.org/web/packages/fBasics/index.html) - Markets and Basic Statistics.
    - [fBonds](https://cran.r-project.org/web/packages/fBonds/index.html) - Bonds and Interest Rate Models.
    - [fExoticOptions](https://cran.r-project.org/web/packages/fExoticOptions/index.html) - Exotic Option Valuation.
    - [fOptions](https://cran.r-project.org/web/packages/fOptions/index.html) - Pricing and Evaluating Basic Options.
    - [fPortfolio](https://cran.r-project.org/web/packages/fPortfolio/index.html) - Portfolio Selection and Optimization.
    - [portfolio](https://cran.r-project.org/web/packages/portfolio/index.html) - Analysing equity portfolios.
    - [portfolioSim](https://cran.r-project.org/web/packages/portfolioSim/index.html) - Framework for simulating equity portfolio strategies.
    - [sparseIndexTracking](https://github.com/dppalomar/sparseIndexTracking) - Portfolio design to track an index.
    - [covFactorModel](https://github.com/dppalomar/covFactorModel) - Covariance matrix estimation via factor models.
    - [riskParityPortfolio](https://github.com/dppalomar/riskParityPortfolio) - Blazingly fast design of risk parity portfolios.
    - [sde](https://cran.r-project.org/web/packages/sde/index.html) - Simulation and Inference for Stochastic Differential Equations.
    - [YieldCurve](https://cran.r-project.org/web/packages/YieldCurve/index.html) - Modelling and estimation of the yield curve.
    - [SmithWilsonYieldCurve](https://cran.r-project.org/web/packages/SmithWilsonYieldCurve/index.html) - Constructs a yield curve by the Smith-Wilson method from a table of LIBOR and SWAP rates.
    - [ycinterextra](https://cran.r-project.org/web/packages/ycinterextra/index.html) - Yield curve or zero-coupon prices interpolation and extrapolation.
    - [AmericanCallOpt](https://cran.r-project.org/web/packages/AmericanCallOpt/index.html) - This package includes pricing function for selected American call options with underlying assets that generate payouts.
    - [VarSwapPrice](https://cran.r-project.org/web/packages/VarSwapPrice/index.html) - Pricing a variance swap on an equity index.
    - [RND](https://cran.r-project.org/web/packages/RND/index.html) - Risk Neutral Density Extraction Package.
    - [LSMonteCarlo](https://cran.r-project.org/web/packages/LSMonteCarlo/index.html) - American options pricing with Least Squares Monte Carlo method.
    - [OptHedging](https://cran.r-project.org/web/packages/OptHedging/index.html) - Estimation of value and hedging strategy of call and put options.
    - [tvm](https://cran.r-project.org/web/packages/tvm/index.html) - Time Value of Money Functions.
    - [OptionPricing](https://cran.r-project.org/web/packages/OptionPricing/index.html) - Option Pricing with Efficient Simulation Algorithms.
    - [credule](https://cran.r-project.org/web/packages/credule/index.html) - Credit Default Swap Functions.
    - [derivmkts](https://cran.r-project.org/web/packages/derivmkts/index.html) - Functions and R Code to Accompany Derivatives Markets.
    - [FinCal](https://github.com/felixfan/FinCal) - Package for time value of money calculation, time series analysis and computational finance.
    - [r-quant](https://github.com/artyyouth/r-quant) - R code for quantitative analysis in finance.
    - [options.studies](https://github.com/taylorizing/options.studies) - options trading studies functions for use with options.data package and shiny.

    ### Portfolio Optimization

    - [PortfolioAnalytics](https://cran.r-project.org/web/packages/PortfolioAnalytics/PortfolioAnalytics.pdf) - Portfolio Analysis, Including Numerical Methods for Optimizationof Portfolios

    ### Trading

    - [TA-Lib](https://ta-lib.org) - perform technical analysis of financial market data.
    - [backtest](https://cran.r-project.org/web/packages/backtest/index.html) - Exploring Portfolio-Based Conjectures About Financial Instruments.
    - [pa](https://cran.r-project.org/web/packages/pa/index.html) - Performance Attribution for Equity Portfolios.
    - [TTR](https://cran.r-project.org/web/packages/TTR/index.html) - Technical Trading Rules.
    - [QuantTools](https://quanttools.bitbucket.io/_site/index.html) - Enhanced Quantitative Trading Modelling.
    - [blotter](https://github.com/braverock/blotter) - Transaction infrastructure for defining instruments, transactions, portfolios and accounts for trading systems and simulation. Provides portfolio support for multi-asset class and multi-currency portfolios. Actively maintained and developed.

    ### Backtesting

    - [quantstrat](https://github.com/braverock/quantstrat) - Transaction-oriented infrastructure for constructing trading systems and simulation. Provides support for multi-asset class and multi-currency portfolios for backtesting and other financial research.

    ### Risk Analysis

    - [PerformanceAnalytics](https://cran.r-project.org/web/packages/PerformanceAnalytics/index.html) - Econometric tools for performance and risk analysis.

    ### Factor Analysis

    - [FactorAnalytics](https://github.com/braverock/FactorAnalytics) - The FactorAnalytics package contains fitting and analysis methods for the three main types of factor models used in conjunction with portfolio construction, optimization and risk management, namely fundamental factor models, time series factor models and statistical factor models.
    - [Expected Returns](https://github.com/JustinMShea/ExpectedReturns) - Solutions for enhancing portfolio diversification and replications of seminal papers with R, most of which are discussed in one of the best investment references of the recent decade, Expected Returns: An Investors Guide to Harvesting Market Rewards by Antti Ilmanen.

    ### Time Series

    - [tseries](https://cran.r-project.org/web/packages/tseries/index.html) - Time Series Analysis and Computational Finance.
    - [zoo](https://cran.r-project.org/web/packages/zoo/index.html) - S3 Infrastructure for Regular and Irregular Time Series (Z's Ordered Observations).
    - [xts](https://cran.r-project.org/web/packages/xts/index.html) - eXtensible Time Series.
    - [fGarch](https://cran.r-project.org/web/packages/fGarch/index.html) - Rmetrics - Autoregressive Conditional Heteroskedastic Modelling.
    - [timeSeries](https://cran.r-project.org/web/packages/timeSeries/index.html) - Rmetrics - Financial Time Series Objects.
    - [rugarch](https://cran.r-project.org/web/packages/rugarch/index.html) - Univariate GARCH Models.
    - [rmgarch](https://cran.r-project.org/web/packages/rmgarch/index.html) - Multivariate GARCH Models.
    - [tidypredict](https://github.com/edgararuiz/tidypredict) - Run predictions inside the database <https://tidypredict.netlify.com/>.
    - [tidyquant](https://github.com/business-science/tidyquant) - Bringing financial analysis to the tidyverse.
    - [timetk](https://github.com/business-science/timetk) - A toolkit for working with time series in R.
    - [tibbletime](https://github.com/business-science/tibbletime) - Built on top of the tidyverse, tibbletime is an extension that allows for the creation of time aware tibbles through the setting of a time index.
    - [matrixprofile](https://github.com/matrix-profile-foundation/matrixprofile) - Time series data mining library built on top of the novel Matrix Profile data structure and algorithms.
    - [garchmodels](https://github.com/AlbertoAlmuinha/garchmodels) - A parsnip backend for GARCH models.

    ### Calendars

    - [timeDate](https://cran.r-project.org/web/packages/timeDate/index.html) - Chronological and Calendar Objects
    - [bizdays](https://cran.r-project.org/web/packages/bizdays/index.html) - Business days calculations and utilities

    ## Matlab

    ### FrameWorks

    - [QUANTAXIS](https://github.com/yutiansut/quantaxis) - Integrated Quantitative Toolbox with Matlab.

    ## Julia

    - [QuantLib.jl](https://github.com/pazzo83/QuantLib.jl) - Quantlib implementation in pure Julia.
    - [FinancialMarkets.jl](https://github.com/imanuelcostigan/FinancialMarkets.jl) - Describe and model financial markets objects using Julia.
    - [Ito.jl](https://github.com/aviks/Ito.jl) - A Julia package for quantitative finance.
    - [TALib.jl](https://github.com/femtotrader/TALib.jl) - A Julia wrapper for TA-Lib.
    - [Miletus.jl](https://juliacomputing.com/docs/miletus/index.html) - A financial contract definition, modeling language, and valuation framework.
    - [Temporal.jl](https://github.com/dysonance/Temporal.jl) - Flexible and efficient time series class & methods.
    - [Indicators.jl](https://github.com/dysonance/Indicators.jl) - Financial market technical analysis & indicators on top of Temporal.
    - [Strategems.jl](https://github.com/dysonance/Strategems.jl) - Quantitative systematic trading strategy development and backtesting.
    - [TimeSeries.jl](https://github.com/JuliaStats/TimeSeries.jl) - Time series toolkit for Julia.
    - [MarketTechnicals.jl](https://github.com/JuliaQuant/MarketTechnicals.jl) - Technical analysis of financial time series on top of TimeSeries.
    - [MarketData.jl](https://github.com/JuliaQuant/MarketData.jl) - Time series market data.
    - [TimeFrames.jl](https://github.com/femtotrader/TimeFrames.jl) - A Julia library that defines TimeFrame (essentially for resampling TimeSeries).

    ## Java

    - [Strata](http://strata.opengamma.io/) - Modern open-source analytics and market risk library designed and written in Java.
    - [JQuantLib](http://www.jquantlib.org) - JQuantLib is a free, open-source, comprehensive framework for quantitative finance, written in 100% Java.
    - [finmath.net](http://finmath.net) - Java library with algorithms and methodologies related to mathematical finance.
    - [quantcomponents](https://github.com/lsgro/quantcomponents) - Free Java components for Quantitative Finance and Algorithmic Trading.
    - [DRIP](https://lakshmidrip.github.io/DRIP) - Fixed Income, Asset Allocation, Transaction Cost Analysis, XVA Metrics Libraries.

    ## JavaScript

    - [finance.js](https://github.com/ebradyjobory/finance.js) - A JavaScript library for common financial calculations.

    ### Data Visualization

    - [QUANTAXIS_Webkit](https://github.com/yutiansut/QUANTAXIS_Webkit) an awesome visualization center based on quantaxis.

    ## Haskell

    - [quantfin](https://github.com/boundedvariation/quantfin) - quant finance in pure haskell.
    - [hqfl](https://github.com/co-category/hqfl) - Haskell Quantitative Finance Library.
    - [Haxcel](https://github.com/MarcusRainbow/Haxcel) - Excel Addin for Haskell

    ## Scala

    - [QuantScale](https://github.com/choucrifahed/quantscale) - Scala Quantitative Finance Library.
    - [Scala Quant](https://github.com/frankcash/Scala-Quant) Scala library for working with stock data from IFTTT recipes or Google Finance.

    ## Ruby

    - [Jiji](https://github.com/unageanu/jiji2) - Open Source Forex algorithmic trading framework using OANDA REST API.
    -

    ## Elixir/Erlang

    - [Tai](https://github.com/fremantle-capital/tai) - Open Source composable, real time, market data and trade execution toolkit.
    - [Workbench](https://github.com/fremantle-industries/workbench) - From Idea to Execution - Manage your trading operation across a globally distributed cluster

    ## Golang

    - [Kelp](https://github.com/stellar/kelp) - Kelp is an open-source Golang algorithmic cryptocurrency trading bot that runs on centralized exchanges and Stellar DEX (command-line usage and desktop GUI).
    - [marketstore](https://github.com/alpacahq/marketstore) - DataFrame Server for Financial Timeseries Data.

    ## CPP

    - [TradeFrame](https://github.com/rburkholder/trade-frame) - C++ 17 based framework/library (with sample applications) for testing options based automated trading ideas using DTN IQ real time data feed and Interactive Brokers (TWS API) for trade execution. Comes with built-in [Option Greeks/IV](https://github.com/rburkholder/trade-frame/tree/master/lib/TFOptions) calculation library.

    ## Frameworks

    - [QuantLib](https://www.quantlib.org) - The QuantLib project is aimed at providing a comprehensive software framework for quantitative finance.
    - [JQuantLib](http://www.jquantlib.org) - Java port.
    - [RQuantLib](http://dirk.eddelbuettel.com/code/rquantlib.html) - R port.
    - [QuantLibAddin](https://www.quantlib.org/quantlibaddin/) - Excel support.
    - [QuantLibXL](https://www.quantlib.org/quantlibxl/) - Excel support.
    - [QLNet](https://github.com/amaggiulli/qlnet) - .Net port.
    - [PyQL](https://github.com/enthought/pyql) - Python port.
    - [QuantLib.jl](https://github.com/pazzo83/QuantLib.jl) - Julia port.
    - [TA-Lib](https://ta-lib.org) - perform technical analysis of financial market data.

    ## CSharp

    - [QuantConnect](https://github.com/QuantConnect/Lean) - Lean Engine is an open-source fully managed C# algorithmic trading engine built for desktop and cloud usage.
    - [StockSharp](https://github.com/StockSharp/StockSharp) - Algorithmic trading and quantitative trading open source platform to develop trading robots (stock markets, forex, crypto, bitcoins, and options).
    - [TDAmeritrade.DotNetCore](https://github.com/NVentimiglia/TDAmeritrade.DotNetCore) - Free, open-source .NET Client for the TD Ameritrade Trading Platform. Helps developers integrate TD Ameritrade API into custom trading solutions.

    ## Rust

    - [QuantMath](https://github.com/MarcusRainbow/QuantMath) - Financial maths library for risk-neutral pricing and risk

    ## Reproducing Works

    - [Derman Papers](https://github.com/MarcosCarreira/DermanPapers) - Notebooks that replicate original quantitative finance papers from Emanuel Derman.
    - [volatility-trading](https://github.com/jasonstrimpel/volatility-trading) - A complete set of volatility estimators based on Euan Sinclair's Volatility Trading.
    - [quant](https://github.com/paulperry/quant) - Quantitative Finance and Algorithmic Trading exhaust; mostly ipython notebooks based on Quantopian, Zipline, or Pandas.
    - [fecon235](https://github.com/rsvp/fecon235) - Open source project for software tools in financial economics. Many jupyter notebook to verify theoretical ideas and practical methods interactively.
    - [Quantitative-Notebooks](https://github.com/LongOnly/Quantitative-Notebooks) - Educational notebooks on quantitative finance, algorithmic trading, financial modelling and investment strategy
    - [QuantEcon](https://quantecon.org/) - Lecture series on economics, finance, econometrics and data science; QuantEcon.py, QuantEcon.jl, notebooks
    - [FinanceHub](https://github.com/Finance-Hub/FinanceHub) - Resources for Quantitative Finance
    - [Python_Option_Pricing](https://github.com/dedwards25/Python_Option_Pricing) - An libary to price financial options written in Python. Includes: Black Scholes, Black 76, Implied Volatility, American, European, Asian, Spread Options.
    - [python-training](https://github.com/jpmorganchase/python-training) - J.P. Morgan's Python training for business analysts and traders.
    - [Stock_Analysis_For_Quant](https://github.com/LastAncientOne/Stock_Analysis_For_Quant) - Different Types of Stock Analysis in Excel, Matlab, Power BI, Python, R, and Tableau.
    - [algorithmic-trading-with-python](https://github.com/chrisconlan/algorithmic-trading-with-python) - Source code for Algorithmic Trading with Python (2020) by Chris Conlan.
    - [MEDIUM_NoteBook](https://github.com/cerlymarco/MEDIUM_NoteBook) - Repository containing notebooks of [cerlymarco](https://github.com/cerlymarco)'s posts on Medium.

    ## Links

    https://cran.r-project.org/web/views/Finance.html

    http://www.bloomberglabs.com/api/libraries/

    https://github.com/bpsmith/pybbg

    https://pypi.python.org/pypi?%3Aaction=search&term=finance&submit=search

    https://pypi.python.org/pypi?:action=browse&show=all&c=33

    https://www.quantnet.com/threads/free-open-source-java-library-for-quantitative-finance.3238/

    http://www.jquantlib.org/

    http://www.asymptotix.eu/content/quantitative-libraries-financial-predictive-analytics

    http://www.xweld.com

    http://quantcomponents.com

    https://www.quantnet.com/threads/open-source-financial-software.2605/

    http://quant.stackexchange.com/questions/4181/library-of-basic-indicators

    http://www.quantcode.com

    http://www.cs.utah.edu/~cxiong/

    https://sites.google.com/site/peterreinhardhansen/

    http://www.dixiederivatives.com/excelpricingfiles.htm