{"id":564,"date":"2022-09-01T13:14:02","date_gmt":"2022-09-01T13:14:02","guid":{"rendered":"https:\/\/eodhd.com\/financial-academy\/?p=564"},"modified":"2025-02-05T13:51:37","modified_gmt":"2025-02-05T13:51:37","slug":"stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library","status":"publish","type":"post","link":"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library","title":{"rendered":"Stocks Market Technical Analysis with EODHD APIs Python Financial Library"},"content":{"rendered":"\n<p>This guide is beginning straight with the <strong>Stocks Technical Analysis in Python<\/strong> without Library&#8217;s basics acquaintance and introduction.<\/p>\n\n\n\n<p class=\"bordered_paragraph\">If you want to learn how to install the <a href=\"https:\/\/github.com\/EodHistoricalData\/EODHD-APIs-Python-Financial-Library\">EODHD APIs Python Financial Official Library<\/a> and activate your API key, we recommend to start with exploring of our <a href=\"https:\/\/eodhistoricaldata.com\/financial-apis\/python-financial-libraries-and-code-samples\/#EODHD_APIs_Python_Financial_Library_by_Michael_Whittle\">Documentation for it<\/a>.<br><br>If you are alredy familiar with the first steps and searching for how to get tickers prices (End-of-Day, Intraday and Real-time) directly into the Python environment for the Technical Analysis, then we suggest to explore the guide &#8220;<a href=\"https:\/\/eodhistoricaldata.com\/financial-academy\/get-financial-data-samples\/download-eod-intraday-and-real-time-prices-for-any-cryptocurrency-with-python-simply\/\">Download EOD, Intraday and Real-time prices for any Cryptocurrency with Python simply<\/a>&#8220;<\/p>\n\n\n\n<p class=\"has-text-align-center\"><a class=\"maxbutton-1 maxbutton maxbutton-subscribe-to-api external-css btn\" href=\"https:\/\/eodhd.com\/register\"><span class='mb-text'>Register &amp; Get Data<\/span><\/a><\/p>\n\n\n\n<p>Let\u2019s start by creating ourselves a Pandas dataframe containing Apple daily data.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code lang=\"python\" class=\"language-python\">df = api.get_historical_data(\"AAPL\", \"1d\")<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/eodhistoricaldata.com\/financial-academy\/wp-content\/uploads\/2022\/09\/Google-Colab-Notebook-get-historical-data.png\" alt=\"Google Colab Notebook get historical data\" class=\"wp-image-580\" title=\"Google Colab Notebook get historical data\"\/><figcaption class=\"wp-element-caption\">Google Colab Notebook<\/figcaption><\/figure>\n\n\n\n<p>There is this great Python library called \u201c<strong><a href=\"https:\/\/github.com\/twopirllc\/pandas-ta\" target=\"_blank\" rel=\"noreferrer noopener\">pandas-ta<\/a><\/strong>\u201d. It provides many technical indicators and candlestick patterns to use on our data.<\/p>\n\n\n\n<p>First, you will want to install \u201c<a href=\"https:\/\/github.com\/twopirllc\/pandas-ta\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>pandas-ta<\/strong><\/a>\u201d.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code lang=\"python\" class=\"language-python\">python3 -m pip install pandas_ta<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p>Then, we will want to import it as \u201c<strong>ta<\/strong>\u201d.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code lang=\"python\" class=\"language-python\">import pandas_ta as ta<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p>I\u2019ll then apply two moving averages to our data, which will be EMA12 and EMA26. A Simple Moving Average (SMA) is a rolling average of closing prices using a defined period. An Exponential Moving Average (EMA) is similar the Simple Moving Average (SMA) except it\u2019s weighted to give more recent data higher importance.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code lang=\"python\" class=\"language-python\">df[\"ema12\"] = ta.ema(df[\"close\"], length=12, fillna=df.close)\ndf[\"ema26\"] = ta.ema(df[\"close\"], length=26, fillna=df.close)<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/eodhistoricaldata.com\/financial-academy\/wp-content\/uploads\/2022\/09\/Google-Colab-Notebook-EMA12-and-EMA26.png\" alt=\"Google Colab Notebook EMA12 and EMA26\" class=\"wp-image-587\" style=\"width:840px;height:427px\" title=\"Google Colab Notebook EMA12 and EMA26\"\/><figcaption class=\"wp-element-caption\">Google Colab Notebook<\/figcaption><\/figure>\n\n\n\n<p>You will see our EMA12 and EMA26 added as new columns. These two moving averages on their own don\u2019t really tell us very much individually. What we are really interested in is when the faster moving average crosses above the slower moving average and visa versa.<\/p>\n\n\n\n<p>This is the code that will do it for us. I\u2019ve included comments to explain what each line does.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code lang=\"python\" class=\"language-python\"><strong># column \"ema12gtema26\" will be true when \"ema12\" &gt; \"ema26\"<\/strong>\ndf[\"ema12gtema26\"] = df.ema12 &gt; df.ema26\n\n<strong># column \"ema12gtema26co\" will be true when \n# \"ema12\" crosses above the \"ema26\"<\/strong>\ndf[\"ema12gtema26co\"] = df.ema12gtema26.ne(df.ema12gtema26.shift())\n\n<strong># column \"ema12gtema26co\" will use a default value of 0<\/strong>\ndf.loc[df[\"ema12gtema26\"] == 0, \"ema12gtema26co\"] = 0\n\n<strong># column \"ema12ltema26\" will be true when \"ema12\" &lt; \"ema26\"<\/strong>\ndf[\"ema12ltema26\"] = df.ema12 &lt; df.ema26\n\n<strong># column \"ema12ltema26co\" will be true when \n# \"ema12\" crosses below the \"ema26\"<\/strong>\ndf[\"ema12ltema26co\"] = df.ema12ltema26.ne(df.ema12ltema26.shift())\n\n<strong># column \"ema12ltema26\" will use a default value of 0<\/strong>\ndf.loc[df[\"ema12ltema26\"] == 0, \"ema12ltema26co\"] = 0\n\n<strong># our new columns will be binary 0 or 1 instead of True or False<\/strong>\ndf[\"ema12gtema26\"] = df[\"ema12gtema26\"].astype(int)\ndf[\"ema12gtema26co\"] = df[\"ema12gtema26co\"].astype(int)\ndf[\"ema12ltema26\"] = df[\"ema12ltema26\"].astype(int)\ndf[\"ema12ltema26co\"] = df[\"ema12ltema26co\"].astype(int)<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/eodhistoricaldata.com\/financial-academy\/wp-content\/uploads\/2022\/09\/Google-Colab-Notebook-EMA.png\" alt=\"Google Colab Notebook EMA\" class=\"wp-image-592\" style=\"width:840px;height:282px\" title=\"Google Colab Notebook EMA\"\/><figcaption class=\"wp-element-caption\">Google Colab Notebook<\/figcaption><\/figure>\n\n\n\n<p>Over our 206 days of data when would be our buy and sell signals?<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code lang=\"python\" class=\"language-python\">buysignals = df[df[\"ema12gtema26co\"] == 1]\nsellsignals = df[df[\"ema12ltema26co\"] == 1]<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p>This will create two new dataframes. One called \u201c<strong>buysignals<\/strong>\u201d which will contain all the buy signals, and one called \u201c<strong>sellsignals<\/strong>\u201d which will contain all the sell signals.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code lang=\"python\" class=\"language-python\">buysignals[[\"symbol\", \"interval\", \"open\", \"high\", \"low\", \"close\", \"adjusted_close\", \"volume\"]]<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/eodhistoricaldata.com\/financial-academy\/wp-content\/uploads\/2022\/09\/Google-Colab-Notebook-sellsignals.png\" alt=\"Google Colab Notebook sellsignals\" class=\"wp-image-599\" title=\"Google Colab Notebook sellsignals\"\/><figcaption class=\"wp-element-caption\">Google Colab Notebook<\/figcaption><\/figure>\n\n\n\n<p>This example I am showing you is basic and only looks at the cross-overs of EMA12 and EMA26. You could make your strategy more advanced buy incorporating MACD\/Signal, RSI, or any of the other options.<\/p>\n\n\n\n<p>I encourage you to try this yourself, but I\u2019ll give you a few hints.<\/p>\n\n\n\n<p>To add \u201c<strong>macd<\/strong>\u201d and \u201c<strong>signal<\/strong>\u201d to your dataframe you would do this.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code lang=\"python\" class=\"language-python\">df_macd = ta.macd(df[\"close\"], slow=12, fast=26, fillna=0)\ndf_macd.fillna(0, inplace=True)\ndf_macd.columns = ['macd','histogram','signal']\ndf[\"macd\"] = df_macd['macd']\ndf[\"signal\"] = df_macd['signal']<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p>Your challenge is to identify the cross-overs as I did above. Once you have done what you will want to incorporate it into our buy and sell signals. You can do it like this.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code lang=\"python\" class=\"language-python\">buysignals = df[(df['ema12gtema26co'] == 1) &amp; (df['macdgtsignal'] == 1 )]\nsellsignals = df[(df['ema12ltema26co'] == 1) &amp; (df['macdltsignal'] == 1 )]<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p>This is saying a buy signal is when the EMA12 crosses above the EMA26 AND the MACD is higher than the Signal (note not crossing over, higher than). A sell signal is when the EMA12 crosses below the EMA26 AND the MACD is lower than than the Signal.<\/p>\n\n\n\n<p>Graphing this will make it a lot easier to visualise and understand. We will want to install a graphing library called \u201c<a href=\"https:\/\/github.com\/matplotlib\/matplotlib\" target=\"_blank\" rel=\"noreferrer noopener\">matplotlib<\/a>\u201d.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code lang=\"python\" class=\"language-python\">python3 -m pip install matplotlib<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p id=\"1dc3\">And import it as follows.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code lang=\"python\" class=\"language-python\">import matplotlib.pyplot as plt\nimport matplotlib.ticker as ticker<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p id=\"559a\">Let\u2019s create a nice graph to visualise the EMA12 and EMA26 cross-overs.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code lang=\"python\" class=\"language-python\">plt.figure(figsize=(30, 10))\nplt.title(\"EMA12 EMA26 Crossovers\")\nplt.plot(df['close'], label=\"price\", color=\"black\")\nplt.plot(df.ema12, label=\"ema12\", color=\"orange\")\nplt.plot(df.ema26, label=\"ema26\", color=\"purple\")\nplt.ylabel(\"Price\")\nplt.xticks(rotation=90)\nplt.tight_layout()\nplt.legend()<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/eodhistoricaldata.com\/financial-academy\/wp-content\/uploads\/2022\/09\/Google-Colab-Notebook-graph-EMA.png\" alt=\"Google Colab Notebook graph EMA\" class=\"wp-image-608\" title=\"Google Colab Notebook graph EMA\"\/><figcaption class=\"wp-element-caption\">Google Colab Notebook<\/figcaption><\/figure>\n\n\n\n<p>EMA12 is orange, EMA26 is purple, and the closing price is black. You will notice every time the orange line crosses above the purple line the price increases and when the orange line crosses below the purple line the price decreases.<\/p>\n\n\n\n<p>If you would like to save your graph you can do this.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code lang=\"python\" class=\"language-python\">plt.savefig(\"ema1226.png\")<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p>If you are using Google Colab you can download your file like this.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code lang=\"python\" class=\"language-python\">from google.colab import files\nfiles.download(\"ema1226.png\")<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p>Wouldn\u2019t it be nice if if we could visualise our buy signals more easily? Especially if we have a more advanced strategy.<\/p>\n\n\n\n<p>Try this out\u2026<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code lang=\"python\" class=\"language-python\"><strong>buysignals = df[df[\"ema12gtema26co\"] == 1]\nsellsignals = df[df[\"ema12ltema26co\"] == 1]<\/strong>\n\nplt.figure(figsize=(30, 10))\nplt.title(\"EMA12 EMA26 Crossovers\")\nplt.plot(df['close'], label=\"price\", color=\"black\")\nplt.plot(df.ema12, label=\"ema12\", color=\"orange\")\nplt.plot(df.ema26, label=\"ema26\", color=\"purple\")\nplt.ylabel(\"Price\")\nplt.xticks(rotation=90)\n\n<strong>for idx in buysignals.index.tolist():\n  plt.plot(\n      idx,\n      df.loc[idx][\"close\"],\n      \"g*\",\n      markersize=25\n  )<\/strong>\n\n<strong>for idx in sellsignals.index.tolist():\n  plt.plot(\n      idx,\n      df.loc[idx][\"close\"],\n      \"r*\",\n      markersize=25\n  )<\/strong>\n\n<strong>ax = plt.gca()\nfor index, label in enumerate(ax.xaxis.get_ticklabels()):\n  if index % 3 != 0:\n    label.set_visible(False)<\/strong>\n\nplt.tight_layout()\nplt.legend()<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p>You will see at the top I\u2019m creating my two dataframes containing the buy and sell signals.<\/p>\n\n\n\n<p>I then iterate through my buy and sell signal dataframes and plot a green star for a buy signal and a red star for a sell signal.<\/p>\n\n\n\n<p>The \u201cgca\u201d code is optional special code to label the x-axis in a cleaner way.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/eodhistoricaldata.com\/financial-academy\/wp-content\/uploads\/2022\/09\/Google-Colab-Notebook-plot-signals.png\" alt=\"Google Colab Notebook plot signals\" class=\"wp-image-614\" title=\"Google Colab Notebook plot signals\"\/><figcaption class=\"wp-element-caption\">Google Colab Notebooks<\/figcaption><\/figure>\n\n\n\n<p>I hope you found this article about <strong>Stocks Technical Analysis in Python<\/strong> interesting and useful.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><a class=\"maxbutton-1 maxbutton maxbutton-subscribe-to-api external-css btn\" href=\"https:\/\/eodhd.com\/register\"><span class='mb-text'>Register &amp; Get Data<\/span><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This guide is beginning straight with the Stocks Technical Analysis in Python without Library&#8217;s basics acquaintance and introduction. If you want to learn how to install the EODHD APIs Python Financial Official Library and activate your API key, we recommend to start with exploring of our Documentation for it. If you are alredy familiar with [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[59],"tags":[],"coding-language":[30],"ready-to-go-solution":[56],"qualification":[31],"financial-apis-category":[36],"financial-apis-manuals":[40],"class_list":["post-564","post","type-post","status-publish","format-standard","hentry","category-technical-analysis-examples","coding-language-python","ready-to-go-solution-eodhd-python-financial-library","qualification-experienced","financial-apis-category-stock-market-prices","financial-apis-manuals-technical-indicators"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.9 (Yoast SEO v26.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Stocks Market Technical Analysis with EODHD APIs Python Financial Library<\/title>\n<meta name=\"description\" content=\"Stocks Market Technical Analysis with Python Library: Simple Moving Average (SMA), Exponential Moving Average (EMA), buysignals &amp; sellsignals.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Stocks Market Technical Analysis with EODHD APIs Python Financial Library\" \/>\n<meta property=\"og:description\" content=\"Stocks Market Technical Analysis with Python Library: Simple Moving Average (SMA), Exponential Moving Average (EMA), buysignals &amp; sellsignals.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library\" \/>\n<meta property=\"og:site_name\" content=\"Financial Academy\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/eodhistoricaldata\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-01T13:14:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-05T13:51:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2022\/09\/Stocks-Market-Technical-Analysis-with-Python-Library.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"450\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Michael Whittle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@EOD_data\" \/>\n<meta name=\"twitter:site\" content=\"@EOD_data\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michael Whittle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library#article\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library\"},\"author\":{\"name\":\"Michael Whittle\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#\/schema\/person\/50784c270b6267df5969514d80d510ad\"},\"headline\":\"Stocks Market Technical Analysis with EODHD APIs Python Financial Library\",\"datePublished\":\"2022-09-01T13:14:02+00:00\",\"dateModified\":\"2025-02-05T13:51:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library\"},\"wordCount\":695,\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#organization\"},\"image\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library#primaryimage\"},\"thumbnailUrl\":\"https:\/\/eodhistoricaldata.com\/financial-academy\/wp-content\/uploads\/2022\/09\/Google-Colab-Notebook-get-historical-data.png\",\"articleSection\":[\"Technical Analysis Examples\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library\",\"url\":\"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library\",\"name\":\"Stocks Market Technical Analysis with EODHD APIs Python Financial Library\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library#primaryimage\"},\"image\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library#primaryimage\"},\"thumbnailUrl\":\"https:\/\/eodhistoricaldata.com\/financial-academy\/wp-content\/uploads\/2022\/09\/Google-Colab-Notebook-get-historical-data.png\",\"datePublished\":\"2022-09-01T13:14:02+00:00\",\"dateModified\":\"2025-02-05T13:51:37+00:00\",\"description\":\"Stocks Market Technical Analysis with Python Library: Simple Moving Average (SMA), Exponential Moving Average (EMA), buysignals & sellsignals.\",\"breadcrumb\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library#primaryimage\",\"url\":\"https:\/\/eodhistoricaldata.com\/financial-academy\/wp-content\/uploads\/2022\/09\/Google-Colab-Notebook-get-historical-data.png\",\"contentUrl\":\"https:\/\/eodhistoricaldata.com\/financial-academy\/wp-content\/uploads\/2022\/09\/Google-Colab-Notebook-get-historical-data.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/eodhd.com\/financial-academy\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Stocks Market Technical Analysis with EODHD APIs Python Financial Library\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#website\",\"url\":\"https:\/\/eodhd.com\/financial-academy\/\",\"name\":\"Financial APIs Academy | EODHD\",\"description\":\"Financial Stock Market Academy\",\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/eodhd.com\/financial-academy\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#organization\",\"name\":\"EODHD (EOD Historical Data)\",\"url\":\"https:\/\/eodhd.com\/financial-academy\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png\",\"contentUrl\":\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png\",\"width\":159,\"height\":82,\"caption\":\"EODHD (EOD Historical Data)\"},\"image\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/eodhistoricaldata\",\"https:\/\/x.com\/EOD_data\",\"https:\/\/www.reddit.com\/r\/EODHistoricalData\/\",\"https:\/\/eod-historical-data.medium.com\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#\/schema\/person\/50784c270b6267df5969514d80d510ad\",\"name\":\"Michael Whittle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5076af85c7ee0445454257247cad4970ae8cf5d7d4940d2b32c521f51c0a0f5a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5076af85c7ee0445454257247cad4970ae8cf5d7d4940d2b32c521f51c0a0f5a?s=96&d=mm&r=g\",\"caption\":\"Michael Whittle\"},\"description\":\"Solution architect, developer, and analyst with over 20+ years experience (TOP author on Medium).\",\"url\":\"https:\/\/eodhd.com\/financial-academy\/author\/michaelwhittle\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Stocks Market Technical Analysis with EODHD APIs Python Financial Library","description":"Stocks Market Technical Analysis with Python Library: Simple Moving Average (SMA), Exponential Moving Average (EMA), buysignals & sellsignals.","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:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library","og_locale":"en_US","og_type":"article","og_title":"Stocks Market Technical Analysis with EODHD APIs Python Financial Library","og_description":"Stocks Market Technical Analysis with Python Library: Simple Moving Average (SMA), Exponential Moving Average (EMA), buysignals & sellsignals.","og_url":"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library","og_site_name":"Financial Academy","article_publisher":"https:\/\/www.facebook.com\/eodhistoricaldata","article_published_time":"2022-09-01T13:14:02+00:00","article_modified_time":"2025-02-05T13:51:37+00:00","og_image":[{"width":800,"height":450,"url":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2022\/09\/Stocks-Market-Technical-Analysis-with-Python-Library.png","type":"image\/png"}],"author":"Michael Whittle","twitter_card":"summary_large_image","twitter_creator":"@EOD_data","twitter_site":"@EOD_data","twitter_misc":{"Written by":"Michael Whittle","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library#article","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library"},"author":{"name":"Michael Whittle","@id":"https:\/\/eodhd.com\/financial-academy\/#\/schema\/person\/50784c270b6267df5969514d80d510ad"},"headline":"Stocks Market Technical Analysis with EODHD APIs Python Financial Library","datePublished":"2022-09-01T13:14:02+00:00","dateModified":"2025-02-05T13:51:37+00:00","mainEntityOfPage":{"@id":"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library"},"wordCount":695,"publisher":{"@id":"https:\/\/eodhd.com\/financial-academy\/#organization"},"image":{"@id":"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library#primaryimage"},"thumbnailUrl":"https:\/\/eodhistoricaldata.com\/financial-academy\/wp-content\/uploads\/2022\/09\/Google-Colab-Notebook-get-historical-data.png","articleSection":["Technical Analysis Examples"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library","url":"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library","name":"Stocks Market Technical Analysis with EODHD APIs Python Financial Library","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-academy\/#website"},"primaryImageOfPage":{"@id":"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library#primaryimage"},"image":{"@id":"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library#primaryimage"},"thumbnailUrl":"https:\/\/eodhistoricaldata.com\/financial-academy\/wp-content\/uploads\/2022\/09\/Google-Colab-Notebook-get-historical-data.png","datePublished":"2022-09-01T13:14:02+00:00","dateModified":"2025-02-05T13:51:37+00:00","description":"Stocks Market Technical Analysis with Python Library: Simple Moving Average (SMA), Exponential Moving Average (EMA), buysignals & sellsignals.","breadcrumb":{"@id":"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library#primaryimage","url":"https:\/\/eodhistoricaldata.com\/financial-academy\/wp-content\/uploads\/2022\/09\/Google-Colab-Notebook-get-historical-data.png","contentUrl":"https:\/\/eodhistoricaldata.com\/financial-academy\/wp-content\/uploads\/2022\/09\/Google-Colab-Notebook-get-historical-data.png"},{"@type":"BreadcrumbList","@id":"https:\/\/eodhd.com\/financial-academy\/technical-analysis-examples\/stocks-market-technical-analysis-with-eodhd-financial-apis-python-financial-library#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/eodhd.com\/financial-academy\/"},{"@type":"ListItem","position":2,"name":"Stocks Market Technical Analysis with EODHD APIs Python Financial Library"}]},{"@type":"WebSite","@id":"https:\/\/eodhd.com\/financial-academy\/#website","url":"https:\/\/eodhd.com\/financial-academy\/","name":"Financial APIs Academy | EODHD","description":"Financial Stock Market Academy","publisher":{"@id":"https:\/\/eodhd.com\/financial-academy\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/eodhd.com\/financial-academy\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/eodhd.com\/financial-academy\/#organization","name":"EODHD (EOD Historical Data)","url":"https:\/\/eodhd.com\/financial-academy\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eodhd.com\/financial-academy\/#\/schema\/logo\/image\/","url":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png","contentUrl":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png","width":159,"height":82,"caption":"EODHD (EOD Historical Data)"},"image":{"@id":"https:\/\/eodhd.com\/financial-academy\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/eodhistoricaldata","https:\/\/x.com\/EOD_data","https:\/\/www.reddit.com\/r\/EODHistoricalData\/","https:\/\/eod-historical-data.medium.com\/"]},{"@type":"Person","@id":"https:\/\/eodhd.com\/financial-academy\/#\/schema\/person\/50784c270b6267df5969514d80d510ad","name":"Michael Whittle","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eodhd.com\/financial-academy\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5076af85c7ee0445454257247cad4970ae8cf5d7d4940d2b32c521f51c0a0f5a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5076af85c7ee0445454257247cad4970ae8cf5d7d4940d2b32c521f51c0a0f5a?s=96&d=mm&r=g","caption":"Michael Whittle"},"description":"Solution architect, developer, and analyst with over 20+ years experience (TOP author on Medium).","url":"https:\/\/eodhd.com\/financial-academy\/author\/michaelwhittle"}]}},"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pdOdVT-96","jetpack_sharing_enabled":true,"acf":[],"_links":{"self":[{"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/posts\/564","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/comments?post=564"}],"version-history":[{"count":3,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/posts\/564\/revisions"}],"predecessor-version":[{"id":6304,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/posts\/564\/revisions\/6304"}],"wp:attachment":[{"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/media?parent=564"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/categories?post=564"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/tags?post=564"},{"taxonomy":"coding-language","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/coding-language?post=564"},{"taxonomy":"ready-to-go-solution","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/ready-to-go-solution?post=564"},{"taxonomy":"qualification","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/qualification?post=564"},{"taxonomy":"financial-apis-category","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/financial-apis-category?post=564"},{"taxonomy":"financial-apis-manuals","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/financial-apis-manuals?post=564"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}