{"id":3547,"date":"2018-03-20T10:01:21","date_gmt":"2018-03-20T10:01:21","guid":{"rendered":"http:\/\/joapen.com\/blog\/?p=3547"},"modified":"2018-03-20T10:01:21","modified_gmt":"2018-03-20T10:01:21","slug":"quantopian-concepts","status":"publish","type":"post","link":"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/","title":{"rendered":"Quantopian concepts"},"content":{"rendered":"<p>I have invested some hours learning about Quantopian environment and the basic concepts around the platform. The environment is very powerful, so I wanted to gain some basic clarity of the <a href=\"https:\/\/www.quantopian.com\/tutorials\/getting-started#lesson1\">basis<\/a>.<\/p>\n<h1>Quantopian platform<\/h1>\n<p>It consists of several linked components, where the main ones are:<\/p>\n<ul>\n<li><span style=\"text-decoration: underline;\">Quantopian Research platform<\/span>\u00a0is an IPython notebook used for research and data analysis during algorithm creation. It is also used for analyzing the past performance of algorithms.<\/li>\n<li><span style=\"text-decoration: underline;\">The IDE<\/span>\u00a0 is used for writing algorithms and kicking off backtests using historical data.<\/li>\n<li><span style=\"text-decoration: underline;\">Paper trading ability<\/span>, so you can perform simulations using live data.<\/li>\n<li><span style=\"text-decoration: underline;\">Alphalens<\/span> is a Python package for performance analysis of alpha factors which can be used to create cross-sectional equity algorithms.<\/li>\n<li><span style=\"text-decoration: underline;\">Alpha factors<\/span> express a predictive relationship between some given set of information and future returns.<\/li>\n<li>help:\u00a0<a href=\"https:\/\/www.quantopian.com\/help#optimize-title\">https:\/\/www.quantopian.com\/help#optimize-title<\/a><\/li>\n<\/ul>\n<h1>The workflow<\/h1>\n<p>To maximize the use of Quantopian is important to understand how to work on the different steps to achieve your goals.<\/p>\n<p>The basis are the same ones that the ones explained on this <a href=\"http:\/\/joapen.com\/blog\/2018\/03\/09\/understanding-machine-learning\/\">post<\/a>, and that are represented by this diagram:<\/p>\n<p><a href=\"http:\/\/joapen.com\/blog\/2018\/03\/09\/understanding-machine-learning\/machine-learning-steps\/\" rel=\"attachment wp-att-3513\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3513\" src=\"http:\/\/joapen.com\/blog\/wp-content\/uploads\/2018\/03\/Machine-Learning-steps-277x300.jpg\" alt=\"\" width=\"277\" height=\"300\" srcset=\"http:\/\/joapen.com\/blog\/wp-content\/uploads\/2018\/03\/Machine-Learning-steps-277x300.jpg 277w, http:\/\/joapen.com\/blog\/wp-content\/uploads\/2018\/03\/Machine-Learning-steps.jpg 540w\" sizes=\"auto, (max-width: 277px) 100vw, 277px\" \/><\/a><\/p>\n<p>I did not found a diagram in any place, so I draw my own diagram.<\/p>\n<p><a href=\"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/quantopian-workflow\/\" rel=\"attachment wp-att-3550\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3550\" src=\"http:\/\/joapen.com\/blog\/wp-content\/uploads\/2018\/03\/Quantopian-workflow.jpg\" alt=\"\" width=\"1174\" height=\"569\" srcset=\"http:\/\/joapen.com\/blog\/wp-content\/uploads\/2018\/03\/Quantopian-workflow.jpg 1174w, http:\/\/joapen.com\/blog\/wp-content\/uploads\/2018\/03\/Quantopian-workflow-300x145.jpg 300w, http:\/\/joapen.com\/blog\/wp-content\/uploads\/2018\/03\/Quantopian-workflow-768x372.jpg 768w, http:\/\/joapen.com\/blog\/wp-content\/uploads\/2018\/03\/Quantopian-workflow-1024x496.jpg 1024w, http:\/\/joapen.com\/blog\/wp-content\/uploads\/2018\/03\/Quantopian-workflow-500x242.jpg 500w\" sizes=\"auto, (max-width: 1174px) 100vw, 1174px\" \/><\/a><\/p>\n<h1>Workflow, step by step<\/h1>\n<p><strong><span style=\"text-decoration: underline;\">1.Universe Selection<\/span><\/strong>: define a subset of tradeable values (stocks\/futures); the universe should be broad but have some degree of self similarity to enable extraction of relative value. It should also eliminate hard to trade or prohibited instruments. (Example: select companies with &gt;10B$ revenue and dividend rate &gt;3%).<\/p>\n<p>This is done throught the object named &#8220;Pipeline&#8221;. The idea is not to limit yourself to a set of specific stocks but define a pipeline of stocks that allow you to quickly and efficiently consider many thousands of companies.<\/p>\n<p>Pipeline allows you to address all companies, then filter them.<\/p>\n<p><strong><span style=\"text-decoration: underline;\">2.Single Alpha Factor Modeling<\/span><\/strong>:<\/p>\n<p>Initially these 4 words together sounds like chinese to me. So I will try to explain as I understood it: it&#8217;s a model composed by a single factor that tries to find a result that has statistical significance (alpha factor).<\/p>\n<p>Not enough?, Ok, I will try to explain some concepts.<\/p>\n<p>First, I need to review some basis of statistics.<\/p>\n<h2>What is an alpha factor?<\/h2>\n<p>In statistical hypothesis testing, a result has statistical significance when it is very unlikely that it has occurred randomly.\u00a0The level of significance is commonly represented by the Greek symbol \u03b1 (alpha). The significance levels of 0.05, 0.01 and 0.001 are common.<\/p>\n<h2>What is a factor model?<\/h2>\n<p>A model in quantopian is composed by a set of factors; usually it should include:<\/p>\n<ul>\n<li>a factor for the market,<\/li>\n<li>one or two factors for value\/pricing,<\/li>\n<li>and maybe a factor for momentum.<\/li>\n<\/ul>\n<p>Now let&#8217;s come back to <strong><span style=\"text-decoration: underline;\">Quantopian Single Alpha factor Modeling<\/span><\/strong>.<\/p>\n<p>It is basically to define and evaluate individual expressions which rank the cross section of equities in your universe. By applying this relationship to multiple stocks we can hope to generate an alpha signal and trade off of it.<\/p>\n<p>This can be done in 2 ways:<\/p>\n<ul>\n<li>Manually: Hand crafted alphas. By the moment I will start with this method.<\/li>\n<li>Deep Learning: alphas are learned directly, instead of defined by hand (Long-short term memory (LSTM), 1D convolutional nets). I will let this method for later.<\/li>\n<\/ul>\n<p>Notes:<\/p>\n<ul>\n<li>Developing a good alpha signal is challenging (for instance: detect an earning surprise before the formal announcement based on sentiment data).<\/li>\n<li>It&#8217;s important to have a scientific mindset when doing this exercise.<\/li>\n<\/ul>\n<p>By being able to analyze your factors in IPython Notebook you can spend less time writing and running global back-tests. It also enables you to annotate assumptions and analyze potential bias.<\/p>\n<p>This is in deed the main function of <a href=\"https:\/\/www.quantopian.com\/posts\/alphalens-a-new-tool-for-analyzing-alpha-factors\">Alphalens python package<\/a>: to surface the most relevant statistics and plots about a single alpha factor. This information can tell you if the alpha factor you found is predictive. These statistics cover:<\/p>\n<ul>\n<li>Returns Analysis.<\/li>\n<li>Information Coefficient Analysis.<\/li>\n<li>Turnover Analysis.<\/li>\n<li>Sector Analysis.<\/li>\n<\/ul>\n<p><strong><span style=\"text-decoration: underline;\">3.Alpha Combination<\/span><\/strong>: you basically combine many single alphas into a final alpha which has stronger prediction power than the best single alpha. Two examples about how to do it:<\/p>\n<ul>\n<li>Classifier (E.g.: SVM, random forest).<\/li>\n<li>Deep Learning: alphas are learned directly, instead of defined by hand (Long-short term memory (LSTM), 1D convolutional nets).<\/li>\n<\/ul>\n<p>For simplification I have started just with 1 alpha factor, so I am right now skiping this step.<\/p>\n<p><strong><span style=\"text-decoration: underline;\">4.Portfolio Construction<\/span><\/strong>: implement a process which takes your final combined alpha and your risk model and produces a target portfolio that minimizes risk under your model. The natural steps to perform it are:<\/p>\n<ul>\n<li><span style=\"text-decoration: underline;\">Define objective<\/span>: what you want to maximize.<\/li>\n<li><span style=\"text-decoration: underline;\">Define constrains<\/span>: such leverage, turnover, position size\u2026<\/li>\n<li><span style=\"text-decoration: underline;\">Define risk model<\/span>: define and calculate the set of risk factors you want to use to constrain your portfolio.<\/li>\n<\/ul>\n<p><strong><span style=\"text-decoration: underline;\">5.Execution<\/span><\/strong>: implement a trading process to transition the current portfolio (if any) to the target portfolio.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have invested some hours learning about Quantopian environment and the basic concepts around the platform. The environment is very powerful, so I wanted to gain some basic clarity of the basis. Quantopian platform It consists of several linked components, where the main ones are: Quantopian Research platform\u00a0is an IPython notebook used for research and &#8230; <a title=\"Quantopian concepts\" class=\"read-more\" href=\"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/\" aria-label=\"Read more about Quantopian concepts\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[105],"tags":[155,154,156,124],"class_list":["post-3547","post","type-post","status-publish","format-standard","hentry","category-trading","tag-back-test","tag-quantopian","tag-statistics","tag-trading"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Quantopian concepts -<\/title>\n<meta name=\"description\" content=\"I have invested some hours learning about Quantopian environment and the basic concepts around the platform. The environment is very powerful, so I wanted - joapen projects\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Quantopian concepts -\" \/>\n<meta property=\"og:description\" content=\"I have invested some hours learning about Quantopian environment and the basic concepts around the platform. The environment is very powerful, so I wanted - joapen projects\" \/>\n<meta property=\"og:url\" content=\"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/\" \/>\n<meta property=\"og:site_name\" content=\"joapen projects\" \/>\n<meta property=\"article:published_time\" content=\"2018-03-20T10:01:21+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/joapen.com\/blog\/wp-content\/uploads\/2018\/03\/Machine-Learning-steps-277x300.jpg\" \/>\n<meta name=\"author\" content=\"joapen\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"joapen\" \/>\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\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\\\/\\\/joapen.com\\\/blog\\\/2018\\\/03\\\/20\\\/quantopian-concepts\\\/#article\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/joapen.com\\\/blog\\\/2018\\\/03\\\/20\\\/quantopian-concepts\\\/\"},\"author\":{\"name\":\"joapen\",\"@id\":\"http:\\\/\\\/joapen.com\\\/blog\\\/#\\\/schema\\\/person\\\/23919df2312175fe9c4609203595b217\"},\"headline\":\"Quantopian concepts\",\"datePublished\":\"2018-03-20T10:01:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/joapen.com\\\/blog\\\/2018\\\/03\\\/20\\\/quantopian-concepts\\\/\"},\"wordCount\":805,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\\\/\\\/joapen.com\\\/blog\\\/#\\\/schema\\\/person\\\/23919df2312175fe9c4609203595b217\"},\"image\":{\"@id\":\"http:\\\/\\\/joapen.com\\\/blog\\\/2018\\\/03\\\/20\\\/quantopian-concepts\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/joapen.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/03\\\/Machine-Learning-steps-277x300.jpg\",\"keywords\":[\"back test\",\"Quantopian\",\"statistics\",\"trading\"],\"articleSection\":[\"Trading\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\\\/\\\/joapen.com\\\/blog\\\/2018\\\/03\\\/20\\\/quantopian-concepts\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/joapen.com\\\/blog\\\/2018\\\/03\\\/20\\\/quantopian-concepts\\\/\",\"url\":\"http:\\\/\\\/joapen.com\\\/blog\\\/2018\\\/03\\\/20\\\/quantopian-concepts\\\/\",\"name\":\"Quantopian concepts -\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/joapen.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\\\/\\\/joapen.com\\\/blog\\\/2018\\\/03\\\/20\\\/quantopian-concepts\\\/#primaryimage\"},\"image\":{\"@id\":\"http:\\\/\\\/joapen.com\\\/blog\\\/2018\\\/03\\\/20\\\/quantopian-concepts\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/joapen.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/03\\\/Machine-Learning-steps-277x300.jpg\",\"datePublished\":\"2018-03-20T10:01:21+00:00\",\"description\":\"I have invested some hours learning about Quantopian environment and the basic concepts around the platform. The environment is very powerful, so I wanted - joapen projects\",\"breadcrumb\":{\"@id\":\"http:\\\/\\\/joapen.com\\\/blog\\\/2018\\\/03\\\/20\\\/quantopian-concepts\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\\\/\\\/joapen.com\\\/blog\\\/2018\\\/03\\\/20\\\/quantopian-concepts\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\\\/\\\/joapen.com\\\/blog\\\/2018\\\/03\\\/20\\\/quantopian-concepts\\\/#primaryimage\",\"url\":\"http:\\\/\\\/joapen.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/03\\\/Machine-Learning-steps.jpg\",\"contentUrl\":\"http:\\\/\\\/joapen.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/03\\\/Machine-Learning-steps.jpg\",\"width\":540,\"height\":585},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\\\/\\\/joapen.com\\\/blog\\\/2018\\\/03\\\/20\\\/quantopian-concepts\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\\\/\\\/joapen.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Quantopian concepts\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/joapen.com\\\/blog\\\/#website\",\"url\":\"http:\\\/\\\/joapen.com\\\/blog\\\/\",\"name\":\"joapen projects\",\"description\":\"Just a place to write\",\"publisher\":{\"@id\":\"http:\\\/\\\/joapen.com\\\/blog\\\/#\\\/schema\\\/person\\\/23919df2312175fe9c4609203595b217\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\\\/\\\/joapen.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"http:\\\/\\\/joapen.com\\\/blog\\\/#\\\/schema\\\/person\\\/23919df2312175fe9c4609203595b217\",\"name\":\"joapen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/joapen.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/joapen-mini.jpeg\",\"url\":\"https:\\\/\\\/joapen.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/joapen-mini.jpeg\",\"contentUrl\":\"https:\\\/\\\/joapen.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/joapen-mini.jpeg\",\"width\":400,\"height\":400,\"caption\":\"joapen\"},\"logo\":{\"@id\":\"https:\\\/\\\/joapen.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/joapen-mini.jpeg\"},\"sameAs\":[\"http:\\\/\\\/www.joapen.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Quantopian concepts -","description":"I have invested some hours learning about Quantopian environment and the basic concepts around the platform. The environment is very powerful, so I wanted - joapen projects","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":"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/","og_locale":"en_US","og_type":"article","og_title":"Quantopian concepts -","og_description":"I have invested some hours learning about Quantopian environment and the basic concepts around the platform. The environment is very powerful, so I wanted - joapen projects","og_url":"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/","og_site_name":"joapen projects","article_published_time":"2018-03-20T10:01:21+00:00","og_image":[{"url":"http:\/\/joapen.com\/blog\/wp-content\/uploads\/2018\/03\/Machine-Learning-steps-277x300.jpg","type":"","width":"","height":""}],"author":"joapen","twitter_misc":{"Written by":"joapen","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/#article","isPartOf":{"@id":"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/"},"author":{"name":"joapen","@id":"http:\/\/joapen.com\/blog\/#\/schema\/person\/23919df2312175fe9c4609203595b217"},"headline":"Quantopian concepts","datePublished":"2018-03-20T10:01:21+00:00","mainEntityOfPage":{"@id":"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/"},"wordCount":805,"commentCount":0,"publisher":{"@id":"http:\/\/joapen.com\/blog\/#\/schema\/person\/23919df2312175fe9c4609203595b217"},"image":{"@id":"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/#primaryimage"},"thumbnailUrl":"http:\/\/joapen.com\/blog\/wp-content\/uploads\/2018\/03\/Machine-Learning-steps-277x300.jpg","keywords":["back test","Quantopian","statistics","trading"],"articleSection":["Trading"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/","url":"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/","name":"Quantopian concepts -","isPartOf":{"@id":"http:\/\/joapen.com\/blog\/#website"},"primaryImageOfPage":{"@id":"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/#primaryimage"},"image":{"@id":"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/#primaryimage"},"thumbnailUrl":"http:\/\/joapen.com\/blog\/wp-content\/uploads\/2018\/03\/Machine-Learning-steps-277x300.jpg","datePublished":"2018-03-20T10:01:21+00:00","description":"I have invested some hours learning about Quantopian environment and the basic concepts around the platform. The environment is very powerful, so I wanted - joapen projects","breadcrumb":{"@id":"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/#primaryimage","url":"http:\/\/joapen.com\/blog\/wp-content\/uploads\/2018\/03\/Machine-Learning-steps.jpg","contentUrl":"http:\/\/joapen.com\/blog\/wp-content\/uploads\/2018\/03\/Machine-Learning-steps.jpg","width":540,"height":585},{"@type":"BreadcrumbList","@id":"http:\/\/joapen.com\/blog\/2018\/03\/20\/quantopian-concepts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/joapen.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Quantopian concepts"}]},{"@type":"WebSite","@id":"http:\/\/joapen.com\/blog\/#website","url":"http:\/\/joapen.com\/blog\/","name":"joapen projects","description":"Just a place to write","publisher":{"@id":"http:\/\/joapen.com\/blog\/#\/schema\/person\/23919df2312175fe9c4609203595b217"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/joapen.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"http:\/\/joapen.com\/blog\/#\/schema\/person\/23919df2312175fe9c4609203595b217","name":"joapen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/joapen.com\/blog\/wp-content\/uploads\/2021\/04\/joapen-mini.jpeg","url":"https:\/\/joapen.com\/blog\/wp-content\/uploads\/2021\/04\/joapen-mini.jpeg","contentUrl":"https:\/\/joapen.com\/blog\/wp-content\/uploads\/2021\/04\/joapen-mini.jpeg","width":400,"height":400,"caption":"joapen"},"logo":{"@id":"https:\/\/joapen.com\/blog\/wp-content\/uploads\/2021\/04\/joapen-mini.jpeg"},"sameAs":["http:\/\/www.joapen.com"]}]}},"_links":{"self":[{"href":"http:\/\/joapen.com\/blog\/wp-json\/wp\/v2\/posts\/3547","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/joapen.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/joapen.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/joapen.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/joapen.com\/blog\/wp-json\/wp\/v2\/comments?post=3547"}],"version-history":[{"count":6,"href":"http:\/\/joapen.com\/blog\/wp-json\/wp\/v2\/posts\/3547\/revisions"}],"predecessor-version":[{"id":3556,"href":"http:\/\/joapen.com\/blog\/wp-json\/wp\/v2\/posts\/3547\/revisions\/3556"}],"wp:attachment":[{"href":"http:\/\/joapen.com\/blog\/wp-json\/wp\/v2\/media?parent=3547"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/joapen.com\/blog\/wp-json\/wp\/v2\/categories?post=3547"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/joapen.com\/blog\/wp-json\/wp\/v2\/tags?post=3547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}