{"id":37299,"date":"2024-11-01T09:56:28","date_gmt":"2024-11-01T09:56:28","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=37299"},"modified":"2024-11-01T11:51:22","modified_gmt":"2024-11-01T11:51:22","slug":"automated-trading-development-in-python-modifying-matplotlib-to-plot-closing-prices-and-volumes-at-once","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/37299\/","title":{"rendered":"Automated Trading Development in Python, Modifying Matplotlib to Plot Closing Prices and Volumes at Once"},"content":{"rendered":"<p><body><\/p>\n<p>In recent years, automated trading systems have become quite popular among investors and traders in the financial markets. In particular, Python is a highly suitable language for building automated trading systems due to its various data analysis tools and libraries. In this article, we will detail how to develop an automated trading system using Python and visualize closing prices and trading volumes simultaneously using <code>matplotlib<\/code>.<\/p>\n<h2>1. Overview of Automated Trading Systems<\/h2>\n<p>An automated trading system is a program that executes trades automatically based on predefined rules. Such systems can operate on various financial products such as stocks, foreign exchange, and cryptocurrencies, using various techniques including machine learning, algorithmic analysis, and statistical methods to make trading decisions.<\/p>\n<h2>2. Installing Required Libraries<\/h2>\n<p>To develop automated trading with Python, we will use the following libraries. First, install the required libraries using the command below.<\/p>\n<pre>\npip install numpy pandas matplotlib yfinance\n    <\/pre>\n<h2>3. Data Collection<\/h2>\n<p>Data for automated trading is very important. We will use the <code>yfinance<\/code> library to obtain closing price and trading volume data from Yahoo Finance. The data can be collected using the code below.<\/p>\n<pre>\nimport yfinance as yf\n\n# Data Collection\ndef get_stock_data(ticker, start_date, end_date):\n    data = yf.download(ticker, start=start_date, end=end_date)\n    return data\n\nticker = 'AAPL'  # Apple stock ticker\nstart_date = '2023-01-01'\nend_date = '2023-12-31'\ndata = get_stock_data(ticker, start_date, end_date)\nprint(data.head())\n    <\/pre>\n<h3>3.1. Understanding the Data<\/h3>\n<p>In the code above, the <code>get_stock_data<\/code> function takes the specified stock ticker along with the start and end dates as arguments to load the data. The returned data includes the following information:<\/p>\n<ul>\n<li><strong>Open<\/strong>: Opening price<\/li>\n<li><strong>High<\/strong>: Highest price<\/li>\n<li><strong>Low<\/strong>: Lowest price<\/li>\n<li><strong>Close<\/strong>: Closing price<\/li>\n<li><strong>Volume<\/strong>: Trading volume<\/li>\n<\/ul>\n<h2>4. Data Visualization: Closing Prices and Trading Volume<\/h2>\n<p>Now we will visualize the collected data and plot the closing prices and trading volumes at the same time. We will generate the graphs using the <code>matplotlib<\/code> library.<\/p>\n<h3>4.1. Plotting the Closing Prices and Trading Volume<\/h3>\n<pre>\nimport matplotlib.pyplot as plt\n\ndef plot_price_volume(data):\n    fig, ax1 = plt.subplots(figsize=(12, 6))\n\n    # Plotting Closing Prices\n    ax1.plot(data.index, data['Close'], color='blue', label='Closing Price')\n    ax1.set_xlabel('Date')\n    ax1.set_ylabel('Closing Price', color='blue')\n    ax1.tick_params(axis='y', labelcolor='blue')\n    ax1.legend(loc='upper left')\n\n    # Second axis for adding Volume\n    ax2 = ax1.twinx()  \n    ax2.bar(data.index, data['Volume'], color='gray', alpha=0.3, label='Volume')\n    ax2.set_ylabel('Volume', color='gray')\n    ax2.tick_params(axis='y', labelcolor='gray')\n    ax2.legend(loc='upper right')\n\n    plt.title('Visualization of Closing Prices and Volume')\n    plt.show()\n\n# Data Visualization\nplot_price_volume(data)\n    <\/pre>\n<h3>4.2. Code Explanation<\/h3>\n<p>The above <code>plot_price_volume<\/code> function visualizes the closing prices and volumes through the following steps:<\/p>\n<ol>\n<li><strong>Plotting the Stock Closing Price:<\/strong> The closing price of the stock is plotted using <code>ax1.plot<\/code> as a blue line.<\/li>\n<li><strong>Setting Axis Labels and Legend:<\/strong> Axes labels are set for both x and y axes, and legends are added to clarify the contents of each graph.<\/li>\n<li><strong>Plotting Volume:<\/strong> Volume is added to the same graph as gray bars using <code>ax2.twinx()<\/code>.<\/li>\n<li><strong>Adding Graph Title:<\/strong> The title for the entire graph is set to make the visualization clear.<\/li>\n<\/ol>\n<h2>5. Automated Trading Simulation<\/h2>\n<p>After visualizing the data, we will now conduct a simple automated trading simulation. The basic strategy will utilize a moving average (MA) based strategy to generate trading signals and determine buy and sell points.<\/p>\n<h3>5.1. Adding Simple Moving Average (SMA)<\/h3>\n<pre>\ndef calculate_sma(data, window):\n    return data['Close'].rolling(window=window).mean()\n\n# Adding Simple Moving Average for Closing Price\ndata['SMA_20'] = calculate_sma(data, 20)\ndata['SMA_50'] = calculate_sma(data, 50)\nprint(data[['Close', 'SMA_20', 'SMA_50']].tail())\n    <\/pre>\n<p>The above <code>calculate_sma<\/code> function calculates the simple moving average given the data and the moving average period (window). The 20-day and 50-day moving averages are calculated and added to the data frame.<\/p>\n<h3>5.2. Generating Trading Signals<\/h3>\n<pre>\ndef generate_signals(data):\n    signals = []\n    position = 0  # Current holding position (1: Buy, -1: Sell, 0: None)\n\n    for i in range(len(data)):\n        if data['SMA_20'][i] > data['SMA_50'][i] and position != 1:\n            signals.append(1)  # Buy signal\n            position = 1\n        elif data['SMA_20'][i] < data['SMA_50'][i] and position != -1:\n            signals.append(-1)  # Sell signal\n            position = -1\n        else:\n            signals.append(0)  # No signal\n\n    return signals\n\ndata['Signals'] = generate_signals(data)\nprint(data[['Close', 'SMA_20', 'SMA_50', 'Signals']].tail())\n    <\/pre>\n<p>The <code>generate_signals<\/code> function generates trading signals based on the simple moving average. When SMA 20 crosses above SMA 50, a buy signal is generated, and conversely, when crossing below, a sell signal is generated.<\/p>\n<h2>6. Performance Analysis<\/h2>\n<p>Now that trading signals have been generated, we will analyze the performance. The portfolio's performance can be evaluated based on the buy and sell signals.<\/p>\n<h3>6.1. Calculating Returns<\/h3>\n<pre>\ndef calculate_returns(data):\n    data['Market_Returns'] = data['Close'].pct_change()\n    data['Strategy_Returns'] = data['Market_Returns'] * data['Signals'].shift(1)  # Returns based on trading signals\n    data['Cumulative_Market_Returns'] = (1 + data['Market_Returns']).cumprod() - 1\n    data['Cumulative_Strategy_Returns'] = (1 + data['Strategy_Returns']).cumprod() - 1\n\ncalculate_returns(data)\nprint(data[['Cumulative_Market_Returns', 'Cumulative_Strategy_Returns']].tail())\n    <\/pre>\n<p>Here, the <code>calculate_returns<\/code> function calculates the returns, comparing market returns with strategy returns. Cumulative returns are calculated to easily analyze performance.<\/p>\n<h2>7. Comparing Performance through Graphs<\/h2>\n<p>Finally, we can visualize cumulative returns to compare the performance of the strategy. Let\u2019s visualize using <code>matplotlib<\/code>.<\/p>\n<pre>\ndef plot_performance(data):\n    plt.figure(figsize=(14, 7))\n    plt.plot(data.index, data['Cumulative_Market_Returns'], label='Market Returns', color='orange')\n    plt.plot(data.index, data['Cumulative_Strategy_Returns'], label='Strategy Returns', color='green')\n    plt.title('Market Returns vs Strategy Returns')\n    plt.xlabel('Date')\n    plt.ylabel('Cumulative Returns')\n    plt.legend()\n    plt.show()\n\nplot_performance(data)\n    <\/pre>\n<h2>8. Conclusion<\/h2>\n<p>In this article, we examined how to visualize closing prices and trading volumes along with a simple automated trading system using Python. Additionally, we understood the basic concepts of automated trading through generating trading signals based on moving averages and performance analysis. Going forward, explore developing more complex strategies and applying various techniques to build a more effective automated trading system.<\/p>\n<p>Based on proposed methods, you can also proceed to advanced modeling tasks utilizing machine learning, deep learning, etc. Furthermore, try developing more advanced trading strategies by applying various indicators and strategies.<\/p>\n<p>Finally, as you practice the code and concepts, enjoy the process of building your own automated trading system!<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In recent years, automated trading systems have become quite popular among investors and traders in the financial markets. In particular, Python is a highly suitable language for building automated trading systems due to its various data analysis tools and libraries. In this article, we will detail how to develop an automated trading system using Python &hellip; <a href=\"https:\/\/atmokpo.com\/w\/37299\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Automated Trading Development in Python, Modifying Matplotlib to Plot Closing Prices and Volumes at Once&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[147],"tags":[],"class_list":["post-37299","post","type-post","status-publish","format-standard","hentry","category-python-auto-trading"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Automated Trading Development in Python, Modifying Matplotlib to Plot Closing Prices and Volumes at Once - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/37299\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Automated Trading Development in Python, Modifying Matplotlib to Plot Closing Prices and Volumes at Once - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"In recent years, automated trading systems have become quite popular among investors and traders in the financial markets. In particular, Python is a highly suitable language for building automated trading systems due to its various data analysis tools and libraries. In this article, we will detail how to develop an automated trading system using Python &hellip; \ub354 \ubcf4\uae30 &quot;Automated Trading Development in Python, Modifying Matplotlib to Plot Closing Prices and Volumes at Once&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/37299\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:56:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:51:22+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/37299\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37299\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Automated Trading Development in Python, Modifying Matplotlib to Plot Closing Prices and Volumes at Once\",\"datePublished\":\"2024-11-01T09:56:28+00:00\",\"dateModified\":\"2024-11-01T11:51:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37299\/\"},\"wordCount\":654,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Python Auto Trading\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/37299\/\",\"url\":\"https:\/\/atmokpo.com\/w\/37299\/\",\"name\":\"Automated Trading Development in Python, Modifying Matplotlib to Plot Closing Prices and Volumes at Once - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:56:28+00:00\",\"dateModified\":\"2024-11-01T11:51:22+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37299\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/37299\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/37299\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Automated Trading Development in Python, Modifying Matplotlib to Plot Closing Prices and Volumes at Once\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Automated Trading Development in Python, Modifying Matplotlib to Plot Closing Prices and Volumes at Once - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","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:\/\/atmokpo.com\/w\/37299\/","og_locale":"ko_KR","og_type":"article","og_title":"Automated Trading Development in Python, Modifying Matplotlib to Plot Closing Prices and Volumes at Once - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"In recent years, automated trading systems have become quite popular among investors and traders in the financial markets. In particular, Python is a highly suitable language for building automated trading systems due to its various data analysis tools and libraries. In this article, we will detail how to develop an automated trading system using Python &hellip; \ub354 \ubcf4\uae30 \"Automated Trading Development in Python, Modifying Matplotlib to Plot Closing Prices and Volumes at Once\"","og_url":"https:\/\/atmokpo.com\/w\/37299\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:56:28+00:00","article_modified_time":"2024-11-01T11:51:22+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/37299\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/37299\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Automated Trading Development in Python, Modifying Matplotlib to Plot Closing Prices and Volumes at Once","datePublished":"2024-11-01T09:56:28+00:00","dateModified":"2024-11-01T11:51:22+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/37299\/"},"wordCount":654,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Python Auto Trading"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/37299\/","url":"https:\/\/atmokpo.com\/w\/37299\/","name":"Automated Trading Development in Python, Modifying Matplotlib to Plot Closing Prices and Volumes at Once - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:56:28+00:00","dateModified":"2024-11-01T11:51:22+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/37299\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/37299\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/37299\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Automated Trading Development in Python, Modifying Matplotlib to Plot Closing Prices and Volumes at Once"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37299","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=37299"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37299\/revisions"}],"predecessor-version":[{"id":37300,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37299\/revisions\/37300"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=37299"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=37299"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=37299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}