{"id":10833,"date":"2019-07-17T11:12:15","date_gmt":"2019-07-17T15:12:15","guid":{"rendered":"https:\/\/ibkrcampus.com\/?p=10833"},"modified":"2022-11-21T09:43:53","modified_gmt":"2022-11-21T14:43:53","slug":"momentum-quality-and-r-code","status":"publish","type":"post","link":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/momentum-quality-and-r-code\/","title":{"rendered":"Momentum, Quality, and R Code"},"content":{"rendered":"\n<p><em>The post <\/em><a href=\"https:\/\/alphaarchitect.com\/2019\/07\/11\/momentum-quality-and-r-code\/\"><em>Momentum, Quality, and R Code<\/em><\/a><em> first appeared on the Alpha Architect Blog.&nbsp; <\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Momentum Research with R<\/h3>\n\n\n\n<p>In a&nbsp;<a href=\"https:\/\/www.reproduciblefinance.com\/2019\/05\/22\/momentum-investing-with-r\/\">previous post<\/a>, we covered the steps for implementing a basic momentum investing strategy with R code. We covered quite a bit of code in that post and it\u2019s worth a look if momentum investing or algorithmic (fancy word for if\/else) logic is new to you (if R code is brand new, a good place to start is this&nbsp;<a href=\"https:\/\/www.reproduciblefinance.com\/2017\/09\/25\/asset-prices-to-log-returns\/\">post on calculating prices and returns with R<\/a>). Today, we\u2019re going to tackle a slightly different momentum project and focus on the idea of quality.<\/p>\n\n\n\n<p><em>Visit <\/em><a href=\"https:\/\/alphaarchitect.com\/2019\/07\/11\/momentum-quality-and-r-code\/\"><em>Alpha Architect<\/em><\/a><em> website to read more on the two methodologies referenced in this article:  <\/em><a href=\"https:\/\/alphaarchitect.com\/2019\/07\/11\/momentum-quality-and-r-code\/\"><em>Grinblatt and Moskowitz 2004<\/em><\/a><em>  and the measure of quality covered <\/em><a href=\"https:\/\/alphaarchitect.com\/2015\/11\/23\/frog-in-the-pan-identifying-the-highest-quality-momentum-stocks\/\"><em>here<\/em><\/a><em>. <\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Building Grinblatt and Moskowitz Momentum<\/h3>\n\n\n\n<p>Let\u2019s get to the R code, starting with methodology 1, wherein we determine whether at least 8 of the past 12 months showed a positive return. We\u2019re going to do things a bit differently from last time where we examined a momentum strategy that used SPY and EFA. Today, we\u2019ll work with SPY, XLF and XLE and try to compare the quality of their momentum signals. That means we\u2019ll need to calculate their monthly returns and their past 12-months\u2019 returns.<\/p>\n\n\n\n<p>We\u2019ll import daily prices, convert to monthly returns, and then create a new column called&nbsp;<code>skip_mon_return<\/code>&nbsp;that is the one month lagged returns. We do that because the most recent previous month might be a bit noisy or volatile, and leaves us at the mercy of the so-called&nbsp;<a href=\"https:\/\/alphaarchitect.com\/2017\/08\/30\/short-term-momentum-and-long-term-reversals-can-coexist\/\">short term reversal effect<\/a>.<\/p>\n\n\n\n<p>Let\u2019s start by loading our packages for today,<\/p>\n\n\n\n<p><code>library(tidyverse)<br> library(highcharter)<br> library(tibbletime)<br> library(tidyquant)<br> library(timetk)<br> library(riingo)<br> riingo_set_token(\"your token here\")<\/code><\/p>\n\n\n\n<p>Then we&#8217;ll import price data from tiingo, using the R package called riingo.<\/p>\n\n\n\n<p><code>symbols &lt;- <br>   c(\"SPY\", \"XLF\", \"XLE\")<\/code><\/p>\n\n\n\n<p><code>prices_daily &lt;-    symbols %&gt;% <br>   riingo_prices(., <br>                 start_date = \"2000-01-01\",<br>                 end_date = \"2018-12-31\") %&gt;%<br>   mutate(date = ymd(date)) %&gt;% <br>   group_by(ticker)<\/code><\/p>\n\n\n\n<p>Now let&#8217;s convert to monthly prices.<\/p>\n\n\n\n<p><code>prices_monthly &lt;- prices_daily %&gt;% <br>   tq_transmute(select = adjClose, <br>                         mutate_fun = to.monthly, <br>                         indexAt = \"lastof\") <\/code><\/p>\n\n\n\n<p>And finally, convert from monthly prices to monthly returns. We&#8217;ll also lag our returns and place the lagged values in a new column called &#8216;skip_mon_return&#8217;.<\/p>\n\n\n\n<p><code>prices_monthly %&gt;% <br>   mutate(mon_return =  ((adjClose \/ lag(adjClose)) - 1),<br>          skip_mon_return = lag(mon_return)) %&gt;% <br>   head()<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"821\" height=\"229\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2019\/07\/R-Data-Alpha-Regenstein.png\" alt=\"\" class=\"wp-image-10855 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/07\/R-Data-Alpha-Regenstein.png 821w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/07\/R-Data-Alpha-Regenstein-400x112.png 400w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/07\/R-Data-Alpha-Regenstein-800x223.png 800w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/07\/R-Data-Alpha-Regenstein-768x214.png 768w\" data-sizes=\"(max-width: 821px) 100vw, 821px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 821px; aspect-ratio: 821\/229;\" \/><figcaption>Alpha Architect &#8211; Jonathan Regenstein<\/figcaption><\/figure>\n\n\n\n<p>Have a quick peek at that data and notice how the&nbsp;<code>skip_mon_return<\/code>&nbsp;column is ignoring the previous month. For example, on March 31, 2001, we are not going to consider what happened from the end of February to the end of March, because there could be some weird stuff going on that\u2019s isn\u2019t going to last more than a few days. Instead, we\u2019ll look back to what happened during February as our first data point.<\/p>\n\n\n\n<p><em>In the next installment Jonathan Regenstein will show us how to calculate the 12-months cumulative return, but he\u2019ll lag that as well with<\/em> <code>lag(adjClose) \/ lag(adjClose, 12) - 1)<\/code>. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jonathan Regenstein tackles a momentum project and focuses on the idea of quality.<\/p>\n","protected":false},"author":198,"featured_media":5676,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[339,343,338,352,344,342],"tags":[851,2371,487,2373,508,2372,1044,1045,1046],"contributors-categories":[13651],"class_list":{"0":"post-10833","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-ibkr-quant-news","10":"category-quant-north-america","11":"category-quant-regions","12":"category-r-development","13":"tag-algo-trading","14":"tag-highcharter","15":"tag-r","16":"tag-riingo","17":"tag-rstudio","18":"tag-tibbletime","19":"tag-tidyquant","20":"tag-tidyverse","21":"tag-timetk","22":"contributors-categories-alpha-architect"},"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.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Momentum, Quality, and R Code | IBKR Quant<\/title>\n<meta name=\"description\" content=\"Jonathan Regenstein tackles a momentum project and focuses on the idea of quality\" \/>\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\/10833\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Momentum, Quality, and R Code | Jonathan Regenstein\" \/>\n<meta property=\"og:description\" content=\"Jonathan Regenstein tackles a momentum project and focuses on the idea of quality\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/momentum-quality-and-r-code\/\" \/>\n<meta property=\"og:site_name\" content=\"IBKR Campus US\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-17T15:12:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-21T14:43:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/05\/R-article.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"600\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jonathan Regenstein\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jonathan Regenstein\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 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\\\/momentum-quality-and-r-code\\\/#article\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/momentum-quality-and-r-code\\\/\"\n\t            },\n\t            \"author\": {\n\t                \"name\": \"Jonathan Regenstein\",\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/person\\\/9cd381f16f92f1f8cf23b43318d0561e\"\n\t            },\n\t            \"headline\": \"Momentum, Quality, and R Code\",\n\t            \"datePublished\": \"2019-07-17T15:12:15+00:00\",\n\t            \"dateModified\": \"2022-11-21T14:43:53+00:00\",\n\t            \"mainEntityOfPage\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/momentum-quality-and-r-code\\\/\"\n\t            },\n\t            \"wordCount\": 444,\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\\\/momentum-quality-and-r-code\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2019\\\/05\\\/R-article.jpg\",\n\t            \"keywords\": [\n\t                \"Algo Trading\",\n\t                \"highcharter\",\n\t                \"R\",\n\t                \"riingo\",\n\t                \"RStudio\",\n\t                \"tibbletime\",\n\t                \"tidyquant\",\n\t                \"tidyverse\",\n\t                \"timetk\"\n\t            ],\n\t            \"articleSection\": [\n\t                \"Data Science\",\n\t                \"Programming Languages\",\n\t                \"Quant\",\n\t                \"Quant North America\",\n\t                \"Quant Regions\",\n\t                \"R Development\"\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\\\/momentum-quality-and-r-code\\\/\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/momentum-quality-and-r-code\\\/\",\n\t            \"name\": \"Momentum, Quality, and R Code | Jonathan Regenstein\",\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\\\/momentum-quality-and-r-code\\\/#primaryimage\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/momentum-quality-and-r-code\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2019\\\/05\\\/R-article.jpg\",\n\t            \"datePublished\": \"2019-07-17T15:12:15+00:00\",\n\t            \"dateModified\": \"2022-11-21T14:43:53+00:00\",\n\t            \"description\": \"Jonathan Regenstein tackles a momentum project and focuses on the idea of quality\",\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\\\/momentum-quality-and-r-code\\\/\"\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\\\/momentum-quality-and-r-code\\\/#primaryimage\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2019\\\/05\\\/R-article.jpg\",\n\t            \"contentUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2019\\\/05\\\/R-article.jpg\",\n\t            \"width\": 600,\n\t            \"height\": 300,\n\t            \"caption\": \"R Programming\"\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\\\/9cd381f16f92f1f8cf23b43318d0561e\",\n\t            \"name\": \"Jonathan Regenstein\",\n\t            \"description\": \"Jonathan Regenstein - Reproducible Finance by way of Alpha Architect\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/author\\\/jonathanregenstein\\\/\"\n\t        }\n\t    ]\n\t}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Momentum, Quality, and R Code | IBKR Quant","description":"Jonathan Regenstein tackles a momentum project and focuses on the idea of quality","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\/10833\/","og_locale":"en_US","og_type":"article","og_title":"Momentum, Quality, and R Code | Jonathan Regenstein","og_description":"Jonathan Regenstein tackles a momentum project and focuses on the idea of quality","og_url":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/momentum-quality-and-r-code\/","og_site_name":"IBKR Campus US","article_published_time":"2019-07-17T15:12:15+00:00","article_modified_time":"2022-11-21T14:43:53+00:00","og_image":[{"width":600,"height":300,"url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/05\/R-article.jpg","type":"image\/jpeg"}],"author":"Jonathan Regenstein","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jonathan Regenstein","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/momentum-quality-and-r-code\/#article","isPartOf":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/momentum-quality-and-r-code\/"},"author":{"name":"Jonathan Regenstein","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/person\/9cd381f16f92f1f8cf23b43318d0561e"},"headline":"Momentum, Quality, and R Code","datePublished":"2019-07-17T15:12:15+00:00","dateModified":"2022-11-21T14:43:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/momentum-quality-and-r-code\/"},"wordCount":444,"publisher":{"@id":"https:\/\/ibkrcampus.com\/campus\/#organization"},"image":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/momentum-quality-and-r-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/05\/R-article.jpg","keywords":["Algo Trading","highcharter","R","riingo","RStudio","tibbletime","tidyquant","tidyverse","timetk"],"articleSection":["Data Science","Programming Languages","Quant","Quant North America","Quant Regions","R Development"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/momentum-quality-and-r-code\/","url":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/momentum-quality-and-r-code\/","name":"Momentum, Quality, and R Code | Jonathan Regenstein","isPartOf":{"@id":"https:\/\/ibkrcampus.com\/campus\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/momentum-quality-and-r-code\/#primaryimage"},"image":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/momentum-quality-and-r-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/05\/R-article.jpg","datePublished":"2019-07-17T15:12:15+00:00","dateModified":"2022-11-21T14:43:53+00:00","description":"Jonathan Regenstein tackles a momentum project and focuses on the idea of quality","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/momentum-quality-and-r-code\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/momentum-quality-and-r-code\/#primaryimage","url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/05\/R-article.jpg","contentUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/05\/R-article.jpg","width":600,"height":300,"caption":"R Programming"},{"@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\/9cd381f16f92f1f8cf23b43318d0561e","name":"Jonathan Regenstein","description":"Jonathan Regenstein - Reproducible Finance by way of Alpha Architect","url":"https:\/\/www.interactivebrokers.com\/campus\/author\/jonathanregenstein\/"}]}},"jetpack_featured_media_url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/05\/R-article.jpg","_links":{"self":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts\/10833","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\/198"}],"replies":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/comments?post=10833"}],"version-history":[{"count":0,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts\/10833\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media\/5676"}],"wp:attachment":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media?parent=10833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/categories?post=10833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/tags?post=10833"},{"taxonomy":"contributors-categories","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/contributors-categories?post=10833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}