{"id":82,"date":"2025-06-13T07:38:22","date_gmt":"2025-06-13T07:38:22","guid":{"rendered":"https:\/\/blog.alltick.co\/ja-jp\/?p=82"},"modified":"2025-06-13T07:38:24","modified_gmt":"2025-06-13T07:38:24","slug":"python-algo-trading-strategies","status":"publish","type":"post","link":"https:\/\/blog.alltick.co\/ja-jp\/python-algo-trading-strategies\/","title":{"rendered":"Python\u306b\u3088\u308b\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u53d6\u5f15\u6226\u7565"},"content":{"rendered":"\n<p>\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u53d6\u5f15\u306e\u53f0\u982d\u306b\u3088\u308a\u3001Python\u306f\u30af\u30aa\u30f3\u30c4\u958b\u767a\u8005\u306b\u3068\u3063\u3066\u4e0d\u53ef\u6b20\u306a\u30c4\u30fc\u30eb\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u306f\u4e3b\u306b\u3001Python\u304c\u79d1\u5b66\u6280\u8853\u8a08\u7b97\u3084\u30c7\u30fc\u30bf\u5206\u6790\u306b\u304a\u3044\u3066\u5f37\u529b\u306a\u30a8\u30b3\u30b7\u30b9\u30c6\u30e0\u3092\u6301\u3061\u3001\u512a\u308c\u305f\u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u652f\u3048\u3089\u308c\u3066\u3044\u308b\u305f\u3081\u3067\u3059\u3002Pandas\u3001NumPy\u3001SciPy\u306a\u3069\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u306f\u3001\u30c7\u30fc\u30bf\u64cd\u4f5c\u3001\u6570\u5024\u8a08\u7b97\u3001\u79d1\u5b66\u7684\u5206\u6790\u306b\u304a\u3044\u3066\u8c4a\u5bcc\u306a\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u3066\u304a\u308a\u3001\u30af\u30aa\u30f3\u30c4\u30ea\u30b5\u30fc\u30c1\u3084\u6226\u7565\u958b\u767a\u3092\u3088\u308a\u52b9\u7387\u7684\u306b\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u672c\u65e5\u306f\u30015\u3064\u306e\u4ee3\u8868\u7684\u306a\u30af\u30aa\u30f3\u30c4\u53d6\u5f15\u6226\u7565\u3068\u3001\u305d\u308c\u305e\u308c\u306b\u5bfe\u5fdc\u3059\u308bPython\u30b3\u30fc\u30c9\u306e\u4f8b\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>#1 \u5e73\u5747\u56de\u5e30\u6226\u7565\uff08Mean Reversion Strategy\uff09<\/strong><\/h2>\n\n\n\n<p>\u5e73\u5747\u56de\u5e30\u6226\u7565\u306f\u3001\u8cc7\u7523\u4fa1\u683c\u304c\u9577\u671f\u7684\u306a\u5e73\u5747\u5024\u306e\u5468\u308a\u3092\u5909\u52d5\u3059\u308b\u3068\u3044\u3046\u4eee\u5b9a\u306b\u57fa\u3065\u3044\u305f\u7d71\u8a08\u7684\u30a2\u30fc\u30d3\u30c8\u30e9\u30fc\u30b8\u624b\u6cd5\u3067\u3059\u3002\u77ed\u671f\u7684\u306a\u4fa1\u683c\u5909\u52d5\u304c\u3042\u3063\u3066\u3082\u3001\u4fa1\u683c\u306f\u6642\u9593\u3068\u3068\u3082\u306b\u5e73\u5747\u306b\u623b\u308b\u3068\u8003\u3048\u3089\u308c\u307e\u3059\u3002\u4ee5\u4e0b\u306f\u3001\u5358\u7d14\u79fb\u52d5\u5e73\u5747\u3092\u4f7f\u3063\u3066\u8cc7\u7523\u306e\u300c\u5e73\u5747\u300d\u3092\u5b9a\u7fa9\u3057\u3001\u6a19\u6e96\u504f\u5dee\u3092\u7528\u3044\u3066\u58f2\u8cb7\u30b7\u30b0\u30ca\u30eb\u3092\u751f\u6210\u3059\u308b\u30b7\u30f3\u30d7\u30eb\u306aPython\u30b3\u30fc\u30c9\u4f8b\u3067\u3059\uff1a <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\n\ndata = pd.DataFrame({\n    'Date': pd.date_range(start='2023-01-01', periods=100),\n    'Close': np.random.normal(100, 10, 100)\n})\ndata.set_index('Date', inplace=True)\n\n\nwindow = 20\ndata['Moving Average'] = data['Close'].rolling(window=window).mean()\ndata['Standard Deviation'] = data['Close'].rolling(window=window).std()\n\n\ndata['Upper Bound'] = data['Moving Average'] + data['Standard Deviation']\ndata['Lower Bound'] = data['Moving Average'] - data['Standard Deviation']\n\n\ndata['Position'] = 0\ndata.loc[data['Close'] &lt; data['Lower Bound'], 'Position'] = 1 \ndata.loc[data['Close'] > data['Upper Bound'], 'Position'] = -1  \n\n\nplt.figure(figsize=(14, 7))\nplt.plot(data['Close'], label='Close Price')\nplt.plot(data['Moving Average'], label='Moving Average')\nplt.fill_between(data.index, data['Upper Bound'], data['Lower Bound'], color='gray', alpha=0.3, label='Mean Reversion Band')\nplt.plot(data.index, data['Position'] * 50, label='Trading Signal', color='magenta')\nplt.legend()\nplt.show()<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>#2 \u30c8\u30ec\u30f3\u30c9\u30d5\u30a9\u30ed\u30fc\u6226\u7565\uff08Trend Following Strategy\uff09<\/strong><\/h2>\n\n\n\n<p>\u30c8\u30ec\u30f3\u30c9\u30d5\u30a9\u30ed\u30fc\u306f\u3001\u8cc7\u7523\u306e\u77ed\u671f\u79fb\u52d5\u5e73\u5747\u3068\u9577\u671f\u79fb\u52d5\u5e73\u5747\u3092\u6bd4\u8f03\u3057\u3001\u73fe\u5728\u306e\u5e02\u5834\u30c8\u30ec\u30f3\u30c9\u3092\u7279\u5b9a\u3057\u3066\u305d\u306e\u6d41\u308c\u306b\u5f93\u3046\u6226\u7565\u3067\u3059\u3002\u305f\u3068\u3048\u3070\u3001\u682a\u4fa1\u304c\u4e0a\u6607\u30c8\u30ec\u30f3\u30c9\u3067\u5e02\u5834\u5fc3\u7406\u304c\u5f37\u6c17\u306e\u5834\u5408\u3001\u305d\u306e\u6d41\u308c\u306b\u5f93\u3063\u3066\u682a\u3092\u8cb7\u3044\u6301\u3061\u3057\u3001\u30c8\u30ec\u30f3\u30c9\u304c\u53cd\u8ee2\u3059\u308b\u307e\u3067\u4fdd\u6709\u3057\u307e\u3059\u3002Python\u3067\u306f\u3001MACD\uff08\u79fb\u52d5\u5e73\u5747\u53ce\u675f\u62e1\u6563\u6cd5\uff09\u3092\u4f7f\u3063\u3066\u77ed\u671f\u30c8\u30ec\u30f3\u30c9\u3092\u8b58\u5225\u3057\u3001\u58f2\u8cb7\u30b7\u30b0\u30ca\u30eb\u3092\u751f\u6210\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\uff1a <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\n\ndata = pd.DataFrame({\n    'Date': pd.date_range(start='2023-01-01', periods=200),\n    'Close': np.random.normal(100, 15, 200) \n})\ndata.set_index('Date', inplace=True)\n\n\nshort_window = 40\nlong_window = 100\ndata['Short MA'] = data['Close'].rolling(window=short_window).mean()\ndata['Long MA'] = data['Close'].rolling(window=long_window).mean()\n\n\ndata['Signal'] = 0\ndata['Signal'][short_window:] = np.where(data['Short MA'][short_window:] > data['Long MA'][short_window:], 1, 0)\ndata['Position'] = data['Signal'].diff()\n\n\nplt.figure(figsize=(14, 7))\nplt.plot(data['Close'], label='Close Price')\nplt.plot(data['Short MA'], label='40-Day Moving Average')\nplt.plot(data['Long MA'], label='100-Day Moving Average')\nplt.plot(data.index, data['Position'] * 50, label='Trading Signal', color='magenta', marker='o', linestyle='None')\nplt.legend()\nplt.show()<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>#3 \u30da\u30a2\u30c8\u30ec\u30fc\u30c7\u30a3\u30f3\u30b0\uff08Pair Trading\uff09<\/strong><\/h2>\n\n\n\n<p>\u30da\u30a2\u30c8\u30ec\u30fc\u30c7\u30a3\u30f3\u30b0\u306f\u3001\u5f37\u3044\u76f8\u95a2\u95a2\u4fc2\u3092\u6301\u30642\u3064\u306e\u8cc7\u7523\u306e\u4fa1\u683c\u5dee\u306b\u57fa\u3065\u304f\u7d71\u8a08\u7684\u30a2\u30fc\u30d3\u30c8\u30e9\u30fc\u30b8\u624b\u6cd5\u3067\u3059\u3002\u4fa1\u683c\u5dee\u304c\u901a\u5e38\u306e\u7bc4\u56f2\u3092\u8d85\u3048\u3066\u4e56\u96e2\u3057\u305f\u3068\u304d\u3001\u5272\u5b89\u306a\u8cc7\u7523\u3092\u8cb7\u3044\u3001\u5272\u9ad8\u306a\u8cc7\u7523\u3092\u58f2\u308b\u3053\u3068\u3067\u5229\u76ca\u3092\u72d9\u3044\u307e\u3059\u3002\u9577\u671f\u7684\u306b\u306f\u4fa1\u683c\u304c\u5e73\u5747\u306b\u623b\u308b\u3068\u3055\u308c\u3001\u77ed\u671f\u7684\u306a\u30a2\u30fc\u30d3\u30c8\u30e9\u30fc\u30b8\u306e\u6a5f\u4f1a\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>2\u3064\u306e\u8cc7\u7523\u306e\u904e\u53bb\u306e\u4fa1\u683c\u95a2\u4fc2\u3092\u5206\u6790\u3057\u3001\u4e88\u60f3\u3055\u308c\u308b\u30b9\u30d7\u30ec\u30c3\u30c9\u304b\u3089\u306e\u4e56\u96e2\u3092\u5143\u306b\u53d6\u5f15\u30b7\u30b0\u30ca\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\uff1a <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\n\n\nnp.random.seed(42)\ndata = pd.DataFrame({\n    'Date': pd.date_range(start='2023-01-01', periods=180),\n    'Asset_A': np.random.normal(100, 10, 180).cumsum() + 100,\n    'Asset_B': np.random.normal(100, 10, 180).cumsum() + 120\n})\ndata.set_index('Date', inplace=True)\n\ndata['Price_Diff'] = data['Asset_A'] - data['Asset_B']\n\nwindow = 30\ndata['Mean_Diff'] = data['Price_Diff'].rolling(window=window).mean()\ndata['Std_Diff'] = data['Price_Diff'].rolling(window=window).std()\n\ndata['Upper_Bound'] = data['Mean_Diff'] + data['Std_Diff']\ndata['Lower_Bound'] = data['Mean_Diff'] - data['Std_Diff']\n\ndata['Position'] = 0\ndata.loc[data['Price_Diff'] > data['Upper_Bound'], 'Position'] = -1  # \u505a\u7a7aAsset A\uff0c\u505a\u591aAsset B\ndata.loc[data['Price_Diff'] &lt; data['Lower_Bound'], 'Position'] = 1   # \u505a\u591aAsset A\uff0c\u505a\u7a7aAsset B\n\nplt.figure(figsize=(14, 7))\nplt.subplot(211)\nplt.plot(data['Asset_A'], label='Asset A')\nplt.plot(data['Asset_B'], label='Asset B')\nplt.legend()\n\nplt.subplot(212)\nplt.plot(data['Price_Diff'], label='Price Difference')\nplt.plot(data['Mean_Diff'], label='Mean Difference')\nplt.fill_between(data.index, data['Upper_Bound'], data['Lower_Bound'], color='gray', alpha=0.3, label='Trading Zone')\nplt.plot(data.index, data['Position'] * 20, label='Trading Signal', color='magenta', marker='o', linestyle='None')\nplt.legend()\nplt.show()<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>#4 \u7d71\u8a08\u7684\u30a2\u30fc\u30d3\u30c8\u30e9\u30fc\u30b8\uff08Statistical Arbitrage\uff09<\/strong><\/h2>\n\n\n\n<p>\u7d71\u8a08\u7684\u30a2\u30fc\u30d3\u30c8\u30e9\u30fc\u30b8\u306f\u3001\u8907\u6570\u306e\u8cc7\u7523\u9593\u306e\u4fa1\u683c\u306e\u6b6a\u307f\u3092\u5229\u7528\u3059\u308b\u53d6\u5f15\u624b\u6cd5\u3067\u3059\u3002\u3088\u304f\u3042\u308b\u65b9\u6cd5\u306f\u3001\u6b74\u53f2\u7684\u306a\u95a2\u4fc2\u304b\u3089\u4e56\u96e2\u3057\u305f\u682a\u306e\u30da\u30a2\u3084\u30b0\u30eb\u30fc\u30d7\u3092\u7279\u5b9a\u3057\u3001\u305d\u308c\u306b\u57fa\u3065\u3044\u3066\u53d6\u5f15\u3092\u884c\u3046\u3053\u3068\u3067\u3059\u3002\u4ee5\u4e0b\u306f\u30012\u3064\u306e\u682a\u306e\u4fa1\u683c\u30b9\u30d7\u30ec\u30c3\u30c9\u306b\u57fa\u3065\u3044\u305f\u57fa\u672c\u7684\u306a\u7d71\u8a08\u7684\u30a2\u30fc\u30d3\u30c8\u30e9\u30fc\u30b8\u6226\u7565\u306ePython\u5b9f\u88c5\u4f8b\u3067\u3059\uff1a <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\n\nnp.random.seed(42)\ndata = pd.DataFrame({\n    'Date': pd.date_range(start='2023-01-01', periods=250),\n    'Stock_A': np.random.normal(0, 1, 250).cumsum() + 50,\n    'Stock_B': np.random.normal(0, 1, 250).cumsum() + 50\n})\ndata.set_index('Date', inplace=True)\n\ndata['Spread'] = data['Stock_A'] - data['Stock_B']\n\nwindow = 20\ndata['Spread Mean'] = data['Spread'].rolling(window=window).mean()\ndata['Spread Std'] = data['Spread'].rolling(window=window).std()\n\nentry_z = 2 \nexit_z = 0  \ndata['Upper Threshold'] = data['Spread Mean'] + entry_z * data['Spread Std']\ndata['Lower Threshold'] = data['Spread Mean'] - entry_z * data['Spread Std']\ndata['Exit Threshold'] = data['Spread Mean'] + exit_z * data['Spread Std']\n\ndata['Position'] = 0\ndata.loc[data['Spread'] > data['Upper Threshold'], 'Position'] = -1  # \u505a\u7a7aStock A\uff0c\u505a\u591aStock B\ndata.loc[data['Spread'] &lt; data['Lower Threshold'], 'Position'] = 1   # \u505a\u591aStock A\uff0c\u505a\u7a7aStock B\ndata.loc[data['Spread'] * data['Position'] &lt; data['Exit Threshold'], 'Position'] = 0  # \u9000\u51fa\u4fe1\u53f7\n\nplt.figure(figsize=(14, 7))\nplt.subplot(211)\nplt.plot(data['Stock_A'], label='Stock A')\nplt.plot(data['Stock_B'], label='Stock B')\nplt.title('Stock Prices')\nplt.legend()\n\nplt.subplot(212)\nplt.plot(data['Spread'], label='Spread')\nplt.plot(data['Spread Mean'], label='Mean Spread')\nplt.fill_between(data.index, data['Upper Threshold'], data['Lower Threshold'], color='gray', alpha=0.3, label='Entry Zone')\nplt.plot(data.index, data['Position'] * 10, label='Trading Signal', color='magenta', marker='o', linestyle='None')\nplt.title('Spread and Trading Signals')\nplt.legend()\nplt.show()<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>#5 \u30dc\u30e9\u30c6\u30a3\u30ea\u30c6\u30a3\u53d6\u5f15\uff08Volatility Trading\uff09<\/strong><\/h2>\n\n\n\n<p>\u30dc\u30e9\u30c6\u30a3\u30ea\u30c6\u30a3\u53d6\u5f15\u6226\u7565\u306f\u3001\u5e02\u5834\u306e\u5909\u52d5\u6027\u306e\u5909\u5316\u304b\u3089\u5229\u76ca\u3092\u5f97\u308b\u3053\u3068\u3092\u76ee\u7684\u3068\u3057\u3066\u3044\u307e\u3059\u3002\u4f8b\u3048\u3070\u3001\u682a\u306e1\u65e5\u3054\u3068\u306e\u30ea\u30bf\u30fc\u30f3\u3068\u904e\u53bb\u306e\u30dc\u30e9\u30c6\u30a3\u30ea\u30c6\u30a3\uff08\u5e74\u7387\u63db\u7b97\u306e\u6a19\u6e96\u504f\u5dee\uff09\u3092\u8a08\u7b97\u3057\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u6761\u4ef6\u3092\u8a2d\u5b9a\u3067\u304d\u307e\u3059\uff1a\u30dc\u30e9\u30c6\u30a3\u30ea\u30c6\u30a3\u304c\u5e73\u5747\u306e1.2\u500d\u3092\u8d85\u3048\u305f\u3089\u58f2\u308a\u30010.8\u500d\u3092\u4e0b\u56de\u3063\u305f\u3089\u8cb7\u3044\u3002\u4ee5\u4e0b\u306f\u305d\u306ePython\u5b9f\u88c5\u3067\u3059\uff1a <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\n\nnp.random.seed(42)\ndates = pd.date_range(start='2023-01-01', periods=250)\nprices = np.random.normal(0, 1, 250).cumsum() + 100\ndata = pd.DataFrame({\n    'Date': dates,\n    'Price': prices\n})\ndata.set_index('Date', inplace=True)\n\ndata['Returns'] = data['Price'].pct_change()\ndata.dropna(inplace=True)\n\nwindow = 20\ndata['Volatility'] = data['Returns'].rolling(window=window).std() * np.sqrt(252)  # \u5e74\u5316\u6ce2\u52a8\u6027\n\nthreshold_high = data['Volatility'].mean() * 1.2\nthreshold_low = data['Volatility'].mean() * 0.8\ndata['Position'] = 0\ndata.loc[data['Volatility'] > threshold_high, 'Position'] = -1  \ndata.loc[data['Volatility'] &lt; threshold_low, 'Position'] = 1   \n\nplt.figure(figsize=(14, 10))\nplt.subplot(211)\nplt.plot(data['Price'], label='Price')\nplt.title('Stock Price')\nplt.legend()\n\nplt.subplot(212)\nplt.plot(data['Volatility'], label='Volatility')\nplt.axhline(y=threshold_high, color='r', linestyle='--', label='High Threshold')\nplt.axhline(y=threshold_low, color='g', linestyle='--', label='Low Threshold')\nplt.plot(data.index, data['Position'] * 0.01, label='Trading Signal', color='magenta', marker='o', linestyle='None')\nplt.title('Volatility and Trading Signals')\nplt.legend()\nplt.show()<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u53d6\u5f15\u306e\u53f0\u982d\u306b\u3088\u308a\u3001Python\u306f\u30af\u30aa\u30f3\u30c4\u958b\u767a\u8005\u306b\u3068\u3063\u3066\u4e0d\u53ef\u6b20\u306a\u30c4\u30fc\u30eb\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u306f\u4e3b\u306b\u3001Python\u304c\u79d1\u5b66\u6280\u8853\u8a08\u7b97\u3084\u30c7\u30fc\u30bf\u5206\u6790\u306b\u304a\u3044\u3066\u5f37\u529b\u306a\u30a8\u30b3\u30b7\u30b9\u30c6\u30e0\u3092\u6301\u3061\u3001\u512a\u308c\u305f\u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u652f\u3048\u3089\u308c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":83,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-82","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guide"],"featured_image_src":"https:\/\/i0.wp.com\/blog.alltick.co\/ja-jp\/wp-content\/uploads\/sites\/2\/2025\/06\/python-coding-mistakes.jpg?fit=1200%2C600&ssl=1","author_info":{"display_name":"admin","author_link":"https:\/\/blog.alltick.co\/ja-jp\/author\/admin\/"},"_links":{"self":[{"href":"https:\/\/blog.alltick.co\/ja-jp\/wp-json\/wp\/v2\/posts\/82","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.alltick.co\/ja-jp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.alltick.co\/ja-jp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.alltick.co\/ja-jp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.alltick.co\/ja-jp\/wp-json\/wp\/v2\/comments?post=82"}],"version-history":[{"count":1,"href":"https:\/\/blog.alltick.co\/ja-jp\/wp-json\/wp\/v2\/posts\/82\/revisions"}],"predecessor-version":[{"id":84,"href":"https:\/\/blog.alltick.co\/ja-jp\/wp-json\/wp\/v2\/posts\/82\/revisions\/84"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.alltick.co\/ja-jp\/wp-json\/wp\/v2\/media\/83"}],"wp:attachment":[{"href":"https:\/\/blog.alltick.co\/ja-jp\/wp-json\/wp\/v2\/media?parent=82"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.alltick.co\/ja-jp\/wp-json\/wp\/v2\/categories?post=82"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.alltick.co\/ja-jp\/wp-json\/wp\/v2\/tags?post=82"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}