new structure

This commit is contained in:
Wilson Freitas
2024-02-17 18:20:05 -03:00
parent 19725da762
commit 1a547f65d3
46 changed files with 4 additions and 4 deletions
+1
View File
@@ -0,0 +1 @@
/.quarto/
+134
View File
@@ -0,0 +1,134 @@
---
title: "Contributor Covenant Code of Conduct"
include-in-header:
- text: |
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7994446359957143"
crossorigin="anonymous"></script>
---
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
awesom3quant@gmail.com.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
+26
View File
@@ -0,0 +1,26 @@
project:
type: website
output-dir: docs
render:
- "*.qmd"
- "*.ipynb"
- "!quant.md"
- "!github.ipynb"
website:
title: "Awesome Quant"
navbar:
left:
- href: index.qmd
text: Home
- href: projects.qmd
text: Projects
- href: CODE_OF_CONDUCT.qmd
text: Code of Conduct
format:
html:
theme: cosmo
css: styles.css
toc: true
+9
View File
@@ -0,0 +1,9 @@
---
title: "About"
include-in-header:
- text: |
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7994446359957143"
crossorigin="anonymous"></script>
---
About this site
+622
View File
@@ -0,0 +1,622 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
<meta charset="utf-8">
<meta name="generator" content="quarto-1.4.550">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>Awesome Quant - Contributor Covenant Code of Conduct</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
vertical-align: middle;
}
</style>
<script src="site_libs/quarto-nav/quarto-nav.js"></script>
<script src="site_libs/quarto-nav/headroom.min.js"></script>
<script src="site_libs/clipboard/clipboard.min.js"></script>
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
<script src="site_libs/quarto-search/fuse.min.js"></script>
<script src="site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="./">
<script src="site_libs/quarto-html/quarto.js"></script>
<script src="site_libs/quarto-html/popper.min.js"></script>
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
<script src="site_libs/quarto-html/anchor.min.js"></script>
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
<link href="site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
<script id="quarto-search-options" type="application/json">{
"location": "navbar",
"copy-button": false,
"collapse-after": 3,
"panel-placement": "end",
"type": "overlay",
"limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": {
"search-no-results-text": "No results",
"search-matching-documents-text": "matching documents",
"search-copy-link-title": "Copy link to search",
"search-hide-matches-text": "Hide additional matches",
"search-more-match-text": "more match in this document",
"search-more-matches-text": "more matches in this document",
"search-clear-button-title": "Clear",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Cancel",
"search-submit-button-title": "Submit",
"search-label": "Search"
}
}</script>
<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7994446359957143" crossorigin="anonymous"></script>
<link rel="stylesheet" href="styles.css">
</head>
<body class="nav-fixed">
<div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top">
<nav class="navbar navbar-expand-lg " data-bs-theme="dark">
<div class="navbar-container container-fluid">
<div class="navbar-brand-container mx-auto">
<a class="navbar-brand" href="./index.html">
<span class="navbar-title">Awesome Quant</span>
</a>
</div>
<div id="quarto-search" class="" title="Search"></div>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav navbar-nav-scroll me-auto">
<li class="nav-item">
<a class="nav-link" href="./index.html">
<span class="menu-text">Home</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="./projects.html">
<span class="menu-text">Projects</span></a>
</li>
<li class="nav-item">
<a class="nav-link active" href="./CODE_OF_CONDUCT.html" aria-current="page">
<span class="menu-text">Code of Conduct</span></a>
</li>
</ul>
</div> <!-- /navcollapse -->
<div class="quarto-navbar-tools">
</div>
</div> <!-- /container-fluid -->
</nav>
</header>
<!-- content -->
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
<!-- sidebar -->
<!-- margin-sidebar -->
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
<nav id="TOC" role="doc-toc" class="toc-active">
<h2 id="toc-title">On this page</h2>
<ul>
<li><a href="#our-pledge" id="toc-our-pledge" class="nav-link active" data-scroll-target="#our-pledge">Our Pledge</a></li>
<li><a href="#our-standards" id="toc-our-standards" class="nav-link" data-scroll-target="#our-standards">Our Standards</a></li>
<li><a href="#enforcement-responsibilities" id="toc-enforcement-responsibilities" class="nav-link" data-scroll-target="#enforcement-responsibilities">Enforcement Responsibilities</a></li>
<li><a href="#scope" id="toc-scope" class="nav-link" data-scroll-target="#scope">Scope</a></li>
<li><a href="#enforcement" id="toc-enforcement" class="nav-link" data-scroll-target="#enforcement">Enforcement</a></li>
<li><a href="#enforcement-guidelines" id="toc-enforcement-guidelines" class="nav-link" data-scroll-target="#enforcement-guidelines">Enforcement Guidelines</a>
<ul class="collapse">
<li><a href="#correction" id="toc-correction" class="nav-link" data-scroll-target="#correction">1. Correction</a></li>
<li><a href="#warning" id="toc-warning" class="nav-link" data-scroll-target="#warning">2. Warning</a></li>
<li><a href="#temporary-ban" id="toc-temporary-ban" class="nav-link" data-scroll-target="#temporary-ban">3. Temporary Ban</a></li>
<li><a href="#permanent-ban" id="toc-permanent-ban" class="nav-link" data-scroll-target="#permanent-ban">4. Permanent Ban</a></li>
</ul></li>
<li><a href="#attribution" id="toc-attribution" class="nav-link" data-scroll-target="#attribution">Attribution</a></li>
</ul>
</nav>
</div>
<!-- main -->
<main class="content" id="quarto-document-content">
<header id="title-block-header" class="quarto-title-block default">
<div class="quarto-title">
<h1 class="title">Contributor Covenant Code of Conduct</h1>
</div>
<div class="quarto-title-meta">
</div>
</header>
<section id="our-pledge" class="level2">
<h2 class="anchored" data-anchor-id="our-pledge">Our Pledge</h2>
<p>We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.</p>
<p>We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.</p>
</section>
<section id="our-standards" class="level2">
<h2 class="anchored" data-anchor-id="our-standards">Our Standards</h2>
<p>Examples of behavior that contributes to a positive environment for our community include:</p>
<ul>
<li>Demonstrating empathy and kindness toward other people</li>
<li>Being respectful of differing opinions, viewpoints, and experiences</li>
<li>Giving and gracefully accepting constructive feedback</li>
<li>Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience</li>
<li>Focusing on what is best not just for us as individuals, but for the overall community</li>
</ul>
<p>Examples of unacceptable behavior include:</p>
<ul>
<li>The use of sexualized language or imagery, and sexual attention or advances of any kind</li>
<li>Trolling, insulting or derogatory comments, and personal or political attacks</li>
<li>Public or private harassment</li>
<li>Publishing others private information, such as a physical or email address, without their explicit permission</li>
<li>Other conduct which could reasonably be considered inappropriate in a professional setting</li>
</ul>
</section>
<section id="enforcement-responsibilities" class="level2">
<h2 class="anchored" data-anchor-id="enforcement-responsibilities">Enforcement Responsibilities</h2>
<p>Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.</p>
<p>Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.</p>
</section>
<section id="scope" class="level2">
<h2 class="anchored" data-anchor-id="scope">Scope</h2>
<p>This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.</p>
</section>
<section id="enforcement" class="level2">
<h2 class="anchored" data-anchor-id="enforcement">Enforcement</h2>
<p>Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at awesom3quant@gmail.com. All complaints will be reviewed and investigated promptly and fairly.</p>
<p>All community leaders are obligated to respect the privacy and security of the reporter of any incident.</p>
</section>
<section id="enforcement-guidelines" class="level2">
<h2 class="anchored" data-anchor-id="enforcement-guidelines">Enforcement Guidelines</h2>
<p>Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:</p>
<section id="correction" class="level3">
<h3 class="anchored" data-anchor-id="correction">1. Correction</h3>
<p><strong>Community Impact</strong>: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.</p>
<p><strong>Consequence</strong>: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.</p>
</section>
<section id="warning" class="level3">
<h3 class="anchored" data-anchor-id="warning">2. Warning</h3>
<p><strong>Community Impact</strong>: A violation through a single incident or series of actions.</p>
<p><strong>Consequence</strong>: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.</p>
</section>
<section id="temporary-ban" class="level3">
<h3 class="anchored" data-anchor-id="temporary-ban">3. Temporary Ban</h3>
<p><strong>Community Impact</strong>: A serious violation of community standards, including sustained inappropriate behavior.</p>
<p><strong>Consequence</strong>: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.</p>
</section>
<section id="permanent-ban" class="level3">
<h3 class="anchored" data-anchor-id="permanent-ban">4. Permanent Ban</h3>
<p><strong>Community Impact</strong>: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.</p>
<p><strong>Consequence</strong>: A permanent ban from any sort of public interaction within the community.</p>
</section>
</section>
<section id="attribution" class="level2">
<h2 class="anchored" data-anchor-id="attribution">Attribution</h2>
<p>This Code of Conduct is adapted from the <a href="https://www.contributor-covenant.org">Contributor Covenant</a>, version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.</p>
<p>Community Impact Guidelines were inspired by <a href="https://github.com/mozilla/diversity">Mozillas code of conduct enforcement ladder</a>.</p>
<p>For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.</p>
</section>
</main> <!-- /main -->
<script id="quarto-html-after-body" type="application/javascript">
window.document.addEventListener("DOMContentLoaded", function (event) {
const toggleBodyColorMode = (bsSheetEl) => {
const mode = bsSheetEl.getAttribute("data-mode");
const bodyEl = window.document.querySelector("body");
if (mode === "dark") {
bodyEl.classList.add("quarto-dark");
bodyEl.classList.remove("quarto-light");
} else {
bodyEl.classList.add("quarto-light");
bodyEl.classList.remove("quarto-dark");
}
}
const toggleBodyColorPrimary = () => {
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
if (bsSheetEl) {
toggleBodyColorMode(bsSheetEl);
}
}
toggleBodyColorPrimary();
const icon = "";
const anchorJS = new window.AnchorJS();
anchorJS.options = {
placement: 'right',
icon: icon
};
anchorJS.add('.anchored');
const isCodeAnnotation = (el) => {
for (const clz of el.classList) {
if (clz.startsWith('code-annotation-')) {
return true;
}
}
return false;
}
const clipboard = new window.ClipboardJS('.code-copy-button', {
text: function(trigger) {
const codeEl = trigger.previousElementSibling.cloneNode(true);
for (const childEl of codeEl.children) {
if (isCodeAnnotation(childEl)) {
childEl.remove();
}
}
return codeEl.innerText;
}
});
clipboard.on('success', function(e) {
// button target
const button = e.trigger;
// don't keep focus
button.blur();
// flash "checked"
button.classList.add('code-copy-button-checked');
var currentTitle = button.getAttribute("title");
button.setAttribute("title", "Copied!");
let tooltip;
if (window.bootstrap) {
button.setAttribute("data-bs-toggle", "tooltip");
button.setAttribute("data-bs-placement", "left");
button.setAttribute("data-bs-title", "Copied!");
tooltip = new bootstrap.Tooltip(button,
{ trigger: "manual",
customClass: "code-copy-button-tooltip",
offset: [0, -8]});
tooltip.show();
}
setTimeout(function() {
if (tooltip) {
tooltip.hide();
button.removeAttribute("data-bs-title");
button.removeAttribute("data-bs-toggle");
button.removeAttribute("data-bs-placement");
}
button.setAttribute("title", currentTitle);
button.classList.remove('code-copy-button-checked');
}, 1000);
// clear code selection
e.clearSelection();
});
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
const config = {
allowHTML: true,
maxWidth: 500,
delay: 100,
arrow: false,
appendTo: function(el) {
return el.parentElement;
},
interactive: true,
interactiveBorder: 10,
theme: 'quarto',
placement: 'bottom-start',
};
if (contentFn) {
config.content = contentFn;
}
if (onTriggerFn) {
config.onTrigger = onTriggerFn;
}
if (onUntriggerFn) {
config.onUntrigger = onUntriggerFn;
}
window.tippy(el, config);
}
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
for (var i=0; i<noterefs.length; i++) {
const ref = noterefs[i];
tippyHover(ref, function() {
// use id or data attribute instead here
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
try { href = new URL(href).hash; } catch {}
const id = href.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
return note.innerHTML;
});
}
const xrefs = window.document.querySelectorAll('a.quarto-xref');
const processXRef = (id, note) => {
// Strip column container classes
const stripColumnClz = (el) => {
el.classList.remove("page-full", "page-columns");
if (el.children) {
for (const child of el.children) {
stripColumnClz(child);
}
}
}
stripColumnClz(note)
if (id === null || id.startsWith('sec-')) {
// Special case sections, only their first couple elements
const container = document.createElement("div");
if (note.children && note.children.length > 2) {
container.appendChild(note.children[0].cloneNode(true));
for (let i = 1; i < note.children.length; i++) {
const child = note.children[i];
if (child.tagName === "P" && child.innerText === "") {
continue;
} else {
container.appendChild(child.cloneNode(true));
break;
}
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(container);
}
return container.innerHTML
} else {
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
return note.innerHTML;
}
} else {
// Remove any anchor links if they are present
const anchorLink = note.querySelector('a.anchorjs-link');
if (anchorLink) {
anchorLink.remove();
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
// TODO in 1.5, we should make sure this works without a callout special case
if (note.classList.contains("callout")) {
return note.outerHTML;
} else {
return note.innerHTML;
}
}
}
for (var i=0; i<xrefs.length; i++) {
const xref = xrefs[i];
tippyHover(xref, undefined, function(instance) {
instance.disable();
let url = xref.getAttribute('href');
let hash = undefined;
if (url.startsWith('#')) {
hash = url;
} else {
try { hash = new URL(url).hash; } catch {}
}
if (hash) {
const id = hash.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
if (note !== null) {
try {
const html = processXRef(id, note.cloneNode(true));
instance.setContent(html);
} finally {
instance.enable();
instance.show();
}
} else {
// See if we can fetch this
fetch(url.split('#')[0])
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.getElementById(id);
if (note !== null) {
const html = processXRef(id, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
} else {
// See if we can fetch a full url (with no hash to target)
// This is a special case and we should probably do some content thinning / targeting
fetch(url)
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.querySelector('main.content');
if (note !== null) {
// This should only happen for chapter cross references
// (since there is no id in the URL)
// remove the first header
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
note.children[0].remove();
}
const html = processXRef(null, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
}, function(instance) {
});
}
let selectedAnnoteEl;
const selectorForAnnotation = ( cell, annotation) => {
let cellAttr = 'data-code-cell="' + cell + '"';
let lineAttr = 'data-code-annotation="' + annotation + '"';
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
return selector;
}
const selectCodeLines = (annoteEl) => {
const doc = window.document;
const targetCell = annoteEl.getAttribute("data-target-cell");
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
const lineIds = lines.map((line) => {
return targetCell + "-" + line;
})
let top = null;
let height = null;
let parent = null;
if (lineIds.length > 0) {
//compute the position of the single el (top and bottom and make a div)
const el = window.document.getElementById(lineIds[0]);
top = el.offsetTop;
height = el.offsetHeight;
parent = el.parentElement.parentElement;
if (lineIds.length > 1) {
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
height = bottom - top;
}
if (top !== null && height !== null && parent !== null) {
// cook up a div (if necessary) and position it
let div = window.document.getElementById("code-annotation-line-highlight");
if (div === null) {
div = window.document.createElement("div");
div.setAttribute("id", "code-annotation-line-highlight");
div.style.position = 'absolute';
parent.appendChild(div);
}
div.style.top = top - 2 + "px";
div.style.height = height + 4 + "px";
div.style.left = 0;
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
if (gutterDiv === null) {
gutterDiv = window.document.createElement("div");
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
gutterDiv.style.position = 'absolute';
const codeCell = window.document.getElementById(targetCell);
const gutter = codeCell.querySelector('.code-annotation-gutter');
gutter.appendChild(gutterDiv);
}
gutterDiv.style.top = top - 2 + "px";
gutterDiv.style.height = height + 4 + "px";
}
selectedAnnoteEl = annoteEl;
}
};
const unselectCodeLines = () => {
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
elementsIds.forEach((elId) => {
const div = window.document.getElementById(elId);
if (div) {
div.remove();
}
});
selectedAnnoteEl = undefined;
};
// Handle positioning of the toggle
window.addEventListener(
"resize",
throttle(() => {
elRect = undefined;
if (selectedAnnoteEl) {
selectCodeLines(selectedAnnoteEl);
}
}, 10)
);
function throttle(fn, ms) {
let throttle = false;
let timer;
return (...args) => {
if(!throttle) { // first call gets through
fn.apply(this, args);
throttle = true;
} else { // all the others get throttled
if(timer) clearTimeout(timer); // cancel #2
timer = setTimeout(() => {
fn.apply(this, args);
timer = throttle = false;
}, ms);
}
};
}
// Attach click handler to the DT
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
for (const annoteDlNode of annoteDls) {
annoteDlNode.addEventListener('click', (event) => {
const clickedEl = event.target;
if (clickedEl !== selectedAnnoteEl) {
unselectCodeLines();
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
if (activeEl) {
activeEl.classList.remove('code-annotation-active');
}
selectCodeLines(clickedEl);
clickedEl.classList.add('code-annotation-active');
} else {
// Unselect the line
unselectCodeLines();
clickedEl.classList.remove('code-annotation-active');
}
});
}
const findCites = (el) => {
const parentEl = el.parentElement;
if (parentEl) {
const cites = parentEl.dataset.cites;
if (cites) {
return {
el,
cites: cites.split(' ')
};
} else {
return findCites(el.parentElement)
}
} else {
return undefined;
}
};
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
for (var i=0; i<bibliorefs.length; i++) {
const ref = bibliorefs[i];
const citeInfo = findCites(ref);
if (citeInfo) {
tippyHover(citeInfo.el, function() {
var popup = window.document.createElement('div');
citeInfo.cites.forEach(function(cite) {
var citeDiv = window.document.createElement('div');
citeDiv.classList.add('hanging-indent');
citeDiv.classList.add('csl-entry');
var biblioDiv = window.document.getElementById('ref-' + cite);
if (biblioDiv) {
citeDiv.innerHTML = biblioDiv.innerHTML;
}
popup.appendChild(citeDiv);
});
return popup.innerHTML;
});
}
}
});
</script>
</div> <!-- /content -->
</body></html>
+537
View File
@@ -0,0 +1,537 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
<meta charset="utf-8">
<meta name="generator" content="quarto-1.4.550">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>Awesome Quant - About</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
vertical-align: middle;
}
</style>
<script src="site_libs/quarto-nav/quarto-nav.js"></script>
<script src="site_libs/quarto-nav/headroom.min.js"></script>
<script src="site_libs/clipboard/clipboard.min.js"></script>
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
<script src="site_libs/quarto-search/fuse.min.js"></script>
<script src="site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="./">
<script src="site_libs/quarto-html/quarto.js"></script>
<script src="site_libs/quarto-html/popper.min.js"></script>
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
<script src="site_libs/quarto-html/anchor.min.js"></script>
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
<link href="site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" id="quarto-text-highlighting-styles">
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" id="quarto-bootstrap" data-mode="light">
<script id="quarto-search-options" type="application/json">{
"location": "navbar",
"copy-button": false,
"collapse-after": 3,
"panel-placement": "end",
"type": "overlay",
"limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": {
"search-no-results-text": "No results",
"search-matching-documents-text": "matching documents",
"search-copy-link-title": "Copy link to search",
"search-hide-matches-text": "Hide additional matches",
"search-more-match-text": "more match in this document",
"search-more-matches-text": "more matches in this document",
"search-clear-button-title": "Clear",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Cancel",
"search-submit-button-title": "Submit",
"search-label": "Search"
}
}</script>
<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7994446359957143" crossorigin="anonymous"></script>
<link rel="stylesheet" href="styles.css">
</head>
<body class="nav-fixed">
<div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top">
<nav class="navbar navbar-expand-lg " data-bs-theme="dark">
<div class="navbar-container container-fluid">
<div class="navbar-brand-container mx-auto">
<a class="navbar-brand" href="./index.html">
<span class="navbar-title">Awesome Quant</span>
</a>
</div>
<div id="quarto-search" class="" title="Search"></div>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav navbar-nav-scroll me-auto">
<li class="nav-item">
<a class="nav-link" href="./index.html">
<span class="menu-text">Home</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="./projects.html">
<span class="menu-text">Projects</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="./CODE_OF_CONDUCT.html">
<span class="menu-text">Code of Conduct</span></a>
</li>
</ul>
</div> <!-- /navcollapse -->
<div class="quarto-navbar-tools">
</div>
</div> <!-- /container-fluid -->
</nav>
</header>
<!-- content -->
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
<!-- sidebar -->
<!-- margin-sidebar -->
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
</div>
<!-- main -->
<main class="content" id="quarto-document-content">
<header id="title-block-header" class="quarto-title-block default">
<div class="quarto-title">
<h1 class="title">About</h1>
</div>
<div class="quarto-title-meta">
</div>
</header>
<p>About this site</p>
</main> <!-- /main -->
<script id="quarto-html-after-body" type="application/javascript">
window.document.addEventListener("DOMContentLoaded", function (event) {
const toggleBodyColorMode = (bsSheetEl) => {
const mode = bsSheetEl.getAttribute("data-mode");
const bodyEl = window.document.querySelector("body");
if (mode === "dark") {
bodyEl.classList.add("quarto-dark");
bodyEl.classList.remove("quarto-light");
} else {
bodyEl.classList.add("quarto-light");
bodyEl.classList.remove("quarto-dark");
}
}
const toggleBodyColorPrimary = () => {
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
if (bsSheetEl) {
toggleBodyColorMode(bsSheetEl);
}
}
toggleBodyColorPrimary();
const icon = "";
const anchorJS = new window.AnchorJS();
anchorJS.options = {
placement: 'right',
icon: icon
};
anchorJS.add('.anchored');
const isCodeAnnotation = (el) => {
for (const clz of el.classList) {
if (clz.startsWith('code-annotation-')) {
return true;
}
}
return false;
}
const clipboard = new window.ClipboardJS('.code-copy-button', {
text: function(trigger) {
const codeEl = trigger.previousElementSibling.cloneNode(true);
for (const childEl of codeEl.children) {
if (isCodeAnnotation(childEl)) {
childEl.remove();
}
}
return codeEl.innerText;
}
});
clipboard.on('success', function(e) {
// button target
const button = e.trigger;
// don't keep focus
button.blur();
// flash "checked"
button.classList.add('code-copy-button-checked');
var currentTitle = button.getAttribute("title");
button.setAttribute("title", "Copied!");
let tooltip;
if (window.bootstrap) {
button.setAttribute("data-bs-toggle", "tooltip");
button.setAttribute("data-bs-placement", "left");
button.setAttribute("data-bs-title", "Copied!");
tooltip = new bootstrap.Tooltip(button,
{ trigger: "manual",
customClass: "code-copy-button-tooltip",
offset: [0, -8]});
tooltip.show();
}
setTimeout(function() {
if (tooltip) {
tooltip.hide();
button.removeAttribute("data-bs-title");
button.removeAttribute("data-bs-toggle");
button.removeAttribute("data-bs-placement");
}
button.setAttribute("title", currentTitle);
button.classList.remove('code-copy-button-checked');
}, 1000);
// clear code selection
e.clearSelection();
});
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
const config = {
allowHTML: true,
maxWidth: 500,
delay: 100,
arrow: false,
appendTo: function(el) {
return el.parentElement;
},
interactive: true,
interactiveBorder: 10,
theme: 'quarto',
placement: 'bottom-start',
};
if (contentFn) {
config.content = contentFn;
}
if (onTriggerFn) {
config.onTrigger = onTriggerFn;
}
if (onUntriggerFn) {
config.onUntrigger = onUntriggerFn;
}
window.tippy(el, config);
}
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
for (var i=0; i<noterefs.length; i++) {
const ref = noterefs[i];
tippyHover(ref, function() {
// use id or data attribute instead here
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
try { href = new URL(href).hash; } catch {}
const id = href.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
return note.innerHTML;
});
}
const xrefs = window.document.querySelectorAll('a.quarto-xref');
const processXRef = (id, note) => {
// Strip column container classes
const stripColumnClz = (el) => {
el.classList.remove("page-full", "page-columns");
if (el.children) {
for (const child of el.children) {
stripColumnClz(child);
}
}
}
stripColumnClz(note)
if (id === null || id.startsWith('sec-')) {
// Special case sections, only their first couple elements
const container = document.createElement("div");
if (note.children && note.children.length > 2) {
container.appendChild(note.children[0].cloneNode(true));
for (let i = 1; i < note.children.length; i++) {
const child = note.children[i];
if (child.tagName === "P" && child.innerText === "") {
continue;
} else {
container.appendChild(child.cloneNode(true));
break;
}
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(container);
}
return container.innerHTML
} else {
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
return note.innerHTML;
}
} else {
// Remove any anchor links if they are present
const anchorLink = note.querySelector('a.anchorjs-link');
if (anchorLink) {
anchorLink.remove();
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
// TODO in 1.5, we should make sure this works without a callout special case
if (note.classList.contains("callout")) {
return note.outerHTML;
} else {
return note.innerHTML;
}
}
}
for (var i=0; i<xrefs.length; i++) {
const xref = xrefs[i];
tippyHover(xref, undefined, function(instance) {
instance.disable();
let url = xref.getAttribute('href');
let hash = undefined;
if (url.startsWith('#')) {
hash = url;
} else {
try { hash = new URL(url).hash; } catch {}
}
if (hash) {
const id = hash.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
if (note !== null) {
try {
const html = processXRef(id, note.cloneNode(true));
instance.setContent(html);
} finally {
instance.enable();
instance.show();
}
} else {
// See if we can fetch this
fetch(url.split('#')[0])
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.getElementById(id);
if (note !== null) {
const html = processXRef(id, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
} else {
// See if we can fetch a full url (with no hash to target)
// This is a special case and we should probably do some content thinning / targeting
fetch(url)
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.querySelector('main.content');
if (note !== null) {
// This should only happen for chapter cross references
// (since there is no id in the URL)
// remove the first header
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
note.children[0].remove();
}
const html = processXRef(null, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
}, function(instance) {
});
}
let selectedAnnoteEl;
const selectorForAnnotation = ( cell, annotation) => {
let cellAttr = 'data-code-cell="' + cell + '"';
let lineAttr = 'data-code-annotation="' + annotation + '"';
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
return selector;
}
const selectCodeLines = (annoteEl) => {
const doc = window.document;
const targetCell = annoteEl.getAttribute("data-target-cell");
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
const lineIds = lines.map((line) => {
return targetCell + "-" + line;
})
let top = null;
let height = null;
let parent = null;
if (lineIds.length > 0) {
//compute the position of the single el (top and bottom and make a div)
const el = window.document.getElementById(lineIds[0]);
top = el.offsetTop;
height = el.offsetHeight;
parent = el.parentElement.parentElement;
if (lineIds.length > 1) {
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
height = bottom - top;
}
if (top !== null && height !== null && parent !== null) {
// cook up a div (if necessary) and position it
let div = window.document.getElementById("code-annotation-line-highlight");
if (div === null) {
div = window.document.createElement("div");
div.setAttribute("id", "code-annotation-line-highlight");
div.style.position = 'absolute';
parent.appendChild(div);
}
div.style.top = top - 2 + "px";
div.style.height = height + 4 + "px";
div.style.left = 0;
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
if (gutterDiv === null) {
gutterDiv = window.document.createElement("div");
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
gutterDiv.style.position = 'absolute';
const codeCell = window.document.getElementById(targetCell);
const gutter = codeCell.querySelector('.code-annotation-gutter');
gutter.appendChild(gutterDiv);
}
gutterDiv.style.top = top - 2 + "px";
gutterDiv.style.height = height + 4 + "px";
}
selectedAnnoteEl = annoteEl;
}
};
const unselectCodeLines = () => {
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
elementsIds.forEach((elId) => {
const div = window.document.getElementById(elId);
if (div) {
div.remove();
}
});
selectedAnnoteEl = undefined;
};
// Handle positioning of the toggle
window.addEventListener(
"resize",
throttle(() => {
elRect = undefined;
if (selectedAnnoteEl) {
selectCodeLines(selectedAnnoteEl);
}
}, 10)
);
function throttle(fn, ms) {
let throttle = false;
let timer;
return (...args) => {
if(!throttle) { // first call gets through
fn.apply(this, args);
throttle = true;
} else { // all the others get throttled
if(timer) clearTimeout(timer); // cancel #2
timer = setTimeout(() => {
fn.apply(this, args);
timer = throttle = false;
}, ms);
}
};
}
// Attach click handler to the DT
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
for (const annoteDlNode of annoteDls) {
annoteDlNode.addEventListener('click', (event) => {
const clickedEl = event.target;
if (clickedEl !== selectedAnnoteEl) {
unselectCodeLines();
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
if (activeEl) {
activeEl.classList.remove('code-annotation-active');
}
selectCodeLines(clickedEl);
clickedEl.classList.add('code-annotation-active');
} else {
// Unselect the line
unselectCodeLines();
clickedEl.classList.remove('code-annotation-active');
}
});
}
const findCites = (el) => {
const parentEl = el.parentElement;
if (parentEl) {
const cites = parentEl.dataset.cites;
if (cites) {
return {
el,
cites: cites.split(' ')
};
} else {
return findCites(el.parentElement)
}
} else {
return undefined;
}
};
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
for (var i=0; i<bibliorefs.length; i++) {
const ref = bibliorefs[i];
const citeInfo = findCites(ref);
if (citeInfo) {
tippyHover(citeInfo.el, function() {
var popup = window.document.createElement('div');
citeInfo.cites.forEach(function(cite) {
var citeDiv = window.document.createElement('div');
citeDiv.classList.add('hanging-indent');
citeDiv.classList.add('csl-entry');
var biblioDiv = window.document.getElementById('ref-' + cite);
if (biblioDiv) {
citeDiv.innerHTML = biblioDiv.innerHTML;
}
popup.appendChild(citeDiv);
});
return popup.innerHTML;
});
}
}
});
</script>
</div> <!-- /content -->
</body></html>
+1184
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
.container-fluid.crosstalk-bscols{margin-left:-30px;margin-right:-30px;white-space:normal}body>.container-fluid.crosstalk-bscols{margin-left:auto;margin-right:auto}.crosstalk-input-checkboxgroup .crosstalk-options-group .crosstalk-options-column{display:inline-block;padding-right:12px;vertical-align:top}@media only screen and (max-width: 480px){.crosstalk-input-checkboxgroup .crosstalk-options-group .crosstalk-options-column{display:block;padding-right:inherit}}.crosstalk-input{margin-bottom:15px}.crosstalk-input .control-label{margin-bottom:0;vertical-align:middle}.crosstalk-input input[type="checkbox"]{margin:4px 0 0;margin-top:1px;line-height:normal}.crosstalk-input .checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.crosstalk-input .checkbox>label{padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.crosstalk-input .checkbox input[type="checkbox"],.crosstalk-input .checkbox-inline input[type="checkbox"]{position:absolute;margin-top:2px;margin-left:-20px}.crosstalk-input .checkbox+.checkbox{margin-top:-5px}.crosstalk-input .checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.crosstalk-input .checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,75 @@
/* Adjust margins outwards, so column contents line up with the edges of the
parent of container-fluid. */
.container-fluid.crosstalk-bscols {
margin-left: -30px;
margin-right: -30px;
white-space: normal;
}
/* But don't adjust the margins outwards if we're directly under the body,
i.e. we were the top-level of something at the console. */
body > .container-fluid.crosstalk-bscols {
margin-left: auto;
margin-right: auto;
}
.crosstalk-input-checkboxgroup .crosstalk-options-group .crosstalk-options-column {
display: inline-block;
padding-right: 12px;
vertical-align: top;
}
@media only screen and (max-width:480px) {
.crosstalk-input-checkboxgroup .crosstalk-options-group .crosstalk-options-column {
display: block;
padding-right: inherit;
}
}
/* Relevant BS3 styles to make filter_checkbox() look reasonable without Bootstrap */
.crosstalk-input {
margin-bottom: 15px; /* a la .form-group */
.control-label {
margin-bottom: 0;
vertical-align: middle;
}
input[type="checkbox"] {
margin: 4px 0 0;
margin-top: 1px;
line-height: normal;
}
.checkbox {
position: relative;
display: block;
margin-top: 10px;
margin-bottom: 10px;
}
.checkbox > label{
padding-left: 20px;
margin-bottom: 0;
font-weight: 400;
cursor: pointer;
}
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
position: absolute;
margin-top: 2px;
margin-left: -20px;
}
.checkbox + .checkbox {
margin-top: -5px;
}
.checkbox-inline {
position: relative;
display: inline-block;
padding-left: 20px;
margin-bottom: 0;
font-weight: 400;
vertical-align: middle;
cursor: pointer;
}
.checkbox-inline + .checkbox-inline {
margin-top: 0;
margin-left: 10px;
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,32 @@
.dt-crosstalk-fade {
opacity: 0.2;
}
html body div.DTS div.dataTables_scrollBody {
background: none;
}
/*
Fix https://github.com/rstudio/DT/issues/563
If the `table.display` is set to "block" (e.g., pkgdown), the browser will display
datatable objects strangely. The search panel and the page buttons will still be
in full-width but the table body will be "compact" and shorter.
In therory, having this attributes will affect `dom="t"`
with `display: block` users. But in reality, there should be no one.
We may remove the below lines in the future if the upstream agree to have this there.
See https://github.com/DataTables/DataTablesSrc/issues/160
*/
table.dataTable {
display: table;
}
/*
When DTOutput(fill = TRUE), it receives a .html-fill-item class (via htmltools::bindFillRole()), which effectively amounts to `flex: 1 1 auto`. That's mostly fine, but the case where `fillContainer=TRUE`+`height:auto`+`flex-basis:auto` and the container (e.g., a bslib::card()) doesn't have a defined height is a bit problematic since the table wants to fit the parent but the parent wants to fit the table, which results pretty small table height (maybe because there is a minimum height somewhere?). It seems better in this case to impose a 400px height default for the table, which we can do by setting `flex-basis` to 400px (the table is still allowed to grow/shrink when the container has an opinionated height).
*/
.html-fill-container > .html-fill-item.datatables {
flex-basis: 400px;
}
@@ -0,0 +1,28 @@
/* Selected rows/cells */
table.dataTable tr.selected td, table.dataTable td.selected {
background-color: #b0bed9 !important;
}
/* In case of scrollX/Y or FixedHeader */
.dataTables_scrollBody .dataTables_sizing {
visibility: hidden;
}
/* The datatables' theme CSS file doesn't define
the color but with white background. It leads to an issue that
when the HTML's body color is set to 'white', the user can't
see the text since the background is white. One case happens in the
RStudio's IDE when inline viewing the DT table inside an Rmd file,
if the IDE theme is set to "Cobalt".
See https://github.com/rstudio/DT/issues/447 for more info
This fixes should have little side-effects because all the other elements
of the default theme use the #333 font color.
TODO: The upstream may use relative colors for both the table background
and the color. It means the table can display well without this patch
then. At that time, we need to remove the below CSS attributes.
*/
div.datatables {
color: #333;
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,901 @@
(function() {
// If window.HTMLWidgets is already defined, then use it; otherwise create a
// new object. This allows preceding code to set options that affect the
// initialization process (though none currently exist).
window.HTMLWidgets = window.HTMLWidgets || {};
// See if we're running in a viewer pane. If not, we're in a web browser.
var viewerMode = window.HTMLWidgets.viewerMode =
/\bviewer_pane=1\b/.test(window.location);
// See if we're running in Shiny mode. If not, it's a static document.
// Note that static widgets can appear in both Shiny and static modes, but
// obviously, Shiny widgets can only appear in Shiny apps/documents.
var shinyMode = window.HTMLWidgets.shinyMode =
typeof(window.Shiny) !== "undefined" && !!window.Shiny.outputBindings;
// We can't count on jQuery being available, so we implement our own
// version if necessary.
function querySelectorAll(scope, selector) {
if (typeof(jQuery) !== "undefined" && scope instanceof jQuery) {
return scope.find(selector);
}
if (scope.querySelectorAll) {
return scope.querySelectorAll(selector);
}
}
function asArray(value) {
if (value === null)
return [];
if ($.isArray(value))
return value;
return [value];
}
// Implement jQuery's extend
function extend(target /*, ... */) {
if (arguments.length == 1) {
return target;
}
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var prop in source) {
if (source.hasOwnProperty(prop)) {
target[prop] = source[prop];
}
}
}
return target;
}
// IE8 doesn't support Array.forEach.
function forEach(values, callback, thisArg) {
if (values.forEach) {
values.forEach(callback, thisArg);
} else {
for (var i = 0; i < values.length; i++) {
callback.call(thisArg, values[i], i, values);
}
}
}
// Replaces the specified method with the return value of funcSource.
//
// Note that funcSource should not BE the new method, it should be a function
// that RETURNS the new method. funcSource receives a single argument that is
// the overridden method, it can be called from the new method. The overridden
// method can be called like a regular function, it has the target permanently
// bound to it so "this" will work correctly.
function overrideMethod(target, methodName, funcSource) {
var superFunc = target[methodName] || function() {};
var superFuncBound = function() {
return superFunc.apply(target, arguments);
};
target[methodName] = funcSource(superFuncBound);
}
// Add a method to delegator that, when invoked, calls
// delegatee.methodName. If there is no such method on
// the delegatee, but there was one on delegator before
// delegateMethod was called, then the original version
// is invoked instead.
// For example:
//
// var a = {
// method1: function() { console.log('a1'); }
// method2: function() { console.log('a2'); }
// };
// var b = {
// method1: function() { console.log('b1'); }
// };
// delegateMethod(a, b, "method1");
// delegateMethod(a, b, "method2");
// a.method1();
// a.method2();
//
// The output would be "b1", "a2".
function delegateMethod(delegator, delegatee, methodName) {
var inherited = delegator[methodName];
delegator[methodName] = function() {
var target = delegatee;
var method = delegatee[methodName];
// The method doesn't exist on the delegatee. Instead,
// call the method on the delegator, if it exists.
if (!method) {
target = delegator;
method = inherited;
}
if (method) {
return method.apply(target, arguments);
}
};
}
// Implement a vague facsimilie of jQuery's data method
function elementData(el, name, value) {
if (arguments.length == 2) {
return el["htmlwidget_data_" + name];
} else if (arguments.length == 3) {
el["htmlwidget_data_" + name] = value;
return el;
} else {
throw new Error("Wrong number of arguments for elementData: " +
arguments.length);
}
}
// http://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex
function escapeRegExp(str) {
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}
function hasClass(el, className) {
var re = new RegExp("\\b" + escapeRegExp(className) + "\\b");
return re.test(el.className);
}
// elements - array (or array-like object) of HTML elements
// className - class name to test for
// include - if true, only return elements with given className;
// if false, only return elements *without* given className
function filterByClass(elements, className, include) {
var results = [];
for (var i = 0; i < elements.length; i++) {
if (hasClass(elements[i], className) == include)
results.push(elements[i]);
}
return results;
}
function on(obj, eventName, func) {
if (obj.addEventListener) {
obj.addEventListener(eventName, func, false);
} else if (obj.attachEvent) {
obj.attachEvent(eventName, func);
}
}
function off(obj, eventName, func) {
if (obj.removeEventListener)
obj.removeEventListener(eventName, func, false);
else if (obj.detachEvent) {
obj.detachEvent(eventName, func);
}
}
// Translate array of values to top/right/bottom/left, as usual with
// the "padding" CSS property
// https://developer.mozilla.org/en-US/docs/Web/CSS/padding
function unpackPadding(value) {
if (typeof(value) === "number")
value = [value];
if (value.length === 1) {
return {top: value[0], right: value[0], bottom: value[0], left: value[0]};
}
if (value.length === 2) {
return {top: value[0], right: value[1], bottom: value[0], left: value[1]};
}
if (value.length === 3) {
return {top: value[0], right: value[1], bottom: value[2], left: value[1]};
}
if (value.length === 4) {
return {top: value[0], right: value[1], bottom: value[2], left: value[3]};
}
}
// Convert an unpacked padding object to a CSS value
function paddingToCss(paddingObj) {
return paddingObj.top + "px " + paddingObj.right + "px " + paddingObj.bottom + "px " + paddingObj.left + "px";
}
// Makes a number suitable for CSS
function px(x) {
if (typeof(x) === "number")
return x + "px";
else
return x;
}
// Retrieves runtime widget sizing information for an element.
// The return value is either null, or an object with fill, padding,
// defaultWidth, defaultHeight fields.
function sizingPolicy(el) {
var sizingEl = document.querySelector("script[data-for='" + el.id + "'][type='application/htmlwidget-sizing']");
if (!sizingEl)
return null;
var sp = JSON.parse(sizingEl.textContent || sizingEl.text || "{}");
if (viewerMode) {
return sp.viewer;
} else {
return sp.browser;
}
}
// @param tasks Array of strings (or falsy value, in which case no-op).
// Each element must be a valid JavaScript expression that yields a
// function. Or, can be an array of objects with "code" and "data"
// properties; in this case, the "code" property should be a string
// of JS that's an expr that yields a function, and "data" should be
// an object that will be added as an additional argument when that
// function is called.
// @param target The object that will be "this" for each function
// execution.
// @param args Array of arguments to be passed to the functions. (The
// same arguments will be passed to all functions.)
function evalAndRun(tasks, target, args) {
if (tasks) {
forEach(tasks, function(task) {
var theseArgs = args;
if (typeof(task) === "object") {
theseArgs = theseArgs.concat([task.data]);
task = task.code;
}
var taskFunc = tryEval(task);
if (typeof(taskFunc) !== "function") {
throw new Error("Task must be a function! Source:\n" + task);
}
taskFunc.apply(target, theseArgs);
});
}
}
// Attempt eval() both with and without enclosing in parentheses.
// Note that enclosing coerces a function declaration into
// an expression that eval() can parse
// (otherwise, a SyntaxError is thrown)
function tryEval(code) {
var result = null;
try {
result = eval("(" + code + ")");
} catch(error) {
if (!(error instanceof SyntaxError)) {
throw error;
}
try {
result = eval(code);
} catch(e) {
if (e instanceof SyntaxError) {
throw error;
} else {
throw e;
}
}
}
return result;
}
function initSizing(el) {
var sizing = sizingPolicy(el);
if (!sizing)
return;
var cel = document.getElementById("htmlwidget_container");
if (!cel)
return;
if (typeof(sizing.padding) !== "undefined") {
document.body.style.margin = "0";
document.body.style.padding = paddingToCss(unpackPadding(sizing.padding));
}
if (sizing.fill) {
document.body.style.overflow = "hidden";
document.body.style.width = "100%";
document.body.style.height = "100%";
document.documentElement.style.width = "100%";
document.documentElement.style.height = "100%";
cel.style.position = "absolute";
var pad = unpackPadding(sizing.padding);
cel.style.top = pad.top + "px";
cel.style.right = pad.right + "px";
cel.style.bottom = pad.bottom + "px";
cel.style.left = pad.left + "px";
el.style.width = "100%";
el.style.height = "100%";
return {
getWidth: function() { return cel.getBoundingClientRect().width; },
getHeight: function() { return cel.getBoundingClientRect().height; }
};
} else {
el.style.width = px(sizing.width);
el.style.height = px(sizing.height);
return {
getWidth: function() { return cel.getBoundingClientRect().width; },
getHeight: function() { return cel.getBoundingClientRect().height; }
};
}
}
// Default implementations for methods
var defaults = {
find: function(scope) {
return querySelectorAll(scope, "." + this.name);
},
renderError: function(el, err) {
var $el = $(el);
this.clearError(el);
// Add all these error classes, as Shiny does
var errClass = "shiny-output-error";
if (err.type !== null) {
// use the classes of the error condition as CSS class names
errClass = errClass + " " + $.map(asArray(err.type), function(type) {
return errClass + "-" + type;
}).join(" ");
}
errClass = errClass + " htmlwidgets-error";
// Is el inline or block? If inline or inline-block, just display:none it
// and add an inline error.
var display = $el.css("display");
$el.data("restore-display-mode", display);
if (display === "inline" || display === "inline-block") {
$el.hide();
if (err.message !== "") {
var errorSpan = $("<span>").addClass(errClass);
errorSpan.text(err.message);
$el.after(errorSpan);
}
} else if (display === "block") {
// If block, add an error just after the el, set visibility:none on the
// el, and position the error to be on top of the el.
// Mark it with a unique ID and CSS class so we can remove it later.
$el.css("visibility", "hidden");
if (err.message !== "") {
var errorDiv = $("<div>").addClass(errClass).css("position", "absolute")
.css("top", el.offsetTop)
.css("left", el.offsetLeft)
// setting width can push out the page size, forcing otherwise
// unnecessary scrollbars to appear and making it impossible for
// the element to shrink; so use max-width instead
.css("maxWidth", el.offsetWidth)
.css("height", el.offsetHeight);
errorDiv.text(err.message);
$el.after(errorDiv);
// Really dumb way to keep the size/position of the error in sync with
// the parent element as the window is resized or whatever.
var intId = setInterval(function() {
if (!errorDiv[0].parentElement) {
clearInterval(intId);
return;
}
errorDiv
.css("top", el.offsetTop)
.css("left", el.offsetLeft)
.css("maxWidth", el.offsetWidth)
.css("height", el.offsetHeight);
}, 500);
}
}
},
clearError: function(el) {
var $el = $(el);
var display = $el.data("restore-display-mode");
$el.data("restore-display-mode", null);
if (display === "inline" || display === "inline-block") {
if (display)
$el.css("display", display);
$(el.nextSibling).filter(".htmlwidgets-error").remove();
} else if (display === "block"){
$el.css("visibility", "inherit");
$(el.nextSibling).filter(".htmlwidgets-error").remove();
}
},
sizing: {}
};
// Called by widget bindings to register a new type of widget. The definition
// object can contain the following properties:
// - name (required) - A string indicating the binding name, which will be
// used by default as the CSS classname to look for.
// - initialize (optional) - A function(el) that will be called once per
// widget element; if a value is returned, it will be passed as the third
// value to renderValue.
// - renderValue (required) - A function(el, data, initValue) that will be
// called with data. Static contexts will cause this to be called once per
// element; Shiny apps will cause this to be called multiple times per
// element, as the data changes.
window.HTMLWidgets.widget = function(definition) {
if (!definition.name) {
throw new Error("Widget must have a name");
}
if (!definition.type) {
throw new Error("Widget must have a type");
}
// Currently we only support output widgets
if (definition.type !== "output") {
throw new Error("Unrecognized widget type '" + definition.type + "'");
}
// TODO: Verify that .name is a valid CSS classname
// Support new-style instance-bound definitions. Old-style class-bound
// definitions have one widget "object" per widget per type/class of
// widget; the renderValue and resize methods on such widget objects
// take el and instance arguments, because the widget object can't
// store them. New-style instance-bound definitions have one widget
// object per widget instance; the definition that's passed in doesn't
// provide renderValue or resize methods at all, just the single method
// factory(el, width, height)
// which returns an object that has renderValue(x) and resize(w, h).
// This enables a far more natural programming style for the widget
// author, who can store per-instance state using either OO-style
// instance fields or functional-style closure variables (I guess this
// is in contrast to what can only be called C-style pseudo-OO which is
// what we required before).
if (definition.factory) {
definition = createLegacyDefinitionAdapter(definition);
}
if (!definition.renderValue) {
throw new Error("Widget must have a renderValue function");
}
// For static rendering (non-Shiny), use a simple widget registration
// scheme. We also use this scheme for Shiny apps/documents that also
// contain static widgets.
window.HTMLWidgets.widgets = window.HTMLWidgets.widgets || [];
// Merge defaults into the definition; don't mutate the original definition.
var staticBinding = extend({}, defaults, definition);
overrideMethod(staticBinding, "find", function(superfunc) {
return function(scope) {
var results = superfunc(scope);
// Filter out Shiny outputs, we only want the static kind
return filterByClass(results, "html-widget-output", false);
};
});
window.HTMLWidgets.widgets.push(staticBinding);
if (shinyMode) {
// Shiny is running. Register the definition with an output binding.
// The definition itself will not be the output binding, instead
// we will make an output binding object that delegates to the
// definition. This is because we foolishly used the same method
// name (renderValue) for htmlwidgets definition and Shiny bindings
// but they actually have quite different semantics (the Shiny
// bindings receive data that includes lots of metadata that it
// strips off before calling htmlwidgets renderValue). We can't
// just ignore the difference because in some widgets it's helpful
// to call this.renderValue() from inside of resize(), and if
// we're not delegating, then that call will go to the Shiny
// version instead of the htmlwidgets version.
// Merge defaults with definition, without mutating either.
var bindingDef = extend({}, defaults, definition);
// This object will be our actual Shiny binding.
var shinyBinding = new Shiny.OutputBinding();
// With a few exceptions, we'll want to simply use the bindingDef's
// version of methods if they are available, otherwise fall back to
// Shiny's defaults. NOTE: If Shiny's output bindings gain additional
// methods in the future, and we want them to be overrideable by
// HTMLWidget binding definitions, then we'll need to add them to this
// list.
delegateMethod(shinyBinding, bindingDef, "getId");
delegateMethod(shinyBinding, bindingDef, "onValueChange");
delegateMethod(shinyBinding, bindingDef, "onValueError");
delegateMethod(shinyBinding, bindingDef, "renderError");
delegateMethod(shinyBinding, bindingDef, "clearError");
delegateMethod(shinyBinding, bindingDef, "showProgress");
// The find, renderValue, and resize are handled differently, because we
// want to actually decorate the behavior of the bindingDef methods.
shinyBinding.find = function(scope) {
var results = bindingDef.find(scope);
// Only return elements that are Shiny outputs, not static ones
var dynamicResults = results.filter(".html-widget-output");
// It's possible that whatever caused Shiny to think there might be
// new dynamic outputs, also caused there to be new static outputs.
// Since there might be lots of different htmlwidgets bindings, we
// schedule execution for later--no need to staticRender multiple
// times.
if (results.length !== dynamicResults.length)
scheduleStaticRender();
return dynamicResults;
};
// Wrap renderValue to handle initialization, which unfortunately isn't
// supported natively by Shiny at the time of this writing.
shinyBinding.renderValue = function(el, data) {
Shiny.renderDependencies(data.deps);
// Resolve strings marked as javascript literals to objects
if (!(data.evals instanceof Array)) data.evals = [data.evals];
for (var i = 0; data.evals && i < data.evals.length; i++) {
window.HTMLWidgets.evaluateStringMember(data.x, data.evals[i]);
}
if (!bindingDef.renderOnNullValue) {
if (data.x === null) {
el.style.visibility = "hidden";
return;
} else {
el.style.visibility = "inherit";
}
}
if (!elementData(el, "initialized")) {
initSizing(el);
elementData(el, "initialized", true);
if (bindingDef.initialize) {
var rect = el.getBoundingClientRect();
var result = bindingDef.initialize(el, rect.width, rect.height);
elementData(el, "init_result", result);
}
}
bindingDef.renderValue(el, data.x, elementData(el, "init_result"));
evalAndRun(data.jsHooks.render, elementData(el, "init_result"), [el, data.x]);
};
// Only override resize if bindingDef implements it
if (bindingDef.resize) {
shinyBinding.resize = function(el, width, height) {
// Shiny can call resize before initialize/renderValue have been
// called, which doesn't make sense for widgets.
if (elementData(el, "initialized")) {
bindingDef.resize(el, width, height, elementData(el, "init_result"));
}
};
}
Shiny.outputBindings.register(shinyBinding, bindingDef.name);
}
};
var scheduleStaticRenderTimerId = null;
function scheduleStaticRender() {
if (!scheduleStaticRenderTimerId) {
scheduleStaticRenderTimerId = setTimeout(function() {
scheduleStaticRenderTimerId = null;
window.HTMLWidgets.staticRender();
}, 1);
}
}
// Render static widgets after the document finishes loading
// Statically render all elements that are of this widget's class
window.HTMLWidgets.staticRender = function() {
var bindings = window.HTMLWidgets.widgets || [];
forEach(bindings, function(binding) {
var matches = binding.find(document.documentElement);
forEach(matches, function(el) {
var sizeObj = initSizing(el, binding);
var getSize = function(el) {
if (sizeObj) {
return {w: sizeObj.getWidth(), h: sizeObj.getHeight()}
} else {
var rect = el.getBoundingClientRect();
return {w: rect.width, h: rect.height}
}
};
if (hasClass(el, "html-widget-static-bound"))
return;
el.className = el.className + " html-widget-static-bound";
var initResult;
if (binding.initialize) {
var size = getSize(el);
initResult = binding.initialize(el, size.w, size.h);
elementData(el, "init_result", initResult);
}
if (binding.resize) {
var lastSize = getSize(el);
var resizeHandler = function(e) {
var size = getSize(el);
if (size.w === 0 && size.h === 0)
return;
if (size.w === lastSize.w && size.h === lastSize.h)
return;
lastSize = size;
binding.resize(el, size.w, size.h, initResult);
};
on(window, "resize", resizeHandler);
// This is needed for cases where we're running in a Shiny
// app, but the widget itself is not a Shiny output, but
// rather a simple static widget. One example of this is
// an rmarkdown document that has runtime:shiny and widget
// that isn't in a render function. Shiny only knows to
// call resize handlers for Shiny outputs, not for static
// widgets, so we do it ourselves.
if (window.jQuery) {
window.jQuery(document).on(
"shown.htmlwidgets shown.bs.tab.htmlwidgets shown.bs.collapse.htmlwidgets",
resizeHandler
);
window.jQuery(document).on(
"hidden.htmlwidgets hidden.bs.tab.htmlwidgets hidden.bs.collapse.htmlwidgets",
resizeHandler
);
}
// This is needed for the specific case of ioslides, which
// flips slides between display:none and display:block.
// Ideally we would not have to have ioslide-specific code
// here, but rather have ioslides raise a generic event,
// but the rmarkdown package just went to CRAN so the
// window to getting that fixed may be long.
if (window.addEventListener) {
// It's OK to limit this to window.addEventListener
// browsers because ioslides itself only supports
// such browsers.
on(document, "slideenter", resizeHandler);
on(document, "slideleave", resizeHandler);
}
}
var scriptData = document.querySelector("script[data-for='" + el.id + "'][type='application/json']");
if (scriptData) {
var data = JSON.parse(scriptData.textContent || scriptData.text);
// Resolve strings marked as javascript literals to objects
if (!(data.evals instanceof Array)) data.evals = [data.evals];
for (var k = 0; data.evals && k < data.evals.length; k++) {
window.HTMLWidgets.evaluateStringMember(data.x, data.evals[k]);
}
binding.renderValue(el, data.x, initResult);
evalAndRun(data.jsHooks.render, initResult, [el, data.x]);
}
});
});
invokePostRenderHandlers();
}
function has_jQuery3() {
if (!window.jQuery) {
return false;
}
var $version = window.jQuery.fn.jquery;
var $major_version = parseInt($version.split(".")[0]);
return $major_version >= 3;
}
/*
/ Shiny 1.4 bumped jQuery from 1.x to 3.x which means jQuery's
/ on-ready handler (i.e., $(fn)) is now asyncronous (i.e., it now
/ really means $(setTimeout(fn)).
/ https://jquery.com/upgrade-guide/3.0/#breaking-change-document-ready-handlers-are-now-asynchronous
/
/ Since Shiny uses $() to schedule initShiny, shiny>=1.4 calls initShiny
/ one tick later than it did before, which means staticRender() is
/ called renderValue() earlier than (advanced) widget authors might be expecting.
/ https://github.com/rstudio/shiny/issues/2630
/
/ For a concrete example, leaflet has some methods (e.g., updateBounds)
/ which reference Shiny methods registered in initShiny (e.g., setInputValue).
/ Since leaflet is privy to this life-cycle, it knows to use setTimeout() to
/ delay execution of those methods (until Shiny methods are ready)
/ https://github.com/rstudio/leaflet/blob/18ec981/javascript/src/index.js#L266-L268
/
/ Ideally widget authors wouldn't need to use this setTimeout() hack that
/ leaflet uses to call Shiny methods on a staticRender(). In the long run,
/ the logic initShiny should be broken up so that method registration happens
/ right away, but binding happens later.
*/
function maybeStaticRenderLater() {
if (shinyMode && has_jQuery3()) {
window.jQuery(window.HTMLWidgets.staticRender);
} else {
window.HTMLWidgets.staticRender();
}
}
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", function() {
document.removeEventListener("DOMContentLoaded", arguments.callee, false);
maybeStaticRenderLater();
}, false);
} else if (document.attachEvent) {
document.attachEvent("onreadystatechange", function() {
if (document.readyState === "complete") {
document.detachEvent("onreadystatechange", arguments.callee);
maybeStaticRenderLater();
}
});
}
window.HTMLWidgets.getAttachmentUrl = function(depname, key) {
// If no key, default to the first item
if (typeof(key) === "undefined")
key = 1;
var link = document.getElementById(depname + "-" + key + "-attachment");
if (!link) {
throw new Error("Attachment " + depname + "/" + key + " not found in document");
}
return link.getAttribute("href");
};
window.HTMLWidgets.dataframeToD3 = function(df) {
var names = [];
var length;
for (var name in df) {
if (df.hasOwnProperty(name))
names.push(name);
if (typeof(df[name]) !== "object" || typeof(df[name].length) === "undefined") {
throw new Error("All fields must be arrays");
} else if (typeof(length) !== "undefined" && length !== df[name].length) {
throw new Error("All fields must be arrays of the same length");
}
length = df[name].length;
}
var results = [];
var item;
for (var row = 0; row < length; row++) {
item = {};
for (var col = 0; col < names.length; col++) {
item[names[col]] = df[names[col]][row];
}
results.push(item);
}
return results;
};
window.HTMLWidgets.transposeArray2D = function(array) {
if (array.length === 0) return array;
var newArray = array[0].map(function(col, i) {
return array.map(function(row) {
return row[i]
})
});
return newArray;
};
// Split value at splitChar, but allow splitChar to be escaped
// using escapeChar. Any other characters escaped by escapeChar
// will be included as usual (including escapeChar itself).
function splitWithEscape(value, splitChar, escapeChar) {
var results = [];
var escapeMode = false;
var currentResult = "";
for (var pos = 0; pos < value.length; pos++) {
if (!escapeMode) {
if (value[pos] === splitChar) {
results.push(currentResult);
currentResult = "";
} else if (value[pos] === escapeChar) {
escapeMode = true;
} else {
currentResult += value[pos];
}
} else {
currentResult += value[pos];
escapeMode = false;
}
}
if (currentResult !== "") {
results.push(currentResult);
}
return results;
}
// Function authored by Yihui/JJ Allaire
window.HTMLWidgets.evaluateStringMember = function(o, member) {
var parts = splitWithEscape(member, '.', '\\');
for (var i = 0, l = parts.length; i < l; i++) {
var part = parts[i];
// part may be a character or 'numeric' member name
if (o !== null && typeof o === "object" && part in o) {
if (i == (l - 1)) { // if we are at the end of the line then evalulate
if (typeof o[part] === "string")
o[part] = tryEval(o[part]);
} else { // otherwise continue to next embedded object
o = o[part];
}
}
}
};
// Retrieve the HTMLWidget instance (i.e. the return value of an
// HTMLWidget binding's initialize() or factory() function)
// associated with an element, or null if none.
window.HTMLWidgets.getInstance = function(el) {
return elementData(el, "init_result");
};
// Finds the first element in the scope that matches the selector,
// and returns the HTMLWidget instance (i.e. the return value of
// an HTMLWidget binding's initialize() or factory() function)
// associated with that element, if any. If no element matches the
// selector, or the first matching element has no HTMLWidget
// instance associated with it, then null is returned.
//
// The scope argument is optional, and defaults to window.document.
window.HTMLWidgets.find = function(scope, selector) {
if (arguments.length == 1) {
selector = scope;
scope = document;
}
var el = scope.querySelector(selector);
if (el === null) {
return null;
} else {
return window.HTMLWidgets.getInstance(el);
}
};
// Finds all elements in the scope that match the selector, and
// returns the HTMLWidget instances (i.e. the return values of
// an HTMLWidget binding's initialize() or factory() function)
// associated with the elements, in an array. If elements that
// match the selector don't have an associated HTMLWidget
// instance, the returned array will contain nulls.
//
// The scope argument is optional, and defaults to window.document.
window.HTMLWidgets.findAll = function(scope, selector) {
if (arguments.length == 1) {
selector = scope;
scope = document;
}
var nodes = scope.querySelectorAll(selector);
var results = [];
for (var i = 0; i < nodes.length; i++) {
results.push(window.HTMLWidgets.getInstance(nodes[i]));
}
return results;
};
var postRenderHandlers = [];
function invokePostRenderHandlers() {
while (postRenderHandlers.length) {
var handler = postRenderHandlers.shift();
if (handler) {
handler();
}
}
}
// Register the given callback function to be invoked after the
// next time static widgets are rendered.
window.HTMLWidgets.addPostRenderHandler = function(callback) {
postRenderHandlers.push(callback);
};
// Takes a new-style instance-bound definition, and returns an
// old-style class-bound definition. This saves us from having
// to rewrite all the logic in this file to accomodate both
// types of definitions.
function createLegacyDefinitionAdapter(defn) {
var result = {
name: defn.name,
type: defn.type,
initialize: function(el, width, height) {
return defn.factory(el, width, height);
},
renderValue: function(el, x, instance) {
return instance.renderValue(x);
},
resize: function(el, width, height, instance) {
return instance.resize(width, height);
}
};
if (defn.find)
result.find = defn.find;
if (defn.renderError)
result.renderError = defn.renderError;
if (defn.clearError)
result.clearError = defn.clearError;
return result;
}
})();
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,203 @@
/* quarto syntax highlight colors */
:root {
--quarto-hl-ot-color: #003B4F;
--quarto-hl-at-color: #657422;
--quarto-hl-ss-color: #20794D;
--quarto-hl-an-color: #5E5E5E;
--quarto-hl-fu-color: #4758AB;
--quarto-hl-st-color: #20794D;
--quarto-hl-cf-color: #003B4F;
--quarto-hl-op-color: #5E5E5E;
--quarto-hl-er-color: #AD0000;
--quarto-hl-bn-color: #AD0000;
--quarto-hl-al-color: #AD0000;
--quarto-hl-va-color: #111111;
--quarto-hl-bu-color: inherit;
--quarto-hl-ex-color: inherit;
--quarto-hl-pp-color: #AD0000;
--quarto-hl-in-color: #5E5E5E;
--quarto-hl-vs-color: #20794D;
--quarto-hl-wa-color: #5E5E5E;
--quarto-hl-do-color: #5E5E5E;
--quarto-hl-im-color: #00769E;
--quarto-hl-ch-color: #20794D;
--quarto-hl-dt-color: #AD0000;
--quarto-hl-fl-color: #AD0000;
--quarto-hl-co-color: #5E5E5E;
--quarto-hl-cv-color: #5E5E5E;
--quarto-hl-cn-color: #8f5902;
--quarto-hl-sc-color: #5E5E5E;
--quarto-hl-dv-color: #AD0000;
--quarto-hl-kw-color: #003B4F;
}
/* other quarto variables */
:root {
--quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
pre > code.sourceCode > span {
color: #003B4F;
}
code span {
color: #003B4F;
}
code.sourceCode > span {
color: #003B4F;
}
div.sourceCode,
div.sourceCode pre.sourceCode {
color: #003B4F;
}
code span.ot {
color: #003B4F;
font-style: inherit;
}
code span.at {
color: #657422;
font-style: inherit;
}
code span.ss {
color: #20794D;
font-style: inherit;
}
code span.an {
color: #5E5E5E;
font-style: inherit;
}
code span.fu {
color: #4758AB;
font-style: inherit;
}
code span.st {
color: #20794D;
font-style: inherit;
}
code span.cf {
color: #003B4F;
font-style: inherit;
}
code span.op {
color: #5E5E5E;
font-style: inherit;
}
code span.er {
color: #AD0000;
font-style: inherit;
}
code span.bn {
color: #AD0000;
font-style: inherit;
}
code span.al {
color: #AD0000;
font-style: inherit;
}
code span.va {
color: #111111;
font-style: inherit;
}
code span.bu {
font-style: inherit;
}
code span.ex {
font-style: inherit;
}
code span.pp {
color: #AD0000;
font-style: inherit;
}
code span.in {
color: #5E5E5E;
font-style: inherit;
}
code span.vs {
color: #20794D;
font-style: inherit;
}
code span.wa {
color: #5E5E5E;
font-style: italic;
}
code span.do {
color: #5E5E5E;
font-style: italic;
}
code span.im {
color: #00769E;
font-style: inherit;
}
code span.ch {
color: #20794D;
font-style: inherit;
}
code span.dt {
color: #AD0000;
font-style: inherit;
}
code span.fl {
color: #AD0000;
font-style: inherit;
}
code span.co {
color: #5E5E5E;
font-style: inherit;
}
code span.cv {
color: #5E5E5E;
font-style: italic;
}
code span.cn {
color: #8f5902;
font-style: inherit;
}
code span.sc {
color: #5E5E5E;
font-style: inherit;
}
code span.dv {
color: #AD0000;
font-style: inherit;
}
code span.kw {
color: #003B4F;
font-style: inherit;
}
.prevent-inlining {
content: "</";
}
/*# sourceMappingURL=debc5d5d77c3f9108843748ff7464032.css.map */
+899
View File
@@ -0,0 +1,899 @@
const sectionChanged = new CustomEvent("quarto-sectionChanged", {
detail: {},
bubbles: true,
cancelable: false,
composed: false,
});
const layoutMarginEls = () => {
// Find any conflicting margin elements and add margins to the
// top to prevent overlap
const marginChildren = window.document.querySelectorAll(
".column-margin.column-container > *, .margin-caption, .aside"
);
let lastBottom = 0;
for (const marginChild of marginChildren) {
if (marginChild.offsetParent !== null) {
// clear the top margin so we recompute it
marginChild.style.marginTop = null;
const top = marginChild.getBoundingClientRect().top + window.scrollY;
if (top < lastBottom) {
const marginChildStyle = window.getComputedStyle(marginChild);
const marginBottom = parseFloat(marginChildStyle["marginBottom"]);
const margin = lastBottom - top + marginBottom;
marginChild.style.marginTop = `${margin}px`;
}
const styles = window.getComputedStyle(marginChild);
const marginTop = parseFloat(styles["marginTop"]);
lastBottom = top + marginChild.getBoundingClientRect().height + marginTop;
}
}
};
window.document.addEventListener("DOMContentLoaded", function (_event) {
// Recompute the position of margin elements anytime the body size changes
if (window.ResizeObserver) {
const resizeObserver = new window.ResizeObserver(
throttle(() => {
layoutMarginEls();
if (
window.document.body.getBoundingClientRect().width < 990 &&
isReaderMode()
) {
quartoToggleReader();
}
}, 50)
);
resizeObserver.observe(window.document.body);
}
const tocEl = window.document.querySelector('nav.toc-active[role="doc-toc"]');
const sidebarEl = window.document.getElementById("quarto-sidebar");
const leftTocEl = window.document.getElementById("quarto-sidebar-toc-left");
const marginSidebarEl = window.document.getElementById(
"quarto-margin-sidebar"
);
// function to determine whether the element has a previous sibling that is active
const prevSiblingIsActiveLink = (el) => {
const sibling = el.previousElementSibling;
if (sibling && sibling.tagName === "A") {
return sibling.classList.contains("active");
} else {
return false;
}
};
// fire slideEnter for bootstrap tab activations (for htmlwidget resize behavior)
function fireSlideEnter(e) {
const event = window.document.createEvent("Event");
event.initEvent("slideenter", true, true);
window.document.dispatchEvent(event);
}
const tabs = window.document.querySelectorAll('a[data-bs-toggle="tab"]');
tabs.forEach((tab) => {
tab.addEventListener("shown.bs.tab", fireSlideEnter);
});
// fire slideEnter for tabby tab activations (for htmlwidget resize behavior)
document.addEventListener("tabby", fireSlideEnter, false);
// Track scrolling and mark TOC links as active
// get table of contents and sidebar (bail if we don't have at least one)
const tocLinks = tocEl
? [...tocEl.querySelectorAll("a[data-scroll-target]")]
: [];
const makeActive = (link) => tocLinks[link].classList.add("active");
const removeActive = (link) => tocLinks[link].classList.remove("active");
const removeAllActive = () =>
[...Array(tocLinks.length).keys()].forEach((link) => removeActive(link));
// activate the anchor for a section associated with this TOC entry
tocLinks.forEach((link) => {
link.addEventListener("click", () => {
if (link.href.indexOf("#") !== -1) {
const anchor = link.href.split("#")[1];
const heading = window.document.querySelector(
`[data-anchor-id=${anchor}]`
);
if (heading) {
// Add the class
heading.classList.add("reveal-anchorjs-link");
// function to show the anchor
const handleMouseout = () => {
heading.classList.remove("reveal-anchorjs-link");
heading.removeEventListener("mouseout", handleMouseout);
};
// add a function to clear the anchor when the user mouses out of it
heading.addEventListener("mouseout", handleMouseout);
}
}
});
});
const sections = tocLinks.map((link) => {
const target = link.getAttribute("data-scroll-target");
if (target.startsWith("#")) {
return window.document.getElementById(decodeURI(`${target.slice(1)}`));
} else {
return window.document.querySelector(decodeURI(`${target}`));
}
});
const sectionMargin = 200;
let currentActive = 0;
// track whether we've initialized state the first time
let init = false;
const updateActiveLink = () => {
// The index from bottom to top (e.g. reversed list)
let sectionIndex = -1;
if (
window.innerHeight + window.pageYOffset >=
window.document.body.offsetHeight
) {
sectionIndex = 0;
} else {
sectionIndex = [...sections].reverse().findIndex((section) => {
if (section) {
return window.pageYOffset >= section.offsetTop - sectionMargin;
} else {
return false;
}
});
}
if (sectionIndex > -1) {
const current = sections.length - sectionIndex - 1;
if (current !== currentActive) {
removeAllActive();
currentActive = current;
makeActive(current);
if (init) {
window.dispatchEvent(sectionChanged);
}
init = true;
}
}
};
const inHiddenRegion = (top, bottom, hiddenRegions) => {
for (const region of hiddenRegions) {
if (top <= region.bottom && bottom >= region.top) {
return true;
}
}
return false;
};
const categorySelector = "header.quarto-title-block .quarto-category";
const activateCategories = (href) => {
// Find any categories
// Surround them with a link pointing back to:
// #category=Authoring
try {
const categoryEls = window.document.querySelectorAll(categorySelector);
for (const categoryEl of categoryEls) {
const categoryText = categoryEl.textContent;
if (categoryText) {
const link = `${href}#category=${encodeURIComponent(categoryText)}`;
const linkEl = window.document.createElement("a");
linkEl.setAttribute("href", link);
for (const child of categoryEl.childNodes) {
linkEl.append(child);
}
categoryEl.appendChild(linkEl);
}
}
} catch {
// Ignore errors
}
};
function hasTitleCategories() {
return window.document.querySelector(categorySelector) !== null;
}
function offsetRelativeUrl(url) {
const offset = getMeta("quarto:offset");
return offset ? offset + url : url;
}
function offsetAbsoluteUrl(url) {
const offset = getMeta("quarto:offset");
const baseUrl = new URL(offset, window.location);
const projRelativeUrl = url.replace(baseUrl, "");
if (projRelativeUrl.startsWith("/")) {
return projRelativeUrl;
} else {
return "/" + projRelativeUrl;
}
}
// read a meta tag value
function getMeta(metaName) {
const metas = window.document.getElementsByTagName("meta");
for (let i = 0; i < metas.length; i++) {
if (metas[i].getAttribute("name") === metaName) {
return metas[i].getAttribute("content");
}
}
return "";
}
async function findAndActivateCategories() {
const currentPagePath = offsetAbsoluteUrl(window.location.href);
const response = await fetch(offsetRelativeUrl("listings.json"));
if (response.status == 200) {
return response.json().then(function (listingPaths) {
const listingHrefs = [];
for (const listingPath of listingPaths) {
const pathWithoutLeadingSlash = listingPath.listing.substring(1);
for (const item of listingPath.items) {
if (
item === currentPagePath ||
item === currentPagePath + "index.html"
) {
// Resolve this path against the offset to be sure
// we already are using the correct path to the listing
// (this adjusts the listing urls to be rooted against
// whatever root the page is actually running against)
const relative = offsetRelativeUrl(pathWithoutLeadingSlash);
const baseUrl = window.location;
const resolvedPath = new URL(relative, baseUrl);
listingHrefs.push(resolvedPath.pathname);
break;
}
}
}
// Look up the tree for a nearby linting and use that if we find one
const nearestListing = findNearestParentListing(
offsetAbsoluteUrl(window.location.pathname),
listingHrefs
);
if (nearestListing) {
activateCategories(nearestListing);
} else {
// See if the referrer is a listing page for this item
const referredRelativePath = offsetAbsoluteUrl(document.referrer);
const referrerListing = listingHrefs.find((listingHref) => {
const isListingReferrer =
listingHref === referredRelativePath ||
listingHref === referredRelativePath + "index.html";
return isListingReferrer;
});
if (referrerListing) {
// Try to use the referrer if possible
activateCategories(referrerListing);
} else if (listingHrefs.length > 0) {
// Otherwise, just fall back to the first listing
activateCategories(listingHrefs[0]);
}
}
});
}
}
if (hasTitleCategories()) {
findAndActivateCategories();
}
const findNearestParentListing = (href, listingHrefs) => {
if (!href || !listingHrefs) {
return undefined;
}
// Look up the tree for a nearby linting and use that if we find one
const relativeParts = href.substring(1).split("/");
while (relativeParts.length > 0) {
const path = relativeParts.join("/");
for (const listingHref of listingHrefs) {
if (listingHref.startsWith(path)) {
return listingHref;
}
}
relativeParts.pop();
}
return undefined;
};
const manageSidebarVisiblity = (el, placeholderDescriptor) => {
let isVisible = true;
let elRect;
return (hiddenRegions) => {
if (el === null) {
return;
}
// Find the last element of the TOC
const lastChildEl = el.lastElementChild;
if (lastChildEl) {
// Converts the sidebar to a menu
const convertToMenu = () => {
for (const child of el.children) {
child.style.opacity = 0;
child.style.overflow = "hidden";
}
nexttick(() => {
const toggleContainer = window.document.createElement("div");
toggleContainer.style.width = "100%";
toggleContainer.classList.add("zindex-over-content");
toggleContainer.classList.add("quarto-sidebar-toggle");
toggleContainer.classList.add("headroom-target"); // Marks this to be managed by headeroom
toggleContainer.id = placeholderDescriptor.id;
toggleContainer.style.position = "fixed";
const toggleIcon = window.document.createElement("i");
toggleIcon.classList.add("quarto-sidebar-toggle-icon");
toggleIcon.classList.add("bi");
toggleIcon.classList.add("bi-caret-down-fill");
const toggleTitle = window.document.createElement("div");
const titleEl = window.document.body.querySelector(
placeholderDescriptor.titleSelector
);
if (titleEl) {
toggleTitle.append(
titleEl.textContent || titleEl.innerText,
toggleIcon
);
}
toggleTitle.classList.add("zindex-over-content");
toggleTitle.classList.add("quarto-sidebar-toggle-title");
toggleContainer.append(toggleTitle);
const toggleContents = window.document.createElement("div");
toggleContents.classList = el.classList;
toggleContents.classList.add("zindex-over-content");
toggleContents.classList.add("quarto-sidebar-toggle-contents");
for (const child of el.children) {
if (child.id === "toc-title") {
continue;
}
const clone = child.cloneNode(true);
clone.style.opacity = 1;
clone.style.display = null;
toggleContents.append(clone);
}
toggleContents.style.height = "0px";
const positionToggle = () => {
// position the element (top left of parent, same width as parent)
if (!elRect) {
elRect = el.getBoundingClientRect();
}
toggleContainer.style.left = `${elRect.left}px`;
toggleContainer.style.top = `${elRect.top}px`;
toggleContainer.style.width = `${elRect.width}px`;
};
positionToggle();
toggleContainer.append(toggleContents);
el.parentElement.prepend(toggleContainer);
// Process clicks
let tocShowing = false;
// Allow the caller to control whether this is dismissed
// when it is clicked (e.g. sidebar navigation supports
// opening and closing the nav tree, so don't dismiss on click)
const clickEl = placeholderDescriptor.dismissOnClick
? toggleContainer
: toggleTitle;
const closeToggle = () => {
if (tocShowing) {
toggleContainer.classList.remove("expanded");
toggleContents.style.height = "0px";
tocShowing = false;
}
};
// Get rid of any expanded toggle if the user scrolls
window.document.addEventListener(
"scroll",
throttle(() => {
closeToggle();
}, 50)
);
// Handle positioning of the toggle
window.addEventListener(
"resize",
throttle(() => {
elRect = undefined;
positionToggle();
}, 50)
);
window.addEventListener("quarto-hrChanged", () => {
elRect = undefined;
});
// Process the click
clickEl.onclick = () => {
if (!tocShowing) {
toggleContainer.classList.add("expanded");
toggleContents.style.height = null;
tocShowing = true;
} else {
closeToggle();
}
};
});
};
// Converts a sidebar from a menu back to a sidebar
const convertToSidebar = () => {
for (const child of el.children) {
child.style.opacity = 1;
child.style.overflow = null;
}
const placeholderEl = window.document.getElementById(
placeholderDescriptor.id
);
if (placeholderEl) {
placeholderEl.remove();
}
el.classList.remove("rollup");
};
if (isReaderMode()) {
convertToMenu();
isVisible = false;
} else {
// Find the top and bottom o the element that is being managed
const elTop = el.offsetTop;
const elBottom =
elTop + lastChildEl.offsetTop + lastChildEl.offsetHeight;
if (!isVisible) {
// If the element is current not visible reveal if there are
// no conflicts with overlay regions
if (!inHiddenRegion(elTop, elBottom, hiddenRegions)) {
convertToSidebar();
isVisible = true;
}
} else {
// If the element is visible, hide it if it conflicts with overlay regions
// and insert a placeholder toggle (or if we're in reader mode)
if (inHiddenRegion(elTop, elBottom, hiddenRegions)) {
convertToMenu();
isVisible = false;
}
}
}
}
};
};
const tabEls = document.querySelectorAll('a[data-bs-toggle="tab"]');
for (const tabEl of tabEls) {
const id = tabEl.getAttribute("data-bs-target");
if (id) {
const columnEl = document.querySelector(
`${id} .column-margin, .tabset-margin-content`
);
if (columnEl)
tabEl.addEventListener("shown.bs.tab", function (event) {
const el = event.srcElement;
if (el) {
const visibleCls = `${el.id}-margin-content`;
// walk up until we find a parent tabset
let panelTabsetEl = el.parentElement;
while (panelTabsetEl) {
if (panelTabsetEl.classList.contains("panel-tabset")) {
break;
}
panelTabsetEl = panelTabsetEl.parentElement;
}
if (panelTabsetEl) {
const prevSib = panelTabsetEl.previousElementSibling;
if (
prevSib &&
prevSib.classList.contains("tabset-margin-container")
) {
const childNodes = prevSib.querySelectorAll(
".tabset-margin-content"
);
for (const childEl of childNodes) {
if (childEl.classList.contains(visibleCls)) {
childEl.classList.remove("collapse");
} else {
childEl.classList.add("collapse");
}
}
}
}
}
layoutMarginEls();
});
}
}
// Manage the visibility of the toc and the sidebar
const marginScrollVisibility = manageSidebarVisiblity(marginSidebarEl, {
id: "quarto-toc-toggle",
titleSelector: "#toc-title",
dismissOnClick: true,
});
const sidebarScrollVisiblity = manageSidebarVisiblity(sidebarEl, {
id: "quarto-sidebarnav-toggle",
titleSelector: ".title",
dismissOnClick: false,
});
let tocLeftScrollVisibility;
if (leftTocEl) {
tocLeftScrollVisibility = manageSidebarVisiblity(leftTocEl, {
id: "quarto-lefttoc-toggle",
titleSelector: "#toc-title",
dismissOnClick: true,
});
}
// Find the first element that uses formatting in special columns
const conflictingEls = window.document.body.querySelectorAll(
'[class^="column-"], [class*=" column-"], aside, [class*="margin-caption"], [class*=" margin-caption"], [class*="margin-ref"], [class*=" margin-ref"]'
);
// Filter all the possibly conflicting elements into ones
// the do conflict on the left or ride side
const arrConflictingEls = Array.from(conflictingEls);
const leftSideConflictEls = arrConflictingEls.filter((el) => {
if (el.tagName === "ASIDE") {
return false;
}
return Array.from(el.classList).find((className) => {
return (
className !== "column-body" &&
className.startsWith("column-") &&
!className.endsWith("right") &&
!className.endsWith("container") &&
className !== "column-margin"
);
});
});
const rightSideConflictEls = arrConflictingEls.filter((el) => {
if (el.tagName === "ASIDE") {
return true;
}
const hasMarginCaption = Array.from(el.classList).find((className) => {
return className == "margin-caption";
});
if (hasMarginCaption) {
return true;
}
return Array.from(el.classList).find((className) => {
return (
className !== "column-body" &&
!className.endsWith("container") &&
className.startsWith("column-") &&
!className.endsWith("left")
);
});
});
const kOverlapPaddingSize = 10;
function toRegions(els) {
return els.map((el) => {
const boundRect = el.getBoundingClientRect();
const top =
boundRect.top +
document.documentElement.scrollTop -
kOverlapPaddingSize;
return {
top,
bottom: top + el.scrollHeight + 2 * kOverlapPaddingSize,
};
});
}
let hasObserved = false;
const visibleItemObserver = (els) => {
let visibleElements = [...els];
const intersectionObserver = new IntersectionObserver(
(entries, _observer) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
if (visibleElements.indexOf(entry.target) === -1) {
visibleElements.push(entry.target);
}
} else {
visibleElements = visibleElements.filter((visibleEntry) => {
return visibleEntry !== entry;
});
}
});
if (!hasObserved) {
hideOverlappedSidebars();
}
hasObserved = true;
},
{}
);
els.forEach((el) => {
intersectionObserver.observe(el);
});
return {
getVisibleEntries: () => {
return visibleElements;
},
};
};
const rightElementObserver = visibleItemObserver(rightSideConflictEls);
const leftElementObserver = visibleItemObserver(leftSideConflictEls);
const hideOverlappedSidebars = () => {
marginScrollVisibility(toRegions(rightElementObserver.getVisibleEntries()));
sidebarScrollVisiblity(toRegions(leftElementObserver.getVisibleEntries()));
if (tocLeftScrollVisibility) {
tocLeftScrollVisibility(
toRegions(leftElementObserver.getVisibleEntries())
);
}
};
window.quartoToggleReader = () => {
// Applies a slow class (or removes it)
// to update the transition speed
const slowTransition = (slow) => {
const manageTransition = (id, slow) => {
const el = document.getElementById(id);
if (el) {
if (slow) {
el.classList.add("slow");
} else {
el.classList.remove("slow");
}
}
};
manageTransition("TOC", slow);
manageTransition("quarto-sidebar", slow);
};
const readerMode = !isReaderMode();
setReaderModeValue(readerMode);
// If we're entering reader mode, slow the transition
if (readerMode) {
slowTransition(readerMode);
}
highlightReaderToggle(readerMode);
hideOverlappedSidebars();
// If we're exiting reader mode, restore the non-slow transition
if (!readerMode) {
slowTransition(!readerMode);
}
};
const highlightReaderToggle = (readerMode) => {
const els = document.querySelectorAll(".quarto-reader-toggle");
if (els) {
els.forEach((el) => {
if (readerMode) {
el.classList.add("reader");
} else {
el.classList.remove("reader");
}
});
}
};
const setReaderModeValue = (val) => {
if (window.location.protocol !== "file:") {
window.localStorage.setItem("quarto-reader-mode", val);
} else {
localReaderMode = val;
}
};
const isReaderMode = () => {
if (window.location.protocol !== "file:") {
return window.localStorage.getItem("quarto-reader-mode") === "true";
} else {
return localReaderMode;
}
};
let localReaderMode = null;
const tocOpenDepthStr = tocEl?.getAttribute("data-toc-expanded");
const tocOpenDepth = tocOpenDepthStr ? Number(tocOpenDepthStr) : 1;
// Walk the TOC and collapse/expand nodes
// Nodes are expanded if:
// - they are top level
// - they have children that are 'active' links
// - they are directly below an link that is 'active'
const walk = (el, depth) => {
// Tick depth when we enter a UL
if (el.tagName === "UL") {
depth = depth + 1;
}
// It this is active link
let isActiveNode = false;
if (el.tagName === "A" && el.classList.contains("active")) {
isActiveNode = true;
}
// See if there is an active child to this element
let hasActiveChild = false;
for (child of el.children) {
hasActiveChild = walk(child, depth) || hasActiveChild;
}
// Process the collapse state if this is an UL
if (el.tagName === "UL") {
if (tocOpenDepth === -1 && depth > 1) {
el.classList.add("collapse");
} else if (
depth <= tocOpenDepth ||
hasActiveChild ||
prevSiblingIsActiveLink(el)
) {
el.classList.remove("collapse");
} else {
el.classList.add("collapse");
}
// untick depth when we leave a UL
depth = depth - 1;
}
return hasActiveChild || isActiveNode;
};
// walk the TOC and expand / collapse any items that should be shown
if (tocEl) {
walk(tocEl, 0);
updateActiveLink();
}
// Throttle the scroll event and walk peridiocally
window.document.addEventListener(
"scroll",
throttle(() => {
if (tocEl) {
updateActiveLink();
walk(tocEl, 0);
}
if (!isReaderMode()) {
hideOverlappedSidebars();
}
}, 5)
);
window.addEventListener(
"resize",
throttle(() => {
if (!isReaderMode()) {
hideOverlappedSidebars();
}
}, 10)
);
hideOverlappedSidebars();
highlightReaderToggle(isReaderMode());
});
// grouped tabsets
window.addEventListener("pageshow", (_event) => {
function getTabSettings() {
const data = localStorage.getItem("quarto-persistent-tabsets-data");
if (!data) {
localStorage.setItem("quarto-persistent-tabsets-data", "{}");
return {};
}
if (data) {
return JSON.parse(data);
}
}
function setTabSettings(data) {
localStorage.setItem(
"quarto-persistent-tabsets-data",
JSON.stringify(data)
);
}
function setTabState(groupName, groupValue) {
const data = getTabSettings();
data[groupName] = groupValue;
setTabSettings(data);
}
function toggleTab(tab, active) {
const tabPanelId = tab.getAttribute("aria-controls");
const tabPanel = document.getElementById(tabPanelId);
if (active) {
tab.classList.add("active");
tabPanel.classList.add("active");
} else {
tab.classList.remove("active");
tabPanel.classList.remove("active");
}
}
function toggleAll(selectedGroup, selectorsToSync) {
for (const [thisGroup, tabs] of Object.entries(selectorsToSync)) {
const active = selectedGroup === thisGroup;
for (const tab of tabs) {
toggleTab(tab, active);
}
}
}
function findSelectorsToSyncByLanguage() {
const result = {};
const tabs = Array.from(
document.querySelectorAll(`div[data-group] a[id^='tabset-']`)
);
for (const item of tabs) {
const div = item.parentElement.parentElement.parentElement;
const group = div.getAttribute("data-group");
if (!result[group]) {
result[group] = {};
}
const selectorsToSync = result[group];
const value = item.innerHTML;
if (!selectorsToSync[value]) {
selectorsToSync[value] = [];
}
selectorsToSync[value].push(item);
}
return result;
}
function setupSelectorSync() {
const selectorsToSync = findSelectorsToSyncByLanguage();
Object.entries(selectorsToSync).forEach(([group, tabSetsByValue]) => {
Object.entries(tabSetsByValue).forEach(([value, items]) => {
items.forEach((item) => {
item.addEventListener("click", (_event) => {
setTabState(group, value);
toggleAll(value, selectorsToSync[group]);
});
});
});
});
return selectorsToSync;
}
const selectorsToSync = setupSelectorSync();
for (const [group, selectedName] of Object.entries(getTabSettings())) {
const selectors = selectorsToSync[group];
// it's possible that stale state gives us empty selections, so we explicitly check here.
if (selectors) {
toggleAll(selectedName, selectors);
}
}
});
function throttle(func, wait) {
let waiting = false;
return function () {
if (!waiting) {
func.apply(this, arguments);
waiting = true;
setTimeout(function () {
waiting = false;
}, wait);
}
};
}
function nexttick(func) {
return setTimeout(func, 0);
}
@@ -0,0 +1 @@
.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}
File diff suppressed because one or more lines are too long
+7
View File
@@ -0,0 +1,7 @@
/*!
* headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it
* Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js
* License: MIT
*/
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t=t||self).Headroom=n()}(this,function(){"use strict";function t(){return"undefined"!=typeof window}function d(t){return function(t){return t&&t.document&&function(t){return 9===t.nodeType}(t.document)}(t)?function(t){var n=t.document,o=n.body,s=n.documentElement;return{scrollHeight:function(){return Math.max(o.scrollHeight,s.scrollHeight,o.offsetHeight,s.offsetHeight,o.clientHeight,s.clientHeight)},height:function(){return t.innerHeight||s.clientHeight||o.clientHeight},scrollY:function(){return void 0!==t.pageYOffset?t.pageYOffset:(s||o.parentNode||o).scrollTop}}}(t):function(t){return{scrollHeight:function(){return Math.max(t.scrollHeight,t.offsetHeight,t.clientHeight)},height:function(){return Math.max(t.offsetHeight,t.clientHeight)},scrollY:function(){return t.scrollTop}}}(t)}function n(t,s,e){var n,o=function(){var n=!1;try{var t={get passive(){n=!0}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){n=!1}return n}(),i=!1,r=d(t),l=r.scrollY(),a={};function c(){var t=Math.round(r.scrollY()),n=r.height(),o=r.scrollHeight();a.scrollY=t,a.lastScrollY=l,a.direction=l<t?"down":"up",a.distance=Math.abs(t-l),a.isOutOfBounds=t<0||o<t+n,a.top=t<=s.offset[a.direction],a.bottom=o<=t+n,a.toleranceExceeded=a.distance>s.tolerance[a.direction],e(a),l=t,i=!1}function h(){i||(i=!0,n=requestAnimationFrame(c))}var u=!!o&&{passive:!0,capture:!1};return t.addEventListener("scroll",h,u),c(),{destroy:function(){cancelAnimationFrame(n),t.removeEventListener("scroll",h,u)}}}function o(t){return t===Object(t)?t:{down:t,up:t}}function s(t,n){n=n||{},Object.assign(this,s.options,n),this.classes=Object.assign({},s.options.classes,n.classes),this.elem=t,this.tolerance=o(this.tolerance),this.offset=o(this.offset),this.initialised=!1,this.frozen=!1}return s.prototype={constructor:s,init:function(){return s.cutsTheMustard&&!this.initialised&&(this.addClass("initial"),this.initialised=!0,setTimeout(function(t){t.scrollTracker=n(t.scroller,{offset:t.offset,tolerance:t.tolerance},t.update.bind(t))},100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass("pinned")&&this.hasClass("unpinned")||(this.addClass("unpinned"),this.removeClass("pinned"),this.onUnpin&&this.onUnpin.call(this))},pin:function(){this.hasClass("unpinned")&&(this.addClass("pinned"),this.removeClass("unpinned"),this.onPin&&this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass("frozen")},unfreeze:function(){this.frozen=!1,this.removeClass("frozen")},top:function(){this.hasClass("top")||(this.addClass("top"),this.removeClass("notTop"),this.onTop&&this.onTop.call(this))},notTop:function(){this.hasClass("notTop")||(this.addClass("notTop"),this.removeClass("top"),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){this.hasClass("bottom")||(this.addClass("bottom"),this.removeClass("notBottom"),this.onBottom&&this.onBottom.call(this))},notBottom:function(){this.hasClass("notBottom")||(this.addClass("notBottom"),this.removeClass("bottom"),this.onNotBottom&&this.onNotBottom.call(this))},shouldUnpin:function(t){return"down"===t.direction&&!t.top&&t.toleranceExceeded},shouldPin:function(t){return"up"===t.direction&&t.toleranceExceeded||t.top},addClass:function(t){this.elem.classList.add.apply(this.elem.classList,this.classes[t].split(" "))},removeClass:function(t){this.elem.classList.remove.apply(this.elem.classList,this.classes[t].split(" "))},hasClass:function(t){return this.classes[t].split(" ").every(function(t){return this.classList.contains(t)},this.elem)},update:function(t){t.isOutOfBounds||!0!==this.frozen&&(t.top?this.top():this.notTop(),t.bottom?this.bottom():this.notBottom(),this.shouldUnpin(t)?this.unpin():this.shouldPin(t)&&this.pin())}},s.options={tolerance:{up:0,down:0},offset:0,scroller:t()?window:null,classes:{frozen:"headroom--frozen",pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",bottom:"headroom--bottom",notBottom:"headroom--not-bottom",initial:"headroom"}},s.cutsTheMustard=!!(t()&&function(){}.bind&&"classList"in document.documentElement&&Object.assign&&Object.keys&&requestAnimationFrame),s});
@@ -0,0 +1,288 @@
const headroomChanged = new CustomEvent("quarto-hrChanged", {
detail: {},
bubbles: true,
cancelable: false,
composed: false,
});
window.document.addEventListener("DOMContentLoaded", function () {
let init = false;
// Manage the back to top button, if one is present.
let lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;
const scrollDownBuffer = 5;
const scrollUpBuffer = 35;
const btn = document.getElementById("quarto-back-to-top");
const hideBackToTop = () => {
btn.style.display = "none";
};
const showBackToTop = () => {
btn.style.display = "inline-block";
};
if (btn) {
window.document.addEventListener(
"scroll",
function () {
const currentScrollTop =
window.pageYOffset || document.documentElement.scrollTop;
// Shows and hides the button 'intelligently' as the user scrolls
if (currentScrollTop - scrollDownBuffer > lastScrollTop) {
hideBackToTop();
lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop;
} else if (currentScrollTop < lastScrollTop - scrollUpBuffer) {
showBackToTop();
lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop;
}
// Show the button at the bottom, hides it at the top
if (currentScrollTop <= 0) {
hideBackToTop();
} else if (
window.innerHeight + currentScrollTop >=
document.body.offsetHeight
) {
showBackToTop();
}
},
false
);
}
function throttle(func, wait) {
var timeout;
return function () {
const context = this;
const args = arguments;
const later = function () {
clearTimeout(timeout);
timeout = null;
func.apply(context, args);
};
if (!timeout) {
timeout = setTimeout(later, wait);
}
};
}
function headerOffset() {
// Set an offset if there is are fixed top navbar
const headerEl = window.document.querySelector("header.fixed-top");
if (headerEl) {
return headerEl.clientHeight;
} else {
return 0;
}
}
function footerOffset() {
const footerEl = window.document.querySelector("footer.footer");
if (footerEl) {
return footerEl.clientHeight;
} else {
return 0;
}
}
function dashboardOffset() {
const dashboardNavEl = window.document.getElementById(
"quarto-dashboard-header"
);
if (dashboardNavEl !== null) {
return dashboardNavEl.clientHeight;
} else {
return 0;
}
}
function updateDocumentOffsetWithoutAnimation() {
updateDocumentOffset(false);
}
function updateDocumentOffset(animated) {
// set body offset
const topOffset = headerOffset();
const bodyOffset = topOffset + footerOffset() + dashboardOffset();
const bodyEl = window.document.body;
bodyEl.setAttribute("data-bs-offset", topOffset);
bodyEl.style.paddingTop = topOffset + "px";
// deal with sidebar offsets
const sidebars = window.document.querySelectorAll(
".sidebar, .headroom-target"
);
sidebars.forEach((sidebar) => {
if (!animated) {
sidebar.classList.add("notransition");
// Remove the no transition class after the animation has time to complete
setTimeout(function () {
sidebar.classList.remove("notransition");
}, 201);
}
if (window.Headroom && sidebar.classList.contains("sidebar-unpinned")) {
sidebar.style.top = "0";
sidebar.style.maxHeight = "100vh";
} else {
sidebar.style.top = topOffset + "px";
sidebar.style.maxHeight = "calc(100vh - " + topOffset + "px)";
}
});
// allow space for footer
const mainContainer = window.document.querySelector(".quarto-container");
if (mainContainer) {
mainContainer.style.minHeight = "calc(100vh - " + bodyOffset + "px)";
}
// link offset
let linkStyle = window.document.querySelector("#quarto-target-style");
if (!linkStyle) {
linkStyle = window.document.createElement("style");
linkStyle.setAttribute("id", "quarto-target-style");
window.document.head.appendChild(linkStyle);
}
while (linkStyle.firstChild) {
linkStyle.removeChild(linkStyle.firstChild);
}
if (topOffset > 0) {
linkStyle.appendChild(
window.document.createTextNode(`
section:target::before {
content: "";
display: block;
height: ${topOffset}px;
margin: -${topOffset}px 0 0;
}`)
);
}
if (init) {
window.dispatchEvent(headroomChanged);
}
init = true;
}
// initialize headroom
var header = window.document.querySelector("#quarto-header");
if (header && window.Headroom) {
const headroom = new window.Headroom(header, {
tolerance: 5,
onPin: function () {
const sidebars = window.document.querySelectorAll(
".sidebar, .headroom-target"
);
sidebars.forEach((sidebar) => {
sidebar.classList.remove("sidebar-unpinned");
});
updateDocumentOffset();
},
onUnpin: function () {
const sidebars = window.document.querySelectorAll(
".sidebar, .headroom-target"
);
sidebars.forEach((sidebar) => {
sidebar.classList.add("sidebar-unpinned");
});
updateDocumentOffset();
},
});
headroom.init();
let frozen = false;
window.quartoToggleHeadroom = function () {
if (frozen) {
headroom.unfreeze();
frozen = false;
} else {
headroom.freeze();
frozen = true;
}
};
}
window.addEventListener(
"hashchange",
function (e) {
if (
getComputedStyle(document.documentElement).scrollBehavior !== "smooth"
) {
window.scrollTo(0, window.pageYOffset - headerOffset());
}
},
false
);
// Observe size changed for the header
const headerEl = window.document.querySelector("header.fixed-top");
if (headerEl && window.ResizeObserver) {
const observer = new window.ResizeObserver(() => {
setTimeout(updateDocumentOffsetWithoutAnimation, 0);
});
observer.observe(headerEl, {
attributes: true,
childList: true,
characterData: true,
});
} else {
window.addEventListener(
"resize",
throttle(updateDocumentOffsetWithoutAnimation, 50)
);
}
setTimeout(updateDocumentOffsetWithoutAnimation, 250);
// fixup index.html links if we aren't on the filesystem
if (window.location.protocol !== "file:") {
const links = window.document.querySelectorAll("a");
for (let i = 0; i < links.length; i++) {
if (links[i].href) {
links[i].href = links[i].href.replace(/\/index\.html/, "/");
}
}
// Fixup any sharing links that require urls
// Append url to any sharing urls
const sharingLinks = window.document.querySelectorAll(
"a.sidebar-tools-main-item, a.quarto-navigation-tool, a.quarto-navbar-tools, a.quarto-navbar-tools-item"
);
for (let i = 0; i < sharingLinks.length; i++) {
const sharingLink = sharingLinks[i];
const href = sharingLink.getAttribute("href");
if (href) {
sharingLink.setAttribute(
"href",
href.replace("|url|", window.location.href)
);
}
}
// Scroll the active navigation item into view, if necessary
const navSidebar = window.document.querySelector("nav#quarto-sidebar");
if (navSidebar) {
// Find the active item
const activeItem = navSidebar.querySelector("li.sidebar-item a.active");
if (activeItem) {
// Wait for the scroll height and height to resolve by observing size changes on the
// nav element that is scrollable
const resizeObserver = new ResizeObserver((_entries) => {
// The bottom of the element
const elBottom = activeItem.offsetTop;
const viewBottom = navSidebar.scrollTop + navSidebar.clientHeight;
// The element height and scroll height are the same, then we are still loading
if (viewBottom !== navSidebar.scrollHeight) {
// Determine if the item isn't visible and scroll to it
if (elBottom >= viewBottom) {
navSidebar.scrollTop = elBottom;
}
// stop observing now since we've completed the scroll
resizeObserver.unobserve(navSidebar);
}
});
resizeObserver.observe(navSidebar);
}
}
}
});
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
+516
View File
@@ -0,0 +1,516 @@
---
title: "Awesome Quant"
date-modified: "`r Sys.Date()`"
keywords: ["r packages", "python packages", "julia packages",
"software development", "software engineering", "financial computing",
"r", "python", "julia"]
include-in-header:
- text: |
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7994446359957143"
crossorigin="anonymous"></script>
---
A curated list of insanely awesome libraries, packages and resources for Quants (Quantitative Finance).
[![](https://awesome.re/badge.svg)](https://awesome.re)
## 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.
- [modelx](https://docs.modelx.io/) - Python reimagination of spreadsheets as formula-centric objects that are interoperable with pandas.
- [ArcticDB](https://github.com/man-group/ArcticDB) - High performance datastore for time series and tick data.
### Financial Instruments and Pricing
- [OpenBB Terminal](https://github.com/OpenBB-finance/OpenBBTerminal) - Terminal for investment research for everyone.
- [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://github.com/GriffinAustin/pynance) - Lightweight Python library for assembling and analysing financial data.
- [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.
- [Q-Fin](https://github.com/RomanMichaelPaolucci/Q-Fin) - A Python library for mathematical finance.
- [Quantsbin](https://github.com/quantsbin/Quantsbin) - Tools for pricing and plotting of vanilla option prices, greeks and various other analysis around them.
- [finoptions](https://github.com/bbcho/finoptions-dev) - Complete python implementation of R package fOptions with partial implementation of fExoticOptions for pricing various options.
- [pypme](https://github.com/ymyke/pypme) - PME (Public Market Equivalent) calculation.
- [AbsBox](https://github.com/yellowbean/AbsBox) - A Python based library to model cashflow for structured product like Asset-backed securities (ABS) and Mortgage-backed securities (MBS).
- [Intrinsic-Value-Calculator](https://github.com/akashaero/Intrinsic-Value-Calculator) - A Python tool for quick calculations of a stock's fair value using Discounted Cash Flow analysis.
- [Kelly-Criterion](https://github.com/deltaray-io/kelly-criterion) - Kelly Criterion implemented in Python to size portfolios based on J. L. Kelly Jr's formula.
### 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
- [skfolio](https://github.com/skfolio/skfolio) - Python library for portfolio optimization built on top of scikit-learn. It provides a unified interface and sklearn compatible tools to build, tune and cross-validate portfolio models.
- [Investing algorithm framework](https://github.com/coding-kitties/investing-algorithm-framework) - Framework for developing, backtesting, and deploying automated trading algorithms.
- [QSTrader](https://github.com/mhallsmoore/qstrader) - QSTrader backtesting simulation engine.
- [Blankly](https://github.com/Blankly-Finance/Blankly) - Fully integrated backtesting, paper trading, and live deployment.
- [TA-Lib](https://github.com/mrjbq7/ta-lib) - Python wrapper for TA-Lib (<http://ta-lib.org/>).
- [zipline](https://github.com/quantopian/zipline) - 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.
- [basana](https://github.com/gbeced/basana) - A Python async and event driven framework for algorithmic trading, with a focus on crypto currencies.
- [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.
- [TuneTA](https://github.com/jmrichardson/tuneta) - TuneTA optimizes technical indicators using a distance correlation measure to a user defined target feature such as next day return.
- [AutoTrader](https://github.com/kieran-mackle/AutoTrader) - A Python-based development platform for automated trading systems - from backtesting to optimisation to livetrading.
- [fast-trade](https://github.com/jrmeier/fast-trade) - A library built with backtest portability and performance in mind for backtest trading strategies.
- [qf-lib](https://github.com/quarkfin/qf-lib) - QF-Lib is a Python library that provides high quality tools for quantitative finance.
- [tda-api](https://github.com/alexgolec/tda-api) - Gather data and trade equities, options, and ETFs via TDAmeritrade.
- [vectorbt](https://github.com/polakowo/vectorbt) - Find your trading edge, using a powerful toolkit for backtesting, algorithmic trading, and research.
- [Lean](https://github.com/QuantConnect/Lean) - Lean Algorithmic Trading Engine by QuantConnect (Python, C#).
- [fast-trade](https://github.com/jrmeier/fast-trade) - Low code backtesting library utilizing pandas and technical analysis indicators.
- [pysystemtrade](https://github.com/robcarver17/pysystemtrade) - pysystemtrade is the open source version of Robert Carver's backtesting and trading engine that implements systems according to the framework outlined in his book "Systematic Trading", which is further developed on his [blog](https://qoppac.blogspot.com/).
- [pytrendseries](https://github.com/rafa-rod/pytrendseries) - Detect trend in time series, drawdown, drawdown within a constant look-back window , maximum drawdown, time underwater.
- [PyLOB](https://github.com/DrAshBooth/PyLOB) - Fully functioning fast Limit Order Book written in Python.
- [PyBroker](https://github.com/edtechre/pybroker) - Algorithmic Trading with Machine Learning.
- [OctoBot Script](https://github.com/Drakkar-Software/OctoBot-Script) - A quant framework to create cryptocurrencies strategies - from backtesting to optimisation to livetrading.
- [hftbacktest](https://github.com/nkaz001/hftbacktest) - A high-frequency trading and market-making backtesting tool accounts for limit orders, queue positions, and latencies, utilizing full tick data for trades and order books.
- [vnpy](https://github.com/vnpy/vnpy) - VeighNa is a Python-based open source quantitative trading system development framework.
- [Intelligent Trading Bot](https://github.com/asavinov/intelligent-trading-bot) - Automatically generating signals and trading based on machine learning and feature engineering
- [fastquant](https://github.com/enzoampil/fastquant) - fastquant allows you to easily backtest investment strategies with as few as 3 lines of python code.
- [nautilus_trader](https://github.com/nautechsystems/nautilus_trader) - A high-performance algorithmic trading platform and event-driven backtester.
### 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 performance 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.
- [risktools](https://github.com/bbcho/risktools-dev) - Risk tools for use within the crude and crude products trading space with partial implementation of R's PerformanceAnalytics.
- [Riskfolio-Lib](https://github.com/dcajasn/Riskfolio-Lib) - Portfolio Optimization and Quantitative Strategic Asset Allocation in Python.
### 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
### Quant Research Environment
- [Jupyter Quant](https://github.com/gnzsnz/jupyter-quant) - A dockerized Jupyter quant research environment with preloaded tools for quant analysis, statsmodels, pymc, arch, py_vollib, zipline-reloaded, PyPortfolioOpt, etc.
### 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.
- [pmdarima](https://github.com/alkaline-ml/pmdarima) - A statistical library designed to fill the void in Python's time series analysis capabilities, including the equivalent of R's auto.arima function.
- [gluon-ts](https://github.com/awslabs/gluon-ts) - vProbabilistic time series modeling in Python.
### 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
- [pystlouisfed](https://github.com/TomasKoutek/pystlouisfed) - Python client for Federal Reserve Bank of St. Louis API - FRED, ALFRED, GeoFRED and FRASER.
- [python-bcb](https://github.com/wilsonfreitas/python-bcb) - Python interface to Brazilian Central Bank web services.
- [market-prices](https://github.com/maread99/market_prices) - Create meaningful OHLCV datasets from knowledge of [exchange-calendars](https://github.com/gerrymanoim/exchange_calendars) (works out-the-box with data from Yahoo Finance).
- [tardis-python](https://github.com/tardis-dev/tardis-python) - Python interface for Tardis.dev high frequency crypto market data
- [lake-api](https://github.com/crypto-lake/lake-api) - Python interface for Crypto Lake high frequency crypto market data
- [tessa](https://github.com/ymyke/tessa) - simple, hassle-free access to price information of financial assets (currently based on yfinance and pycoingecko), including search and a symbol class.
- [pandaSDMX](https://github.com/dr-leo/pandaSDMX) - Python package that implements SDMX 2.1 (ISO 17369:2013), a format for exchange of statistical data and metadata used by national statistical agencies, central banks, and international organisations.
- [cif](https://github.com/LenkaV/CIF) - Python package that include few composite indicators, which summarize multidimensional relationships between individual economic indicators.
- [finagg](https://github.com/theOGognf/finagg) - finagg is a Python package that provides implementations of popular and free financial APIs, tools for aggregating historical data from those APIs into SQL databases, and tools for transforming aggregated data into features useful for analysis and AI/ML.
### 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.
- [market-analy](https://github.com/maread99/market_analy) - Analysis and interactive charting using [market-prices](https://github.com/maread99/market_prices) and bqplot.
## R
### Numerical Libraries & Data Structures
- [xts](https://github.com/joshuaulrich/xts) - 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://github.com/Rdatatable/data.table) - 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://github.com/Rblp/Rblpapi) - 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://github.com/jangorecki/Rbitcoin) - Unified markets API interface (bitstamp, kraken, btce, bitmarket).
- [GetTDData](https://github.com/msperlin/GetTDData) - Downloads and aggregates data for Brazilian government issued bonds directly from the website of Tesouro Direto.
- [GetHFData](https://github.com/msperlin/GetHFData) - 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://github.com/eddelbuettel/td) - Interfaces the 'twelvedata' API for stocks and (digital and standard) currencies.
- [rbcb](https://github.com/wilsonfreitas/rbcb) - R interface to Brazilian Central Bank web services.
- [rb3](https://github.com/ropensci/rb3) - A bunch of downloaders and parsers for data delivered from B3.
- [simfinapi](https://github.com/matthiasgomolka/simfinapi) - Makes 'SimFin' data (<https://simfin.com/>) easily accessible in R.
### 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://github.com/dgerlanc/portfolio) - Analysing equity portfolios.
- [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://github.com/blenezet/credule) - 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.
- [PortfolioAnalytics](https://github.com/braverock/PortfolioAnalytics) - Portfolio Analysis, Including Numerical Methods for Optimizationof Portfolios.
- [fmbasics](https://github.com/imanuelcostigan/fmbasics) - Financial Market Building Blocks.
- [R-fixedincome](https://github.com/wilsonfreitas/R-fixedincome) - Fixed income tools for R.
### Trading
- [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://github.com/joshuaulrich/TTR) - 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://github.com/braverock/PerformanceAnalytics) - 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.
- [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://github.com/alexiosg/rugarch) - Univariate GARCH Models.
- [rmgarch](https://github.com/alexiosg/rmgarch) - 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://github.com/wilsonfreitas/R-bizdays) - 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.
- [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.
- [IncTA.jl](https://github.com/femtotrader/IncTA.jl) - Julia Incremental Technical Analysis Indicators
- [Miletus.jl](https://github.com/JuliaComputing/Miletus.jl) - 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).
- [DataFrames.jl](https://github.com/JuliaData/DataFrames.jl) - In-memory tabular data in Julia
- [TSFrames.jl](https://github.com/xKDR/TSFrames.jl) - Handle timeseries data on top of the powerful and mature DataFrames.jl
## 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.
- [ta4j](https://github.com/ta4j/ta4j) - A Java library for technical analysis.
## JavaScript
- [finance.js](https://github.com/ebradyjobory/finance.js) - A JavaScript library for common financial calculations.
- [portfolio-allocation](https://github.com/lequant40/portfolio_allocation_js) - PortfolioAllocation is a JavaScript library designed to help constructing financial portfolios made of several assets: bonds, commodities, cryptocurrencies, currencies, exchange traded funds (ETFs), mutual funds, stocks...
- [Ghostfolio](https://github.com/ghostfolio/ghostfolio) - Wealth management software to keep track of financial assets like stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions.
- [IndicatorTS](https://github.com/cinar/indicatorts) - Indicator is a TypeScript module providing various stock technical analysis indicators, strategies, and a backtest framework for trading.
- [ccxt](https://github.com/ccxt/ccxt) - A JavaScript / Python / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges.
- [PENDAX](https://github.com/CompendiumFi/PENDAX-SDK) - Javascript SDK for Trading/Data API and Websockets for FTX, FTXUS, OKX, Bybit, & More.
### 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.
- [Haxcel](https://github.com/MarcusRainbow/Haxcel) - Excel Addin for Haskell.
- [Ffinar](https://github.com/MarcusRainbow/Ffinar) - A financial maths library in 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
- [Prop](https://github.com/fremantle-industries/prop) - An open and opinionated trading platform using productive & familiar open source libraries and tools for strategy research, execution and operation.
## 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.
- [IndicatorGo](https://github.com/cinar/indicator) - IndicatorGo is a Golang module providing various stock technical analysis indicators, strategies, and a backtest framework for trading.
## 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.
- [QuantLib-Python Documentation](https://quantlib-python-docs.readthedocs.io/) - Documentation for the Python bindings for the QuantLib library
- [QuantLib with Automatic Differention enabled](https://github.com/auto-differentiation/quantlib-xad) - Integration of Automatic Differentiation with the QuantLib library
- [TA-Lib](https://ta-lib.org) - perform technical analysis of financial market data.
- [ta-lib-python](https://github.com/TA-Lib/ta-lib-python)
- [ta-lib](https://github.com/TA-Lib/ta-lib)
- [Portfolio Optimizer](https://portfoliooptimizer.io/) - Portfolio Optimizer is a Web API for portfolio analysis and optimization.
## 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
- [Barter](https://github.com/barter-rs/barter-rs) - Open-source Rust framework for building event-driven live-trading & backtesting systems
- [LFEST](https://github.com/MathisWellmann/lfest-rs) - Simulated perpetual futures exchange to trade your strategy against.
- [TradeAggregation](https://github.com/MathisWellmann/trade_aggregation-rs) - Aggregate trades into user-defined candles using information driven rules.
- [SlidingFeatures](https://github.com/MathisWellmann/sliding_features-rs) - Chainable tree-like sliding windows for signal processing and technical analysis.
- [RustQuant](https://github.com/avhz/RustQuant) - Quantitative finance library written in Rust.
- [finalytics](https://github.com/Nnamdi-sys/finalytics) - A rust library for financial data analysis.
## Reproducing Works, Training & Books
- [Derman Papers](https://github.com/MarcosCarreira/DermanPapers) - Notebooks that replicate original quantitative finance papers from Emanuel Derman.
- [ML-Quant](https://www.ml-quant.com/) - Top Quant resources like ArXiv (sanity), SSRN, RePec, Journals, Podcasts, Videos, and Blogs.
- [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.
- [QuantFinance](https://github.com/PythonCharmers/QuantFinance) - Training materials in quantitative finance.
- [IPythonScripts](https://github.com/mgroncki/IPythonScripts) - Tutorials about Quantitative Finance in Python and QuantLib: Pricing, xVAs, Hedging, Portfolio Optimisation, Machine Learning and Deep Learning.
- [Computational-Finance-Course](https://github.com/LechGrzelak/Computational-Finance-Course) - Materials for the course of Computational Finance.
- [Machine-Learning-for-Asset-Managers](https://github.com/emoen/Machine-Learning-for-Asset-Managers) - Implementation of code snippets, exercises and application to live data from Machine Learning for Asset Managers (Elements in Quantitative Finance) written by Prof. Marcos López de Prado.
- [Python-for-Finance-Cookbook](https://github.com/PacktPublishing/Python-for-Finance-Cookbook) - Python for Finance Cookbook, published by Packt.
- [modelos_vol_derivativos](https://github.com/ysaporito/modelos_vol_derivativos) - "Modelos de Volatilidade para Derivativos" book's Jupyter notebooks
- [NMOF](https://github.com/enricoschumann/NMOF) - Functions, examples and data from the first and the second edition of "Numerical Methods and Optimization in Finance" by M. Gilli, D. Maringer and E. Schumann (2019, ISBN:978-0128150658).
- [py4fi2nd](https://github.com/yhilpisch/py4fi2nd) - Jupyter Notebooks and code for Python for Finance (2nd ed., O'Reilly) by Yves Hilpisch.
- [aiif](https://github.com/yhilpisch/aiif) - Jupyter Notebooks and code for the book Artificial Intelligence in Finance (O'Reilly) by Yves Hilpisch.
- [py4at](https://github.com/yhilpisch/py4at) - Jupyter Notebooks and code for the book Python for Algorithmic Trading (O'Reilly) by Yves Hilpisch.
- [dawp](https://github.com/yhilpisch/dawp) - Jupyter Notebooks and code for Derivatives Analytics with Python (Wiley Finance) by Yves Hilpisch.
- [dx](https://github.com/yhilpisch/dx) - DX Analytics | Financial and Derivatives Analytics with Python.
- [QuantFinanceBook](https://github.com/LechGrzelak/QuantFinanceBook) - Quantitative Finance book.
- [rough_bergomi](https://github.com/ryanmccrickerd/rough_bergomi) - A Python implementation of the rough Bergomi model.
- [frh-fx](https://github.com/ryanmccrickerd/frh-fx) - A python implementation of the fast-reversion Heston model of Mechkov for FX purposes.
- [Value Investing Studies](https://github.com/euclidjda/value-investing-studies) - A collection of data analysis studies that examine the performance and characteristics of value investing over long periods of time.
- [Machine Learning Asset Management](https://github.com/firmai/machine-learning-asset-management) - Machine Learning in Asset Management (by @firmai).
- [Deep Learning Machine Learning Stock](https://github.com/LastAncientOne/Deep-Learning-Machine-Learning-Stock) - Deep Learning and Machine Learning stocks represent a promising long-term or short-term opportunity for investors and traders.
- [Technical Analysis and Feature Engineering](https://github.com/jo-cho/Technical_Analysis_and_Feature_Engineering) - Feature Engineering and Feature Importance of Machine Learning in Financial Market.
- [Differential Machine Learning and Axes that matter by Brian Huge and Antoine Savine](https://github.com/differential-machine-learning/notebooks) - Implement, demonstrate, reproduce and extend the results of the Risk articles 'Differential Machine Learning' (2020) and 'PCA with a Difference' (2021) by Huge and Savine, and cover implementation details left out from the papers.
- [systematictradingexamples](https://github.com/robcarver17/systematictradingexamples) - Examples of code related to book [Systematic Trading](www.systematictrading.org) and [blog](http://qoppac.blogspot.com)
- [pysystemtrade_examples](https://github.com/robcarver17/pysystemtrade_examples) - Examples using pysystemtrade for Robert Carver's [blog](http://qoppac.blogspot.com).
- [ML_Finance_Codes](https://github.com/mfrdixon/ML_Finance_Codes) - Machine Learning in Finance: From Theory to Practice Book
- [Hands-On Machine Learning for Algorithmic Trading](https://github.com/packtpublishing/hands-on-machine-learning-for-algorithmic-trading) - Hands-On Machine Learning for Algorithmic Trading, published by Packt
- [financialnoob-misc](https://github.com/financialnoob/misc) - Codes from @financialnoob's posts
- [MesoSim Options Trading Strategy Library](https://github.com/deltaray-io/strategy-library) - Free and public Options Trading strategy library for MesoSim.
- [Quant-Finance-With-Python-Code](https://github.com/lingyixu/Quant-Finance-With-Python-Code) - Repo for code examples in Quantitative Finance with Python by Chris Kelliher
- [QuantFinanceTraining](https://github.com/JoaoJungblut/QuantFinanceTraining) - This repository contains codes that were executed during my training in the CQF (Certificate in Quantitative Finance). The codes are organized by class, facilitating navigation and reference.
- [Statistical-Learning-based-Portfolio-Optimization](https://github.com/YannickKae/Statistical-Learning-based-Portfolio-Optimization) - This R Shiny App utilizes the Hierarchical Equal Risk Contribution (HERC) approach, a modern portfolio optimization method developed by Raffinot (2018).
+385
View File
@@ -0,0 +1,385 @@
project,section,last_commit,url,description,github,cran,repo
numpy,Python > Numerical Libraries & Data Structures,,https://www.numpy.org,NumPy is the fundamental package for scientific computing with Python.,False,False,
scipy,Python > Numerical Libraries & Data Structures,,https://www.scipy.org,"SciPy (pronounced “Sigh Pie”) is a Python-based ecosystem of open-source software for mathematics, science, and engineering.",False,False,
pandas,Python > Numerical Libraries & Data Structures,,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.",False,False,
quantdsl,Python > Numerical Libraries & Data Structures,2017-10-26,https://github.com/johnbywater/quantdsl,Domain specific language for quantitative analytics in finance and trading.,True,False,johnbywater/quantdsl
statistics,Python > Numerical Libraries & Data Structures,,https://docs.python.org/3/library/statistics.html,Builtin Python library for all basic statistical calculations.,False,False,
sympy,Python > Numerical Libraries & Data Structures,,https://www.sympy.org/,SymPy is a Python library for symbolic mathematics.,False,False,
pymc3,Python > Numerical Libraries & Data Structures,,https://docs.pymc.io/,Probabilistic Programming in Python: Bayesian Modeling and Probabilistic Machine Learning with Theano.,False,False,
modelx,Python > Numerical Libraries & Data Structures,,https://docs.modelx.io/,Python reimagination of spreadsheets as formula-centric objects that are interoperable with pandas.,False,False,
ArcticDB,Python > Numerical Libraries & Data Structures,2024-02-17,https://github.com/man-group/ArcticDB,High performance datastore for time series and tick data.,True,False,man-group/ArcticDB
OpenBB Terminal,Python > Financial Instruments and Pricing,2024-02-15,https://github.com/OpenBB-finance/OpenBBTerminal,Terminal for investment research for everyone.,True,False,OpenBB-finance/OpenBBTerminal
PyQL,Python > Financial Instruments and Pricing,2023-11-08,https://github.com/enthought/pyql,QuantLib's Python port.,True,False,enthought/pyql
pyfin,Python > Financial Instruments and Pricing,2014-12-03,https://github.com/opendoor-labs/pyfin,Basic options pricing in Python. *ARCHIVED*,True,False,opendoor-labs/pyfin
vollib,Python > Financial Instruments and Pricing,2023-04-01,https://github.com/vollib/vollib,"vollib is a python library for calculating option prices, implied volatility and greeks.",True,False,vollib/vollib
QuantPy,Python > Financial Instruments and Pricing,2017-11-28,https://github.com/jsmidt/QuantPy,A framework for quantitative finance In python.,True,False,jsmidt/QuantPy
Finance-Python,Python > Financial Instruments and Pricing,2024-01-01,https://github.com/alpha-miner/Finance-Python,Python tools for Finance.,True,False,alpha-miner/Finance-Python
ffn,Python > Financial Instruments and Pricing,2023-12-31,https://github.com/pmorissette/ffn,A financial function library for Python.,True,False,pmorissette/ffn
pynance,Python > Financial Instruments and Pricing,2021-02-03,https://github.com/GriffinAustin/pynance,Lightweight Python library for assembling and analysing financial data.,True,False,GriffinAustin/pynance
tia,Python > Financial Instruments and Pricing,2017-06-05,https://github.com/bpsmith/tia,Toolkit for integration and analysis.,True,False,bpsmith/tia
hasura/base-python-dash,Python > Financial Instruments and Pricing,,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.",False,False,
hasura/base-python-bokeh,Python > Financial Instruments and Pricing,,https://platform.hasura.io/hub/projects/hasura/base-python-bokeh,Hasura quickstart to visualize data with bokeh library.,False,False,
pysabr,Python > Financial Instruments and Pricing,2022-04-21,https://github.com/ynouri/pysabr,SABR model Python implementation.,True,False,ynouri/pysabr
FinancePy,Python > Financial Instruments and Pricing,2024-02-13,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.",True,False,domokane/FinancePy
gs-quant,Python > Financial Instruments and Pricing,2024-02-16,https://github.com/goldmansachs/gs-quant,Python toolkit for quantitative finance,True,False,goldmansachs/gs-quant
willowtree,Python > Financial Instruments and Pricing,2018-07-14,https://github.com/federicomariamassari/willowtree,Robust and flexible Python implementation of the willow tree lattice for derivatives pricing.,True,False,federicomariamassari/willowtree
financial-engineering,Python > Financial Instruments and Pricing,2017-11-20,https://github.com/federicomariamassari/financial-engineering,"Applications of Monte Carlo methods to financial engineering projects, in Python.",True,False,federicomariamassari/financial-engineering
optlib,Python > Financial Instruments and Pricing,2022-11-18,https://github.com/dbrojas/optlib,A library for financial options pricing written in Python.,True,False,dbrojas/optlib
tf-quant-finance,Python > Financial Instruments and Pricing,2023-08-15,https://github.com/google/tf-quant-finance,High-performance TensorFlow library for quantitative finance.,True,False,google/tf-quant-finance
Q-Fin,Python > Financial Instruments and Pricing,2023-04-07,https://github.com/RomanMichaelPaolucci/Q-Fin,A Python library for mathematical finance.,True,False,RomanMichaelPaolucci/Q-Fin
Quantsbin,Python > Financial Instruments and Pricing,2021-05-23,https://github.com/quantsbin/Quantsbin,"Tools for pricing and plotting of vanilla option prices, greeks and various other analysis around them.",True,False,quantsbin/Quantsbin
finoptions,Python > Financial Instruments and Pricing,2024-02-01,https://github.com/bbcho/finoptions-dev,Complete python implementation of R package fOptions with partial implementation of fExoticOptions for pricing various options.,True,False,bbcho/finoptions-dev
pypme,Python > Financial Instruments and Pricing,2023-06-27,https://github.com/ymyke/pypme,PME (Public Market Equivalent) calculation.,True,False,ymyke/pypme
AbsBox,Python > Financial Instruments and Pricing,2024-02-16,https://github.com/yellowbean/AbsBox,A Python based library to model cashflow for structured product like Asset-backed securities (ABS) and Mortgage-backed securities (MBS).,True,False,yellowbean/AbsBox
Intrinsic-Value-Calculator,Python > Financial Instruments and Pricing,2023-08-08,https://github.com/akashaero/Intrinsic-Value-Calculator,A Python tool for quick calculations of a stock's fair value using Discounted Cash Flow analysis.,True,False,akashaero/Intrinsic-Value-Calculator
Kelly-Criterion,Python > Financial Instruments and Pricing,2019-02-16,https://github.com/deltaray-io/kelly-criterion,Kelly Criterion implemented in Python to size portfolios based on J. L. Kelly Jr's formula.,True,False,deltaray-io/kelly-criterion
pandas_talib,Python > Indicators,2018-05-30,https://github.com/femtotrader/pandas_talib,A Python Pandas implementation of technical analysis indicators.,True,False,femtotrader/pandas_talib
finta,Python > Indicators,2022-07-24,https://github.com/peerchemist/finta,Common financial technical analysis indicators implemented in Pandas.,True,False,peerchemist/finta
Tulipy,Python > Indicators,2019-04-11,https://github.com/cirla/tulipy,Financial Technical Analysis Indicator Library (Python bindings for [tulipindicators](https://github.com/TulipCharts/tulipindicators)),True,False,cirla/tulipy
lppls,Python > Indicators,2024-02-15,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.,True,False,Boulder-Investment-Technologies/lppls
skfolio,Python > Trading & Backtesting,2024-02-14,https://github.com/skfolio/skfolio,"Python library for portfolio optimization built on top of scikit-learn. It provides a unified interface and sklearn compatible tools to build, tune and cross-validate portfolio models.",True,False,skfolio/skfolio
Investing algorithm framework,Python > Trading & Backtesting,2024-02-13,https://github.com/coding-kitties/investing-algorithm-framework,"Framework for developing, backtesting, and deploying automated trading algorithms.",True,False,coding-kitties/investing-algorithm-framework
QSTrader,Python > Trading & Backtesting,2024-02-07,https://github.com/mhallsmoore/qstrader,QSTrader backtesting simulation engine.,True,False,mhallsmoore/qstrader
Blankly,Python > Trading & Backtesting,2023-12-23,https://github.com/Blankly-Finance/Blankly,"Fully integrated backtesting, paper trading, and live deployment.",True,False,Blankly-Finance/Blankly
TA-Lib,Python > Trading & Backtesting,2024-02-14,https://github.com/mrjbq7/ta-lib,Python wrapper for TA-Lib (<http://ta-lib.org/>).,True,False,mrjbq7/ta-lib
zipline,Python > Trading & Backtesting,2020-10-14,https://github.com/quantopian/zipline,Pythonic algorithmic trading library.,True,False,quantopian/zipline
QuantSoftware Toolkit,Python > Trading & Backtesting,2016-10-07,https://github.com/QuantSoftware/QuantSoftwareToolkit,Python-based open source software framework designed to support portfolio construction and management.,True,False,QuantSoftware/QuantSoftwareToolkit
quantitative,Python > Trading & Backtesting,2019-03-03,https://github.com/jeffrey-liang/quantitative,"Quantitative finance, and backtesting library.",True,False,jeffrey-liang/quantitative
analyzer,Python > Trading & Backtesting,2015-12-22,https://github.com/llazzaro/analyzer,Python framework for real-time financial and backtesting trading strategies.,True,False,llazzaro/analyzer
bt,Python > Trading & Backtesting,2024-02-05,https://github.com/pmorissette/bt,Flexible Backtesting for Python.,True,False,pmorissette/bt
backtrader,Python > Trading & Backtesting,2023-04-19,https://github.com/backtrader/backtrader,Python Backtesting library for trading strategies.,True,False,backtrader/backtrader
pythalesians,Python > Trading & Backtesting,2016-09-23,https://github.com/thalesians/pythalesians,"Python library to backtest trading strategies, plot charts, seamlessly download market data, analyse market patterns etc.",True,False,thalesians/pythalesians
pybacktest,Python > Trading & Backtesting,2019-09-09,https://github.com/ematvey/pybacktest,"Vectorized backtesting framework in Python / pandas, designed to make your backtesting easier.",True,False,ematvey/pybacktest
pyalgotrade,Python > Trading & Backtesting,2023-03-05,https://github.com/gbeced/pyalgotrade,Python Algorithmic Trading Library.,True,False,gbeced/pyalgotrade
basana,Python > Trading & Backtesting,2024-01-07,https://github.com/gbeced/basana,"A Python async and event driven framework for algorithmic trading, with a focus on crypto currencies.",True,False,gbeced/basana
tradingWithPython,Python > Trading & Backtesting,,https://pypi.org/project/tradingWithPython/,A collection of functions and classes for Quantitative trading.,False,False,
Pandas TA,Python > Trading & Backtesting,2022-09-24,https://github.com/twopirllc/pandas-ta,Pandas TA is an easy to use Python 3 Pandas Extension with 115+ Indicators. Easily build Custom Strategies.,True,False,twopirllc/pandas-ta
ta,Python > Trading & Backtesting,2023-11-02,https://github.com/bukosabino/ta,Technical Analysis Library using Pandas (Python),True,False,bukosabino/ta
algobroker,Python > Trading & Backtesting,2016-03-31,https://github.com/joequant/algobroker,This is an execution engine for algo trading.,True,False,joequant/algobroker
pysentosa,Python > Trading & Backtesting,,https://pypi.org/project/pysentosa/,Python API for sentosa trading system.,False,False,
finmarketpy,Python > Trading & Backtesting,2024-01-01,https://github.com/cuemacro/finmarketpy,Python library for backtesting trading strategies and analyzing financial markets.,True,False,cuemacro/finmarketpy
binary-martingale,Python > Trading & Backtesting,2017-10-16,https://github.com/metaperl/binary-martingale,Computer program to automatically trade binary options martingale style.,True,False,metaperl/binary-martingale
fooltrader,Python > Trading & Backtesting,2020-07-19,https://github.com/foolcage/fooltrader,the project using big-data technology to provide an uniform way to analyze the whole market.,True,False,foolcage/fooltrader
zvt,Python > Trading & Backtesting,2024-02-05,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.",True,False,zvtvz/zvt
pylivetrader,Python > Trading & Backtesting,2022-04-11,https://github.com/alpacahq/pylivetrader,zipline-compatible live trading library.,True,False,alpacahq/pylivetrader
pipeline-live,Python > Trading & Backtesting,2022-04-11,https://github.com/alpacahq/pipeline-live,zipline's pipeline capability with IEX for live trading.,True,False,alpacahq/pipeline-live
zipline-extensions,Python > Trading & Backtesting,2018-09-17,https://github.com/quantrocket-llc/zipline-extensions,Zipline extensions and adapters for QuantRocket.,True,False,quantrocket-llc/zipline-extensions
moonshot,Python > Trading & Backtesting,2023-12-28,https://github.com/quantrocket-llc/moonshot,Vectorized backtester and trading engine for QuantRocket based on Pandas.,True,False,quantrocket-llc/moonshot
PyPortfolioOpt,Python > Trading & Backtesting,2023-12-06,https://github.com/robertmartin8/PyPortfolioOpt,"Financial portfolio optimisation in python, including classical efficient frontier and advanced methods.",True,False,robertmartin8/PyPortfolioOpt
Eiten,Python > Trading & Backtesting,2020-09-21,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.",True,False,tradytics/eiten
riskparity.py,Python > Trading & Backtesting,2024-02-10,https://github.com/dppalomar/riskparity.py,fast and scalable design of risk parity portfolios with TensorFlow 2.0,True,False,dppalomar/riskparity.py
mlfinlab,Python > Trading & Backtesting,2021-12-01,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)",True,False,hudson-and-thames/mlfinlab
pyqstrat,Python > Trading & Backtesting,2023-11-05,https://github.com/abbass2/pyqstrat,"A fast, extensible, transparent python library for backtesting quantitative strategies.",True,False,abbass2/pyqstrat
NowTrade,Python > Trading & Backtesting,2017-02-07,https://github.com/edouardpoitras/NowTrade,Python library for backtesting technical/mechanical strategies in the stock and currency markets.,True,False,edouardpoitras/NowTrade
pinkfish,Python > Trading & Backtesting,2023-12-30,https://github.com/fja05680/pinkfish,A backtester and spreadsheet library for security analysis.,True,False,fja05680/pinkfish
aat,Python > Trading & Backtesting,2023-09-11,https://github.com/timkpaine/aat,Async Algorithmic Trading Engine,True,False,timkpaine/aat
Backtesting.py,Python > Trading & Backtesting,,https://kernc.github.io/backtesting.py/,Backtest trading strategies in Python,False,False,
catalyst,Python > Trading & Backtesting,2021-09-22,https://github.com/enigmampc/catalyst,An Algorithmic Trading Library for Crypto-Assets in Python,True,False,enigmampc/catalyst
quantstats,Python > Trading & Backtesting,2023-07-06,https://github.com/ranaroussi/quantstats,"Portfolio analytics for quants, written in Python",True,False,ranaroussi/quantstats
qtpylib,Python > Trading & Backtesting,2021-03-24,https://github.com/ranaroussi/qtpylib,"QTPyLib, Pythonic Algorithmic Trading <http://qtpylib.io>",True,False,ranaroussi/qtpylib
Quantdom,Python > Trading & Backtesting,2019-03-12,https://github.com/constverum/Quantdom,Python-based framework for backtesting trading strategies & analyzing financial markets [GUI :neckbeard:],True,False,constverum/Quantdom
freqtrade,Python > Trading & Backtesting,2024-02-17,https://github.com/freqtrade/freqtrade,"Free, open source crypto trading bot",True,False,freqtrade/freqtrade
algorithmic-trading-with-python,Python > Trading & Backtesting,2021-06-01,https://github.com/chrisconlan/algorithmic-trading-with-python,"Free `pandas` and `scikit-learn` resources for trading simulation, backtesting, and machine learning on financial data.",True,False,chrisconlan/algorithmic-trading-with-python
DeepDow,Python > Trading & Backtesting,2024-01-24,https://github.com/jankrepl/deepdow,Portfolio optimization with deep learning,True,False,jankrepl/deepdow
Qlib,Python > Trading & Backtesting,2023-11-21,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.",True,False,microsoft/qlib
machine-learning-for-trading,Python > Trading & Backtesting,2023-03-05,https://github.com/stefan-jansen/machine-learning-for-trading,Code and resources for Machine Learning for Algorithmic Trading,True,False,stefan-jansen/machine-learning-for-trading
AlphaPy,Python > Trading & Backtesting,2024-02-10,https://github.com/ScottfreeLLC/AlphaPy,"Automated Machine Learning [AutoML] with Python, scikit-learn, Keras, XGBoost, LightGBM, and CatBoost",True,False,ScottfreeLLC/AlphaPy
jesse,Python > Trading & Backtesting,2024-01-01,https://github.com/jesse-ai/jesse,An advanced crypto trading bot written in Python,True,False,jesse-ai/jesse
rqalpha,Python > Trading & Backtesting,2024-01-22,https://github.com/ricequant/rqalpha,"A extendable, replaceable Python algorithmic backtest && trading framework supporting multiple securities.",True,False,ricequant/rqalpha
FinRL-Library,Python > Trading & Backtesting,2024-02-14,https://github.com/AI4Finance-LLC/FinRL-Library,A Deep Reinforcement Learning Library for Automated Trading in Quantitative Finance. NeurIPS 2020.,True,False,AI4Finance-LLC/FinRL-Library
bulbea,Python > Trading & Backtesting,2017-03-19,https://github.com/achillesrasquinha/bulbea,Deep Learning based Python Library for Stock Market Prediction and Modelling.,True,False,achillesrasquinha/bulbea
ib_nope,Python > Trading & Backtesting,2021-04-22,https://github.com/ajhpark/ib_nope,Automated trading system for NOPE strategy over IBKR TWS.,True,False,ajhpark/ib_nope
OctoBot,Python > Trading & Backtesting,2024-02-16,https://github.com/Drakkar-Software/OctoBot,"Open source cryptocurrency trading bot for high frequency, arbitrage, TA and social trading with an advanced web interface.",True,False,Drakkar-Software/OctoBot
bta-lib,Python > Trading & Backtesting,2020-03-11,https://github.com/mementum/bta-lib,Technical Analysis library in pandas for backtesting algotrading and quantitative analysis.,True,False,mementum/bta-lib
Stock-Prediction-Models,Python > Trading & Backtesting,2021-01-05,https://github.com/huseinzol05/Stock-Prediction-Models,Gathers machine learning and deep learning models for Stock forecasting including trading bots and simulations.,True,False,huseinzol05/Stock-Prediction-Models
TuneTA,Python > Trading & Backtesting,2023-10-13,https://github.com/jmrichardson/tuneta,TuneTA optimizes technical indicators using a distance correlation measure to a user defined target feature such as next day return.,True,False,jmrichardson/tuneta
AutoTrader,Python > Trading & Backtesting,2023-09-26,https://github.com/kieran-mackle/AutoTrader,A Python-based development platform for automated trading systems - from backtesting to optimisation to livetrading.,True,False,kieran-mackle/AutoTrader
fast-trade,Python > Trading & Backtesting,2024-01-25,https://github.com/jrmeier/fast-trade,A library built with backtest portability and performance in mind for backtest trading strategies.,True,False,jrmeier/fast-trade
qf-lib,Python > Trading & Backtesting,2023-12-14,https://github.com/quarkfin/qf-lib,QF-Lib is a Python library that provides high quality tools for quantitative finance.,True,False,quarkfin/qf-lib
tda-api,Python > Trading & Backtesting,2023-06-05,https://github.com/alexgolec/tda-api,"Gather data and trade equities, options, and ETFs via TDAmeritrade.",True,False,alexgolec/tda-api
vectorbt,Python > Trading & Backtesting,2024-02-03,https://github.com/polakowo/vectorbt,"Find your trading edge, using a powerful toolkit for backtesting, algorithmic trading, and research.",True,False,polakowo/vectorbt
Lean,Python > Trading & Backtesting,2024-02-16,https://github.com/QuantConnect/Lean,"Lean Algorithmic Trading Engine by QuantConnect (Python, C#).",True,False,QuantConnect/Lean
fast-trade,Python > Trading & Backtesting,2024-01-25,https://github.com/jrmeier/fast-trade,Low code backtesting library utilizing pandas and technical analysis indicators.,True,False,jrmeier/fast-trade
pysystemtrade,Python > Trading & Backtesting,2024-02-08,https://github.com/robcarver17/pysystemtrade,"pysystemtrade is the open source version of Robert Carver's backtesting and trading engine that implements systems according to the framework outlined in his book ""Systematic Trading"", which is further developed on his [blog](https://qoppac.blogspot.com/).",True,False,robcarver17/pysystemtrade
pytrendseries,Python > Trading & Backtesting,2024-01-09,https://github.com/rafa-rod/pytrendseries,"Detect trend in time series, drawdown, drawdown within a constant look-back window , maximum drawdown, time underwater.",True,False,rafa-rod/pytrendseries
PyLOB,Python > Trading & Backtesting,2023-01-01,https://github.com/DrAshBooth/PyLOB,Fully functioning fast Limit Order Book written in Python.,True,False,DrAshBooth/PyLOB
PyBroker,Python > Trading & Backtesting,2024-01-20,https://github.com/edtechre/pybroker,Algorithmic Trading with Machine Learning.,True,False,edtechre/pybroker
OctoBot Script,Python > Trading & Backtesting,2024-01-14,https://github.com/Drakkar-Software/OctoBot-Script,A quant framework to create cryptocurrencies strategies - from backtesting to optimisation to livetrading.,True,False,Drakkar-Software/OctoBot-Script
hftbacktest,Python > Trading & Backtesting,2024-02-14,https://github.com/nkaz001/hftbacktest,"A high-frequency trading and market-making backtesting tool accounts for limit orders, queue positions, and latencies, utilizing full tick data for trades and order books.",True,False,nkaz001/hftbacktest
vnpy,Python > Trading & Backtesting,2023-12-09,https://github.com/vnpy/vnpy,VeighNa is a Python-based open source quantitative trading system development framework.,True,False,vnpy/vnpy
Intelligent Trading Bot,Python > Trading & Backtesting,2023-12-28,https://github.com/asavinov/intelligent-trading-bot,Automatically generating signals and trading based on machine learning and feature engineering,True,False,asavinov/intelligent-trading-bot
fastquant,Python > Trading & Backtesting,2023-09-15,https://github.com/enzoampil/fastquant,fastquant allows you to easily backtest investment strategies with as few as 3 lines of python code.,True,False,enzoampil/fastquant
nautilus_trader,Python > Trading & Backtesting,2024-02-09,https://github.com/nautechsystems/nautilus_trader,A high-performance algorithmic trading platform and event-driven backtester.,True,False,nautechsystems/nautilus_trader
pyfolio,Python > Risk Analysis,2020-02-28,https://github.com/quantopian/pyfolio,Portfolio and risk analytics in Python.,True,False,quantopian/pyfolio
empyrical,Python > Risk Analysis,2020-10-14,https://github.com/quantopian/empyrical,Common financial risk and performance metrics.,True,False,quantopian/empyrical
fecon235,Python > Risk Analysis,2018-12-03,https://github.com/rsvp/fecon235,"Computational tools for financial economics include: Gaussian Mixture model of leptokurtotic risk, adaptive Boltzmann portfolios.",True,False,rsvp/fecon235
finance,Python > Risk Analysis,,https://pypi.org/project/finance/,Financial Risk Calculations. Optimized for ease of use through class construction and operator overload.,False,False,
qfrm,Python > Risk Analysis,,https://pypi.org/project/qfrm/,"Quantitative Financial Risk Management: awesome OOP tools for measuring, managing and visualizing risk of financial instruments and portfolios.",False,False,
visualize-wealth,Python > Risk Analysis,2015-06-10,https://github.com/benjaminmgross/visualize-wealth,Portfolio construction and quantitative analysis.,True,False,benjaminmgross/visualize-wealth
VisualPortfolio,Python > Risk Analysis,2017-02-28,https://github.com/wegamekinglc/VisualPortfolio,This tool is used to visualize the performance of a portfolio.,True,False,wegamekinglc/VisualPortfolio
universal-portfolios,Python > Risk Analysis,2024-01-16,https://github.com/Marigold/universal-portfolios,Collection of algorithms for online portfolio selection.,True,False,Marigold/universal-portfolios
FinQuant,Python > Risk Analysis,2023-09-03,https://github.com/fmilthaler/FinQuant,"A program for financial portfolio management, analysis and optimisation.",True,False,fmilthaler/FinQuant
Empyrial,Python > Risk Analysis,2024-02-08,https://github.com/ssantoshp/Empyrial,Portfolio's risk and performance analytics and returns predictions.,True,False,ssantoshp/Empyrial
risktools,Python > Risk Analysis,2023-11-12,https://github.com/bbcho/risktools-dev,Risk tools for use within the crude and crude products trading space with partial implementation of R's PerformanceAnalytics.,True,False,bbcho/risktools-dev
Riskfolio-Lib,Python > Risk Analysis,2024-02-08,https://github.com/dcajasn/Riskfolio-Lib,Portfolio Optimization and Quantitative Strategic Asset Allocation in Python.,True,False,dcajasn/Riskfolio-Lib
alphalens,Python > Factor Analysis,2020-04-27,https://github.com/quantopian/alphalens,Performance analysis of predictive alpha factors.,True,False,quantopian/alphalens
Spectre,Python > Factor Analysis,2023-11-28,https://github.com/Heerozh/spectre,GPU-accelerated Factors analysis library and Backtester,True,False,Heerozh/spectre
Jupyter Quant,Python > Quant Research Environment,2024-02-16,https://github.com/gnzsnz/jupyter-quant,"A dockerized Jupyter quant research environment with preloaded tools for quant analysis, statsmodels, pymc, arch, py_vollib, zipline-reloaded, PyPortfolioOpt, etc.",True,False,gnzsnz/jupyter-quant
ARCH,Python > Time Series,2024-01-05,https://github.com/bashtage/arch,ARCH models in Python.,True,False,bashtage/arch
statsmodels,Python > Time Series,,http://statsmodels.sourceforge.net,"Python module that allows users to explore data, estimate statistical models, and perform statistical tests.",False,False,
dynts,Python > Time Series,2016-11-02,https://github.com/quantmind/dynts,Python package for timeseries analysis and manipulation.,True,False,quantmind/dynts
PyFlux,Python > Time Series,2018-12-16,https://github.com/RJT1990/pyflux,Python library for timeseries modelling and inference (frequentist and Bayesian) on models.,True,False,RJT1990/pyflux
tsfresh,Python > Time Series,2024-01-28,https://github.com/blue-yonder/tsfresh,Automatic extraction of relevant features from time series.,True,False,blue-yonder/tsfresh
hasura/quandl-metabase,Python > Time Series,,https://platform.hasura.io/hub/projects/anirudhm/quandl-metabase-time-series,Hasura quickstart to visualize Quandl's timeseries datasets with Metabase.,False,False,
Facebook Prophet,Python > Time Series,2023-10-18,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.,True,False,facebook/prophet
tsmoothie,Python > Time Series,2023-11-23,https://github.com/cerlymarco/tsmoothie,A python library for time-series smoothing and outlier detection in a vectorized way.,True,False,cerlymarco/tsmoothie
pmdarima,Python > Time Series,2024-02-16,https://github.com/alkaline-ml/pmdarima,"A statistical library designed to fill the void in Python's time series analysis capabilities, including the equivalent of R's auto.arima function.",True,False,alkaline-ml/pmdarima
gluon-ts,Python > Time Series,2024-02-07,https://github.com/awslabs/gluon-ts,vProbabilistic time series modeling in Python.,True,False,awslabs/gluon-ts
exchange_calendars,Python > Calendars,2024-02-15,https://github.com/gerrymanoim/exchange_calendars,Stock Exchange Trading Calendars.,True,False,gerrymanoim/exchange_calendars
bizdays,Python > Calendars,2024-02-12,https://github.com/wilsonfreitas/python-bizdays,Business days calculations and utilities.,True,False,wilsonfreitas/python-bizdays
pandas_market_calendars,Python > Calendars,2024-02-10,https://github.com/rsheftel/pandas_market_calendars,Exchange calendars to use with pandas for trading applications.,True,False,rsheftel/pandas_market_calendars
yfinance,Python > Data Sources,2024-02-10,https://github.com/ranaroussi/yfinance,Yahoo! Finance market data downloader (+faster Pandas Datareader),True,False,ranaroussi/yfinance
findatapy,Python > Data Sources,2023-12-01,https://github.com/cuemacro/findatapy,"Python library to download market data via Bloomberg, Quandl, Yahoo etc.",True,False,cuemacro/findatapy
googlefinance,Python > Data Sources,2018-09-23,https://github.com/hongtaocai/googlefinance,Python module to get real-time stock data from Google Finance API.,True,False,hongtaocai/googlefinance
yahoo-finance,Python > Data Sources,2021-12-15,https://github.com/lukaszbanasiak/yahoo-finance,Python module to get stock data from Yahoo! Finance.,True,False,lukaszbanasiak/yahoo-finance
pandas-datareader,Python > Data Sources,2023-10-24,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.",True,False,pydata/pandas-datareader
pandas-finance,Python > Data Sources,2023-07-04,https://github.com/davidastephens/pandas-finance,High level API for access to and analysis of financial data.,True,False,davidastephens/pandas-finance
pyhoofinance,Python > Data Sources,2016-10-07,https://github.com/innes213/pyhoofinance,Rapidly queries Yahoo Finance for multiple tickers and returns typed data for analysis.,True,False,innes213/pyhoofinance
yfinanceapi,Python > Data Sources,2020-05-26,https://github.com/Karthik005/yfinanceapi,Finance API for Python.,True,False,Karthik005/yfinanceapi
yql-finance,Python > Data Sources,2015-08-29,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).",True,False,slawek87/yql-finance
ystockquote,Python > Data Sources,2017-03-10,https://github.com/cgoldberg/ystockquote,Retrieve stock quote data from Yahoo Finance.,True,False,cgoldberg/ystockquote
wallstreet,Python > Data Sources,2022-12-30,https://github.com/mcdallas/wallstreet,Real time stock and option data.,True,False,mcdallas/wallstreet
stock_extractor,Python > Data Sources,2016-09-10,https://github.com/ZachLiuGIS/stock_extractor,General Purpose Stock Extractors from Online Resources.,True,False,ZachLiuGIS/stock_extractor
Stockex,Python > Data Sources,2021-09-15,https://github.com/cttn/Stockex,Python wrapper for Yahoo! Finance API.,True,False,cttn/Stockex
finsymbols,Python > Data Sources,2017-07-23,https://github.com/skillachie/finsymbols,"Obtains stock symbols and relating information for SP500, AMEX, NYSE, and NASDAQ.",True,False,skillachie/finsymbols
FRB,Python > Data Sources,2018-12-22,https://github.com/avelkoski/FRB,Python Client for FRED® API.,True,False,avelkoski/FRB
inquisitor,Python > Data Sources,2019-10-10,https://github.com/econdb/inquisitor,Python Interface to Econdb.com API.,True,False,econdb/inquisitor
yfi,Python > Data Sources,2016-02-12,https://github.com/nickelkr/yfi,Yahoo! YQL library.,True,False,nickelkr/yfi
chinesestockapi,Python > Data Sources,,https://pypi.org/project/chinesestockapi/,Python API to get Chinese stock price.,False,False,
exchange,Python > Data Sources,2015-07-07,https://github.com/akarat/exchange,Get current exchange rate.,True,False,akarat/exchange
ticks,Python > Data Sources,2016-01-08,https://github.com/jamescnowell/ticks,Simple command line tool to get stock ticker data.,True,False,jamescnowell/ticks
pybbg,Python > Data Sources,2015-01-20,https://github.com/bpsmith/pybbg,Python interface to Bloomberg COM APIs.,True,False,bpsmith/pybbg
ccy,Python > Data Sources,2023-09-29,https://github.com/lsbardel/ccy,Python module for currencies.,True,False,lsbardel/ccy
tushare,Python > Data Sources,,https://pypi.org/project/tushare/,A utility for crawling historical and Real-time Quotes data of China stocks.,False,False,
jsm,Python > Data Sources,,https://pypi.org/project/jsm/,Get the japanese stock market data.,False,False,
cn_stock_src,Python > Data Sources,2016-02-29,https://github.com/jealous/cn_stock_src,Utility for retrieving basic China stock data from different sources.,True,False,jealous/cn_stock_src
coinmarketcap,Python > Data Sources,2023-05-23,https://github.com/barnumbirr/coinmarketcap,Python API for coinmarketcap.,True,False,barnumbirr/coinmarketcap
after-hours,Python > Data Sources,2020-06-22,https://github.com/datawrestler/after-hours,Obtain pre market and after hours stock prices for a given symbol.,True,False,datawrestler/after-hours
bronto-python,Python > Data Sources,,https://pypi.org/project/bronto-python/,Bronto API Integration for Python.,False,False,
pytdx,Python > Data Sources,2020-04-15,https://github.com/rainx/pytdx,Python Interface for retrieving chinese stock realtime quote data from TongDaXin Nodes.,True,False,rainx/pytdx
pdblp,Python > Data Sources,2022-05-28,https://github.com/matthewgilbert/pdblp,A simple interface to integrate pandas and the Bloomberg Open API.,True,False,matthewgilbert/pdblp
tiingo,Python > Data Sources,2024-02-14,https://github.com/hydrosquall/tiingo-python,"Python interface for daily composite prices/OHLC/Volume + Real-time News Feeds, powered by the Tiingo Data Platform.",True,False,hydrosquall/tiingo-python
iexfinance,Python > Data Sources,2021-01-02,https://github.com/addisonlynch/iexfinance,Python Interface for retrieving real-time and historical prices and equities data from The Investor's Exchange.,True,False,addisonlynch/iexfinance
pyEX,Python > Data Sources,2024-02-05,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.",True,False,timkpaine/pyEX
alpaca-trade-api,Python > Data Sources,2024-01-12,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.,True,False,alpacahq/alpaca-trade-api-python
metatrader5,Python > Data Sources,,https://pypi.org/project/MetaTrader5/,API Connector to MetaTrader 5 Terminal,False,False,
akshare,Python > Data Sources,2024-02-14,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>",True,False,jindaxiang/akshare
yahooquery,Python > Data Sources,2023-12-16,https://github.com/dpguthrie/yahooquery,Python interface for retrieving data through unofficial Yahoo Finance API.,True,False,dpguthrie/yahooquery
investpy,Python > Data Sources,2022-10-02,https://github.com/alvarobartt/investpy,Financial Data Extraction from Investing.com with Python! <https://investpy.readthedocs.io/>,True,False,alvarobartt/investpy
yliveticker,Python > Data Sources,2021-04-29,https://github.com/yahoofinancelive/yliveticker,Live stream of market data from Yahoo Finance websocket.,True,False,yahoofinancelive/yliveticker
bbgbridge,Python > Data Sources,2020-01-07,https://github.com/ran404/bbgbridge,Easy to use Bloomberg Desktop API wrapper for Python.,True,False,ran404/bbgbridge
alpha_vantage,Python > Data Sources,2023-11-11,https://github.com/RomelTorres/alpha_vantage,A python wrapper for Alpha Vantage API for financial data.,True,False,RomelTorres/alpha_vantage
FinanceDataReader,Python > Data Sources,2024-01-31,https://github.com/FinanceData/FinanceDataReader,"Open Source Financial data reader for U.S, Korean, Japanese, Chinese, Vietnamese Stocks",True,False,FinanceData/FinanceDataReader
pystlouisfed,Python > Data Sources,2024-01-09,https://github.com/TomasKoutek/pystlouisfed,"Python client for Federal Reserve Bank of St. Louis API - FRED, ALFRED, GeoFRED and FRASER.",True,False,TomasKoutek/pystlouisfed
python-bcb,Python > Data Sources,2023-07-22,https://github.com/wilsonfreitas/python-bcb,Python interface to Brazilian Central Bank web services.,True,False,wilsonfreitas/python-bcb
market-prices,Python > Data Sources,2024-02-15,https://github.com/maread99/market_prices,Create meaningful OHLCV datasets from knowledge of [exchange-calendars](https://github.com/gerrymanoim/exchange_calendars) (works out-the-box with data from Yahoo Finance).,True,False,maread99/market_prices
tardis-python,Python > Data Sources,2023-08-21,https://github.com/tardis-dev/tardis-python,Python interface for Tardis.dev high frequency crypto market data,True,False,tardis-dev/tardis-python
lake-api,Python > Data Sources,2023-12-03,https://github.com/crypto-lake/lake-api,Python interface for Crypto Lake high frequency crypto market data,True,False,crypto-lake/lake-api
tessa,Python > Data Sources,2023-10-16,https://github.com/ymyke/tessa,"simple, hassle-free access to price information of financial assets (currently based on yfinance and pycoingecko), including search and a symbol class.",True,False,ymyke/tessa
pandaSDMX,Python > Data Sources,2023-02-25,https://github.com/dr-leo/pandaSDMX,"Python package that implements SDMX 2.1 (ISO 17369:2013), a format for exchange of statistical data and metadata used by national statistical agencies, central banks, and international organisations.",True,False,dr-leo/pandaSDMX
cif,Python > Data Sources,2022-06-18,https://github.com/LenkaV/CIF,"Python package that include few composite indicators, which summarize multidimensional relationships between individual economic indicators.",True,False,LenkaV/CIF
finagg,Python > Data Sources,2024-02-08,https://github.com/theOGognf/finagg,"finagg is a Python package that provides implementations of popular and free financial APIs, tools for aggregating historical data from those APIs into SQL databases, and tools for transforming aggregated data into features useful for analysis and AI/ML.",True,False,theOGognf/finagg
xlwings,Python > Excel Integration,,https://www.xlwings.org/,Make Excel fly with Python.,False,False,
openpyxl,Python > Excel Integration,,https://openpyxl.readthedocs.io/en/latest/,Read/Write Excel 2007 xlsx/xlsm files.,False,False,
xlrd,Python > Excel Integration,2021-08-19,https://github.com/python-excel/xlrd,Library for developers to extract data from Microsoft Excel spreadsheet files.,True,False,python-excel/xlrd
xlsxwriter,Python > Excel Integration,,https://xlsxwriter.readthedocs.io/,Write files in the Excel 2007+ XLSX file format.,False,False,
xlwt,Python > Excel Integration,2018-09-16,https://github.com/python-excel/xlwt,"Library to create spreadsheet files compatible with MS Excel 97/2000/XP/2003 XLS files, on any platform.",True,False,python-excel/xlwt
DataNitro,Python > Excel Integration,,https://datanitro.com/,"DataNitro also offers full-featured Python-Excel integration, including UDFs. Trial downloads are available, but users must purchase a license.",False,False,
xlloop,Python > Excel Integration,,http://xlloop.sourceforge.net,XLLoop is an open source framework for implementing Excel user-defined functions (UDFs) on a centralised server (a function server).,False,False,
expy,Python > Excel Integration,,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.",False,False,
pyxll,Python > Excel Integration,,https://www.pyxll.com,PyXLL is an Excel add-in that enables you to extend Excel using nothing but Python code.,False,False,
D-Tale,Python > Visualization,2024-01-31,https://github.com/man-group/dtale,Visualizer for pandas dataframes and xarray datasets.,True,False,man-group/dtale
mplfinance,Python > Visualization,2024-02-08,https://github.com/matplotlib/mplfinance,"matplotlib utilities for the visualization, and visual analysis, of financial data.",True,False,matplotlib/mplfinance
finplot,Python > Visualization,2024-02-17,https://github.com/highfestiva/finplot,Performant and effortless finance plotting for Python.,True,False,highfestiva/finplot
finvizfinance,Python > Visualization,2023-11-02,https://github.com/lit26/finvizfinance,Finviz analysis python library.,True,False,lit26/finvizfinance
market-analy,Python > Visualization,2023-12-06,https://github.com/maread99/market_analy,Analysis and interactive charting using [market-prices](https://github.com/maread99/market_prices) and bqplot.,True,False,maread99/market_analy
xts,R > Numerical Libraries & Data Structures,2024-02-06,https://github.com/joshuaulrich/xts,"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.",True,False,joshuaulrich/xts
data.table,R > Numerical Libraries & Data Structures,2024-02-17,https://github.com/Rdatatable/data.table,"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.",True,False,Rdatatable/data.table
sparseEigen,R > Numerical Libraries & Data Structures,2018-12-22,https://github.com/dppalomar/sparseEigen,Sparse pricipal component analysis.,True,False,dppalomar/sparseEigen
TSdbi,R > Numerical Libraries & Data Structures,,http://tsdbi.r-forge.r-project.org/,Provides a common interface to time series databases.,False,False,
tseries,R > Numerical Libraries & Data Structures,,https://cran.r-project.org/web/packages/tseries/index.html,Time Series Analysis and Computational Finance.,False,True,
zoo,R > Numerical Libraries & Data Structures,,https://cran.r-project.org/web/packages/zoo/index.html,S3 Infrastructure for Regular and Irregular Time Series (Z's Ordered Observations).,False,True,
tis,R > Numerical Libraries & Data Structures,,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.",False,True,
tfplot,R > Numerical Libraries & Data Structures,,https://cran.r-project.org/web/packages/tfplot/index.html,Utilities for simple manipulation and quick plotting of time series data.,False,True,
tframe,R > Numerical Libraries & Data Structures,,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.,False,True,
IBrokers,R > Data Sources,,https://cran.r-project.org/web/packages/IBrokers/index.html,Provides native R access to Interactive Brokers Trader Workstation API.,False,True,
Rblpapi,R > Data Sources,2022-12-02,https://github.com/Rblp/Rblpapi,An R Interface to 'Bloomberg' is provided via the 'Blp API'.,True,False,Rblp/Rblpapi
Quandl,R > Data Sources,,https://www.quandl.com/tools/r,Get Financial Data Directly Into R.,False,False,
Rbitcoin,R > Data Sources,2016-10-25,https://github.com/jangorecki/Rbitcoin,"Unified markets API interface (bitstamp, kraken, btce, bitmarket).",True,False,jangorecki/Rbitcoin
GetTDData,R > Data Sources,2023-05-15,https://github.com/msperlin/GetTDData,Downloads and aggregates data for Brazilian government issued bonds directly from the website of Tesouro Direto.,True,False,msperlin/GetTDData
GetHFData,R > Data Sources,2020-06-30,https://github.com/msperlin/GetHFData,Downloads and aggregates high frequency trading data for Brazilian instruments directly from Bovespa ftp site.,True,False,msperlin/GetHFData
Reddit WallstreetBets API,R > Data Sources,,https://dashboard.nbshare.io/apps/reddit/api/,Provides daily top 50 stocks from reddit (subreddit) Wallstreetbets and their sentiments via the API.,False,False,
td,R > Data Sources,2022-12-05,https://github.com/eddelbuettel/td,Interfaces the 'twelvedata' API for stocks and (digital and standard) currencies.,True,False,eddelbuettel/td
rbcb,R > Data Sources,2024-01-23,https://github.com/wilsonfreitas/rbcb,R interface to Brazilian Central Bank web services.,True,False,wilsonfreitas/rbcb
rb3,R > Data Sources,2023-09-11,https://github.com/ropensci/rb3,A bunch of downloaders and parsers for data delivered from B3.,True,False,ropensci/rb3
simfinapi,R > Data Sources,2023-04-12,https://github.com/matthiasgomolka/simfinapi,Makes 'SimFin' data (<https://simfin.com/>) easily accessible in R.,True,False,matthiasgomolka/simfinapi
RQuantLib,R > Financial Instruments and Pricing,,http://dirk.eddelbuettel.com/code/rquantlib.html,RQuantLib connects GNU R with QuantLib.,False,False,
quantmod,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/quantmod/index.html,Quantitative Financial Modelling Framework.,False,True,
Rmetrics,R > Financial Instruments and Pricing,,https://www.rmetrics.org,The premier open source software solution for teaching and training quantitative finance.,False,False,
fAsianOptions,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/fAsianOptions/index.html,EBM and Asian Option Valuation.,False,True,
fAssets,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/fAssets/index.html,Analysing and Modelling Financial Assets.,False,True,
fBasics,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/fBasics/index.html,Markets and Basic Statistics.,False,True,
fBonds,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/fBonds/index.html,Bonds and Interest Rate Models.,False,True,
fExoticOptions,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/fExoticOptions/index.html,Exotic Option Valuation.,False,True,
fOptions,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/fOptions/index.html,Pricing and Evaluating Basic Options.,False,True,
fPortfolio,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/fPortfolio/index.html,Portfolio Selection and Optimization.,False,True,
portfolio,R > Financial Instruments and Pricing,2021-07-09,https://github.com/dgerlanc/portfolio,Analysing equity portfolios.,True,False,dgerlanc/portfolio
sparseIndexTracking,R > Financial Instruments and Pricing,2023-05-28,https://github.com/dppalomar/sparseIndexTracking,Portfolio design to track an index.,True,False,dppalomar/sparseIndexTracking
covFactorModel,R > Financial Instruments and Pricing,2019-03-25,https://github.com/dppalomar/covFactorModel,Covariance matrix estimation via factor models.,True,False,dppalomar/covFactorModel
riskParityPortfolio,R > Financial Instruments and Pricing,2022-11-15,https://github.com/dppalomar/riskParityPortfolio,Blazingly fast design of risk parity portfolios.,True,False,dppalomar/riskParityPortfolio
sde,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/sde/index.html,Simulation and Inference for Stochastic Differential Equations.,False,True,
YieldCurve,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/YieldCurve/index.html,Modelling and estimation of the yield curve.,False,True,
SmithWilsonYieldCurve,R > Financial Instruments and Pricing,,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.,False,True,
ycinterextra,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/ycinterextra/index.html,Yield curve or zero-coupon prices interpolation and extrapolation.,False,True,
AmericanCallOpt,R > Financial Instruments and Pricing,,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.,False,True,
VarSwapPrice,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/VarSwapPrice/index.html,Pricing a variance swap on an equity index.,False,True,
RND,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/RND/index.html,Risk Neutral Density Extraction Package.,False,True,
LSMonteCarlo,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/LSMonteCarlo/index.html,American options pricing with Least Squares Monte Carlo method.,False,True,
OptHedging,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/OptHedging/index.html,Estimation of value and hedging strategy of call and put options.,False,True,
tvm,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/tvm/index.html,Time Value of Money Functions.,False,True,
OptionPricing,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/OptionPricing/index.html,Option Pricing with Efficient Simulation Algorithms.,False,True,
credule,R > Financial Instruments and Pricing,2015-08-05,https://github.com/blenezet/credule,Credit Default Swap Functions.,True,False,blenezet/credule
derivmkts,R > Financial Instruments and Pricing,,https://cran.r-project.org/web/packages/derivmkts/index.html,Functions and R Code to Accompany Derivatives Markets.,False,True,
FinCal,R > Financial Instruments and Pricing,2017-04-12,https://github.com/felixfan/FinCal,"Package for time value of money calculation, time series analysis and computational finance.",True,False,felixfan/FinCal
r-quant,R > Financial Instruments and Pricing,2014-02-19,https://github.com/artyyouth/r-quant,R code for quantitative analysis in finance.,True,False,artyyouth/r-quant
options.studies,R > Financial Instruments and Pricing,2015-12-17,https://github.com/taylorizing/options.studies,options trading studies functions for use with options.data package and shiny.,True,False,taylorizing/options.studies
PortfolioAnalytics,R > Financial Instruments and Pricing,2022-11-13,https://github.com/braverock/PortfolioAnalytics,"Portfolio Analysis, Including Numerical Methods for Optimizationof Portfolios.",True,False,braverock/PortfolioAnalytics
fmbasics,R > Financial Instruments and Pricing,2019-12-03,https://github.com/imanuelcostigan/fmbasics,Financial Market Building Blocks.,True,False,imanuelcostigan/fmbasics
R-fixedincome,R > Financial Instruments and Pricing,2023-06-27,https://github.com/wilsonfreitas/R-fixedincome,Fixed income tools for R.,True,False,wilsonfreitas/R-fixedincome
backtest,R > Trading,,https://cran.r-project.org/web/packages/backtest/index.html,Exploring Portfolio-Based Conjectures About Financial Instruments.,False,True,
pa,R > Trading,,https://cran.r-project.org/web/packages/pa/index.html,Performance Attribution for Equity Portfolios.,False,True,
TTR,R > Trading,2024-02-13,https://github.com/joshuaulrich/TTR,Technical Trading Rules.,True,False,joshuaulrich/TTR
QuantTools,R > Trading,,https://quanttools.bitbucket.io/_site/index.html,Enhanced Quantitative Trading Modelling.,False,False,
blotter,R > Trading,2023-02-04,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.",True,False,braverock/blotter
quantstrat,R > Backtesting,2023-09-14,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.,True,False,braverock/quantstrat
PerformanceAnalytics,R > Risk Analysis,2024-02-15,https://github.com/braverock/PerformanceAnalytics,Econometric tools for performance and risk analysis.,True,False,braverock/PerformanceAnalytics
FactorAnalytics,R > Factor Analysis,2024-02-16,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.",True,False,braverock/FactorAnalytics
Expected Returns,R > Factor Analysis,2023-08-31,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.",True,False,JustinMShea/ExpectedReturns
tseries,R > Time Series,,https://cran.r-project.org/web/packages/tseries/index.html,Time Series Analysis and Computational Finance.,False,True,
fGarch,R > Time Series,,https://cran.r-project.org/web/packages/fGarch/index.html,Rmetrics - Autoregressive Conditional Heteroskedastic Modelling.,False,True,
timeSeries,R > Time Series,,https://cran.r-project.org/web/packages/timeSeries/index.html,Rmetrics - Financial Time Series Objects.,False,True,
rugarch,R > Time Series,2023-09-20,https://github.com/alexiosg/rugarch,Univariate GARCH Models.,True,False,alexiosg/rugarch
rmgarch,R > Time Series,2022-03-05,https://github.com/alexiosg/rmgarch,Multivariate GARCH Models.,True,False,alexiosg/rmgarch
tidypredict,R > Time Series,2021-09-28,https://github.com/edgararuiz/tidypredict,Run predictions inside the database <https://tidypredict.netlify.com/>.,True,False,edgararuiz/tidypredict
tidyquant,R > Time Series,2024-01-04,https://github.com/business-science/tidyquant,Bringing financial analysis to the tidyverse.,True,False,business-science/tidyquant
timetk,R > Time Series,2024-01-04,https://github.com/business-science/timetk,A toolkit for working with time series in R.,True,False,business-science/timetk
tibbletime,R > Time Series,2023-01-24,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.",True,False,business-science/tibbletime
matrixprofile,R > Time Series,2022-11-25,https://github.com/matrix-profile-foundation/matrixprofile,Time series data mining library built on top of the novel Matrix Profile data structure and algorithms.,True,False,matrix-profile-foundation/matrixprofile
garchmodels,R > Time Series,2022-08-11,https://github.com/AlbertoAlmuinha/garchmodels,A parsnip backend for GARCH models.,True,False,AlbertoAlmuinha/garchmodels
timeDate,R > Calendars,,https://cran.r-project.org/web/packages/timeDate/index.html,Chronological and Calendar Objects,False,True,
bizdays,R > Calendars,2024-02-12,https://github.com/wilsonfreitas/R-bizdays,Business days calculations and utilities,True,False,wilsonfreitas/R-bizdays
QUANTAXIS,Matlab > FrameWorks,2023-01-10,https://github.com/yutiansut/quantaxis,Integrated Quantitative Toolbox with Matlab.,True,False,yutiansut/quantaxis
QuantLib.jl,Julia,2020-02-18,https://github.com/pazzo83/QuantLib.jl,Quantlib implementation in pure Julia.,True,False,pazzo83/QuantLib.jl
Ito.jl,Julia,2017-03-21,https://github.com/aviks/Ito.jl,A Julia package for quantitative finance.,True,False,aviks/Ito.jl
TALib.jl,Julia,2017-08-22,https://github.com/femtotrader/TALib.jl,A Julia wrapper for TA-Lib.,True,False,femtotrader/TALib.jl
IncTA.jl,Julia,2024-01-18,https://github.com/femtotrader/IncTA.jl,Julia Incremental Technical Analysis Indicators,True,False,femtotrader/IncTA.jl
Miletus.jl,Julia,2023-12-07,https://github.com/JuliaComputing/Miletus.jl,"A financial contract definition, modeling language, and valuation framework.",True,False,JuliaComputing/Miletus.jl
Temporal.jl,Julia,2021-12-28,https://github.com/dysonance/Temporal.jl,Flexible and efficient time series class & methods.,True,False,dysonance/Temporal.jl
Indicators.jl,Julia,2022-12-06,https://github.com/dysonance/Indicators.jl,Financial market technical analysis & indicators on top of Temporal.,True,False,dysonance/Indicators.jl
Strategems.jl,Julia,2021-04-06,https://github.com/dysonance/Strategems.jl,Quantitative systematic trading strategy development and backtesting.,True,False,dysonance/Strategems.jl
TimeSeries.jl,Julia,2023-12-07,https://github.com/JuliaStats/TimeSeries.jl,Time series toolkit for Julia.,True,False,JuliaStats/TimeSeries.jl
MarketTechnicals.jl,Julia,2021-07-12,https://github.com/JuliaQuant/MarketTechnicals.jl,Technical analysis of financial time series on top of TimeSeries.,True,False,JuliaQuant/MarketTechnicals.jl
MarketData.jl,Julia,2024-01-06,https://github.com/JuliaQuant/MarketData.jl,Time series market data.,True,False,JuliaQuant/MarketData.jl
TimeFrames.jl,Julia,2019-02-16,https://github.com/femtotrader/TimeFrames.jl,A Julia library that defines TimeFrame (essentially for resampling TimeSeries).,True,False,femtotrader/TimeFrames.jl
DataFrames.jl,Julia,2024-01-25,https://github.com/JuliaData/DataFrames.jl,In-memory tabular data in Julia,True,False,JuliaData/DataFrames.jl
TSFrames.jl,Julia,2023-07-25,https://github.com/xKDR/TSFrames.jl,Handle timeseries data on top of the powerful and mature DataFrames.jl,True,False,xKDR/TSFrames.jl
Strata,Java,,http://strata.opengamma.io/,Modern open-source analytics and market risk library designed and written in Java.,False,False,
JQuantLib,Java,,http://www.jquantlib.org,"JQuantLib is a free, open-source, comprehensive framework for quantitative finance, written in 100% Java.",False,False,
finmath.net,Java,,http://finmath.net,Java library with algorithms and methodologies related to mathematical finance.,False,False,
quantcomponents,Java,2015-10-07,https://github.com/lsgro/quantcomponents,Free Java components for Quantitative Finance and Algorithmic Trading.,True,False,lsgro/quantcomponents
DRIP,Java,,https://lakshmidrip.github.io/DRIP,"Fixed Income, Asset Allocation, Transaction Cost Analysis, XVA Metrics Libraries.",False,False,
ta4j,Java,2024-01-05,https://github.com/ta4j/ta4j,A Java library for technical analysis.,True,False,ta4j/ta4j
finance.js,JavaScript,2018-10-11,https://github.com/ebradyjobory/finance.js,A JavaScript library for common financial calculations.,True,False,ebradyjobory/finance.js
portfolio-allocation,JavaScript,2022-08-11,https://github.com/lequant40/portfolio_allocation_js,"PortfolioAllocation is a JavaScript library designed to help constructing financial portfolios made of several assets: bonds, commodities, cryptocurrencies, currencies, exchange traded funds (ETFs), mutual funds, stocks...",True,False,lequant40/portfolio_allocation_js
Ghostfolio,JavaScript,2024-02-16,https://github.com/ghostfolio/ghostfolio,"Wealth management software to keep track of financial assets like stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions.",True,False,ghostfolio/ghostfolio
IndicatorTS,JavaScript,2024-02-03,https://github.com/cinar/indicatorts,"Indicator is a TypeScript module providing various stock technical analysis indicators, strategies, and a backtest framework for trading.",True,False,cinar/indicatorts
ccxt,JavaScript,2024-02-17,https://github.com/ccxt/ccxt,A JavaScript / Python / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges.,True,False,ccxt/ccxt
PENDAX,JavaScript,2023-08-31,https://github.com/CompendiumFi/PENDAX-SDK,"Javascript SDK for Trading/Data API and Websockets for FTX, FTXUS, OKX, Bybit, & More.",True,False,CompendiumFi/PENDAX-SDK
QUANTAXIS_Webkit,JavaScript > Data Visualization,2017-07-30,https://github.com/yutiansut/QUANTAXIS_Webkit,An awesome visualization center based on quantaxis.,True,False,yutiansut/QUANTAXIS_Webkit
quantfin,Haskell,2019-04-06,https://github.com/boundedvariation/quantfin,quant finance in pure haskell.,True,False,boundedvariation/quantfin
Haxcel,Haskell,2022-09-13,https://github.com/MarcusRainbow/Haxcel,Excel Addin for Haskell.,True,False,MarcusRainbow/Haxcel
Ffinar,Haskell,2021-11-26,https://github.com/MarcusRainbow/Ffinar,A financial maths library in Haskell.,True,False,MarcusRainbow/Ffinar
QuantScale,Scala,2014-01-14,https://github.com/choucrifahed/quantscale,Scala Quantitative Finance Library.,True,False,choucrifahed/quantscale
Scala Quant,Scala,2017-05-06,https://github.com/frankcash/Scala-Quant,Scala library for working with stock data from IFTTT recipes or Google Finance.,True,False,frankcash/Scala-Quant
Jiji,Ruby,2019-01-22,https://github.com/unageanu/jiji2,Open Source Forex algorithmic trading framework using OANDA REST API.,True,False,unageanu/jiji2
Tai,Elixir/Erlang,2022-10-04,https://github.com/fremantle-capital/tai,"Open Source composable, real time, market data and trade execution toolkit.",True,False,fremantle-capital/tai
Workbench,Elixir/Erlang,2022-06-06,https://github.com/fremantle-industries/workbench,From Idea to Execution - Manage your trading operation across a globally distributed cluster,True,False,fremantle-industries/workbench
Prop,Elixir/Erlang,2022-06-06,https://github.com/fremantle-industries/prop,"An open and opinionated trading platform using productive & familiar open source libraries and tools for strategy research, execution and operation.",True,False,fremantle-industries/prop
Kelp,Golang,2021-11-26,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).,True,False,stellar/kelp
marketstore,Golang,2022-11-07,https://github.com/alpacahq/marketstore,DataFrame Server for Financial Timeseries Data.,True,False,alpacahq/marketstore
IndicatorGo,Golang,2024-01-15,https://github.com/cinar/indicator,"IndicatorGo is a Golang module providing various stock technical analysis indicators, strategies, and a backtest framework for trading.",True,False,cinar/indicator
TradeFrame,CPP,2023-10-02,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.,True,False,rburkholder/trade-frame
QuantLib,Frameworks,,https://www.quantlib.org,The QuantLib project is aimed at providing a comprehensive software framework for quantitative finance.,False,False,
JQuantLib,Frameworks,,http://www.jquantlib.org,Java port.,False,False,
RQuantLib,Frameworks,,http://dirk.eddelbuettel.com/code/rquantlib.html,R port.,False,False,
QuantLibAddin,Frameworks,,https://www.quantlib.org/quantlibaddin/,Excel support.,False,False,
QuantLibXL,Frameworks,,https://www.quantlib.org/quantlibxl/,Excel support.,False,False,
QLNet,Frameworks,2024-02-16,https://github.com/amaggiulli/qlnet,.Net port.,True,False,amaggiulli/qlnet
PyQL,Frameworks,2023-11-08,https://github.com/enthought/pyql,Python port.,True,False,enthought/pyql
QuantLib.jl,Frameworks,2020-02-18,https://github.com/pazzo83/QuantLib.jl,Julia port.,True,False,pazzo83/QuantLib.jl
QuantLib-Python Documentation,Frameworks,,https://quantlib-python-docs.readthedocs.io/,Documentation for the Python bindings for the QuantLib library,False,False,
QuantLib with Automatic Differention enabled,Frameworks,2024-01-09,https://github.com/auto-differentiation/quantlib-xad,Integration of Automatic Differentiation with the QuantLib library,True,False,auto-differentiation/quantlib-xad
TA-Lib,Frameworks,,https://ta-lib.org,perform technical analysis of financial market data.,False,False,
Portfolio Optimizer,Frameworks,,https://portfoliooptimizer.io/,Portfolio Optimizer is a Web API for portfolio analysis and optimization.,False,False,
QuantConnect,CSharp,2024-02-16,https://github.com/QuantConnect/Lean,Lean Engine is an open-source fully managed C# algorithmic trading engine built for desktop and cloud usage.,True,False,QuantConnect/Lean
StockSharp,CSharp,2024-02-17,https://github.com/StockSharp/StockSharp,"Algorithmic trading and quantitative trading open source platform to develop trading robots (stock markets, forex, crypto, bitcoins, and options).",True,False,StockSharp/StockSharp
TDAmeritrade.DotNetCore,CSharp,2023-03-10,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.",True,False,NVentimiglia/TDAmeritrade.DotNetCore
QuantMath,Rust,2020-05-28,https://github.com/MarcusRainbow/QuantMath,Financial maths library for risk-neutral pricing and risk,True,False,MarcusRainbow/QuantMath
Barter,Rust,2023-04-20,https://github.com/barter-rs/barter-rs,Open-source Rust framework for building event-driven live-trading & backtesting systems,True,False,barter-rs/barter-rs
LFEST,Rust,2024-01-18,https://github.com/MathisWellmann/lfest-rs,Simulated perpetual futures exchange to trade your strategy against.,True,False,MathisWellmann/lfest-rs
TradeAggregation,Rust,2024-01-28,https://github.com/MathisWellmann/trade_aggregation-rs,Aggregate trades into user-defined candles using information driven rules.,True,False,MathisWellmann/trade_aggregation-rs
SlidingFeatures,Rust,2023-07-06,https://github.com/MathisWellmann/sliding_features-rs,Chainable tree-like sliding windows for signal processing and technical analysis.,True,False,MathisWellmann/sliding_features-rs
RustQuant,Rust,2024-02-17,https://github.com/avhz/RustQuant,Quantitative finance library written in Rust.,True,False,avhz/RustQuant
finalytics,Rust,2024-01-15,https://github.com/Nnamdi-sys/finalytics,A rust library for financial data analysis.,True,False,Nnamdi-sys/finalytics
Derman Papers,"Reproducing Works, Training & Books",2017-10-21,https://github.com/MarcosCarreira/DermanPapers,Notebooks that replicate original quantitative finance papers from Emanuel Derman.,True,False,MarcosCarreira/DermanPapers
ML-Quant,"Reproducing Works, Training & Books",,https://www.ml-quant.com/,"Top Quant resources like ArXiv (sanity), SSRN, RePec, Journals, Podcasts, Videos, and Blogs.",False,False,
volatility-trading,"Reproducing Works, Training & Books",2023-04-10,https://github.com/jasonstrimpel/volatility-trading,A complete set of volatility estimators based on Euan Sinclair's Volatility Trading.,True,False,jasonstrimpel/volatility-trading
quant,"Reproducing Works, Training & Books",2015-07-14,https://github.com/paulperry/quant,"Quantitative Finance and Algorithmic Trading exhaust; mostly ipython notebooks based on Quantopian, Zipline, or Pandas.",True,False,paulperry/quant
fecon235,"Reproducing Works, Training & Books",2018-12-03,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.,True,False,rsvp/fecon235
Quantitative-Notebooks,"Reproducing Works, Training & Books",2020-07-02,https://github.com/LongOnly/Quantitative-Notebooks,"Educational notebooks on quantitative finance, algorithmic trading, financial modelling and investment strategy",True,False,LongOnly/Quantitative-Notebooks
QuantEcon,"Reproducing Works, Training & Books",,https://quantecon.org/,"Lecture series on economics, finance, econometrics and data science; QuantEcon.py, QuantEcon.jl, notebooks",False,False,
FinanceHub,"Reproducing Works, Training & Books",2021-05-25,https://github.com/Finance-Hub/FinanceHub,Resources for Quantitative Finance,True,False,Finance-Hub/FinanceHub
Python_Option_Pricing,"Reproducing Works, Training & Books",2017-07-26,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.",True,False,dedwards25/Python_Option_Pricing
python-training,"Reproducing Works, Training & Books",2023-11-27,https://github.com/jpmorganchase/python-training,J.P. Morgan's Python training for business analysts and traders.,True,False,jpmorganchase/python-training
Stock_Analysis_For_Quant,"Reproducing Works, Training & Books",2024-02-13,https://github.com/LastAncientOne/Stock_Analysis_For_Quant,"Different Types of Stock Analysis in Excel, Matlab, Power BI, Python, R, and Tableau.",True,False,LastAncientOne/Stock_Analysis_For_Quant
algorithmic-trading-with-python,"Reproducing Works, Training & Books",2021-06-01,https://github.com/chrisconlan/algorithmic-trading-with-python,Source code for Algorithmic Trading with Python (2020) by Chris Conlan.,True,False,chrisconlan/algorithmic-trading-with-python
MEDIUM_NoteBook,"Reproducing Works, Training & Books",2023-12-17,https://github.com/cerlymarco/MEDIUM_NoteBook,Repository containing notebooks of [cerlymarco](https://github.com/cerlymarco)'s posts on Medium.,True,False,cerlymarco/MEDIUM_NoteBook
QuantFinance,"Reproducing Works, Training & Books",2024-02-13,https://github.com/PythonCharmers/QuantFinance,Training materials in quantitative finance.,True,False,PythonCharmers/QuantFinance
IPythonScripts,"Reproducing Works, Training & Books",2018-11-18,https://github.com/mgroncki/IPythonScripts,"Tutorials about Quantitative Finance in Python and QuantLib: Pricing, xVAs, Hedging, Portfolio Optimisation, Machine Learning and Deep Learning.",True,False,mgroncki/IPythonScripts
Computational-Finance-Course,"Reproducing Works, Training & Books",2023-01-03,https://github.com/LechGrzelak/Computational-Finance-Course,Materials for the course of Computational Finance.,True,False,LechGrzelak/Computational-Finance-Course
Machine-Learning-for-Asset-Managers,"Reproducing Works, Training & Books",2022-09-07,https://github.com/emoen/Machine-Learning-for-Asset-Managers,"Implementation of code snippets, exercises and application to live data from Machine Learning for Asset Managers (Elements in Quantitative Finance) written by Prof. Marcos López de Prado.",True,False,emoen/Machine-Learning-for-Asset-Managers
Python-for-Finance-Cookbook,"Reproducing Works, Training & Books",2023-01-18,https://github.com/PacktPublishing/Python-for-Finance-Cookbook,"Python for Finance Cookbook, published by Packt.",True,False,PacktPublishing/Python-for-Finance-Cookbook
modelos_vol_derivativos,"Reproducing Works, Training & Books",2023-08-19,https://github.com/ysaporito/modelos_vol_derivativos,"""Modelos de Volatilidade para Derivativos"" book's Jupyter notebooks",True,False,ysaporito/modelos_vol_derivativos
NMOF,"Reproducing Works, Training & Books",2023-12-29,https://github.com/enricoschumann/NMOF,"Functions, examples and data from the first and the second edition of ""Numerical Methods and Optimization in Finance"" by M. Gilli, D. Maringer and E. Schumann (2019, ISBN:978-0128150658).",True,False,enricoschumann/NMOF
py4fi2nd,"Reproducing Works, Training & Books",2023-10-15,https://github.com/yhilpisch/py4fi2nd,"Jupyter Notebooks and code for Python for Finance (2nd ed., O'Reilly) by Yves Hilpisch.",True,False,yhilpisch/py4fi2nd
aiif,"Reproducing Works, Training & Books",2023-10-09,https://github.com/yhilpisch/aiif,Jupyter Notebooks and code for the book Artificial Intelligence in Finance (O'Reilly) by Yves Hilpisch.,True,False,yhilpisch/aiif
py4at,"Reproducing Works, Training & Books",2023-10-09,https://github.com/yhilpisch/py4at,Jupyter Notebooks and code for the book Python for Algorithmic Trading (O'Reilly) by Yves Hilpisch.,True,False,yhilpisch/py4at
dawp,"Reproducing Works, Training & Books",2021-02-22,https://github.com/yhilpisch/dawp,Jupyter Notebooks and code for Derivatives Analytics with Python (Wiley Finance) by Yves Hilpisch.,True,False,yhilpisch/dawp
dx,"Reproducing Works, Training & Books",2020-12-17,https://github.com/yhilpisch/dx,DX Analytics | Financial and Derivatives Analytics with Python.,True,False,yhilpisch/dx
QuantFinanceBook,"Reproducing Works, Training & Books",2022-08-28,https://github.com/LechGrzelak/QuantFinanceBook,Quantitative Finance book.,True,False,LechGrzelak/QuantFinanceBook
rough_bergomi,"Reproducing Works, Training & Books",2018-09-17,https://github.com/ryanmccrickerd/rough_bergomi,A Python implementation of the rough Bergomi model.,True,False,ryanmccrickerd/rough_bergomi
frh-fx,"Reproducing Works, Training & Books",2018-05-24,https://github.com/ryanmccrickerd/frh-fx,A python implementation of the fast-reversion Heston model of Mechkov for FX purposes.,True,False,ryanmccrickerd/frh-fx
Value Investing Studies,"Reproducing Works, Training & Books",2021-10-26,https://github.com/euclidjda/value-investing-studies,A collection of data analysis studies that examine the performance and characteristics of value investing over long periods of time.,True,False,euclidjda/value-investing-studies
Machine Learning Asset Management,"Reproducing Works, Training & Books",2021-12-17,https://github.com/firmai/machine-learning-asset-management,Machine Learning in Asset Management (by @firmai).,True,False,firmai/machine-learning-asset-management
Deep Learning Machine Learning Stock,"Reproducing Works, Training & Books",2023-11-03,https://github.com/LastAncientOne/Deep-Learning-Machine-Learning-Stock,Deep Learning and Machine Learning stocks represent a promising long-term or short-term opportunity for investors and traders.,True,False,LastAncientOne/Deep-Learning-Machine-Learning-Stock
Technical Analysis and Feature Engineering,"Reproducing Works, Training & Books",2024-02-16,https://github.com/jo-cho/Technical_Analysis_and_Feature_Engineering,Feature Engineering and Feature Importance of Machine Learning in Financial Market.,True,False,jo-cho/Technical_Analysis_and_Feature_Engineering
Differential Machine Learning and Axes that matter by Brian Huge and Antoine Savine,"Reproducing Works, Training & Books",2022-10-05,https://github.com/differential-machine-learning/notebooks,"Implement, demonstrate, reproduce and extend the results of the Risk articles 'Differential Machine Learning' (2020) and 'PCA with a Difference' (2021) by Huge and Savine, and cover implementation details left out from the papers.",True,False,differential-machine-learning/notebooks
systematictradingexamples,"Reproducing Works, Training & Books",2020-07-22,https://github.com/robcarver17/systematictradingexamples,Examples of code related to book [Systematic Trading](www.systematictrading.org) and [blog](http://qoppac.blogspot.com),True,False,robcarver17/systematictradingexamples
pysystemtrade_examples,"Reproducing Works, Training & Books",2018-02-21,https://github.com/robcarver17/pysystemtrade_examples,Examples using pysystemtrade for Robert Carver's [blog](http://qoppac.blogspot.com).,True,False,robcarver17/pysystemtrade_examples
ML_Finance_Codes,"Reproducing Works, Training & Books",2020-06-13,https://github.com/mfrdixon/ML_Finance_Codes,Machine Learning in Finance: From Theory to Practice Book,True,False,mfrdixon/ML_Finance_Codes
Hands-On Machine Learning for Algorithmic Trading,"Reproducing Works, Training & Books",2023-01-18,https://github.com/packtpublishing/hands-on-machine-learning-for-algorithmic-trading,"Hands-On Machine Learning for Algorithmic Trading, published by Packt",True,False,packtpublishing/hands-on-machine-learning-for-algorithmic-trading
financialnoob-misc,"Reproducing Works, Training & Books",2023-06-06,https://github.com/financialnoob/misc,Codes from @financialnoob's posts,True,False,financialnoob/misc
MesoSim Options Trading Strategy Library,"Reproducing Works, Training & Books",2023-11-24,https://github.com/deltaray-io/strategy-library,Free and public Options Trading strategy library for MesoSim. ,True,False,deltaray-io/strategy-library
Quant-Finance-With-Python-Code,"Reproducing Works, Training & Books",2023-11-16,https://github.com/lingyixu/Quant-Finance-With-Python-Code,Repo for code examples in Quantitative Finance with Python by Chris Kelliher,True,False,lingyixu/Quant-Finance-With-Python-Code
QuantFinanceTraining,"Reproducing Works, Training & Books",2023-12-12,https://github.com/JoaoJungblut/QuantFinanceTraining,"This repository contains codes that were executed during my training in the CQF (Certificate in Quantitative Finance). The codes are organized by class, facilitating navigation and reference.",True,False,JoaoJungblut/QuantFinanceTraining
Statistical-Learning-based-Portfolio-Optimization,"Reproducing Works, Training & Books",2023-11-27,https://github.com/YannickKae/Statistical-Learning-based-Portfolio-Optimization,"This R Shiny App utilizes the Hierarchical Equal Risk Contribution (HERC) approach, a modern portfolio optimization method developed by Raffinot (2018).",True,False,YannickKae/Statistical-Learning-based-Portfolio-Optimization
1 project section last_commit url description github cran repo
2 numpy Python > Numerical Libraries & Data Structures https://www.numpy.org NumPy is the fundamental package for scientific computing with Python. False False
3 scipy Python > Numerical Libraries & Data Structures https://www.scipy.org SciPy (pronounced “Sigh Pie”) is a Python-based ecosystem of open-source software for mathematics, science, and engineering. False False
4 pandas Python > Numerical Libraries & Data Structures 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. False False
5 quantdsl Python > Numerical Libraries & Data Structures 2017-10-26 https://github.com/johnbywater/quantdsl Domain specific language for quantitative analytics in finance and trading. True False johnbywater/quantdsl
6 statistics Python > Numerical Libraries & Data Structures https://docs.python.org/3/library/statistics.html Builtin Python library for all basic statistical calculations. False False
7 sympy Python > Numerical Libraries & Data Structures https://www.sympy.org/ SymPy is a Python library for symbolic mathematics. False False
8 pymc3 Python > Numerical Libraries & Data Structures https://docs.pymc.io/ Probabilistic Programming in Python: Bayesian Modeling and Probabilistic Machine Learning with Theano. False False
9 modelx Python > Numerical Libraries & Data Structures https://docs.modelx.io/ Python reimagination of spreadsheets as formula-centric objects that are interoperable with pandas. False False
10 ArcticDB Python > Numerical Libraries & Data Structures 2024-02-17 https://github.com/man-group/ArcticDB High performance datastore for time series and tick data. True False man-group/ArcticDB
11 OpenBB Terminal Python > Financial Instruments and Pricing 2024-02-15 https://github.com/OpenBB-finance/OpenBBTerminal Terminal for investment research for everyone. True False OpenBB-finance/OpenBBTerminal
12 PyQL Python > Financial Instruments and Pricing 2023-11-08 https://github.com/enthought/pyql QuantLib's Python port. True False enthought/pyql
13 pyfin Python > Financial Instruments and Pricing 2014-12-03 https://github.com/opendoor-labs/pyfin Basic options pricing in Python. *ARCHIVED* True False opendoor-labs/pyfin
14 vollib Python > Financial Instruments and Pricing 2023-04-01 https://github.com/vollib/vollib vollib is a python library for calculating option prices, implied volatility and greeks. True False vollib/vollib
15 QuantPy Python > Financial Instruments and Pricing 2017-11-28 https://github.com/jsmidt/QuantPy A framework for quantitative finance In python. True False jsmidt/QuantPy
16 Finance-Python Python > Financial Instruments and Pricing 2024-01-01 https://github.com/alpha-miner/Finance-Python Python tools for Finance. True False alpha-miner/Finance-Python
17 ffn Python > Financial Instruments and Pricing 2023-12-31 https://github.com/pmorissette/ffn A financial function library for Python. True False pmorissette/ffn
18 pynance Python > Financial Instruments and Pricing 2021-02-03 https://github.com/GriffinAustin/pynance Lightweight Python library for assembling and analysing financial data. True False GriffinAustin/pynance
19 tia Python > Financial Instruments and Pricing 2017-06-05 https://github.com/bpsmith/tia Toolkit for integration and analysis. True False bpsmith/tia
20 hasura/base-python-dash Python > Financial Instruments and Pricing 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. False False
21 hasura/base-python-bokeh Python > Financial Instruments and Pricing https://platform.hasura.io/hub/projects/hasura/base-python-bokeh Hasura quickstart to visualize data with bokeh library. False False
22 pysabr Python > Financial Instruments and Pricing 2022-04-21 https://github.com/ynouri/pysabr SABR model Python implementation. True False ynouri/pysabr
23 FinancePy Python > Financial Instruments and Pricing 2024-02-13 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. True False domokane/FinancePy
24 gs-quant Python > Financial Instruments and Pricing 2024-02-16 https://github.com/goldmansachs/gs-quant Python toolkit for quantitative finance True False goldmansachs/gs-quant
25 willowtree Python > Financial Instruments and Pricing 2018-07-14 https://github.com/federicomariamassari/willowtree Robust and flexible Python implementation of the willow tree lattice for derivatives pricing. True False federicomariamassari/willowtree
26 financial-engineering Python > Financial Instruments and Pricing 2017-11-20 https://github.com/federicomariamassari/financial-engineering Applications of Monte Carlo methods to financial engineering projects, in Python. True False federicomariamassari/financial-engineering
27 optlib Python > Financial Instruments and Pricing 2022-11-18 https://github.com/dbrojas/optlib A library for financial options pricing written in Python. True False dbrojas/optlib
28 tf-quant-finance Python > Financial Instruments and Pricing 2023-08-15 https://github.com/google/tf-quant-finance High-performance TensorFlow library for quantitative finance. True False google/tf-quant-finance
29 Q-Fin Python > Financial Instruments and Pricing 2023-04-07 https://github.com/RomanMichaelPaolucci/Q-Fin A Python library for mathematical finance. True False RomanMichaelPaolucci/Q-Fin
30 Quantsbin Python > Financial Instruments and Pricing 2021-05-23 https://github.com/quantsbin/Quantsbin Tools for pricing and plotting of vanilla option prices, greeks and various other analysis around them. True False quantsbin/Quantsbin
31 finoptions Python > Financial Instruments and Pricing 2024-02-01 https://github.com/bbcho/finoptions-dev Complete python implementation of R package fOptions with partial implementation of fExoticOptions for pricing various options. True False bbcho/finoptions-dev
32 pypme Python > Financial Instruments and Pricing 2023-06-27 https://github.com/ymyke/pypme PME (Public Market Equivalent) calculation. True False ymyke/pypme
33 AbsBox Python > Financial Instruments and Pricing 2024-02-16 https://github.com/yellowbean/AbsBox A Python based library to model cashflow for structured product like Asset-backed securities (ABS) and Mortgage-backed securities (MBS). True False yellowbean/AbsBox
34 Intrinsic-Value-Calculator Python > Financial Instruments and Pricing 2023-08-08 https://github.com/akashaero/Intrinsic-Value-Calculator A Python tool for quick calculations of a stock's fair value using Discounted Cash Flow analysis. True False akashaero/Intrinsic-Value-Calculator
35 Kelly-Criterion Python > Financial Instruments and Pricing 2019-02-16 https://github.com/deltaray-io/kelly-criterion Kelly Criterion implemented in Python to size portfolios based on J. L. Kelly Jr's formula. True False deltaray-io/kelly-criterion
36 pandas_talib Python > Indicators 2018-05-30 https://github.com/femtotrader/pandas_talib A Python Pandas implementation of technical analysis indicators. True False femtotrader/pandas_talib
37 finta Python > Indicators 2022-07-24 https://github.com/peerchemist/finta Common financial technical analysis indicators implemented in Pandas. True False peerchemist/finta
38 Tulipy Python > Indicators 2019-04-11 https://github.com/cirla/tulipy Financial Technical Analysis Indicator Library (Python bindings for [tulipindicators](https://github.com/TulipCharts/tulipindicators)) True False cirla/tulipy
39 lppls Python > Indicators 2024-02-15 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. True False Boulder-Investment-Technologies/lppls
40 skfolio Python > Trading & Backtesting 2024-02-14 https://github.com/skfolio/skfolio Python library for portfolio optimization built on top of scikit-learn. It provides a unified interface and sklearn compatible tools to build, tune and cross-validate portfolio models. True False skfolio/skfolio
41 Investing algorithm framework Python > Trading & Backtesting 2024-02-13 https://github.com/coding-kitties/investing-algorithm-framework Framework for developing, backtesting, and deploying automated trading algorithms. True False coding-kitties/investing-algorithm-framework
42 QSTrader Python > Trading & Backtesting 2024-02-07 https://github.com/mhallsmoore/qstrader QSTrader backtesting simulation engine. True False mhallsmoore/qstrader
43 Blankly Python > Trading & Backtesting 2023-12-23 https://github.com/Blankly-Finance/Blankly Fully integrated backtesting, paper trading, and live deployment. True False Blankly-Finance/Blankly
44 TA-Lib Python > Trading & Backtesting 2024-02-14 https://github.com/mrjbq7/ta-lib Python wrapper for TA-Lib (<http://ta-lib.org/>). True False mrjbq7/ta-lib
45 zipline Python > Trading & Backtesting 2020-10-14 https://github.com/quantopian/zipline Pythonic algorithmic trading library. True False quantopian/zipline
46 QuantSoftware Toolkit Python > Trading & Backtesting 2016-10-07 https://github.com/QuantSoftware/QuantSoftwareToolkit Python-based open source software framework designed to support portfolio construction and management. True False QuantSoftware/QuantSoftwareToolkit
47 quantitative Python > Trading & Backtesting 2019-03-03 https://github.com/jeffrey-liang/quantitative Quantitative finance, and backtesting library. True False jeffrey-liang/quantitative
48 analyzer Python > Trading & Backtesting 2015-12-22 https://github.com/llazzaro/analyzer Python framework for real-time financial and backtesting trading strategies. True False llazzaro/analyzer
49 bt Python > Trading & Backtesting 2024-02-05 https://github.com/pmorissette/bt Flexible Backtesting for Python. True False pmorissette/bt
50 backtrader Python > Trading & Backtesting 2023-04-19 https://github.com/backtrader/backtrader Python Backtesting library for trading strategies. True False backtrader/backtrader
51 pythalesians Python > Trading & Backtesting 2016-09-23 https://github.com/thalesians/pythalesians Python library to backtest trading strategies, plot charts, seamlessly download market data, analyse market patterns etc. True False thalesians/pythalesians
52 pybacktest Python > Trading & Backtesting 2019-09-09 https://github.com/ematvey/pybacktest Vectorized backtesting framework in Python / pandas, designed to make your backtesting easier. True False ematvey/pybacktest
53 pyalgotrade Python > Trading & Backtesting 2023-03-05 https://github.com/gbeced/pyalgotrade Python Algorithmic Trading Library. True False gbeced/pyalgotrade
54 basana Python > Trading & Backtesting 2024-01-07 https://github.com/gbeced/basana A Python async and event driven framework for algorithmic trading, with a focus on crypto currencies. True False gbeced/basana
55 tradingWithPython Python > Trading & Backtesting https://pypi.org/project/tradingWithPython/ A collection of functions and classes for Quantitative trading. False False
56 Pandas TA Python > Trading & Backtesting 2022-09-24 https://github.com/twopirllc/pandas-ta Pandas TA is an easy to use Python 3 Pandas Extension with 115+ Indicators. Easily build Custom Strategies. True False twopirllc/pandas-ta
57 ta Python > Trading & Backtesting 2023-11-02 https://github.com/bukosabino/ta Technical Analysis Library using Pandas (Python) True False bukosabino/ta
58 algobroker Python > Trading & Backtesting 2016-03-31 https://github.com/joequant/algobroker This is an execution engine for algo trading. True False joequant/algobroker
59 pysentosa Python > Trading & Backtesting https://pypi.org/project/pysentosa/ Python API for sentosa trading system. False False
60 finmarketpy Python > Trading & Backtesting 2024-01-01 https://github.com/cuemacro/finmarketpy Python library for backtesting trading strategies and analyzing financial markets. True False cuemacro/finmarketpy
61 binary-martingale Python > Trading & Backtesting 2017-10-16 https://github.com/metaperl/binary-martingale Computer program to automatically trade binary options martingale style. True False metaperl/binary-martingale
62 fooltrader Python > Trading & Backtesting 2020-07-19 https://github.com/foolcage/fooltrader the project using big-data technology to provide an uniform way to analyze the whole market. True False foolcage/fooltrader
63 zvt Python > Trading & Backtesting 2024-02-05 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. True False zvtvz/zvt
64 pylivetrader Python > Trading & Backtesting 2022-04-11 https://github.com/alpacahq/pylivetrader zipline-compatible live trading library. True False alpacahq/pylivetrader
65 pipeline-live Python > Trading & Backtesting 2022-04-11 https://github.com/alpacahq/pipeline-live zipline's pipeline capability with IEX for live trading. True False alpacahq/pipeline-live
66 zipline-extensions Python > Trading & Backtesting 2018-09-17 https://github.com/quantrocket-llc/zipline-extensions Zipline extensions and adapters for QuantRocket. True False quantrocket-llc/zipline-extensions
67 moonshot Python > Trading & Backtesting 2023-12-28 https://github.com/quantrocket-llc/moonshot Vectorized backtester and trading engine for QuantRocket based on Pandas. True False quantrocket-llc/moonshot
68 PyPortfolioOpt Python > Trading & Backtesting 2023-12-06 https://github.com/robertmartin8/PyPortfolioOpt Financial portfolio optimisation in python, including classical efficient frontier and advanced methods. True False robertmartin8/PyPortfolioOpt
69 Eiten Python > Trading & Backtesting 2020-09-21 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. True False tradytics/eiten
70 riskparity.py Python > Trading & Backtesting 2024-02-10 https://github.com/dppalomar/riskparity.py fast and scalable design of risk parity portfolios with TensorFlow 2.0 True False dppalomar/riskparity.py
71 mlfinlab Python > Trading & Backtesting 2021-12-01 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) True False hudson-and-thames/mlfinlab
72 pyqstrat Python > Trading & Backtesting 2023-11-05 https://github.com/abbass2/pyqstrat A fast, extensible, transparent python library for backtesting quantitative strategies. True False abbass2/pyqstrat
73 NowTrade Python > Trading & Backtesting 2017-02-07 https://github.com/edouardpoitras/NowTrade Python library for backtesting technical/mechanical strategies in the stock and currency markets. True False edouardpoitras/NowTrade
74 pinkfish Python > Trading & Backtesting 2023-12-30 https://github.com/fja05680/pinkfish A backtester and spreadsheet library for security analysis. True False fja05680/pinkfish
75 aat Python > Trading & Backtesting 2023-09-11 https://github.com/timkpaine/aat Async Algorithmic Trading Engine True False timkpaine/aat
76 Backtesting.py Python > Trading & Backtesting https://kernc.github.io/backtesting.py/ Backtest trading strategies in Python False False
77 catalyst Python > Trading & Backtesting 2021-09-22 https://github.com/enigmampc/catalyst An Algorithmic Trading Library for Crypto-Assets in Python True False enigmampc/catalyst
78 quantstats Python > Trading & Backtesting 2023-07-06 https://github.com/ranaroussi/quantstats Portfolio analytics for quants, written in Python True False ranaroussi/quantstats
79 qtpylib Python > Trading & Backtesting 2021-03-24 https://github.com/ranaroussi/qtpylib QTPyLib, Pythonic Algorithmic Trading <http://qtpylib.io> True False ranaroussi/qtpylib
80 Quantdom Python > Trading & Backtesting 2019-03-12 https://github.com/constverum/Quantdom Python-based framework for backtesting trading strategies & analyzing financial markets [GUI :neckbeard:] True False constverum/Quantdom
81 freqtrade Python > Trading & Backtesting 2024-02-17 https://github.com/freqtrade/freqtrade Free, open source crypto trading bot True False freqtrade/freqtrade
82 algorithmic-trading-with-python Python > Trading & Backtesting 2021-06-01 https://github.com/chrisconlan/algorithmic-trading-with-python Free `pandas` and `scikit-learn` resources for trading simulation, backtesting, and machine learning on financial data. True False chrisconlan/algorithmic-trading-with-python
83 DeepDow Python > Trading & Backtesting 2024-01-24 https://github.com/jankrepl/deepdow Portfolio optimization with deep learning True False jankrepl/deepdow
84 Qlib Python > Trading & Backtesting 2023-11-21 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. True False microsoft/qlib
85 machine-learning-for-trading Python > Trading & Backtesting 2023-03-05 https://github.com/stefan-jansen/machine-learning-for-trading Code and resources for Machine Learning for Algorithmic Trading True False stefan-jansen/machine-learning-for-trading
86 AlphaPy Python > Trading & Backtesting 2024-02-10 https://github.com/ScottfreeLLC/AlphaPy Automated Machine Learning [AutoML] with Python, scikit-learn, Keras, XGBoost, LightGBM, and CatBoost True False ScottfreeLLC/AlphaPy
87 jesse Python > Trading & Backtesting 2024-01-01 https://github.com/jesse-ai/jesse An advanced crypto trading bot written in Python True False jesse-ai/jesse
88 rqalpha Python > Trading & Backtesting 2024-01-22 https://github.com/ricequant/rqalpha A extendable, replaceable Python algorithmic backtest && trading framework supporting multiple securities. True False ricequant/rqalpha
89 FinRL-Library Python > Trading & Backtesting 2024-02-14 https://github.com/AI4Finance-LLC/FinRL-Library A Deep Reinforcement Learning Library for Automated Trading in Quantitative Finance. NeurIPS 2020. True False AI4Finance-LLC/FinRL-Library
90 bulbea Python > Trading & Backtesting 2017-03-19 https://github.com/achillesrasquinha/bulbea Deep Learning based Python Library for Stock Market Prediction and Modelling. True False achillesrasquinha/bulbea
91 ib_nope Python > Trading & Backtesting 2021-04-22 https://github.com/ajhpark/ib_nope Automated trading system for NOPE strategy over IBKR TWS. True False ajhpark/ib_nope
92 OctoBot Python > Trading & Backtesting 2024-02-16 https://github.com/Drakkar-Software/OctoBot Open source cryptocurrency trading bot for high frequency, arbitrage, TA and social trading with an advanced web interface. True False Drakkar-Software/OctoBot
93 bta-lib Python > Trading & Backtesting 2020-03-11 https://github.com/mementum/bta-lib Technical Analysis library in pandas for backtesting algotrading and quantitative analysis. True False mementum/bta-lib
94 Stock-Prediction-Models Python > Trading & Backtesting 2021-01-05 https://github.com/huseinzol05/Stock-Prediction-Models Gathers machine learning and deep learning models for Stock forecasting including trading bots and simulations. True False huseinzol05/Stock-Prediction-Models
95 TuneTA Python > Trading & Backtesting 2023-10-13 https://github.com/jmrichardson/tuneta TuneTA optimizes technical indicators using a distance correlation measure to a user defined target feature such as next day return. True False jmrichardson/tuneta
96 AutoTrader Python > Trading & Backtesting 2023-09-26 https://github.com/kieran-mackle/AutoTrader A Python-based development platform for automated trading systems - from backtesting to optimisation to livetrading. True False kieran-mackle/AutoTrader
97 fast-trade Python > Trading & Backtesting 2024-01-25 https://github.com/jrmeier/fast-trade A library built with backtest portability and performance in mind for backtest trading strategies. True False jrmeier/fast-trade
98 qf-lib Python > Trading & Backtesting 2023-12-14 https://github.com/quarkfin/qf-lib QF-Lib is a Python library that provides high quality tools for quantitative finance. True False quarkfin/qf-lib
99 tda-api Python > Trading & Backtesting 2023-06-05 https://github.com/alexgolec/tda-api Gather data and trade equities, options, and ETFs via TDAmeritrade. True False alexgolec/tda-api
100 vectorbt Python > Trading & Backtesting 2024-02-03 https://github.com/polakowo/vectorbt Find your trading edge, using a powerful toolkit for backtesting, algorithmic trading, and research. True False polakowo/vectorbt
101 Lean Python > Trading & Backtesting 2024-02-16 https://github.com/QuantConnect/Lean Lean Algorithmic Trading Engine by QuantConnect (Python, C#). True False QuantConnect/Lean
102 fast-trade Python > Trading & Backtesting 2024-01-25 https://github.com/jrmeier/fast-trade Low code backtesting library utilizing pandas and technical analysis indicators. True False jrmeier/fast-trade
103 pysystemtrade Python > Trading & Backtesting 2024-02-08 https://github.com/robcarver17/pysystemtrade pysystemtrade is the open source version of Robert Carver's backtesting and trading engine that implements systems according to the framework outlined in his book "Systematic Trading", which is further developed on his [blog](https://qoppac.blogspot.com/). True False robcarver17/pysystemtrade
104 pytrendseries Python > Trading & Backtesting 2024-01-09 https://github.com/rafa-rod/pytrendseries Detect trend in time series, drawdown, drawdown within a constant look-back window , maximum drawdown, time underwater. True False rafa-rod/pytrendseries
105 PyLOB Python > Trading & Backtesting 2023-01-01 https://github.com/DrAshBooth/PyLOB Fully functioning fast Limit Order Book written in Python. True False DrAshBooth/PyLOB
106 PyBroker Python > Trading & Backtesting 2024-01-20 https://github.com/edtechre/pybroker Algorithmic Trading with Machine Learning. True False edtechre/pybroker
107 OctoBot Script Python > Trading & Backtesting 2024-01-14 https://github.com/Drakkar-Software/OctoBot-Script A quant framework to create cryptocurrencies strategies - from backtesting to optimisation to livetrading. True False Drakkar-Software/OctoBot-Script
108 hftbacktest Python > Trading & Backtesting 2024-02-14 https://github.com/nkaz001/hftbacktest A high-frequency trading and market-making backtesting tool accounts for limit orders, queue positions, and latencies, utilizing full tick data for trades and order books. True False nkaz001/hftbacktest
109 vnpy Python > Trading & Backtesting 2023-12-09 https://github.com/vnpy/vnpy VeighNa is a Python-based open source quantitative trading system development framework. True False vnpy/vnpy
110 Intelligent Trading Bot Python > Trading & Backtesting 2023-12-28 https://github.com/asavinov/intelligent-trading-bot Automatically generating signals and trading based on machine learning and feature engineering True False asavinov/intelligent-trading-bot
111 fastquant Python > Trading & Backtesting 2023-09-15 https://github.com/enzoampil/fastquant fastquant allows you to easily backtest investment strategies with as few as 3 lines of python code. True False enzoampil/fastquant
112 nautilus_trader Python > Trading & Backtesting 2024-02-09 https://github.com/nautechsystems/nautilus_trader A high-performance algorithmic trading platform and event-driven backtester. True False nautechsystems/nautilus_trader
113 pyfolio Python > Risk Analysis 2020-02-28 https://github.com/quantopian/pyfolio Portfolio and risk analytics in Python. True False quantopian/pyfolio
114 empyrical Python > Risk Analysis 2020-10-14 https://github.com/quantopian/empyrical Common financial risk and performance metrics. True False quantopian/empyrical
115 fecon235 Python > Risk Analysis 2018-12-03 https://github.com/rsvp/fecon235 Computational tools for financial economics include: Gaussian Mixture model of leptokurtotic risk, adaptive Boltzmann portfolios. True False rsvp/fecon235
116 finance Python > Risk Analysis https://pypi.org/project/finance/ Financial Risk Calculations. Optimized for ease of use through class construction and operator overload. False False
117 qfrm Python > Risk Analysis https://pypi.org/project/qfrm/ Quantitative Financial Risk Management: awesome OOP tools for measuring, managing and visualizing risk of financial instruments and portfolios. False False
118 visualize-wealth Python > Risk Analysis 2015-06-10 https://github.com/benjaminmgross/visualize-wealth Portfolio construction and quantitative analysis. True False benjaminmgross/visualize-wealth
119 VisualPortfolio Python > Risk Analysis 2017-02-28 https://github.com/wegamekinglc/VisualPortfolio This tool is used to visualize the performance of a portfolio. True False wegamekinglc/VisualPortfolio
120 universal-portfolios Python > Risk Analysis 2024-01-16 https://github.com/Marigold/universal-portfolios Collection of algorithms for online portfolio selection. True False Marigold/universal-portfolios
121 FinQuant Python > Risk Analysis 2023-09-03 https://github.com/fmilthaler/FinQuant A program for financial portfolio management, analysis and optimisation. True False fmilthaler/FinQuant
122 Empyrial Python > Risk Analysis 2024-02-08 https://github.com/ssantoshp/Empyrial Portfolio's risk and performance analytics and returns predictions. True False ssantoshp/Empyrial
123 risktools Python > Risk Analysis 2023-11-12 https://github.com/bbcho/risktools-dev Risk tools for use within the crude and crude products trading space with partial implementation of R's PerformanceAnalytics. True False bbcho/risktools-dev
124 Riskfolio-Lib Python > Risk Analysis 2024-02-08 https://github.com/dcajasn/Riskfolio-Lib Portfolio Optimization and Quantitative Strategic Asset Allocation in Python. True False dcajasn/Riskfolio-Lib
125 alphalens Python > Factor Analysis 2020-04-27 https://github.com/quantopian/alphalens Performance analysis of predictive alpha factors. True False quantopian/alphalens
126 Spectre Python > Factor Analysis 2023-11-28 https://github.com/Heerozh/spectre GPU-accelerated Factors analysis library and Backtester True False Heerozh/spectre
127 Jupyter Quant Python > Quant Research Environment 2024-02-16 https://github.com/gnzsnz/jupyter-quant A dockerized Jupyter quant research environment with preloaded tools for quant analysis, statsmodels, pymc, arch, py_vollib, zipline-reloaded, PyPortfolioOpt, etc. True False gnzsnz/jupyter-quant
128 ARCH Python > Time Series 2024-01-05 https://github.com/bashtage/arch ARCH models in Python. True False bashtage/arch
129 statsmodels Python > Time Series http://statsmodels.sourceforge.net Python module that allows users to explore data, estimate statistical models, and perform statistical tests. False False
130 dynts Python > Time Series 2016-11-02 https://github.com/quantmind/dynts Python package for timeseries analysis and manipulation. True False quantmind/dynts
131 PyFlux Python > Time Series 2018-12-16 https://github.com/RJT1990/pyflux Python library for timeseries modelling and inference (frequentist and Bayesian) on models. True False RJT1990/pyflux
132 tsfresh Python > Time Series 2024-01-28 https://github.com/blue-yonder/tsfresh Automatic extraction of relevant features from time series. True False blue-yonder/tsfresh
133 hasura/quandl-metabase Python > Time Series https://platform.hasura.io/hub/projects/anirudhm/quandl-metabase-time-series Hasura quickstart to visualize Quandl's timeseries datasets with Metabase. False False
134 Facebook Prophet Python > Time Series 2023-10-18 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. True False facebook/prophet
135 tsmoothie Python > Time Series 2023-11-23 https://github.com/cerlymarco/tsmoothie A python library for time-series smoothing and outlier detection in a vectorized way. True False cerlymarco/tsmoothie
136 pmdarima Python > Time Series 2024-02-16 https://github.com/alkaline-ml/pmdarima A statistical library designed to fill the void in Python's time series analysis capabilities, including the equivalent of R's auto.arima function. True False alkaline-ml/pmdarima
137 gluon-ts Python > Time Series 2024-02-07 https://github.com/awslabs/gluon-ts vProbabilistic time series modeling in Python. True False awslabs/gluon-ts
138 exchange_calendars Python > Calendars 2024-02-15 https://github.com/gerrymanoim/exchange_calendars Stock Exchange Trading Calendars. True False gerrymanoim/exchange_calendars
139 bizdays Python > Calendars 2024-02-12 https://github.com/wilsonfreitas/python-bizdays Business days calculations and utilities. True False wilsonfreitas/python-bizdays
140 pandas_market_calendars Python > Calendars 2024-02-10 https://github.com/rsheftel/pandas_market_calendars Exchange calendars to use with pandas for trading applications. True False rsheftel/pandas_market_calendars
141 yfinance Python > Data Sources 2024-02-10 https://github.com/ranaroussi/yfinance Yahoo! Finance market data downloader (+faster Pandas Datareader) True False ranaroussi/yfinance
142 findatapy Python > Data Sources 2023-12-01 https://github.com/cuemacro/findatapy Python library to download market data via Bloomberg, Quandl, Yahoo etc. True False cuemacro/findatapy
143 googlefinance Python > Data Sources 2018-09-23 https://github.com/hongtaocai/googlefinance Python module to get real-time stock data from Google Finance API. True False hongtaocai/googlefinance
144 yahoo-finance Python > Data Sources 2021-12-15 https://github.com/lukaszbanasiak/yahoo-finance Python module to get stock data from Yahoo! Finance. True False lukaszbanasiak/yahoo-finance
145 pandas-datareader Python > Data Sources 2023-10-24 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. True False pydata/pandas-datareader
146 pandas-finance Python > Data Sources 2023-07-04 https://github.com/davidastephens/pandas-finance High level API for access to and analysis of financial data. True False davidastephens/pandas-finance
147 pyhoofinance Python > Data Sources 2016-10-07 https://github.com/innes213/pyhoofinance Rapidly queries Yahoo Finance for multiple tickers and returns typed data for analysis. True False innes213/pyhoofinance
148 yfinanceapi Python > Data Sources 2020-05-26 https://github.com/Karthik005/yfinanceapi Finance API for Python. True False Karthik005/yfinanceapi
149 yql-finance Python > Data Sources 2015-08-29 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). True False slawek87/yql-finance
150 ystockquote Python > Data Sources 2017-03-10 https://github.com/cgoldberg/ystockquote Retrieve stock quote data from Yahoo Finance. True False cgoldberg/ystockquote
151 wallstreet Python > Data Sources 2022-12-30 https://github.com/mcdallas/wallstreet Real time stock and option data. True False mcdallas/wallstreet
152 stock_extractor Python > Data Sources 2016-09-10 https://github.com/ZachLiuGIS/stock_extractor General Purpose Stock Extractors from Online Resources. True False ZachLiuGIS/stock_extractor
153 Stockex Python > Data Sources 2021-09-15 https://github.com/cttn/Stockex Python wrapper for Yahoo! Finance API. True False cttn/Stockex
154 finsymbols Python > Data Sources 2017-07-23 https://github.com/skillachie/finsymbols Obtains stock symbols and relating information for SP500, AMEX, NYSE, and NASDAQ. True False skillachie/finsymbols
155 FRB Python > Data Sources 2018-12-22 https://github.com/avelkoski/FRB Python Client for FRED® API. True False avelkoski/FRB
156 inquisitor Python > Data Sources 2019-10-10 https://github.com/econdb/inquisitor Python Interface to Econdb.com API. True False econdb/inquisitor
157 yfi Python > Data Sources 2016-02-12 https://github.com/nickelkr/yfi Yahoo! YQL library. True False nickelkr/yfi
158 chinesestockapi Python > Data Sources https://pypi.org/project/chinesestockapi/ Python API to get Chinese stock price. False False
159 exchange Python > Data Sources 2015-07-07 https://github.com/akarat/exchange Get current exchange rate. True False akarat/exchange
160 ticks Python > Data Sources 2016-01-08 https://github.com/jamescnowell/ticks Simple command line tool to get stock ticker data. True False jamescnowell/ticks
161 pybbg Python > Data Sources 2015-01-20 https://github.com/bpsmith/pybbg Python interface to Bloomberg COM APIs. True False bpsmith/pybbg
162 ccy Python > Data Sources 2023-09-29 https://github.com/lsbardel/ccy Python module for currencies. True False lsbardel/ccy
163 tushare Python > Data Sources https://pypi.org/project/tushare/ A utility for crawling historical and Real-time Quotes data of China stocks. False False
164 jsm Python > Data Sources https://pypi.org/project/jsm/ Get the japanese stock market data. False False
165 cn_stock_src Python > Data Sources 2016-02-29 https://github.com/jealous/cn_stock_src Utility for retrieving basic China stock data from different sources. True False jealous/cn_stock_src
166 coinmarketcap Python > Data Sources 2023-05-23 https://github.com/barnumbirr/coinmarketcap Python API for coinmarketcap. True False barnumbirr/coinmarketcap
167 after-hours Python > Data Sources 2020-06-22 https://github.com/datawrestler/after-hours Obtain pre market and after hours stock prices for a given symbol. True False datawrestler/after-hours
168 bronto-python Python > Data Sources https://pypi.org/project/bronto-python/ Bronto API Integration for Python. False False
169 pytdx Python > Data Sources 2020-04-15 https://github.com/rainx/pytdx Python Interface for retrieving chinese stock realtime quote data from TongDaXin Nodes. True False rainx/pytdx
170 pdblp Python > Data Sources 2022-05-28 https://github.com/matthewgilbert/pdblp A simple interface to integrate pandas and the Bloomberg Open API. True False matthewgilbert/pdblp
171 tiingo Python > Data Sources 2024-02-14 https://github.com/hydrosquall/tiingo-python Python interface for daily composite prices/OHLC/Volume + Real-time News Feeds, powered by the Tiingo Data Platform. True False hydrosquall/tiingo-python
172 iexfinance Python > Data Sources 2021-01-02 https://github.com/addisonlynch/iexfinance Python Interface for retrieving real-time and historical prices and equities data from The Investor's Exchange. True False addisonlynch/iexfinance
173 pyEX Python > Data Sources 2024-02-05 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. True False timkpaine/pyEX
174 alpaca-trade-api Python > Data Sources 2024-01-12 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. True False alpacahq/alpaca-trade-api-python
175 metatrader5 Python > Data Sources https://pypi.org/project/MetaTrader5/ API Connector to MetaTrader 5 Terminal False False
176 akshare Python > Data Sources 2024-02-14 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> True False jindaxiang/akshare
177 yahooquery Python > Data Sources 2023-12-16 https://github.com/dpguthrie/yahooquery Python interface for retrieving data through unofficial Yahoo Finance API. True False dpguthrie/yahooquery
178 investpy Python > Data Sources 2022-10-02 https://github.com/alvarobartt/investpy Financial Data Extraction from Investing.com with Python! <https://investpy.readthedocs.io/> True False alvarobartt/investpy
179 yliveticker Python > Data Sources 2021-04-29 https://github.com/yahoofinancelive/yliveticker Live stream of market data from Yahoo Finance websocket. True False yahoofinancelive/yliveticker
180 bbgbridge Python > Data Sources 2020-01-07 https://github.com/ran404/bbgbridge Easy to use Bloomberg Desktop API wrapper for Python. True False ran404/bbgbridge
181 alpha_vantage Python > Data Sources 2023-11-11 https://github.com/RomelTorres/alpha_vantage A python wrapper for Alpha Vantage API for financial data. True False RomelTorres/alpha_vantage
182 FinanceDataReader Python > Data Sources 2024-01-31 https://github.com/FinanceData/FinanceDataReader Open Source Financial data reader for U.S, Korean, Japanese, Chinese, Vietnamese Stocks True False FinanceData/FinanceDataReader
183 pystlouisfed Python > Data Sources 2024-01-09 https://github.com/TomasKoutek/pystlouisfed Python client for Federal Reserve Bank of St. Louis API - FRED, ALFRED, GeoFRED and FRASER. True False TomasKoutek/pystlouisfed
184 python-bcb Python > Data Sources 2023-07-22 https://github.com/wilsonfreitas/python-bcb Python interface to Brazilian Central Bank web services. True False wilsonfreitas/python-bcb
185 market-prices Python > Data Sources 2024-02-15 https://github.com/maread99/market_prices Create meaningful OHLCV datasets from knowledge of [exchange-calendars](https://github.com/gerrymanoim/exchange_calendars) (works out-the-box with data from Yahoo Finance). True False maread99/market_prices
186 tardis-python Python > Data Sources 2023-08-21 https://github.com/tardis-dev/tardis-python Python interface for Tardis.dev high frequency crypto market data True False tardis-dev/tardis-python
187 lake-api Python > Data Sources 2023-12-03 https://github.com/crypto-lake/lake-api Python interface for Crypto Lake high frequency crypto market data True False crypto-lake/lake-api
188 tessa Python > Data Sources 2023-10-16 https://github.com/ymyke/tessa simple, hassle-free access to price information of financial assets (currently based on yfinance and pycoingecko), including search and a symbol class. True False ymyke/tessa
189 pandaSDMX Python > Data Sources 2023-02-25 https://github.com/dr-leo/pandaSDMX Python package that implements SDMX 2.1 (ISO 17369:2013), a format for exchange of statistical data and metadata used by national statistical agencies, central banks, and international organisations. True False dr-leo/pandaSDMX
190 cif Python > Data Sources 2022-06-18 https://github.com/LenkaV/CIF Python package that include few composite indicators, which summarize multidimensional relationships between individual economic indicators. True False LenkaV/CIF
191 finagg Python > Data Sources 2024-02-08 https://github.com/theOGognf/finagg finagg is a Python package that provides implementations of popular and free financial APIs, tools for aggregating historical data from those APIs into SQL databases, and tools for transforming aggregated data into features useful for analysis and AI/ML. True False theOGognf/finagg
192 xlwings Python > Excel Integration https://www.xlwings.org/ Make Excel fly with Python. False False
193 openpyxl Python > Excel Integration https://openpyxl.readthedocs.io/en/latest/ Read/Write Excel 2007 xlsx/xlsm files. False False
194 xlrd Python > Excel Integration 2021-08-19 https://github.com/python-excel/xlrd Library for developers to extract data from Microsoft Excel spreadsheet files. True False python-excel/xlrd
195 xlsxwriter Python > Excel Integration https://xlsxwriter.readthedocs.io/ Write files in the Excel 2007+ XLSX file format. False False
196 xlwt Python > Excel Integration 2018-09-16 https://github.com/python-excel/xlwt Library to create spreadsheet files compatible with MS Excel 97/2000/XP/2003 XLS files, on any platform. True False python-excel/xlwt
197 DataNitro Python > Excel Integration https://datanitro.com/ DataNitro also offers full-featured Python-Excel integration, including UDFs. Trial downloads are available, but users must purchase a license. False False
198 xlloop Python > Excel Integration http://xlloop.sourceforge.net XLLoop is an open source framework for implementing Excel user-defined functions (UDFs) on a centralised server (a function server). False False
199 expy Python > Excel Integration 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. False False
200 pyxll Python > Excel Integration https://www.pyxll.com PyXLL is an Excel add-in that enables you to extend Excel using nothing but Python code. False False
201 D-Tale Python > Visualization 2024-01-31 https://github.com/man-group/dtale Visualizer for pandas dataframes and xarray datasets. True False man-group/dtale
202 mplfinance Python > Visualization 2024-02-08 https://github.com/matplotlib/mplfinance matplotlib utilities for the visualization, and visual analysis, of financial data. True False matplotlib/mplfinance
203 finplot Python > Visualization 2024-02-17 https://github.com/highfestiva/finplot Performant and effortless finance plotting for Python. True False highfestiva/finplot
204 finvizfinance Python > Visualization 2023-11-02 https://github.com/lit26/finvizfinance Finviz analysis python library. True False lit26/finvizfinance
205 market-analy Python > Visualization 2023-12-06 https://github.com/maread99/market_analy Analysis and interactive charting using [market-prices](https://github.com/maread99/market_prices) and bqplot. True False maread99/market_analy
206 xts R > Numerical Libraries & Data Structures 2024-02-06 https://github.com/joshuaulrich/xts 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. True False joshuaulrich/xts
207 data.table R > Numerical Libraries & Data Structures 2024-02-17 https://github.com/Rdatatable/data.table 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. True False Rdatatable/data.table
208 sparseEigen R > Numerical Libraries & Data Structures 2018-12-22 https://github.com/dppalomar/sparseEigen Sparse pricipal component analysis. True False dppalomar/sparseEigen
209 TSdbi R > Numerical Libraries & Data Structures http://tsdbi.r-forge.r-project.org/ Provides a common interface to time series databases. False False
210 tseries R > Numerical Libraries & Data Structures https://cran.r-project.org/web/packages/tseries/index.html Time Series Analysis and Computational Finance. False True
211 zoo R > Numerical Libraries & Data Structures https://cran.r-project.org/web/packages/zoo/index.html S3 Infrastructure for Regular and Irregular Time Series (Z's Ordered Observations). False True
212 tis R > Numerical Libraries & Data Structures 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. False True
213 tfplot R > Numerical Libraries & Data Structures https://cran.r-project.org/web/packages/tfplot/index.html Utilities for simple manipulation and quick plotting of time series data. False True
214 tframe R > Numerical Libraries & Data Structures 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. False True
215 IBrokers R > Data Sources https://cran.r-project.org/web/packages/IBrokers/index.html Provides native R access to Interactive Brokers Trader Workstation API. False True
216 Rblpapi R > Data Sources 2022-12-02 https://github.com/Rblp/Rblpapi An R Interface to 'Bloomberg' is provided via the 'Blp API'. True False Rblp/Rblpapi
217 Quandl R > Data Sources https://www.quandl.com/tools/r Get Financial Data Directly Into R. False False
218 Rbitcoin R > Data Sources 2016-10-25 https://github.com/jangorecki/Rbitcoin Unified markets API interface (bitstamp, kraken, btce, bitmarket). True False jangorecki/Rbitcoin
219 GetTDData R > Data Sources 2023-05-15 https://github.com/msperlin/GetTDData Downloads and aggregates data for Brazilian government issued bonds directly from the website of Tesouro Direto. True False msperlin/GetTDData
220 GetHFData R > Data Sources 2020-06-30 https://github.com/msperlin/GetHFData Downloads and aggregates high frequency trading data for Brazilian instruments directly from Bovespa ftp site. True False msperlin/GetHFData
221 Reddit WallstreetBets API R > Data Sources https://dashboard.nbshare.io/apps/reddit/api/ Provides daily top 50 stocks from reddit (subreddit) Wallstreetbets and their sentiments via the API. False False
222 td R > Data Sources 2022-12-05 https://github.com/eddelbuettel/td Interfaces the 'twelvedata' API for stocks and (digital and standard) currencies. True False eddelbuettel/td
223 rbcb R > Data Sources 2024-01-23 https://github.com/wilsonfreitas/rbcb R interface to Brazilian Central Bank web services. True False wilsonfreitas/rbcb
224 rb3 R > Data Sources 2023-09-11 https://github.com/ropensci/rb3 A bunch of downloaders and parsers for data delivered from B3. True False ropensci/rb3
225 simfinapi R > Data Sources 2023-04-12 https://github.com/matthiasgomolka/simfinapi Makes 'SimFin' data (<https://simfin.com/>) easily accessible in R. True False matthiasgomolka/simfinapi
226 RQuantLib R > Financial Instruments and Pricing http://dirk.eddelbuettel.com/code/rquantlib.html RQuantLib connects GNU R with QuantLib. False False
227 quantmod R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/quantmod/index.html Quantitative Financial Modelling Framework. False True
228 Rmetrics R > Financial Instruments and Pricing https://www.rmetrics.org The premier open source software solution for teaching and training quantitative finance. False False
229 fAsianOptions R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/fAsianOptions/index.html EBM and Asian Option Valuation. False True
230 fAssets R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/fAssets/index.html Analysing and Modelling Financial Assets. False True
231 fBasics R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/fBasics/index.html Markets and Basic Statistics. False True
232 fBonds R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/fBonds/index.html Bonds and Interest Rate Models. False True
233 fExoticOptions R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/fExoticOptions/index.html Exotic Option Valuation. False True
234 fOptions R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/fOptions/index.html Pricing and Evaluating Basic Options. False True
235 fPortfolio R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/fPortfolio/index.html Portfolio Selection and Optimization. False True
236 portfolio R > Financial Instruments and Pricing 2021-07-09 https://github.com/dgerlanc/portfolio Analysing equity portfolios. True False dgerlanc/portfolio
237 sparseIndexTracking R > Financial Instruments and Pricing 2023-05-28 https://github.com/dppalomar/sparseIndexTracking Portfolio design to track an index. True False dppalomar/sparseIndexTracking
238 covFactorModel R > Financial Instruments and Pricing 2019-03-25 https://github.com/dppalomar/covFactorModel Covariance matrix estimation via factor models. True False dppalomar/covFactorModel
239 riskParityPortfolio R > Financial Instruments and Pricing 2022-11-15 https://github.com/dppalomar/riskParityPortfolio Blazingly fast design of risk parity portfolios. True False dppalomar/riskParityPortfolio
240 sde R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/sde/index.html Simulation and Inference for Stochastic Differential Equations. False True
241 YieldCurve R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/YieldCurve/index.html Modelling and estimation of the yield curve. False True
242 SmithWilsonYieldCurve R > Financial Instruments and Pricing 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. False True
243 ycinterextra R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/ycinterextra/index.html Yield curve or zero-coupon prices interpolation and extrapolation. False True
244 AmericanCallOpt R > Financial Instruments and Pricing 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. False True
245 VarSwapPrice R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/VarSwapPrice/index.html Pricing a variance swap on an equity index. False True
246 RND R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/RND/index.html Risk Neutral Density Extraction Package. False True
247 LSMonteCarlo R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/LSMonteCarlo/index.html American options pricing with Least Squares Monte Carlo method. False True
248 OptHedging R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/OptHedging/index.html Estimation of value and hedging strategy of call and put options. False True
249 tvm R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/tvm/index.html Time Value of Money Functions. False True
250 OptionPricing R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/OptionPricing/index.html Option Pricing with Efficient Simulation Algorithms. False True
251 credule R > Financial Instruments and Pricing 2015-08-05 https://github.com/blenezet/credule Credit Default Swap Functions. True False blenezet/credule
252 derivmkts R > Financial Instruments and Pricing https://cran.r-project.org/web/packages/derivmkts/index.html Functions and R Code to Accompany Derivatives Markets. False True
253 FinCal R > Financial Instruments and Pricing 2017-04-12 https://github.com/felixfan/FinCal Package for time value of money calculation, time series analysis and computational finance. True False felixfan/FinCal
254 r-quant R > Financial Instruments and Pricing 2014-02-19 https://github.com/artyyouth/r-quant R code for quantitative analysis in finance. True False artyyouth/r-quant
255 options.studies R > Financial Instruments and Pricing 2015-12-17 https://github.com/taylorizing/options.studies options trading studies functions for use with options.data package and shiny. True False taylorizing/options.studies
256 PortfolioAnalytics R > Financial Instruments and Pricing 2022-11-13 https://github.com/braverock/PortfolioAnalytics Portfolio Analysis, Including Numerical Methods for Optimizationof Portfolios. True False braverock/PortfolioAnalytics
257 fmbasics R > Financial Instruments and Pricing 2019-12-03 https://github.com/imanuelcostigan/fmbasics Financial Market Building Blocks. True False imanuelcostigan/fmbasics
258 R-fixedincome R > Financial Instruments and Pricing 2023-06-27 https://github.com/wilsonfreitas/R-fixedincome Fixed income tools for R. True False wilsonfreitas/R-fixedincome
259 backtest R > Trading https://cran.r-project.org/web/packages/backtest/index.html Exploring Portfolio-Based Conjectures About Financial Instruments. False True
260 pa R > Trading https://cran.r-project.org/web/packages/pa/index.html Performance Attribution for Equity Portfolios. False True
261 TTR R > Trading 2024-02-13 https://github.com/joshuaulrich/TTR Technical Trading Rules. True False joshuaulrich/TTR
262 QuantTools R > Trading https://quanttools.bitbucket.io/_site/index.html Enhanced Quantitative Trading Modelling. False False
263 blotter R > Trading 2023-02-04 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. True False braverock/blotter
264 quantstrat R > Backtesting 2023-09-14 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. True False braverock/quantstrat
265 PerformanceAnalytics R > Risk Analysis 2024-02-15 https://github.com/braverock/PerformanceAnalytics Econometric tools for performance and risk analysis. True False braverock/PerformanceAnalytics
266 FactorAnalytics R > Factor Analysis 2024-02-16 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. True False braverock/FactorAnalytics
267 Expected Returns R > Factor Analysis 2023-08-31 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. True False JustinMShea/ExpectedReturns
268 tseries R > Time Series https://cran.r-project.org/web/packages/tseries/index.html Time Series Analysis and Computational Finance. False True
269 fGarch R > Time Series https://cran.r-project.org/web/packages/fGarch/index.html Rmetrics - Autoregressive Conditional Heteroskedastic Modelling. False True
270 timeSeries R > Time Series https://cran.r-project.org/web/packages/timeSeries/index.html Rmetrics - Financial Time Series Objects. False True
271 rugarch R > Time Series 2023-09-20 https://github.com/alexiosg/rugarch Univariate GARCH Models. True False alexiosg/rugarch
272 rmgarch R > Time Series 2022-03-05 https://github.com/alexiosg/rmgarch Multivariate GARCH Models. True False alexiosg/rmgarch
273 tidypredict R > Time Series 2021-09-28 https://github.com/edgararuiz/tidypredict Run predictions inside the database <https://tidypredict.netlify.com/>. True False edgararuiz/tidypredict
274 tidyquant R > Time Series 2024-01-04 https://github.com/business-science/tidyquant Bringing financial analysis to the tidyverse. True False business-science/tidyquant
275 timetk R > Time Series 2024-01-04 https://github.com/business-science/timetk A toolkit for working with time series in R. True False business-science/timetk
276 tibbletime R > Time Series 2023-01-24 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. True False business-science/tibbletime
277 matrixprofile R > Time Series 2022-11-25 https://github.com/matrix-profile-foundation/matrixprofile Time series data mining library built on top of the novel Matrix Profile data structure and algorithms. True False matrix-profile-foundation/matrixprofile
278 garchmodels R > Time Series 2022-08-11 https://github.com/AlbertoAlmuinha/garchmodels A parsnip backend for GARCH models. True False AlbertoAlmuinha/garchmodels
279 timeDate R > Calendars https://cran.r-project.org/web/packages/timeDate/index.html Chronological and Calendar Objects False True
280 bizdays R > Calendars 2024-02-12 https://github.com/wilsonfreitas/R-bizdays Business days calculations and utilities True False wilsonfreitas/R-bizdays
281 QUANTAXIS Matlab > FrameWorks 2023-01-10 https://github.com/yutiansut/quantaxis Integrated Quantitative Toolbox with Matlab. True False yutiansut/quantaxis
282 QuantLib.jl Julia 2020-02-18 https://github.com/pazzo83/QuantLib.jl Quantlib implementation in pure Julia. True False pazzo83/QuantLib.jl
283 Ito.jl Julia 2017-03-21 https://github.com/aviks/Ito.jl A Julia package for quantitative finance. True False aviks/Ito.jl
284 TALib.jl Julia 2017-08-22 https://github.com/femtotrader/TALib.jl A Julia wrapper for TA-Lib. True False femtotrader/TALib.jl
285 IncTA.jl Julia 2024-01-18 https://github.com/femtotrader/IncTA.jl Julia Incremental Technical Analysis Indicators True False femtotrader/IncTA.jl
286 Miletus.jl Julia 2023-12-07 https://github.com/JuliaComputing/Miletus.jl A financial contract definition, modeling language, and valuation framework. True False JuliaComputing/Miletus.jl
287 Temporal.jl Julia 2021-12-28 https://github.com/dysonance/Temporal.jl Flexible and efficient time series class & methods. True False dysonance/Temporal.jl
288 Indicators.jl Julia 2022-12-06 https://github.com/dysonance/Indicators.jl Financial market technical analysis & indicators on top of Temporal. True False dysonance/Indicators.jl
289 Strategems.jl Julia 2021-04-06 https://github.com/dysonance/Strategems.jl Quantitative systematic trading strategy development and backtesting. True False dysonance/Strategems.jl
290 TimeSeries.jl Julia 2023-12-07 https://github.com/JuliaStats/TimeSeries.jl Time series toolkit for Julia. True False JuliaStats/TimeSeries.jl
291 MarketTechnicals.jl Julia 2021-07-12 https://github.com/JuliaQuant/MarketTechnicals.jl Technical analysis of financial time series on top of TimeSeries. True False JuliaQuant/MarketTechnicals.jl
292 MarketData.jl Julia 2024-01-06 https://github.com/JuliaQuant/MarketData.jl Time series market data. True False JuliaQuant/MarketData.jl
293 TimeFrames.jl Julia 2019-02-16 https://github.com/femtotrader/TimeFrames.jl A Julia library that defines TimeFrame (essentially for resampling TimeSeries). True False femtotrader/TimeFrames.jl
294 DataFrames.jl Julia 2024-01-25 https://github.com/JuliaData/DataFrames.jl In-memory tabular data in Julia True False JuliaData/DataFrames.jl
295 TSFrames.jl Julia 2023-07-25 https://github.com/xKDR/TSFrames.jl Handle timeseries data on top of the powerful and mature DataFrames.jl True False xKDR/TSFrames.jl
296 Strata Java http://strata.opengamma.io/ Modern open-source analytics and market risk library designed and written in Java. False False
297 JQuantLib Java http://www.jquantlib.org JQuantLib is a free, open-source, comprehensive framework for quantitative finance, written in 100% Java. False False
298 finmath.net Java http://finmath.net Java library with algorithms and methodologies related to mathematical finance. False False
299 quantcomponents Java 2015-10-07 https://github.com/lsgro/quantcomponents Free Java components for Quantitative Finance and Algorithmic Trading. True False lsgro/quantcomponents
300 DRIP Java https://lakshmidrip.github.io/DRIP Fixed Income, Asset Allocation, Transaction Cost Analysis, XVA Metrics Libraries. False False
301 ta4j Java 2024-01-05 https://github.com/ta4j/ta4j A Java library for technical analysis. True False ta4j/ta4j
302 finance.js JavaScript 2018-10-11 https://github.com/ebradyjobory/finance.js A JavaScript library for common financial calculations. True False ebradyjobory/finance.js
303 portfolio-allocation JavaScript 2022-08-11 https://github.com/lequant40/portfolio_allocation_js PortfolioAllocation is a JavaScript library designed to help constructing financial portfolios made of several assets: bonds, commodities, cryptocurrencies, currencies, exchange traded funds (ETFs), mutual funds, stocks... True False lequant40/portfolio_allocation_js
304 Ghostfolio JavaScript 2024-02-16 https://github.com/ghostfolio/ghostfolio Wealth management software to keep track of financial assets like stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions. True False ghostfolio/ghostfolio
305 IndicatorTS JavaScript 2024-02-03 https://github.com/cinar/indicatorts Indicator is a TypeScript module providing various stock technical analysis indicators, strategies, and a backtest framework for trading. True False cinar/indicatorts
306 ccxt JavaScript 2024-02-17 https://github.com/ccxt/ccxt A JavaScript / Python / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges. True False ccxt/ccxt
307 PENDAX JavaScript 2023-08-31 https://github.com/CompendiumFi/PENDAX-SDK Javascript SDK for Trading/Data API and Websockets for FTX, FTXUS, OKX, Bybit, & More. True False CompendiumFi/PENDAX-SDK
308 QUANTAXIS_Webkit JavaScript > Data Visualization 2017-07-30 https://github.com/yutiansut/QUANTAXIS_Webkit An awesome visualization center based on quantaxis. True False yutiansut/QUANTAXIS_Webkit
309 quantfin Haskell 2019-04-06 https://github.com/boundedvariation/quantfin quant finance in pure haskell. True False boundedvariation/quantfin
310 Haxcel Haskell 2022-09-13 https://github.com/MarcusRainbow/Haxcel Excel Addin for Haskell. True False MarcusRainbow/Haxcel
311 Ffinar Haskell 2021-11-26 https://github.com/MarcusRainbow/Ffinar A financial maths library in Haskell. True False MarcusRainbow/Ffinar
312 QuantScale Scala 2014-01-14 https://github.com/choucrifahed/quantscale Scala Quantitative Finance Library. True False choucrifahed/quantscale
313 Scala Quant Scala 2017-05-06 https://github.com/frankcash/Scala-Quant Scala library for working with stock data from IFTTT recipes or Google Finance. True False frankcash/Scala-Quant
314 Jiji Ruby 2019-01-22 https://github.com/unageanu/jiji2 Open Source Forex algorithmic trading framework using OANDA REST API. True False unageanu/jiji2
315 Tai Elixir/Erlang 2022-10-04 https://github.com/fremantle-capital/tai Open Source composable, real time, market data and trade execution toolkit. True False fremantle-capital/tai
316 Workbench Elixir/Erlang 2022-06-06 https://github.com/fremantle-industries/workbench From Idea to Execution - Manage your trading operation across a globally distributed cluster True False fremantle-industries/workbench
317 Prop Elixir/Erlang 2022-06-06 https://github.com/fremantle-industries/prop An open and opinionated trading platform using productive & familiar open source libraries and tools for strategy research, execution and operation. True False fremantle-industries/prop
318 Kelp Golang 2021-11-26 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). True False stellar/kelp
319 marketstore Golang 2022-11-07 https://github.com/alpacahq/marketstore DataFrame Server for Financial Timeseries Data. True False alpacahq/marketstore
320 IndicatorGo Golang 2024-01-15 https://github.com/cinar/indicator IndicatorGo is a Golang module providing various stock technical analysis indicators, strategies, and a backtest framework for trading. True False cinar/indicator
321 TradeFrame CPP 2023-10-02 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. True False rburkholder/trade-frame
322 QuantLib Frameworks https://www.quantlib.org The QuantLib project is aimed at providing a comprehensive software framework for quantitative finance. False False
323 JQuantLib Frameworks http://www.jquantlib.org Java port. False False
324 RQuantLib Frameworks http://dirk.eddelbuettel.com/code/rquantlib.html R port. False False
325 QuantLibAddin Frameworks https://www.quantlib.org/quantlibaddin/ Excel support. False False
326 QuantLibXL Frameworks https://www.quantlib.org/quantlibxl/ Excel support. False False
327 QLNet Frameworks 2024-02-16 https://github.com/amaggiulli/qlnet .Net port. True False amaggiulli/qlnet
328 PyQL Frameworks 2023-11-08 https://github.com/enthought/pyql Python port. True False enthought/pyql
329 QuantLib.jl Frameworks 2020-02-18 https://github.com/pazzo83/QuantLib.jl Julia port. True False pazzo83/QuantLib.jl
330 QuantLib-Python Documentation Frameworks https://quantlib-python-docs.readthedocs.io/ Documentation for the Python bindings for the QuantLib library False False
331 QuantLib with Automatic Differention enabled Frameworks 2024-01-09 https://github.com/auto-differentiation/quantlib-xad Integration of Automatic Differentiation with the QuantLib library True False auto-differentiation/quantlib-xad
332 TA-Lib Frameworks https://ta-lib.org perform technical analysis of financial market data. False False
333 Portfolio Optimizer Frameworks https://portfoliooptimizer.io/ Portfolio Optimizer is a Web API for portfolio analysis and optimization. False False
334 QuantConnect CSharp 2024-02-16 https://github.com/QuantConnect/Lean Lean Engine is an open-source fully managed C# algorithmic trading engine built for desktop and cloud usage. True False QuantConnect/Lean
335 StockSharp CSharp 2024-02-17 https://github.com/StockSharp/StockSharp Algorithmic trading and quantitative trading open source platform to develop trading robots (stock markets, forex, crypto, bitcoins, and options). True False StockSharp/StockSharp
336 TDAmeritrade.DotNetCore CSharp 2023-03-10 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. True False NVentimiglia/TDAmeritrade.DotNetCore
337 QuantMath Rust 2020-05-28 https://github.com/MarcusRainbow/QuantMath Financial maths library for risk-neutral pricing and risk True False MarcusRainbow/QuantMath
338 Barter Rust 2023-04-20 https://github.com/barter-rs/barter-rs Open-source Rust framework for building event-driven live-trading & backtesting systems True False barter-rs/barter-rs
339 LFEST Rust 2024-01-18 https://github.com/MathisWellmann/lfest-rs Simulated perpetual futures exchange to trade your strategy against. True False MathisWellmann/lfest-rs
340 TradeAggregation Rust 2024-01-28 https://github.com/MathisWellmann/trade_aggregation-rs Aggregate trades into user-defined candles using information driven rules. True False MathisWellmann/trade_aggregation-rs
341 SlidingFeatures Rust 2023-07-06 https://github.com/MathisWellmann/sliding_features-rs Chainable tree-like sliding windows for signal processing and technical analysis. True False MathisWellmann/sliding_features-rs
342 RustQuant Rust 2024-02-17 https://github.com/avhz/RustQuant Quantitative finance library written in Rust. True False avhz/RustQuant
343 finalytics Rust 2024-01-15 https://github.com/Nnamdi-sys/finalytics A rust library for financial data analysis. True False Nnamdi-sys/finalytics
344 Derman Papers Reproducing Works, Training & Books 2017-10-21 https://github.com/MarcosCarreira/DermanPapers Notebooks that replicate original quantitative finance papers from Emanuel Derman. True False MarcosCarreira/DermanPapers
345 ML-Quant Reproducing Works, Training & Books https://www.ml-quant.com/ Top Quant resources like ArXiv (sanity), SSRN, RePec, Journals, Podcasts, Videos, and Blogs. False False
346 volatility-trading Reproducing Works, Training & Books 2023-04-10 https://github.com/jasonstrimpel/volatility-trading A complete set of volatility estimators based on Euan Sinclair's Volatility Trading. True False jasonstrimpel/volatility-trading
347 quant Reproducing Works, Training & Books 2015-07-14 https://github.com/paulperry/quant Quantitative Finance and Algorithmic Trading exhaust; mostly ipython notebooks based on Quantopian, Zipline, or Pandas. True False paulperry/quant
348 fecon235 Reproducing Works, Training & Books 2018-12-03 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. True False rsvp/fecon235
349 Quantitative-Notebooks Reproducing Works, Training & Books 2020-07-02 https://github.com/LongOnly/Quantitative-Notebooks Educational notebooks on quantitative finance, algorithmic trading, financial modelling and investment strategy True False LongOnly/Quantitative-Notebooks
350 QuantEcon Reproducing Works, Training & Books https://quantecon.org/ Lecture series on economics, finance, econometrics and data science; QuantEcon.py, QuantEcon.jl, notebooks False False
351 FinanceHub Reproducing Works, Training & Books 2021-05-25 https://github.com/Finance-Hub/FinanceHub Resources for Quantitative Finance True False Finance-Hub/FinanceHub
352 Python_Option_Pricing Reproducing Works, Training & Books 2017-07-26 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. True False dedwards25/Python_Option_Pricing
353 python-training Reproducing Works, Training & Books 2023-11-27 https://github.com/jpmorganchase/python-training J.P. Morgan's Python training for business analysts and traders. True False jpmorganchase/python-training
354 Stock_Analysis_For_Quant Reproducing Works, Training & Books 2024-02-13 https://github.com/LastAncientOne/Stock_Analysis_For_Quant Different Types of Stock Analysis in Excel, Matlab, Power BI, Python, R, and Tableau. True False LastAncientOne/Stock_Analysis_For_Quant
355 algorithmic-trading-with-python Reproducing Works, Training & Books 2021-06-01 https://github.com/chrisconlan/algorithmic-trading-with-python Source code for Algorithmic Trading with Python (2020) by Chris Conlan. True False chrisconlan/algorithmic-trading-with-python
356 MEDIUM_NoteBook Reproducing Works, Training & Books 2023-12-17 https://github.com/cerlymarco/MEDIUM_NoteBook Repository containing notebooks of [cerlymarco](https://github.com/cerlymarco)'s posts on Medium. True False cerlymarco/MEDIUM_NoteBook
357 QuantFinance Reproducing Works, Training & Books 2024-02-13 https://github.com/PythonCharmers/QuantFinance Training materials in quantitative finance. True False PythonCharmers/QuantFinance
358 IPythonScripts Reproducing Works, Training & Books 2018-11-18 https://github.com/mgroncki/IPythonScripts Tutorials about Quantitative Finance in Python and QuantLib: Pricing, xVAs, Hedging, Portfolio Optimisation, Machine Learning and Deep Learning. True False mgroncki/IPythonScripts
359 Computational-Finance-Course Reproducing Works, Training & Books 2023-01-03 https://github.com/LechGrzelak/Computational-Finance-Course Materials for the course of Computational Finance. True False LechGrzelak/Computational-Finance-Course
360 Machine-Learning-for-Asset-Managers Reproducing Works, Training & Books 2022-09-07 https://github.com/emoen/Machine-Learning-for-Asset-Managers Implementation of code snippets, exercises and application to live data from Machine Learning for Asset Managers (Elements in Quantitative Finance) written by Prof. Marcos López de Prado. True False emoen/Machine-Learning-for-Asset-Managers
361 Python-for-Finance-Cookbook Reproducing Works, Training & Books 2023-01-18 https://github.com/PacktPublishing/Python-for-Finance-Cookbook Python for Finance Cookbook, published by Packt. True False PacktPublishing/Python-for-Finance-Cookbook
362 modelos_vol_derivativos Reproducing Works, Training & Books 2023-08-19 https://github.com/ysaporito/modelos_vol_derivativos "Modelos de Volatilidade para Derivativos" book's Jupyter notebooks True False ysaporito/modelos_vol_derivativos
363 NMOF Reproducing Works, Training & Books 2023-12-29 https://github.com/enricoschumann/NMOF Functions, examples and data from the first and the second edition of "Numerical Methods and Optimization in Finance" by M. Gilli, D. Maringer and E. Schumann (2019, ISBN:978-0128150658). True False enricoschumann/NMOF
364 py4fi2nd Reproducing Works, Training & Books 2023-10-15 https://github.com/yhilpisch/py4fi2nd Jupyter Notebooks and code for Python for Finance (2nd ed., O'Reilly) by Yves Hilpisch. True False yhilpisch/py4fi2nd
365 aiif Reproducing Works, Training & Books 2023-10-09 https://github.com/yhilpisch/aiif Jupyter Notebooks and code for the book Artificial Intelligence in Finance (O'Reilly) by Yves Hilpisch. True False yhilpisch/aiif
366 py4at Reproducing Works, Training & Books 2023-10-09 https://github.com/yhilpisch/py4at Jupyter Notebooks and code for the book Python for Algorithmic Trading (O'Reilly) by Yves Hilpisch. True False yhilpisch/py4at
367 dawp Reproducing Works, Training & Books 2021-02-22 https://github.com/yhilpisch/dawp Jupyter Notebooks and code for Derivatives Analytics with Python (Wiley Finance) by Yves Hilpisch. True False yhilpisch/dawp
368 dx Reproducing Works, Training & Books 2020-12-17 https://github.com/yhilpisch/dx DX Analytics | Financial and Derivatives Analytics with Python. True False yhilpisch/dx
369 QuantFinanceBook Reproducing Works, Training & Books 2022-08-28 https://github.com/LechGrzelak/QuantFinanceBook Quantitative Finance book. True False LechGrzelak/QuantFinanceBook
370 rough_bergomi Reproducing Works, Training & Books 2018-09-17 https://github.com/ryanmccrickerd/rough_bergomi A Python implementation of the rough Bergomi model. True False ryanmccrickerd/rough_bergomi
371 frh-fx Reproducing Works, Training & Books 2018-05-24 https://github.com/ryanmccrickerd/frh-fx A python implementation of the fast-reversion Heston model of Mechkov for FX purposes. True False ryanmccrickerd/frh-fx
372 Value Investing Studies Reproducing Works, Training & Books 2021-10-26 https://github.com/euclidjda/value-investing-studies A collection of data analysis studies that examine the performance and characteristics of value investing over long periods of time. True False euclidjda/value-investing-studies
373 Machine Learning Asset Management Reproducing Works, Training & Books 2021-12-17 https://github.com/firmai/machine-learning-asset-management Machine Learning in Asset Management (by @firmai). True False firmai/machine-learning-asset-management
374 Deep Learning Machine Learning Stock Reproducing Works, Training & Books 2023-11-03 https://github.com/LastAncientOne/Deep-Learning-Machine-Learning-Stock Deep Learning and Machine Learning stocks represent a promising long-term or short-term opportunity for investors and traders. True False LastAncientOne/Deep-Learning-Machine-Learning-Stock
375 Technical Analysis and Feature Engineering Reproducing Works, Training & Books 2024-02-16 https://github.com/jo-cho/Technical_Analysis_and_Feature_Engineering Feature Engineering and Feature Importance of Machine Learning in Financial Market. True False jo-cho/Technical_Analysis_and_Feature_Engineering
376 Differential Machine Learning and Axes that matter by Brian Huge and Antoine Savine Reproducing Works, Training & Books 2022-10-05 https://github.com/differential-machine-learning/notebooks Implement, demonstrate, reproduce and extend the results of the Risk articles 'Differential Machine Learning' (2020) and 'PCA with a Difference' (2021) by Huge and Savine, and cover implementation details left out from the papers. True False differential-machine-learning/notebooks
377 systematictradingexamples Reproducing Works, Training & Books 2020-07-22 https://github.com/robcarver17/systematictradingexamples Examples of code related to book [Systematic Trading](www.systematictrading.org) and [blog](http://qoppac.blogspot.com) True False robcarver17/systematictradingexamples
378 pysystemtrade_examples Reproducing Works, Training & Books 2018-02-21 https://github.com/robcarver17/pysystemtrade_examples Examples using pysystemtrade for Robert Carver's [blog](http://qoppac.blogspot.com). True False robcarver17/pysystemtrade_examples
379 ML_Finance_Codes Reproducing Works, Training & Books 2020-06-13 https://github.com/mfrdixon/ML_Finance_Codes Machine Learning in Finance: From Theory to Practice Book True False mfrdixon/ML_Finance_Codes
380 Hands-On Machine Learning for Algorithmic Trading Reproducing Works, Training & Books 2023-01-18 https://github.com/packtpublishing/hands-on-machine-learning-for-algorithmic-trading Hands-On Machine Learning for Algorithmic Trading, published by Packt True False packtpublishing/hands-on-machine-learning-for-algorithmic-trading
381 financialnoob-misc Reproducing Works, Training & Books 2023-06-06 https://github.com/financialnoob/misc Codes from @financialnoob's posts True False financialnoob/misc
382 MesoSim Options Trading Strategy Library Reproducing Works, Training & Books 2023-11-24 https://github.com/deltaray-io/strategy-library Free and public Options Trading strategy library for MesoSim. True False deltaray-io/strategy-library
383 Quant-Finance-With-Python-Code Reproducing Works, Training & Books 2023-11-16 https://github.com/lingyixu/Quant-Finance-With-Python-Code Repo for code examples in Quantitative Finance with Python by Chris Kelliher True False lingyixu/Quant-Finance-With-Python-Code
384 QuantFinanceTraining Reproducing Works, Training & Books 2023-12-12 https://github.com/JoaoJungblut/QuantFinanceTraining This repository contains codes that were executed during my training in the CQF (Certificate in Quantitative Finance). The codes are organized by class, facilitating navigation and reference. True False JoaoJungblut/QuantFinanceTraining
385 Statistical-Learning-based-Portfolio-Optimization Reproducing Works, Training & Books 2023-11-27 https://github.com/YannickKae/Statistical-Learning-based-Portfolio-Optimization This R Shiny App utilizes the Hierarchical Equal Risk Contribution (HERC) approach, a modern portfolio optimization method developed by Raffinot (2018). True False YannickKae/Statistical-Learning-based-Portfolio-Optimization
+28
View File
@@ -0,0 +1,28 @@
---
title: "Projects"
format:
html:
df-print: kable
include-in-header:
- text: |
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7994446359957143"
crossorigin="anonymous"></script>
---
Compilation of projects providing access to the date of last commit or publication date.
```{r message=FALSE, warning=FALSE, echo=FALSE, table.cap="Projects"}
#| label: tbl-projects
#| tbl-cap: Projects
#| results: asis
library(tidyverse)
df <- readr::read_csv("projects.csv")
dt <- df |>
filter(!is.na(last_commit)) |>
mutate(project=paste0("<a href='", url, "'>", project, "</a>")) |>
select(project, section, last_commit) |>
arrange(desc(last_commit), section)
htmltools::tagList(DT::datatable(dt, list(pageLength = 50), escape = FALSE))
```