{"id":3586,"date":"2026-03-11T08:57:45","date_gmt":"2026-03-11T00:57:45","guid":{"rendered":"http:\/\/xuebuwan.com\/wp\/archives\/3586"},"modified":"2026-03-23T17:21:39","modified_gmt":"2026-03-23T09:21:39","slug":"%e5%b8%83%e6%9e%97%e5%b8%a6boll%ef%bc%9a%e7%9c%8b%e7%9c%8b%e8%82%a1%e4%bb%b7%e6%98%af%e8%b4%b5%e8%bf%98%e6%98%af%e4%be%bf%e5%ae%9c","status":"publish","type":"post","link":"http:\/\/xuebuwan.com\/wp\/?p=3586","title":{"rendered":"\u5e03\u6797\u5e26(BOLL)\uff1a\u770b\u770b\u80a1\u4ef7\u662f\u8d35\u8fd8\u662f\u4fbf\u5b9c"},"content":{"rendered":"<h2>\ud83d\udcca \u5e03\u6797\u5e26\u662f\u4ec0\u4e48\uff1f<\/h2>\n<p><strong>\u5e03\u6797\u5e26<\/strong>\uff08Bollinger Bands\uff09\u7531\u4e09\u6761\u7ebf\u7ec4\u6210\uff1a<\/p>\n<ul>\n<li>\ud83d\udccd <strong>\u4e2d\u8f68<\/strong>\uff1a20\u65e5\u5747\u7ebf<\/li>\n<li>\ud83d\udccd <strong>\u4e0a\u8f68<\/strong>\uff1a\u4e2d\u8f68 + 2\u500d\u6807\u51c6\u5dee<\/li>\n<li>\ud83d\udccd <strong>\u4e0b\u8f68<\/strong>\uff1a\u4e2d\u8f68 &#8211; 2\u500d\u6807\u51c6\u5dee<\/li>\n<\/ul>\n<p>\u5c31\u50cf\u4e00\u4e2a&#8221;\u901a\u9053&#8221;\uff0c\u80a1\u4ef7\u5927\u90e8\u5206\u65f6\u5019\u5728\u901a\u9053\u5185\u8fd0\u884c\u3002<\/p>\n<h2>\ud83c\udfaf \u5e03\u6797\u5e26\u7684\u4f5c\u7528<\/h2>\n<h3>1. \u5224\u65ad\u4ef7\u683c\u9ad8\u4f4e<\/h3>\n<ul>\n<li>\ud83d\udcc8 \u80a1\u4ef7\u78b0\u5230<strong>\u4e0a\u8f68<\/strong> \u2192 \u53ef\u80fd\u8d35\u4e86\uff0c\u8981\u8dcc<\/li>\n<li>\ud83d\udcc9 \u80a1\u4ef7\u78b0\u5230<strong>\u4e0b\u8f68<\/strong> \u2192 \u53ef\u80fd\u4fbf\u5b9c\u4e86\uff0c\u8981\u6da8<\/li>\n<\/ul>\n<h3>2. \u5224\u65ad\u8d8b\u52bf<\/h3>\n<ul>\n<li>\ud83d\udcca \u901a\u9053<strong>\u5411\u4e0a<\/strong> \u2192 \u4e0a\u6da8\u8d8b\u52bf<\/li>\n<li>\ud83d\udcc9 \u901a\u9053<strong>\u5411\u4e0b<\/strong> \u2192 \u4e0b\u8dcc\u8d8b\u52bf<\/li>\n<li>\u27a1\ufe0f \u901a\u9053<strong>\u5e73\u884c<\/strong> \u2192 \u6a2a\u76d8\u9707\u8361<\/li>\n<\/ul>\n<h3>3. \u7a81\u7834\u4fe1\u53f7<\/h3>\n<ul>\n<li>\ud83d\ude80 \u7a81\u7834\u4e0a\u8f68 \u2192 \u5f3a\u52bf\u4e0a\u6da8<\/li>\n<li>\ud83d\udca8 \u7a81\u7834\u4e0b\u8f68 \u2192 \u52a0\u901f\u4e0b\u8dcc<\/li>\n<\/ul>\n<h2>\ud83d\udc68\u200d\ud83d\udcbb \u7528Python\u8ba1\u7b97\u5e03\u6797\u5e26<\/h2>\n<pre><code>import pandas as pd\n\nprices = [100, 102, 101, 105, 103, 107, 110, 108, 112, 115]\ndf = pd.DataFrame({&quot;\u6536\u76d8&quot;: prices})\n\n# \u8ba1\u7b97\u5e03\u6797\u5e26\ndf[&quot;MA20&quot;] = df[&quot;\u6536\u76d8&quot;].rolling(20).mean()  # \u4e2d\u8f68\ndf[&quot;STD&quot;] = df[&quot;\u6536\u76d8&quot;].rolling(20).std()    # \u6807\u51c6\u5dee\ndf[&quot;UPPER&quot;] = df[&quot;MA20&quot;] + 2 * df[&quot;STD&quot;]   # \u4e0a\u8f68\ndf[&quot;LOWER&quot;] = df[&quot;MA20&quot;] - 2 * df[&quot;STD&quot;]   # \u4e0b\u8f68\n\nprint(df)<\/code><\/pre>\n<h2>\ud83d\udcc8 \u5b8c\u6574\u4f8b\u5b50<\/h2>\n<pre><code>import akshare as ak\nimport pandas as pd\nimport matplotlib.pyplot as plt\n\nplt.rcParams[&quot;font.sans-serif&quot;] = [&quot;SimHei&quot;]\nplt.rcParams[&quot;axes.unicode_minus&quot;] = False\n\n# \u83b7\u53d6\u6570\u636e\ndf = ak.stock_zh_a_hist(symbol=&quot;600519&quot;, adjust=&quot;qfq&quot;)\ndf = df.tail(60)\n\n# \u8ba1\u7b97\u5e03\u6797\u5e26\ndf[&quot;MA20&quot;] = df[&quot;\u6536\u76d8&quot;].rolling(20).mean()\ndf[&quot;STD&quot;] = df[&quot;\u6536\u76d8&quot;].rolling(20).std()\ndf[&quot;UPPER&quot;] = df[&quot;MA20&quot;] + 2 * df[&quot;STD&quot;]\ndf[&quot;LOWER&quot;] = df[&quot;MA20&quot;] - 2 * df[&quot;STD&quot;]\n\n# \u753b\u56fe\nplt.figure(figsize=(12, 6))\nplt.plot(df[&quot;\u65e5\u671f&quot;], df[&quot;\u6536\u76d8&quot;], label=&quot;\u6536\u76d8\u4ef7&quot;, color=&quot;black&quot;)\nplt.plot(df[&quot;\u65e5\u671f&quot;], df[&quot;MA20&quot;], label=&quot;\u4e2d\u8f68&quot;, color=&quot;blue&quot;)\nplt.plot(df[&quot;\u65e5\u671f&quot;], df[&quot;UPPER&quot;], label=&quot;\u4e0a\u8f68&quot;, color=&quot;red&quot;, linestyle=&quot;--&quot;)\nplt.plot(df[&quot;\u65e5\u671f&quot;], df[&quot;LOWER&quot;], label=&quot;\u4e0b\u8f68&quot;, color=&quot;green&quot;, linestyle=&quot;--&quot;)\n\nplt.fill_between(df[&quot;\u65e5\u671f&quot;], df[&quot;UPPER&quot;], df[&quot;LOWER&quot;], alpha=0.1, color=&quot;blue&quot;)\nplt.title(&quot;\u8305\u53f0\u80a1\u4ef7\u4e0e\u5e03\u6797\u5e26&quot;)\nplt.legend()\nplt.xticks(rotation=45)\nplt.grid(True)\nplt.show()<\/code><\/pre>\n<h2>\ud83d\udca1 \u5e03\u6797\u5e26\u7b56\u7565<\/h2>\n<pre><code># \u7a81\u7834\u4e0a\u8f68\u4e70\u5165\nif close &gt; upper:\n    print(&quot;\u7a81\u7834\u4e0a\u8f68\uff0c\u5f3a\u52bf\uff01&quot;)\n\n# \u8dcc\u7834\u4e0b\u8f68\u5356\u51fa\nif close  ma20 and close <\/code><\/pre>\n<h2>\u26a0\ufe0f \u6ce8\u610f\u4e8b\u9879<\/h2>\n<ul>\n<li>\ud83d\udcca \u9002\u5408<strong>\u9707\u8361\u884c\u60c5<\/strong><\/li>\n<li>\u26a0\ufe0f <strong>\u8d8b\u52bf\u884c\u60c5<\/strong>\u4e2d\u53ef\u80fd\u5931\u6548<\/li>\n<li>\ud83d\udca1 \u914d\u5408\u6210\u4ea4\u91cf\u4e00\u8d77\u770b\u66f4\u51c6<\/li>\n<\/ul>\n<h2>\ud83d\udcda \u4e0b\u4e00\u8bfe<\/h2>\n<p>\u5b66\u4f1a\u4e86\u5e03\u6797\u5e26\uff0c\u6211\u4eec\u6765\u5b66<strong>\u6210\u4ea4\u91cf<\/strong>\u2014\u2014\u770b\u770b\u8fd9\u7b14\u4ea4\u6613\u771f\u4e0d\u771f\u5b9e\uff01<\/p>","protected":false},"excerpt":{"rendered":"<p>\ud83d\udcca \u5e03\u6797\u5e26\u662f\u4ec0\u4e48\uff1f \u5e03\u6797\u5e26\uff08Bollinger Bands\uff09\u7531\u4e09\u6761\u7ebf\u7ec4\u6210\uff1a \ud83d\udccd \u4e2d\u8f68\uff1a20\u65e5\u5747\u7ebf \ud83d\udccd \u4e0a\u8f68\uff1a\u4e2d &#8230; <a title=\"\u5e03\u6797\u5e26(BOLL)\uff1a\u770b\u770b\u80a1\u4ef7\u662f\u8d35\u8fd8\u662f\u4fbf\u5b9c\" class=\"read-more\" href=\"http:\/\/xuebuwan.com\/wp\/?p=3586\" aria-label=\"\u9605\u8bfb \u5e03\u6797\u5e26(BOLL)\uff1a\u770b\u770b\u80a1\u4ef7\u662f\u8d35\u8fd8\u662f\u4fbf\u5b9c\">\u9605\u8bfb\u66f4\u591a<\/a><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-3586","post","type-post","status-publish","format-standard","hentry","category-strategies"],"_links":{"self":[{"href":"http:\/\/xuebuwan.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/3586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/xuebuwan.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/xuebuwan.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/xuebuwan.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/xuebuwan.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3586"}],"version-history":[{"count":1,"href":"http:\/\/xuebuwan.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/3586\/revisions"}],"predecessor-version":[{"id":3598,"href":"http:\/\/xuebuwan.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/3586\/revisions\/3598"}],"wp:attachment":[{"href":"http:\/\/xuebuwan.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/xuebuwan.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3586"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/xuebuwan.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}