{"id":186454,"date":"2023-03-10T08:55:23","date_gmt":"2023-03-10T13:55:23","guid":{"rendered":"https:\/\/ibkrcampus.com\/?p=186454"},"modified":"2023-03-10T08:56:02","modified_gmt":"2023-03-10T13:56:02","slug":"collaborating-in-an-open-source-trading-project-part-i","status":"publish","type":"post","link":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/collaborating-in-an-open-source-trading-project-part-i\/","title":{"rendered":"Collaborating in an Open Source Trading Project &#8211; Part I"},"content":{"rendered":"\n<p>A must-have tool for any individual programmer or development team is version control software. In this post, we introduce you to&nbsp;<strong>Git\/Github<\/strong>&nbsp;to modify an open source project such as the&nbsp;<strong>Pyfolio<\/strong>&nbsp;library.<\/p>\n\n\n\n<p>Topics covered:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Scope<\/li>\n\n\n\n<li>An introduction to Pyfolio<\/li>\n\n\n\n<li>An introduction to Git and GitHub<\/li>\n\n\n\n<li>Getting the pyfolio source code<\/li>\n\n\n\n<li>Improving the pyfolio library<\/li>\n\n\n\n<li>Publishing the new functionality<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"scope\">Scope<\/h2>\n\n\n\n<p>One of the basic principles of software engineering is not to reinvent the wheel. Well developed pieces of software can be used over and over again in multiple projects.<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.quantinsti.com\/python-trading\/\">Python<\/a>&nbsp;and its ecosystem of&nbsp;<a href=\"https:\/\/blog.quantinsti.com\/python-trading-library\/\">open source libraries<\/a>&nbsp;allow us to build software using the work of countless development teams and individual programmers.<\/p>\n\n\n\n<p>Every Python project uses libraries in one way or another. These are nothing more than pieces of software that package classes and functions with specific functionalities such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Math<\/li>\n\n\n\n<li><a href=\"https:\/\/blog.quantinsti.com\/python-numpy-tutorial-installation-arrays-random-sampling\/\">Numpy<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.scipy.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Scipy<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.quantinsti.com\/python-matplotlib-tutorial\/\">Matplotlib<\/a>, etc.<\/li>\n<\/ul>\n\n\n\n<p>These libraries are generic and flexible enough to adapt to any software we are building and save us a lot of time by not having to implement from scratch the functionality that these libraries offer.<\/p>\n\n\n\n<p>In our trading environment, a recurring need for all projects is a performance analysis of our strategies. It would not make sense to code our statistics over and over again, so having a performance analysis library is a necessity.<\/p>\n\n\n\n<p>We can either build our own library that calculates:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Returns<\/li>\n\n\n\n<li>Standard deviation<\/li>\n\n\n\n<li><a href=\"https:\/\/blog.quantinsti.com\/sharpe-ratio-applications-algorithmic-trading\/\">Sharpe ratio<\/a><\/li>\n\n\n\n<li>Sortino ratio<\/li>\n\n\n\n<li>Skew<\/li>\n\n\n\n<li>Performance graphs<\/li>\n<\/ul>\n\n\n\n<p>and a myriad of performance parameters. Or we can use an existing library and improve it if possible, with our own performance indicators.<\/p>\n\n\n\n<p>In this post, we are going to modify an open-source and free software library&nbsp;pyfolio&nbsp;to adapt it to our needs and maybe our changes will be useful for the community. We will release our modification so that other developers can benefit from it. In the process, &nbsp;we will also learn how to use the Git\/GitHub tools to control changes and software versions.<\/p>\n\n\n\n<p>Pyfolio&nbsp;is distributed under Apache 2.0 license, which allows us to modify the code, distribute it and even commercialize it. However, it is worth reading the license agreement, at least one time in your life.<\/p>\n\n\n\n<p>Here we will not go into the many licenses under which open and\/or free source is distributed nor into the philosophy.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"an-introduction-to-pyfolio\">An introduction to Pyfolio<\/h2>\n\n\n\n<p>Pyfolio is a performance and risk analysis python library for financial portfolios developed by Quantopian Inc.<\/p>\n\n\n\n<p><em>Note: This company has&nbsp;<a href=\"https:\/\/www.bloomberg.com\/news\/articles\/2020-12-16\/quant-trading-platform-quantopian-closes-down\" target=\"_blank\" rel=\"noreferrer noopener\">stopped its operations<\/a>&nbsp;although their libraries are still alive on the Internet.<\/em><\/p>\n\n\n\n<p>Pyfolio is a comprehensive library that generates performance reports that cover the basic needs of any analyst quite well.<\/p>\n\n\n\n<p><strong>Outstanding features of Pyfolio:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Simple tear sheet:\n<ul class=\"wp-block-list\">\n<li>Summary performance statistics table:\n<ul class=\"wp-block-list\">\n<li>Annual return<\/li>\n\n\n\n<li>Cumulative returns<\/li>\n\n\n\n<li>Annual volatility<\/li>\n\n\n\n<li>Sharpe ratio<\/li>\n\n\n\n<li>Maximum drawdown<\/li>\n\n\n\n<li>Skew<\/li>\n\n\n\n<li>Kurtosis<\/li>\n\n\n\n<li>And many more key performance indicators.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Plots:\n<ul class=\"wp-block-list\">\n<li>Cumulative returns<\/li>\n\n\n\n<li>Rolling beta<\/li>\n\n\n\n<li>Rolling Sharpe<\/li>\n\n\n\n<li>Underwater<\/li>\n\n\n\n<li>And more<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Returns tear sheet\n<ul class=\"wp-block-list\">\n<li>Summary performance statistics table<\/li>\n\n\n\n<li>Plots:\n<ul class=\"wp-block-list\">\n<li>Rolling returns<\/li>\n\n\n\n<li>Rolling beta<\/li>\n\n\n\n<li>Rolling Sharpe<\/li>\n\n\n\n<li>Rolling Fama-French risk factors<\/li>\n\n\n\n<li>Drawdowns<\/li>\n\n\n\n<li>Underwater plot<\/li>\n\n\n\n<li>Monthly and annual return plots<\/li>\n\n\n\n<li>Daily similarity plots and&nbsp;<\/li>\n\n\n\n<li>Return quantile box plot<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Full tear sheet\n<ul class=\"wp-block-list\">\n<li>Summary performance statistics table<\/li>\n\n\n\n<li>Returns tear sheet<\/li>\n\n\n\n<li>Transactions tear sheet<\/li>\n\n\n\n<li>Round trip tear sheet<\/li>\n\n\n\n<li>Interesting times tear sheet<\/li>\n\n\n\n<li>Capacity tear sheet<\/li>\n\n\n\n<li>Performance attribute tear sheet<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>All these features make the Pyfolio library something to consider. The library is flexible enough to effectively cover a performance analysis of a strategy or portfolio.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"an-introduction-to-git-and-github\">An introduction to Git and GitHub<\/h2>\n\n\n\n<p><a href=\"https:\/\/github.com\/git-guides\" target=\"_blank\" rel=\"noreferrer noopener\">Git<\/a>&nbsp;is a distributed version and changes control software developed by Linus Torvalds and currently owned by Microsoft. It is a tool that allows controlling changes and versions in the software over time, with ease to recover the code in any of its previous states.<\/p>\n\n\n\n<p>It allows distributed development, where different teams of programmers can make changes and generate their own versions or contribute their work to the main version.<\/p>\n\n\n\n<p>Basically, Git is a code repository associated with each individual project that we update through commits.<\/p>\n\n\n\n<p><strong>Outstanding features of Git:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Branches are used to work on and modify the code without affecting the main version. They also allow us to initiate alternative developments, where the branch becomes a new library that, due to the scope of the changes and new functionality, requires a new independent version.<\/li>\n\n\n\n<li>Commit to save the code in a time point, a commit saves the work and adds an identification with a message in order to be able to recover this development state in the future.<\/li>\n\n\n\n<li>Merge to fuse different branches<\/li>\n\n\n\n<li>Rollbacks to revert changes at any point time saved through the commits.<\/li>\n<\/ul>\n\n\n\n<p>This functionality alone is enough to merit the attention of any individual developer and even more so for development teams working on the same project.<\/p>\n\n\n\n<p>The GitHub tool is nothing more than a Git server in the cloud that allows us to publish our Git repositories on the Internet so that any other developer can use the code or contribute with her own development.<\/p>\n\n\n\n<p>It also has a very interesting tool such as the ticket manager to manage bugs or improvements in the software and other tools to help in collaborative development.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><em>Stay tuned for part II to learn about getting the pyfolio source code.<\/em><\/p>\n\n\n\n<p><em>Originally posted on <a href=\"https:\/\/blog.quantinsti.com\/collaborating-open-source-trading-project\/\">QuantInsti<\/a> Blog. <\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this post, we introduce you to\u00a0Git\/Github\u00a0to modify an open source project such as the\u00a0Pyfolio\u00a0library.<\/p>\n","protected":false},"author":387,"featured_media":40540,"comment_status":"closed","ping_status":"open","sticky":true,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[339,343,349,338,350,341,351,352,344,2197],"tags":[5040,865,4659,1225,14897,11087],"contributors-categories":[13654],"class_list":{"0":"post-186454","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-data-science","8":"category-programing-languages","9":"category-python-development","10":"category-ibkr-quant-news","11":"category-quant-asia-pacific","12":"category-quant-development","13":"category-quant-europe","14":"category-quant-north-america","15":"category-quant-regions","16":"category-quant-south-america","17":"tag-git","18":"tag-github","19":"tag-matplotlib","20":"tag-numpy","21":"tag-pyfolio","22":"tag-scipy","23":"contributors-categories-quantinsti"},"pp_statuses_selecting_workflow":false,"pp_workflow_action":"current","pp_status_selection":"publish","acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Collaborating in an Open Source Trading Project &#8211; Part I<\/title>\n<meta name=\"description\" content=\"In this post, we introduce you to\u00a0Git\/Github\u00a0to modify an open source project such as the\u00a0Pyfolio\u00a0library.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.interactivebrokers.com\/campus\/wp-json\/wp\/v2\/posts\/186454\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Collaborating in an Open Source Trading Project - Part I | IBKR Campus US\" \/>\n<meta property=\"og:description\" content=\"In this post, we introduce you to\u00a0Git\/Github\u00a0to modify an open source project such as the\u00a0Pyfolio\u00a0library.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/collaborating-in-an-open-source-trading-project-part-i\/\" \/>\n<meta property=\"og:site_name\" content=\"IBKR Campus US\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-10T13:55:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-03-10T13:56:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2020\/04\/python-programming-keyboard.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"900\" \/>\n\t<meta property=\"og:image:height\" content=\"550\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Mario Pisa\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mario Pisa\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\n\t    \"@context\": \"https:\\\/\\\/schema.org\",\n\t    \"@graph\": [\n\t        {\n\t            \"@type\": \"NewsArticle\",\n\t            \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/collaborating-in-an-open-source-trading-project-part-i\\\/#article\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/collaborating-in-an-open-source-trading-project-part-i\\\/\"\n\t            },\n\t            \"author\": {\n\t                \"name\": \"Mario Pisa\",\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/person\\\/f2bfe36ae4f6f088b98f90558d37ed12\"\n\t            },\n\t            \"headline\": \"Collaborating in an Open Source Trading Project &#8211; Part I\",\n\t            \"datePublished\": \"2023-03-10T13:55:23+00:00\",\n\t            \"dateModified\": \"2023-03-10T13:56:02+00:00\",\n\t            \"mainEntityOfPage\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/collaborating-in-an-open-source-trading-project-part-i\\\/\"\n\t            },\n\t            \"wordCount\": 892,\n\t            \"publisher\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#organization\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/collaborating-in-an-open-source-trading-project-part-i\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2020\\\/04\\\/python-programming-keyboard.jpg\",\n\t            \"keywords\": [\n\t                \"Git\",\n\t                \"GitHub\",\n\t                \"Matplotlib\",\n\t                \"NumPy\",\n\t                \"Pyfolio\",\n\t                \"scipy\"\n\t            ],\n\t            \"articleSection\": [\n\t                \"Data Science\",\n\t                \"Programming Languages\",\n\t                \"Python Development\",\n\t                \"Quant\",\n\t                \"Quant Asia Pacific\",\n\t                \"Quant Development\",\n\t                \"Quant Europe\",\n\t                \"Quant North America\",\n\t                \"Quant Regions\",\n\t                \"Quant South America\"\n\t            ],\n\t            \"inLanguage\": \"en-US\"\n\t        },\n\t        {\n\t            \"@type\": \"WebPage\",\n\t            \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/collaborating-in-an-open-source-trading-project-part-i\\\/\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/collaborating-in-an-open-source-trading-project-part-i\\\/\",\n\t            \"name\": \"Collaborating in an Open Source Trading Project - Part I | IBKR Campus US\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#website\"\n\t            },\n\t            \"primaryImageOfPage\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/collaborating-in-an-open-source-trading-project-part-i\\\/#primaryimage\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/collaborating-in-an-open-source-trading-project-part-i\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2020\\\/04\\\/python-programming-keyboard.jpg\",\n\t            \"datePublished\": \"2023-03-10T13:55:23+00:00\",\n\t            \"dateModified\": \"2023-03-10T13:56:02+00:00\",\n\t            \"description\": \"In this post, we introduce you to\u00a0Git\\\/Github\u00a0to modify an open source project such as the\u00a0Pyfolio\u00a0library.\",\n\t            \"inLanguage\": \"en-US\",\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"ReadAction\",\n\t                    \"target\": [\n\t                        \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/collaborating-in-an-open-source-trading-project-part-i\\\/\"\n\t                    ]\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"ImageObject\",\n\t            \"inLanguage\": \"en-US\",\n\t            \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/collaborating-in-an-open-source-trading-project-part-i\\\/#primaryimage\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2020\\\/04\\\/python-programming-keyboard.jpg\",\n\t            \"contentUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2020\\\/04\\\/python-programming-keyboard.jpg\",\n\t            \"width\": 900,\n\t            \"height\": 550,\n\t            \"caption\": \"Python\"\n\t        },\n\t        {\n\t            \"@type\": \"WebSite\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#website\",\n\t            \"url\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/\",\n\t            \"name\": \"IBKR Campus US\",\n\t            \"description\": \"Financial Education from Interactive Brokers\",\n\t            \"publisher\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#organization\"\n\t            },\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"SearchAction\",\n\t                    \"target\": {\n\t                        \"@type\": \"EntryPoint\",\n\t                        \"urlTemplate\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/?s={search_term_string}\"\n\t                    },\n\t                    \"query-input\": {\n\t                        \"@type\": \"PropertyValueSpecification\",\n\t                        \"valueRequired\": true,\n\t                        \"valueName\": \"search_term_string\"\n\t                    }\n\t                }\n\t            ],\n\t            \"inLanguage\": \"en-US\"\n\t        },\n\t        {\n\t            \"@type\": \"Organization\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#organization\",\n\t            \"name\": \"Interactive Brokers\",\n\t            \"alternateName\": \"IBKR\",\n\t            \"url\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/\",\n\t            \"logo\": {\n\t                \"@type\": \"ImageObject\",\n\t                \"inLanguage\": \"en-US\",\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/logo\\\/image\\\/\",\n\t                \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/05\\\/ibkr-campus-logo.jpg\",\n\t                \"contentUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/05\\\/ibkr-campus-logo.jpg\",\n\t                \"width\": 669,\n\t                \"height\": 669,\n\t                \"caption\": \"Interactive Brokers\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/logo\\\/image\\\/\"\n\t            },\n\t            \"publishingPrinciples\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/about-ibkr-campus\\\/\",\n\t            \"ethicsPolicy\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/cyber-security-notice\\\/\"\n\t        },\n\t        {\n\t            \"@type\": \"Person\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/person\\\/f2bfe36ae4f6f088b98f90558d37ed12\",\n\t            \"name\": \"Mario Pisa\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/author\\\/mariopisa\\\/\"\n\t        }\n\t    ]\n\t}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Collaborating in an Open Source Trading Project &#8211; Part I","description":"In this post, we introduce you to\u00a0Git\/Github\u00a0to modify an open source project such as the\u00a0Pyfolio\u00a0library.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.interactivebrokers.com\/campus\/wp-json\/wp\/v2\/posts\/186454\/","og_locale":"en_US","og_type":"article","og_title":"Collaborating in an Open Source Trading Project - Part I | IBKR Campus US","og_description":"In this post, we introduce you to\u00a0Git\/Github\u00a0to modify an open source project such as the\u00a0Pyfolio\u00a0library.","og_url":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/collaborating-in-an-open-source-trading-project-part-i\/","og_site_name":"IBKR Campus US","article_published_time":"2023-03-10T13:55:23+00:00","article_modified_time":"2023-03-10T13:56:02+00:00","og_image":[{"width":900,"height":550,"url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2020\/04\/python-programming-keyboard.jpg","type":"image\/jpeg"}],"author":"Mario Pisa","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Mario Pisa","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/collaborating-in-an-open-source-trading-project-part-i\/#article","isPartOf":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/collaborating-in-an-open-source-trading-project-part-i\/"},"author":{"name":"Mario Pisa","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/person\/f2bfe36ae4f6f088b98f90558d37ed12"},"headline":"Collaborating in an Open Source Trading Project &#8211; Part I","datePublished":"2023-03-10T13:55:23+00:00","dateModified":"2023-03-10T13:56:02+00:00","mainEntityOfPage":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/collaborating-in-an-open-source-trading-project-part-i\/"},"wordCount":892,"publisher":{"@id":"https:\/\/ibkrcampus.com\/campus\/#organization"},"image":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/collaborating-in-an-open-source-trading-project-part-i\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2020\/04\/python-programming-keyboard.jpg","keywords":["Git","GitHub","Matplotlib","NumPy","Pyfolio","scipy"],"articleSection":["Data Science","Programming Languages","Python Development","Quant","Quant Asia Pacific","Quant Development","Quant Europe","Quant North America","Quant Regions","Quant South America"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/collaborating-in-an-open-source-trading-project-part-i\/","url":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/collaborating-in-an-open-source-trading-project-part-i\/","name":"Collaborating in an Open Source Trading Project - Part I | IBKR Campus US","isPartOf":{"@id":"https:\/\/ibkrcampus.com\/campus\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/collaborating-in-an-open-source-trading-project-part-i\/#primaryimage"},"image":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/collaborating-in-an-open-source-trading-project-part-i\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2020\/04\/python-programming-keyboard.jpg","datePublished":"2023-03-10T13:55:23+00:00","dateModified":"2023-03-10T13:56:02+00:00","description":"In this post, we introduce you to\u00a0Git\/Github\u00a0to modify an open source project such as the\u00a0Pyfolio\u00a0library.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/collaborating-in-an-open-source-trading-project-part-i\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/collaborating-in-an-open-source-trading-project-part-i\/#primaryimage","url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2020\/04\/python-programming-keyboard.jpg","contentUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2020\/04\/python-programming-keyboard.jpg","width":900,"height":550,"caption":"Python"},{"@type":"WebSite","@id":"https:\/\/ibkrcampus.com\/campus\/#website","url":"https:\/\/ibkrcampus.com\/campus\/","name":"IBKR Campus US","description":"Financial Education from Interactive Brokers","publisher":{"@id":"https:\/\/ibkrcampus.com\/campus\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ibkrcampus.com\/campus\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ibkrcampus.com\/campus\/#organization","name":"Interactive Brokers","alternateName":"IBKR","url":"https:\/\/ibkrcampus.com\/campus\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/logo\/image\/","url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/05\/ibkr-campus-logo.jpg","contentUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/05\/ibkr-campus-logo.jpg","width":669,"height":669,"caption":"Interactive Brokers"},"image":{"@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/logo\/image\/"},"publishingPrinciples":"https:\/\/www.interactivebrokers.com\/campus\/about-ibkr-campus\/","ethicsPolicy":"https:\/\/www.interactivebrokers.com\/campus\/cyber-security-notice\/"},{"@type":"Person","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/person\/f2bfe36ae4f6f088b98f90558d37ed12","name":"Mario Pisa","url":"https:\/\/www.interactivebrokers.com\/campus\/author\/mariopisa\/"}]}},"jetpack_featured_media_url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2020\/04\/python-programming-keyboard.jpg","_links":{"self":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts\/186454","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/users\/387"}],"replies":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/comments?post=186454"}],"version-history":[{"count":0,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts\/186454\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media\/40540"}],"wp:attachment":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media?parent=186454"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/categories?post=186454"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/tags?post=186454"},{"taxonomy":"contributors-categories","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/contributors-categories?post=186454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}