{"id":2423,"date":"2025-07-17T07:49:00","date_gmt":"2025-07-16T23:49:00","guid":{"rendered":"https:\/\/blog.laoyulaoyu.top\/?p=2423"},"modified":"2025-07-10T13:10:42","modified_gmt":"2025-07-10T05:10:42","slug":"%e6%89%93%e7%a0%b4%e4%bf%a1%e6%81%af%e5%b7%ae%ef%bc%81%e7%94%a8%e9%87%8f%e5%8c%96%e4%ba%a4%e6%98%93%e8%a7%a3%e9%94%814%e4%b8%aa%e9%b2%9c%e4%b8%ba%e4%ba%ba%e7%9f%a5%e7%9a%84%e8%b5%9a%e9%92%b1%e6%8c%87","status":"publish","type":"post","link":"https:\/\/www.laoyulaoyu.com\/index.php\/2025\/07\/17\/%e6%89%93%e7%a0%b4%e4%bf%a1%e6%81%af%e5%b7%ae%ef%bc%81%e7%94%a8%e9%87%8f%e5%8c%96%e4%ba%a4%e6%98%93%e8%a7%a3%e9%94%814%e4%b8%aa%e9%b2%9c%e4%b8%ba%e4%ba%ba%e7%9f%a5%e7%9a%84%e8%b5%9a%e9%92%b1%e6%8c%87\/","title":{"rendered":"\u6253\u7834\u4fe1\u606f\u5dee\uff01\u7528\u91cf\u5316\u4ea4\u6613\u89e3\u95014\u4e2a\u9c9c\u4e3a\u4eba\u77e5\u7684\u8d5a\u94b1\u6307\u6807\uff08\u9644\u6e90\u7801\uff09"},"content":{"rendered":"\n<p>\u4f5c \u8005\uff1a<a href=\"https:\/\/www.laoyulaoyu.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u8001\u4f59\u635e\u9c7c<\/a><\/p>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-cyan-bluish-gray-color\">\u539f\u521b\u4e0d\u6613\uff0c\u8f6c\u8f7d\u8bf7\u6807\u660e\u51fa\u5904\u53ca\u539f\u4f5c\u8005\u3002<\/mark><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.laoyulaoyu.com\/wp-content\/uploads\/2025\/07\/1_GarUufSyThphzhc8aAucUg.png\" alt=\"\" class=\"wp-image-5739\"\/><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<pre class=\"wp-block-verse\"><strong>\u5199\u5728\u524d\u9762\u7684\u8bdd\uff1a<\/strong>\u6211\u4eca\u5929\u6311\u9009\u4e864\u4e2a\u65e2\u7b80\u5355\u597d\u7528\u53c8\u61c2\u56fd\u5185\u53e3\u5473\u7684\u6280\u672f\u6307\u6807\uff1aSTC\u8d8b\u52bf\u52a0\u901f\u5668\u3001CHOP\u9707\u8361\u63a2\u6d4b\u5668\u3001VZO\u91cf\u80fd\u900f\u89c6\u4eea\u3001CMF\u8d44\u91d1\u626b\u63cf\u4eea\u3002\u624b\u628a\u624b\u6559\u4f60\u7528Python\u5b9e\u73b0\uff0c\u9644\u5b8c\u6574\u4ee3\u7801\u3002\u65e0\u8bba\u6293\u8d8b\u52bf\u8fd8\u662f\u505a\u6ce2\u6bb5\uff0c\u8fd9\u4e9b\u5de5\u5177\u90fd\u80fd\u5e2e\u4f60\u5c11\u8d70\u5f2f\u8def\uff01<\/pre>\n<\/blockquote>\n\n\n\n<p>\u8001\u6307\u6807\u5c31\u50cf\u7528\u65e7\u5730\u56fe\u627e\u65b0\u5927\u9646\uff0c\u4e3b\u529b\u65e9\u628aMACD\u3001KDJ\u73a9\u70c2\u4e86\u3002\u4eca\u5929\u5e26\u5927\u5bb6\u89e3\u9501\u76844\u4e2a\u51b7\u95e8\u6307\u6807\uff0c\u80fd\u5e2e\u4f60\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6bd4MACD\u5feb2\u500d\u6355\u6349\u8d8b\u52bf\u62d0\u70b9\u3002<\/li>\n\n\n\n<li>\u4e00\u773c\u770b\u7a7f\u4e3b\u529b\u662f\u5728\u771f\u62c9\u5347\u8fd8\u662f\u5047\u7a81\u7834\u3002<\/li>\n\n\n\n<li>\u91cf\u5316\u5e02\u573a\u9707\u8361\u5f3a\u5ea6\uff0c\u907f\u514d\u88ab\u53cd\u590d\u6253\u8138\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u5728\u7b97\u6cd5\u4ea4\u6613\u4e2d\uff0c\u6280\u672f\u6307\u6807\u662f\u4e0d\u53ef\u6216\u7f3a\u7684\u5de5\u5177\u3002\u800c\u89e3\u9501\u65b0\u7684\u7b97\u6cd5\u4ea4\u6613\u6280\u80fd\u5c31\u662f\u4f60\u9700\u8981\u638c\u63e1\u7684\u6280\u80fd\uff0c\u4eca\u5929\u8bb2\u7684\u8fd9\u4e9b\u6307\u6807\u4e0d\u4ec5\u80fd\u5e2e\u52a9\u4f60\u5206\u6790\u80a1\u5e02\u8d8b\u52bf\uff0c\u8fd8\u80fd\u63d0\u5347\u4f60\u7684\u4ea4\u6613\u51b3\u7b56\u80fd\u529b\u3002<\/p>\n\n\n\n<p>\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u5c06\u9010\u4e00\u8bb2\u89e3\u6bcf\u4e2a\u6307\u6807\u7684\u539f\u7406\u3001\u4f7f\u7528\u65b9\u6cd5\uff0c\u5e76\u63d0\u4f9bPython\u4ee3\u7801\u5b9e\u73b0\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. STC\u8d8b\u52bf\u52a0\u901f\u5668<\/strong><\/h2>\n\n\n\n<p>STC\uff08Schaff Trend Cycle\uff09\u662f\u4e00\u79cd\u6539\u8fdb\u7684MACD\u6307\u6807\u3002\u7b80\u5355\u6765\u8bf4\uff0c\u5b83\u662f\u628aMACD\u548c\u6ce2\u52a8\u7387\u6307\u6807\u6742\u4ea4\u5347\u7ea7\uff0c\u50cf\u7ed9\u8d8b\u52bf\u88c5\u4e86\u663e\u5fae\u955c\u3002STC\u7684\u503c\u57280\u5230100\u4e4b\u95f4\u6ce2\u52a8\uff0c\u9002\u5408\u6355\u6349\u5e02\u573a\u77ed\u671f\u53d8\u5316\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>STC\u7684\u8ba1\u7b97\u6b65\u9aa4<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9996\u5148\uff0c\u8ba1\u7b97\u77ed\u671f\uff08\u901a\u5e3812\u5468\u671f\uff09\u548c\u957f\u671f\uff08\u901a\u5e3826\u5468\u671f\uff09\u7684\u6307\u6570\u79fb\u52a8\u5e73\u5747\u7ebf\uff08EMA\uff09\u3002<\/li>\n\n\n\n<li>\u7136\u540e\uff0c\u8ba1\u7b97\u77ed\u671fEMA\u4e0e\u957f\u671fEMA\u7684\u5dee\u503c\uff0c\u5f97\u5230MACD\u7ebf\u3002<\/li>\n\n\n\n<li>\u63a5\u7740\uff0c\u8ba1\u7b97MACD\u7ebf\u76849\u5468\u671f\u79fb\u52a8\u5e73\u5747\u7ebf\uff0c\u79f0\u4e3a\u4fe1\u53f7\u7ebf\u3002<\/li>\n\n\n\n<li>\u6700\u540e\uff0c\u4f7f\u7528\u968f\u673a\u8fc7\u7a0b\u5c06MACD\u5dee\u503c\u5f52\u4e00\u5316\u52300-100\u7684\u8303\u56f4\uff0c\u5f97\u5230STC\u503c\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>STC\u7684<strong>\u4fe1\u53f7\u5224\u65ad<\/strong><\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-center\" data-align=\"center\">\u6307\u6807\u4f4d\u7f6e<\/th><th class=\"has-text-align-center\" data-align=\"center\">\u5e02\u573a\u4fe1\u53f7<\/th><th class=\"has-text-align-center\" data-align=\"center\">\u64cd\u4f5c\u5efa\u8bae<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\">\u4e0a\u7a7f75<\/td><td class=\"has-text-align-center\" data-align=\"center\">\u8d85\u4e70\u533a<\/td><td class=\"has-text-align-center\" data-align=\"center\">\u51c6\u5907\u83b7\u5229\u4e86\u7ed3<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">\u4e0b\u783425<\/td><td class=\"has-text-align-center\" data-align=\"center\">\u8d85\u5356\u533a<\/td><td class=\"has-text-align-center\" data-align=\"center\">\u5173\u6ce8\u6284\u5e95\u673a\u4f1a<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">\u7ad9\u7a3350\u4e0a\u65b9<\/td><td class=\"has-text-align-center\" data-align=\"center\">\u725b\u5e02\u786e\u8ba4<\/td><td class=\"has-text-align-center\" data-align=\"center\">\u9022\u4f4e\u52a0\u4ed3<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>\u4f8b\u5982\uff0c\u5f53STC\u9ad8\u4e8e75\u65f6\uff0c\u5e02\u573a\u53ef\u80fd\u8fc7\u70ed\uff0c\u4ef7\u683c\u53ef\u80fd\u4e0b\u8dcc\uff1b\u4f4e\u4e8e25\u65f6\uff0c\u5e02\u573a\u53ef\u80fd\u8d85\u5356\uff0c\u4ef7\u683c\u53ef\u80fd\u4e0a\u6da8\u3002\u7a7f\u8fc750\u53ef\u4ee5\u786e\u8ba4\u8d8b\u52bf\u65b9\u5411\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u4ee3\u7801\u5b9e\u73b0<\/strong><\/h3>\n\n\n\n<p>\u4e0b\u9762\u662f\u8ba1\u7b97STC\u7684Python\u4ee3\u7801\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># STC\u8d8b\u52bf\u52a0\u901f\u5668\u8ba1\u7b97\ndef \u8ba1\u7b97_STC(\u6570\u636e, \u77ed\u7ebf=12, \u957f\u7ebf=26):\n    \u6570\u636e&#91;'\u5feb\u7ebf'] = \u6570\u636e&#91;'\u6536\u76d8\u4ef7'].ewm(span=\u77ed\u7ebf).mean()  # \u8ba1\u7b97\u5feb\u901f\u5747\u7ebf\n    \u6570\u636e&#91;'\u6162\u7ebf'] = \u6570\u636e&#91;'\u6536\u76d8\u4ef7'].ewm(span=\u957f\u7ebf).mean()  # \u8ba1\u7b97\u6162\u901f\u5747\u7ebf\n    MACD\u7ebf = \u6570\u636e&#91;'\u5feb\u7ebf'] - \u6570\u636e&#91;'\u6162\u7ebf']\n    ... # \u5b8c\u6574\u4ee3\u7801\u89c1\u6587\u672b<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.laoyulaoyu.com\/wp-content\/uploads\/2025\/07\/1_jDLPCPirzFqtz4YZ6w4Zdg.png\" alt=\"\" class=\"wp-image-5743\"\/><\/figure>\n\n\n\n<p>\u4e0a\u56fe\u662f\u4e00\u5f20STC\u6307\u6807\u7684\u56fe\u8868\uff0c\u5c55\u793a\u5b83\u5982\u4f55\u4e0e\u80a1\u4ef7\u4e00\u8d77\u53d8\u5316\uff0c\u7a81\u51fa\u8d85\u4e70\u548c\u8d85\u5356\u533a\u57df\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. CHOP\u9707\u8361\u63a2\u6d4b\u5668<\/strong><\/h2>\n\n\n\n<p>CHOP\uff08Choppiness Index\uff09\u662f\u4e00\u4e2a\u5224\u65ad\u5e02\u573a\u8d8b\u52bf\uff08\u4ef7\u683c\u6301\u7eed\u4e0a\u6da8\u6216\u4e0b\u8dcc\uff09\u6216\u9707\u8361\uff08\u4ef7\u683c\u6a2a\u76d8\uff09\u7684\u6ce2\u52a8\u6027\u6307\u6807\u3002<\/p>\n\n\n\n<p>\u5e02\u573a\u50cf\u62f3\u51fb\u624b\u2014\u2014\u8981\u4e48\u91cd\u62f3\u51fa\u51fb\uff08\u8d8b\u52bf\uff09\uff0c\u8981\u4e48\u5de6\u53f3\u6447\u6446\uff08\u9707\u8361\uff09\u3002\u8fd9\u4e2a\u6307\u6807\u5c31\u662f\u88c1\u5224\uff0c0-100\u5206\u544a\u8bc9\u4f60\u73b0\u5728\u8c01\u5360\u4f18\uff0c\u503c\u8d8a\u9ad8\u8868\u793a\u5e02\u573a\u8d8a\u9707\u8361\uff0c\u503c\u8d8a\u4f4e\u8868\u793a\u5e02\u573a\u8d8a\u6709\u8d8b\u52bf\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>CHOP\u7684\u8ba1\u7b97\u6b65\u9aa4<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9996\u5148\uff0c\u8ba1\u7b97\u6bcf\u4e2a\u5468\u671f\u7684\u6700\u9ad8\u4ef7\u4e0e\u6700\u4f4e\u4ef7\u4e4b\u95f4\u7684\u8303\u56f4\uff08High &#8211; Low\uff09\u3002<\/li>\n\n\n\n<li>\u7136\u540e\uff0c\u5c06\u8fc7\u53bb14\u5468\u671f\u7684\u8303\u56f4\u76f8\u52a0\uff0c\u5f97\u5230\u5e73\u5747\u771f\u5b9e\u8303\u56f4\uff08ATR\uff09\u3002<\/li>\n\n\n\n<li>\u63a5\u7740\uff0c\u627e\u5230\u8fc7\u53bb14\u5468\u671f\u7684\u6700\u9ad8\u4ef7\u548c\u6700\u4f4e\u4ef7\u3002<\/li>\n\n\n\n<li>\u6700\u540e\uff0c\u4f7f\u7528\u5bf9\u6570\u516c\u5f0f\u8ba1\u7b97CHOP\uff1a100 * log10(ATR \/ (\u6700\u9ad8\u4ef7 &#8211; \u6700\u4f4e\u4ef7)) \/ log10(\u5468\u671f\u6570)\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>CHOP\u7684\u4fe1\u53f7\u5224\u65ad<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th class=\"has-text-align-center\" data-align=\"center\">CHOP\u503c<\/th><th>\u542b\u4e49<\/th><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">&gt;61.8<\/td><td>\u5e02\u573a\u9707\u8361\uff08\u6a2a\u76d8\uff09\uff0c\u9002\u5408\u89c2\u671b\u6216\u533a\u95f4\u4ea4\u6613<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">&lt;38.2<\/td><td>\u5e02\u573a\u8d8b\u52bf\uff0c\u9002\u5408\u8d8b\u52bf\u8ddf\u8e2a\u7b56\u7565<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">\u4e0b\u964d<\/td><td>\u9884\u8ba1\u4ef7\u683c\u5c06\u51fa\u73b0\u5f3a\u52b2\u6ce2\u52a8<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.laoyulaoyu.com\/wp-content\/uploads\/2025\/07\/1_jDLPCPirzFqtz4YZ6w4Zdg-1.png\" alt=\"\" class=\"wp-image-5744\"\/><\/figure>\n\n\n\n<p>\u4f8b\u5982\uff0c\u5f53CHOP\u9ad8\u4e8e61.8\u65f6\uff0c\u5e02\u573a\u53ef\u80fd\u5728\u6a2a\u76d8\uff0c\u4ea4\u6613\u8005\u5e94\u907f\u514d\u8d8b\u52bf\u7b56\u7565\uff1b\u4f4e\u4e8e38.2\u65f6\uff0c\u5e02\u573a\u53ef\u80fd\u6709\u660e\u786e\u8d8b\u52bf\uff0c\u9002\u5408\u8ffd\u968f\u8d8b\u52bf\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u4ee3\u7801\u5b9e\u73b0<\/strong><\/h3>\n\n\n\n<p>\u4e0b\u9762\u662f\u8ba1\u7b97CHOP\u7684Python\u4ee3\u7801\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def calculate_choppiness_index(df, period=14):\n    high_low_range = df&#91;'High'] - df&#91;'Low']\n    atr = high_low_range.rolling(window=period).sum()\n    max_high = df&#91;'High'].rolling(window=period).max()\n    min_low = df&#91;'Low'].rolling(window=period).min()\n    chop = 100 * np.log10(atr \/ (max_high - min_low)) \/ np.log10(period)\n    return chop<\/code><\/pre>\n\n\n\n<p><strong>\u4ee3\u7801\u89e3\u6790<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>high_low_range\uff1a\u8ba1\u7b97\u6bcf\u4e2a\u5468\u671f\u7684\u6700\u9ad8\u4ef7\u4e0e\u6700\u4f4e\u4ef7\u4e4b\u5dee\u3002<\/li>\n\n\n\n<li>atr\uff1a\u8ba1\u7b97\u8fc7\u53bb14\u5468\u671f\u7684\u603bATR\u3002<\/li>\n\n\n\n<li>max_high \u548c min_low\uff1a\u627e\u5230\u8fc7\u53bb14\u5468\u671f\u7684\u6700\u9ad8\u4ef7\u548c\u6700\u4f4e\u4ef7\u3002<\/li>\n\n\n\n<li>chop\uff1a\u4f7f\u7528\u5bf9\u6570\u516c\u5f0f\u8ba1\u7b97CHOP\u503c\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. VZO\u91cf\u80fd\u900f\u89c6\u4eea<\/strong><\/h2>\n\n\n\n<p>VZO\uff08Volume Zone Oscillator\uff09\u662f\u4e00\u4e2a\u8861\u91cf\u6210\u4ea4\u91cf\u4e70\u5356\u538b\u529b\u7684\u6307\u6807\u3002\u5b83\u901a\u8fc7\u5206\u6790\u4ef7\u683c\u53d8\u5316\u548c\u6210\u4ea4\u91cf\u7684\u5173\u7cfb\uff0c\u8861\u91cf\u5e02\u573a\u7684\u4e70\u5356\u538b\u529b\uff0c\u5e2e\u52a9\u8bc6\u522b\u79ef\u7d2f\uff08\u4e70\u76d8\uff09\u548c\u5206\u5e03\uff08\u5356\u76d8\uff09\u533a\u57df\u3002VZO\u7684\u503c\u5728-100\u5230+100\u4e4b\u95f4\u6ce2\u52a8\u3002<\/p>\n\n\n\n<p>\u6bd4\u5982\u8305\u53f03\u6708\u653e\u91cf\u4e0b\u8dcc\u65f6\uff0cVZO\u575a\u5b8840\u4e0a\u65b9\uff0c\u679c\u71361\u4e2a\u6708\u540e\u66b4\u6da818%\uff01\u91cf\u80fd\u6307\u6807\u4ece\u4e0d\u9a97\u4eba\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>VZO\u7684\u8ba1\u7b97\u6b65\u9aa4<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9996\u5148\uff0c\u8ba1\u7b97\u8fde\u7eed\u6536\u76d8\u4ef7\u4e4b\u95f4\u7684\u53d8\u5316\uff08Close.diff()\uff09\u3002<\/li>\n\n\n\n<li>\u5982\u679c\u4ef7\u683c\u4e0a\u6da8\uff0c\u6210\u4ea4\u91cf\u8bb0\u4e3a\u6b63\u503c\uff1b\u5982\u679c\u4ef7\u683c\u4e0b\u8dcc\uff0c\u6210\u4ea4\u91cf\u8bb0\u4e3a\u8d1f\u503c\u3002<\/li>\n\n\n\n<li>\u7136\u540e\uff0c\u8ba1\u7b97\u8fc7\u53bb14\u5468\u671f\u7684\u6b63\u6210\u4ea4\u91cf\u548c\u8d1f\u6210\u4ea4\u91cf\u603b\u548c\u3002<\/li>\n\n\n\n<li>\u6700\u540e\uff0c\u5c06\u6b63\u8d1f\u6210\u4ea4\u91cf\u5dee\u503c\u9664\u4ee5\u603b\u6210\u4ea4\u91cf\uff0c\u5e76\u4e58\u4ee5100\uff0c\u5f97\u5230VZO\u503c\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>VZO\u7684\u4fe1\u53f7\u5224\u65ad<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th class=\"has-text-align-center\" data-align=\"center\">VZO\u503c<\/th><th>\u542b\u4e49<\/th><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">&gt;+40<\/td><td>\u770b\u6da8\u52bf\u5934\u5f3a\u52b2\uff0c\u9002\u5408\u4e70\u5165<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">&lt;-40<\/td><td>\u770b\u8dcc\u52bf\u5934\u5f3a\u52b2\uff0c\u9002\u5408\u5356\u51fa<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">\u7a7f\u8fc70<\/td><td>\u786e\u8ba4\u8d8b\u52bf\u65b9\u5411\uff08\u5411\u4e0a\u4e3a\u770b\u6da8\uff0c\u5411\u4e0b\u4e3a\u770b\u8dcc\uff09<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.laoyulaoyu.com\/wp-content\/uploads\/2025\/07\/1_jDLPCPirzFqtz4YZ6w4Zdg-2.png\" alt=\"\" class=\"wp-image-5745\"\/><\/figure>\n\n\n\n<p>\u4f8b\u5982\uff0cVZO\u9ad8\u4e8e+40\u8868\u793a\u4e70\u76d8\u529b\u91cf\u5f3a\uff0c\u53ef\u80fd\u7ee7\u7eed\u4e0a\u6da8\uff1b\u4f4e\u4e8e-40\u8868\u793a\u5356\u76d8\u529b\u91cf\u5f3a\uff0c\u53ef\u80fd\u7ee7\u7eed\u4e0b\u8dcc\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u4ee3\u7801\u5b9e\u73b0<\/strong><\/h3>\n\n\n\n<p>\u4e0b\u9762\u662f\u8ba1\u7b97VZO\u7684Python\u4ee3\u7801\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def calculate_vzo(df, period=14):\n    close_diff = df&#91;'Close'].diff()\n    positive_volume = df&#91;'Volume'].where(close_diff &gt; 0, 0)\n    negative_volume = df&#91;'Volume'].where(close_diff &lt; 0, 0)\n    total_volume = df&#91;'Volume'].rolling(window=period).sum()\n    vzo = 100 * (positive_volume.rolling(window=period).sum() - negative_volume.rolling(window=period).sum()) \/ total_volume\n    return vzo<\/code><\/pre>\n\n\n\n<p><strong>\u4ee3\u7801\u89e3\u6790<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>close_diff\uff1a\u8ba1\u7b97\u8fde\u7eed\u6536\u76d8\u4ef7\u7684\u53d8\u5316\u3002<\/li>\n\n\n\n<li>positive_volume \u548c negative_volume\uff1a\u6839\u636e\u4ef7\u683c\u53d8\u5316\u5206\u914d\u6b63\u8d1f\u6210\u4ea4\u91cf\u3002<\/li>\n\n\n\n<li>total_volume\uff1a\u8ba1\u7b97\u8fc7\u53bb14\u5468\u671f\u7684\u603b\u6210\u4ea4\u91cf\u3002<\/li>\n\n\n\n<li>vzo\uff1a\u8ba1\u7b97\u6b63\u8d1f\u6210\u4ea4\u91cf\u5dee\u503c\u5e76\u5f52\u4e00\u5316\u5230-100\u5230+100\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4. CMF\u8d44\u91d1\u626b\u63cf\u4eea<\/strong><\/h2>\n\n\n\n<p>CMF\uff08Chaikin Money Flow\uff09\u662f\u4e00\u4e2a\u786e\u8ba4\u8d44\u91d1\u6d41\u5411\u7684\u5f3a\u529b\u5de5\u5177\u3002\u5b83\u7ed3\u5408\u4ef7\u683c\u548c\u6210\u4ea4\u91cf\u6570\u636e\uff0c\u5206\u6790\u6536\u76d8\u4ef7\u76f8\u5bf9\u4e8e\u6700\u9ad8\u4ef7\u548c\u6700\u4f4e\u4ef7\u7684\u4f4d\u7f6e\uff0c\u5e2e\u52a9\u786e\u8ba4\u8d8b\u52bf\u5f3a\u5f31\u3002CMF\u7684\u503c\u5728-1\u5230+1\u4e4b\u95f4\u6ce2\u52a8\u3002<\/p>\n\n\n\n<p>\u5f53\u4ef7\u683c\u521b\u65b0\u4f4e\u4f46CMF\u62ac\u5347\uff0c\u8bf4\u660e\u4e3b\u529b\u5077\u5077\u5438\u7b79\uff1b\u4ef7\u683c\u65b0\u9ad8CMF\u80cc\u79bb\uff0c\u8d76\u7d27\u843d\u888b\u4e3a\u5b89\uff01<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>CMF\u7684\u8ba1\u7b97\u6b65\u9aa4<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9996\u5148\uff0c\u8ba1\u7b97Money Flow Multiplier\uff08MFM\uff09\uff1a[(Close &#8211; Low) &#8211; (High &#8211; Close)] \/ (High &#8211; Low)\u3002<\/li>\n\n\n\n<li>\u7136\u540e\uff0c\u5c06MFM\u4e58\u4ee5\u5f53\u671f\u6210\u4ea4\u91cf\uff0c\u5f97\u5230Money Flow Volume\uff08MFV\uff09\u3002<\/li>\n\n\n\n<li>\u63a5\u7740\uff0c\u8ba1\u7b97\u8fc7\u53bb20\u5468\u671f\u7684MFV\u603b\u548c\uff0c\u5e76\u9664\u4ee5\u540c\u671f\u603b\u6210\u4ea4\u91cf\uff0c\u5f97\u5230CMF\u503c\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>CMF\u7684\u4fe1\u53f7\u5224\u65ad<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th class=\"has-text-align-center\" data-align=\"center\">CMF\u503c<\/th><th>\u542b\u4e49<\/th><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">&gt;+0.2<\/td><td>\u4e70\u76d8\u538b\u529b\u5f3a\u52b2\uff0c\u8d8b\u52bf\u53ef\u80fd\u7ee7\u7eed\u4e0a\u6da8<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">&lt;-0.2<\/td><td>\u5356\u76d8\u538b\u529b\u5f3a\u52b2\uff0c\u8d8b\u52bf\u53ef\u80fd\u7ee7\u7eed\u4e0b\u8dcc<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">\u7a7f\u8fc70<\/td><td>\u786e\u8ba4\u8d8b\u52bf\u65b9\u5411\uff08\u5411\u4e0a\u4e3a\u770b\u6da8\uff0c\u5411\u4e0b\u4e3a\u770b\u8dcc\uff09<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/www.laoyulaoyu.com\/wp-content\/uploads\/2025\/07\/1_jDLPCPirzFqtz4YZ6w4Zdg-3.png\" alt=\"\" class=\"wp-image-5746\" style=\"width:645px;height:auto\"\/><\/figure>\n\n\n\n<p>\u4f8b\u5982\uff0cCMF\u9ad8\u4e8e+0.2\u8868\u793a\u8d44\u91d1\u6d41\u5165\uff0c\u53ef\u80fd\u652f\u6301\u4e0a\u6da8\u8d8b\u52bf\uff1b\u4f4e\u4e8e-0.2\u8868\u793a\u8d44\u91d1\u6d41\u51fa\uff0c\u53ef\u80fd\u652f\u6301\u4e0b\u8dcc\u8d8b\u52bf\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\u4ee3\u7801\u5b9e\u73b0<\/strong><\/h3>\n\n\n\n<p>\u4e0b\u9762\u662f\u8ba1\u7b97CMF\u7684Python\u4ee3\u7801\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def calculate_cmf(df, period=20):\n    money_flow = ((df&#91;'Close'] - df&#91;'Low']) - (df&#91;'High'] - df&#91;'Close'])) \/ (df&#91;'High'] - df&#91;'Low'])\n    money_flow_volume = money_flow * df&#91;'Volume']\n    cmf = money_flow_volume.rolling(window=period).sum() \/ df&#91;'Volume'].rolling(window=period).sum()\n    return cmf<\/code><\/pre>\n\n\n\n<p><strong>\u4ee3\u7801\u89e3\u6790<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>money_flow\uff1a\u8ba1\u7b97Money Flow Multiplier\u3002<\/li>\n\n\n\n<li>money_flow_volume\uff1a\u5c06MFM\u4e58\u4ee5\u6210\u4ea4\u91cf\uff0c\u5f97\u5230MFV\u3002<\/li>\n\n\n\n<li>cmf\uff1a\u8ba1\u7b97\u8fc7\u53bb20\u5468\u671f\u7684MFV\u603b\u548c\u5e76\u9664\u4ee5\u603b\u6210\u4ea4\u91cf\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>5. \u89c2\u70b9\u603b\u7ed3<\/strong><\/h2>\n\n\n\n<p>\u8fd9\u56db\u79cd\u6280\u672f\u6307\u6807\u5404\u6709\u72ec\u7279\u4f18\u52bf\uff1aSTC\u5feb\u901f\u6355\u6349\u8d8b\u52bf\u53cd\u8f6c\uff0cCHOP\u5224\u65ad\u5e02\u573a\u8d8b\u52bf\u6216\u9707\u8361\uff0cVZO\u5206\u6790\u6210\u4ea4\u91cf\u538b\u529b\uff0cCMF\u786e\u8ba4\u8d44\u91d1\u6d41\u5411\u3002\u7ed3\u5408\u8fd9\u4e9b\u6307\u6807\uff0c\u4f60\u53ef\u4ee5\u6784\u5efa\u66f4\u5f3a\u5927\u7684\u4ea4\u6613\u7cfb\u7edf\uff0c\u63d0\u5347\u51b3\u7b56\u51c6\u786e\u6027\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>STC<\/strong>\uff1a\u8d8b\u52bf\u53d1\u52a8\u673a\uff0c\u6539\u8fdb\u7684MACD\u6307\u6807\uff0c\u6293\u4e3b\u5347\u6d6a\u5229\u5668\u3002<\/li>\n\n\n\n<li><strong>CHOP<\/strong>\uff1a\u5e02\u573a\u9707\u8361\u63a2\u6d4b\u5668\uff0c\u6ce2\u52a8\u6027\u6307\u6807\uff0c\u907f\u514d\u88ab\u5de6\u53f3\u6253\u8138\u3002<\/li>\n\n\n\n<li><strong>VZO<\/strong>\uff1a\u91cf\u80fd\u900f\u89c6\u955c\uff0c\u6210\u4ea4\u91cf\u6307\u6807\uff0c\u8861\u91cf\u4e70\u5356\u538b\u529b\uff0c\u770b\u7a7f\u4e3b\u529b\u5e95\u724c\u3002<\/li>\n\n\n\n<li><strong>CMF<\/strong>\uff1a\u8d44\u91d1\u626b\u63cf\u4eea\uff0c\u8d44\u91d1\u6d41\u5411\u6307\u6807\uff0c\u786e\u8ba4\u8d8b\u52bf\u5f3a\u5f31\uff0c\u8ddf\u8e2a\u806a\u660e\u94b1\u6d41\u5411\u3002<\/li>\n\n\n\n<li> \u7ec4\u5408\u4f7f\u7528\u6548\u679c\u7ffb\u500d\uff1a\u8d8b\u52bf\u91cc\u5403\u8089\uff0c\u9707\u8361\u91cc\u559d\u6c64\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>6. \u5b8c\u6574\u4ee3\u7801<\/strong><\/h2>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u5b8c\u6574\u7684Python\u4ee3\u7801\uff0c\u7528\u4e8e\u4e0b\u8f7d\u80a1\u7968\u6570\u636e\u3001\u8ba1\u7b97\u56db\u4e2a\u6307\u6807\u5e76\u7ed8\u5236\u56fe\u8868\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import numpy as np\nimport pandas as pd\nimport yfinance as yf\nimport matplotlib.pyplot as plt\n\n# \u5b9a\u4e49\u80a1\u7968\u7b26\u53f7\u548c\u65f6\u95f4\u6bb5\nsymbol = '^GSPC'  # \u4f8b\u5982 S&amp;P 500\nstart_date = '2020-01-01'\nend_date = '2025-01-01'\n\n# \u4e0b\u8f7d\u80a1\u7968\u6570\u636e\ndf = yf.download(symbol, start=start_date, end=end_date)\ndf.columns = &#91;'Close', 'High', 'Low', 'Open', 'Volume']\n\n# \u8ba1\u7b97 STC\ndef calculate_stc(df, short_ema=12, long_ema=26, stoch_period=10, signal_period=3):\n    df&#91;'Short_EMA'] = df&#91;'Close'].ewm(span=short_ema).mean()\n    df&#91;'Long_EMA'] = df&#91;'Close'].ewm(span=long_ema).mean()\n    macd = df&#91;'Short_EMA'] - df&#91;'Long_EMA']\n    df&#91;'MACD_Signal'] = macd.ewm(span=9).mean()\n    macd_diff = macd - df&#91;'MACD_Signal']\n    lowest_macd = macd_diff.rolling(stoch_period).min()\n    highest_macd = macd_diff.rolling(stoch_period).max()\n    df&#91;'STC'] = 100 * ((macd_diff - lowest_macd) \/ (highest_macd - lowest_macd))\n    return df&#91;'STC']\n\ndf&#91;'STC'] = calculate_stc(df)\n\n# \u8ba1\u7b97 CHOP\ndef calculate_choppiness_index(df, period=14):\n    high_low_range = df&#91;'High'] - df&#91;'Low']\n    atr = high_low_range.rolling(window=period).sum()\n    max_high = df&#91;'High'].rolling(window=period).max()\n    min_low = df&#91;'Low'].rolling(window=period).min()\n    chop = 100 * np.log10(atr \/ (max_high - min_low)) \/ np.log10(period)\n    return chop\n\ndf&#91;'CHOP'] = calculate_choppiness_index(df)\n\n# \u8ba1\u7b97 VZO\ndef calculate_vzo(df, period=14):\n    close_diff = df&#91;'Close'].diff()\n    positive_volume = df&#91;'Volume'].where(close_diff &gt; 0, 0)\n    negative_volume = df&#91;'Volume'].where(close_diff &lt; 0, 0)\n    total_volume = df&#91;'Volume'].rolling(window=period).sum()\n    vzo = 100 * (positive_volume.rolling(window=period).sum() - negative_volume.rolling(window=period).sum()) \/ total_volume\n    return vzo\n\ndf&#91;'VZO'] = calculate_vzo(df)\n\n# \u8ba1\u7b97 CMF\ndef calculate_cmf(df, period=20):\n    money_flow = ((df&#91;'Close'] - df&#91;'Low']) - (df&#91;'High'] - df&#91;'Close'])) \/ (df&#91;'High'] - df&#91;'Low'])\n    money_flow_volume = money_flow * df&#91;'Volume']\n    cmf = money_flow_volume.rolling(window=period).sum() \/ df&#91;'Volume'].rolling(window=period).sum()\n    return cmf\n\ndf&#91;'CMF'] = calculate_cmf(df)\n\n# \u7ed8\u5236\u6307\u6807\nfig, axs = plt.subplots(5, 1, figsize=(12, 12), sharex=True)\n\n# \u7ed8\u5236\u6536\u76d8\u4ef7\naxs&#91;0].plot(df.index, df&#91;'Close'], label='Close Price', color='black')\naxs&#91;0].set_title('Close Price')\naxs&#91;0].legend()\n\n# \u7ed8\u5236 STC\naxs&#91;1].plot(df.index, df&#91;'STC'], label='STC', color='blue')\naxs&#91;1].set_title('Schaff Trend Cycle (STC)')\naxs&#91;1].legend()\n\n# \u7ed8\u5236 CHOP\naxs&#91;2].plot(df.index, df&#91;'CHOP'], label='CHOP', color='green')\naxs&#91;2].set_title('Choppiness Index (CHOP)')\naxs&#91;2].legend()\n\n# \u7ed8\u5236 VZO\naxs&#91;3].plot(df.index, df&#91;'VZO'], label='VZO', color='red')\naxs&#91;3].set_title('Volume Zone Oscillator (VZO)')\naxs&#91;3].legend()\n\n# \u7ed8\u5236 CMF\naxs&#91;4].plot(df.index, df&#91;'CMF'], label='CMF', color='purple')\naxs&#91;4].set_title('Chaikin Money Flow (CMF)')\naxs&#91;4].legend()\n\nplt.tight_layout()\nplt.show()<\/code><\/pre>\n\n\n\n<p><strong>\u4ee3\u7801\u89e3\u6790<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6570\u636e\u4e0b\u8f7d<\/strong>\uff1a\u4f7f\u7528yfinance\u5e93\u4e0b\u8f7d\u80a1\u7968\u6570\u636e\uff08\u5982S&amp;P 500\uff09\u3002<\/li>\n\n\n\n<li><strong>\u6307\u6807\u8ba1\u7b97<\/strong>\uff1a\u5206\u522b\u8c03\u7528\u56db\u4e2a\u51fd\u6570\u8ba1\u7b97STC\u3001CHOP\u3001VZO\u548cCMF\u3002<\/li>\n\n\n\n<li><strong>\u56fe\u8868\u7ed8\u5236<\/strong>\uff1a\u4f7f\u7528matplotlib\u7ed8\u5236\u4e94\u4e2a\u5b50\u56fe\uff0c\u5206\u522b\u5c55\u793a\u6536\u76d8\u4ef7\u548c\u56db\u4e2a\u6307\u6807\u3002<\/li>\n<\/ul>\n\n\n\n<p>#\u7b97\u6cd5\u4ea4\u6613 #\u6280\u672f\u6307\u6807 #STC #CHOP #VZO #CMF #Python #\u80a1\u5e02\u5206\u6790 #\u91cf\u5316\u4ea4\u6613 #Python\u7f16\u7a0b #\u80a1\u7968\u6280\u672f\u5206\u6790 #\u91cf\u5316\u6295\u8d44 #\u91d1\u878d\u79d1\u6280<\/p>\n\n\n\n<p><em>\u8bfb\u5230\u6700\u540e\uff0c\u5e0c\u671b\u8fd9\u7bc7\u6587\u7ae0\u4e3a\u60a8\u5e26\u6765\u4e86\u65b0\u7684\u542f\u53d1\u548c\u5b9e\u7528\u7684\u77e5\u8bc6\uff01\u5982\u679c\u89c9\u5f97\u6709\u5e2e\u52a9\uff0c\u8bf7\u4e0d\u541d\u70b9\u8d5e\u548c\u5206\u4eab\uff0c\u60a8\u7684\u652f\u6301\u662f\u6211\u6301\u7eed\u521b\u4f5c\u7684\u52a8\u529b\u3002\u795d\u60a8\u6295\u8d44\u987a\u5229\uff0c\u6536\u76ca\u957f\u8679\uff01\u5982\u679c\u5bf9\u6587\u4e2d\u5185\u5bb9\u6709\u4efb\u4f55\u7591\u95ee\uff0c\u6b22\u8fce\u7559\u8a00\uff0c\u6211\u4f1a\u5c3d\u5feb\u56de\u590d\uff01<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"has-text-align-center\">\u672c\u6587\u5185\u5bb9\u4ec5\u9650\u6280\u672f\u63a2\u8ba8\u548c\u5b66\u4e60\uff0c\u4e0d\u6784\u6210\u4efb\u4f55\u6295\u8d44\u5efa\u8bae\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4f5c \u8005\uff1a\u8001\u4f59\u635e\u9c7c \u539f\u521b\u4e0d\u6613\uff0c\u8f6c\u8f7d\u8bf7\u6807\u660e\u51fa\u5904\u53ca\u539f\u4f5c\u8005&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/www.laoyulaoyu.com\/index.php\/2025\/07\/17\/%e6%89%93%e7%a0%b4%e4%bf%a1%e6%81%af%e5%b7%ae%ef%bc%81%e7%94%a8%e9%87%8f%e5%8c%96%e4%ba%a4%e6%98%93%e8%a7%a3%e9%94%814%e4%b8%aa%e9%b2%9c%e4%b8%ba%e4%ba%ba%e7%9f%a5%e7%9a%84%e8%b5%9a%e9%92%b1%e6%8c%87\/\">Continue reading<span class=\"screen-reader-text\">\u6253\u7834\u4fe1\u606f\u5dee\uff01\u7528\u91cf\u5316\u4ea4\u6613\u89e3\u95014\u4e2a\u9c9c\u4e3a\u4eba\u77e5\u7684\u8d5a\u94b1\u6307\u6807\uff08\u9644\u6e90\u7801\uff09<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[17,4,5,6],"class_list":{"0":"post-2423","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"hentry","6":"category-aiinvest","7":"tag-ai","10":"tag-6","11":"entry"},"_links":{"self":[{"href":"https:\/\/www.laoyulaoyu.com\/index.php\/wp-json\/wp\/v2\/posts\/2423","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.laoyulaoyu.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.laoyulaoyu.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.laoyulaoyu.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.laoyulaoyu.com\/index.php\/wp-json\/wp\/v2\/comments?post=2423"}],"version-history":[{"count":1,"href":"https:\/\/www.laoyulaoyu.com\/index.php\/wp-json\/wp\/v2\/posts\/2423\/revisions"}],"predecessor-version":[{"id":2424,"href":"https:\/\/www.laoyulaoyu.com\/index.php\/wp-json\/wp\/v2\/posts\/2423\/revisions\/2424"}],"wp:attachment":[{"href":"https:\/\/www.laoyulaoyu.com\/index.php\/wp-json\/wp\/v2\/media?parent=2423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.laoyulaoyu.com\/index.php\/wp-json\/wp\/v2\/categories?post=2423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.laoyulaoyu.com\/index.php\/wp-json\/wp\/v2\/tags?post=2423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}