{"id":31,"date":"2025-08-29T09:38:28","date_gmt":"2025-08-29T01:38:28","guid":{"rendered":"http:\/\/www.028168.xyz\/?p=31"},"modified":"2025-08-31T11:13:07","modified_gmt":"2025-08-31T03:13:07","slug":"%e7%a7%bb%e5%8a%a8%e5%b9%b3%e5%9d%87%e7%ba%bf%e7%ae%80%e5%8d%95%e8%ae%a1%e7%ae%97","status":"publish","type":"post","link":"http:\/\/www.028168.xyz\/index.php\/2025\/08\/29\/%e7%a7%bb%e5%8a%a8%e5%b9%b3%e5%9d%87%e7%ba%bf%e7%ae%80%e5%8d%95%e8%ae%a1%e7%ae%97\/","title":{"rendered":"\u91cf\u5316\u4ea4\u6613\u57fa\u7840\uff08\u4e00\uff09"},"content":{"rendered":"\n<p>\u8f6c\u81ea\u5fae\u4fe1\u516c\u4f17\u53f7 \u300a\u6570\u636e\u79d1\u5b66\u4e0e\u5b9e\u6218\u300b<\/p>\n\n\n\n<p>1\u3001\u83b7\u53d6\u5386\u53f2\u80a1\u7968\u6570\u636e<br>2\u3001\u8ba1\u7b97\u79fb\u52a8\u5e73\u5747\u7ebf\u7b49\u6280\u672f\u6307\u6807<br>3\u3001\u53ef\u89c6\u5316\u80a1\u4ef7\u8d70\u52bf<br>4\u3001\u8ba1\u7b97\u5173\u952e\u98ce\u9669\u56de\u62a5\u6307\u6807\uff08\u5982\u590f\u666e\u6bd4\u7387\uff09<br>5\u3001\u5206\u6790\u56de\u62a5\u7387\u5206\u5e03<\/p>\n\n\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\nimport\u00a0numpy\u00a0as\u00a0np\nimport\u00a0pandas\u00a0as\u00a0pd\nimport\u00a0matplotlib.pyplot\u00a0as\u00a0plt\nimport\u00a0yfinance\u00a0as\u00a0yf\nfrom\u00a0datetime\u00a0import\u00a0datetime, timedelta\n\n# \u8bbe\u7f6e\u65f6\u95f4\u8303\u56f4\uff08\u8fc7\u53bb\u4e00\u5e74\uff09\nend_date = datetime.now()\nstart_date = end_date - timedelta(days=365)\n\n# \u4e0b\u8f7d\u80a1\u7968\u6570\u636e\uff08\u4ee5\u963f\u91cc\u5df4\u5df4\u4e3a\u4f8b\uff09\nticker =\u00a0&amp;quot;BABA&amp;quot;\nstock_data = yf.download(ticker, start=start_date, end=end_date)\n\n# \u67e5\u770b\u6570\u636e\u7684\u524d\u51e0\u884c\nprint(f&amp;quot;{ticker}\u00a0\u80a1\u7968\u6570\u636e\u6982\u89c8\uff1a&amp;quot;)\nprint(stock_data.head())\n\n# \u8ba1\u7b97\u7b80\u5355\u7684\u6280\u672f\u6307\u6807 - 20\u65e5\u548c50\u65e5\u79fb\u52a8\u5e73\u5747\u7ebf\nstock_data&#x5B;'MA20'] = stock_data&#x5B;'Close'].rolling(window=20).mean()\nstock_data&#x5B;'MA50'] = stock_data&#x5B;'Close'].rolling(window=50).mean()\n\n# \u7ed8\u5236\u80a1\u7968\u4ef7\u683c\u548c\u79fb\u52a8\u5e73\u5747\u7ebf\nplt.figure(figsize=(12,\u00a06))\nplt.plot(stock_data.index, stock_data&#x5B;'Close'], label='\u6536\u76d8\u4ef7', color='blue')\nplt.plot(stock_data.index, stock_data&#x5B;'MA20'], label='20\u65e5\u5747\u7ebf', color='red')\nplt.plot(stock_data.index, stock_data&#x5B;'MA50'], label='50\u65e5\u5747\u7ebf', color='green')\nplt.title(f'{ticker}\u00a0\u8fc7\u53bb\u4e00\u5e74\u80a1\u4ef7\u8d70\u52bf\u53ca\u79fb\u52a8\u5e73\u5747\u7ebf')\nplt.xlabel('\u65e5\u671f')\nplt.ylabel('\u4ef7\u683c\uff08\u7f8e\u5143\uff09')\nplt.legend()\nplt.grid(True, alpha=0.3)\nplt.show()\n\n# \u8ba1\u7b97\u6bcf\u65e5\u56de\u62a5\u7387\nstock_data&#x5B;'Daily_Return'] = stock_data&#x5B;'Close'].pct_change() *\u00a0100\n\n# \u8ba1\u7b97\u57fa\u672c\u7edf\u8ba1\u6570\u636e\nmean_return = stock_data&#x5B;'Daily_Return'].mean()\nstd_return = stock_data&#x5B;'Daily_Return'].std()\nannual_return = mean_return *\u00a0252\u00a0\u00a0# \u5047\u8bbe\u4e00\u5e74\u6709252\u4e2a\u4ea4\u6613\u65e5\nannual_volatility = std_return * np.sqrt(252)\nsharpe_ratio = annual_return \/ annual_volatility \u00a0# \u5047\u8bbe\u65e0\u98ce\u9669\u5229\u7387\u4e3a0\n\nprint(f&amp;quot;\\n{ticker}\u00a0\u57fa\u672c\u7edf\u8ba1\u6570\u636e\uff1a&amp;quot;)\nprint(f&amp;quot;\u5e73\u5747\u65e5\u56de\u62a5\u7387:\u00a0{mean_return:.2f}%&amp;quot;)\nprint(f&amp;quot;\u56de\u62a5\u7387\u6807\u51c6\u5dee:\u00a0{std_return:.2f}%&amp;quot;)\nprint(f&amp;quot;\u5e74\u5316\u56de\u62a5\u7387:\u00a0{annual_return:.2f}%&amp;quot;)\nprint(f&amp;quot;\u5e74\u5316\u6ce2\u52a8\u7387:\u00a0{annual_volatility:.2f}%&amp;quot;)\nprint(f&amp;quot;\u590f\u666e\u6bd4\u7387:\u00a0{sharpe_ratio:.2f}&amp;quot;)\n\n# \u7ed8\u5236\u56de\u62a5\u7387\u5206\u5e03\u76f4\u65b9\u56fe\nplt.figure(figsize=(10,\u00a06))\nplt.hist(stock_data&#x5B;'Daily_Return'].dropna(), bins=50, alpha=0.75, color='blue')\nplt.axvline(0, color='red', linestyle='--', linewidth=1)\nplt.title(f'{ticker}\u00a0\u65e5\u56de\u62a5\u7387\u5206\u5e03')\nplt.xlabel('\u65e5\u56de\u62a5\u7387 (%)')\nplt.ylabel('\u9891\u7387')\nplt.grid(True, alpha=0.3)\nplt.show()\n<\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8f6c\u81ea\u5fae\u4fe1\u516c\u4f17\u53f7 \u300a\u6570\u636e\u79d1\u5b66\u4e0e\u5b9e\u6218\u300b 1\u3001\u83b7\u53d6\u5386\u53f2\u80a1\u7968\u6570\u636e2\u3001\u8ba1\u7b97\u79fb\u52a8\u5e73\u5747\u7ebf\u7b49\u6280\u672f\u6307\u68073\u3001\u53ef\u89c6\u5316\u80a1\u4ef7\u8d70\u52bf4\u3001\u8ba1\u7b97 &#8230; <a title=\"\u91cf\u5316\u4ea4\u6613\u57fa\u7840\uff08\u4e00\uff09\" class=\"read-more\" href=\"http:\/\/www.028168.xyz\/index.php\/2025\/08\/29\/%e7%a7%bb%e5%8a%a8%e5%b9%b3%e5%9d%87%e7%ba%bf%e7%ae%80%e5%8d%95%e8%ae%a1%e7%ae%97\/\" aria-label=\"\u9605\u8bfb \u91cf\u5316\u4ea4\u6613\u57fa\u7840\uff08\u4e00\uff09\">\u9605\u8bfb\u66f4\u591a<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"aside","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-31","post","type-post","status-publish","format-aside","hentry","category-7","post_format-post-format-aside"],"_links":{"self":[{"href":"http:\/\/www.028168.xyz\/index.php\/wp-json\/wp\/v2\/posts\/31","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.028168.xyz\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.028168.xyz\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.028168.xyz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.028168.xyz\/index.php\/wp-json\/wp\/v2\/comments?post=31"}],"version-history":[{"count":6,"href":"http:\/\/www.028168.xyz\/index.php\/wp-json\/wp\/v2\/posts\/31\/revisions"}],"predecessor-version":[{"id":50,"href":"http:\/\/www.028168.xyz\/index.php\/wp-json\/wp\/v2\/posts\/31\/revisions\/50"}],"wp:attachment":[{"href":"http:\/\/www.028168.xyz\/index.php\/wp-json\/wp\/v2\/media?parent=31"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.028168.xyz\/index.php\/wp-json\/wp\/v2\/categories?post=31"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.028168.xyz\/index.php\/wp-json\/wp\/v2\/tags?post=31"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}