D 那行代码就是 - A,我数学不好都看出来了 —— 这公式到底在干嘛
先说一句,这公式短得离谱,六行。我盯着看了半分钟才反应过来它在干嘛。
A=SLOPE(CLOSE,10)/C×100。SLOPE 是 10 日线性回归的斜率,除以收盘价再乘 100,就是 "最近 10 天每天平均涨百分之几"。正数说明这 10 天整体在涨,负数说明在跌。
B=FORCAST(CLOSE,10)/C。FORCAST 是 10 日线性回归的预测值 —— 把最近 10 天的点拟合成一条直线,这条线明天的值就是 FORCAST。除以现价,就是 "预测明天比今天高百分之几"。
D=-(SLOPE(CLOSE,10)/C×100)。看出来没?这就是-A。作者绕了一大圈写了个负号,其实就是 - A。
F=(A×C+B×C)/C。分子分母一约,就是A+B。作者又绕了一圈。
买 = CROSS (A,D) OR CROSS (F,D)。因为 D=-A,所以CROSS(A,D)就是 A 从负变正 ——10 日斜率由跌转涨。CROSS(F,D)是 A+B 从负变正。两个条件满足一个就触发。
最后FILTER (买,5):5 天内只出第一次信号,避免反复抖动。
源码直接复制,日线使用:
A:=SLOPE(CLOSE,10)/C*100; B:=FORCAST(CLOSE,10)/C; D:=-(SLOPE(CLOSE,10)/C*100); F:=(A*C+B*C)/C; 买:=CROSS(A,D) OR CROSS(F,D); XG:FILTER(买=1,5);
吐槽一下作者的写法。D=-A 这件事,他完全可以直接写 CROSS (A,0),非要再造一个变量 D;F=A+B,他也完全可以直接写,非要乘 C 除 C 化简。这不是数学问题,是排版习惯 —— 网上很多公式都这样,写的人自己看着舒服,读的人满头雾水。
说回逻辑本身。这公式本质就一句话:10 日线性回归斜率从下跌变成上涨。听着挺玄乎,其实和 "5 日均线上穿 10 日均线" 是一类思路,只是用线性回归代替了简单均线。
问题也在这。10 日窗口太短,线性回归在这么短的窗口里,噪音比信号大。一根大阳线就能把斜率从负拉成正,第二天又跌回去。FILTER (买,5)只是把 5 天内的重复信号滤掉,没解决斜率本身容易反复的问题。真要用,得拉长窗口到 20 日或 30 日再看,或者加个量能确认 —— 光靠一个斜率转向,太单薄了。
指标仅为技术交流,不构成投资建议。市场有风险,入市需谨慎。
扩展阅读:https://mp.weixin.qq.com/s/ulNhpk6vZjTSPhlKyY4UiA


