RSI指标计算:该代码首先定义了两个时间周期变量M和N,然后计算了前一日的收盘价LC。接着,通过计算收盘价与前一日收盘价的差值,并用平滑移动平均(SMA)来计算相对强弱指数(RSI),用于衡量股票的超买或超卖状态。
指标源码如下:
M:=55;
N:=34;
LC:=REF(CLOSE,1);
rsi:=((SMA(MAX((CLOSE - LC),0),3,1) / SMA(Abs((CLOSE - LC)),3,1)) * 100);
FF:=EMA(CLOSE,3);
MA15:=EMA(CLOSE,21);
VAR1:=IF(YEAR>=2038 AND MONTH>=1,0,1);
VAR2:=REF(LOW,1)*VAR1;
VAR3:=SMA(ABS(LOW-VAR2),3,1)/SMA(MAX(LOW-VAR2,0),3,1)*100*VAR1;
VAR4:=EMA(IF(CLOSE*1.3,VAR3*10,VAR3/10),3)*VAR1;
VAR5:=LLV(LOW,30)*VAR1;
VAR6:=HHV(VAR4,30)*VAR1;
VAR7:=IF(MA(CLOSE,58),1,0)*VAR1;
VAR8:=EMA(IF(LOW<=VAR5,(VAR4+VAR6*2)/2,0),3)/618*VAR7*VAR1;
吸筹:IF(VAR8>100,100,VAR8)*VAR1,COLORRED;
主力吸筹:STICKLINE(吸筹>-150,0,吸筹,8,0),COLORRED;
SH:=100*(HHV(HIGH,M)-CLOSE)/(HHV(HIGH,M)-LLV(LOW,M)),COLORLIBLUE,LINETHICK1;
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;
主力:EMA(J,6),COLORLIRED,LINETHICK2;
AA:=C>MA(C,30);
STICKLINE(crOSS(主力,SH),0,60,2,0),LINETHICK3,COLORMAGENTA;
DRAWICON(CROSS(主力,SH),60,9);
吸筹与主力指标计算:代码通过一系列复杂的计算,包括EMA、SMA、MAX、MIN等函数,定义了多个变量如VAR1到VAR8。这些变量用于计算“吸筹”指标,表示主力资金的吸筹行为。同时,定义了“主力”指标,通过计算kdj指标中的J值的EMA来反映主力动向。
可视化:代码最后部分通过STICKLINE和DRAWICON函数,将计算出的“吸筹”和“主力”指标以图形的方式在股票图表上进行可视化。当“主力”指标上穿“SH”指标时,会绘制紫色柱状图和图标,帮助投资者直观地识别主力资金的动向和可能的交易信号。
效果图如下:
代码注释如下:
一、变量定义与初始化
M:=55;和N:=34;定义了两个常量,可能在后续计算中会用到。
LC:=REF(CLOSE,1);表示引用前一日的收盘价。
rsi:=((SMA(MAX((CLOSE - LC),0),3,1) / SMA(Abs((CLOSE - LC)),3,1)) * 100);计算相对强弱指数(RSI),通过计算特定周期内价格上涨幅度的平均值与价格上涨下跌幅度绝对值的平均值之比,再乘以 100 得到。
FF:=EMA(CLOSE,3);和MA15:=EMA(CLOSE,21);分别计算 3 日指数移动平均线和 21 日指数移动平均线。
VAR1:=IF(YEAR>=2038 AND MONTH>=1,0,1);根据当前日期判断得到一个值,可能用于后续条件判断。
VAR2:=REF(LOW,1)*VAR1;引用前一日的最低价并与VAR1相乘。
VAR3:=SMA(ABS(LOW-VAR2),3,1)/SMA(MAX(LOW-VAR2,0),3,1)*100*VAR1;计算一个与最低价相关的指标值,并与VAR1相乘。
VAR4:=EMA(IF(CLOSE*1.3,VAR3*10,VAR3/10),3)*VAR1;根据收盘价的不同情况计算指标值并进行指数移动平均,再与VAR1相乘。
VAR5:=LLV(LOW,30)*VAR1;计算 30 日最低价的最低值并与VAR1相乘。
VAR6:=HHV(VAR4,30)*VAR1;计算VAR4在 30 日内的最高值并与VAR1相乘。
VAR7:=IF(MA(CLOSE,58),1,0)*VAR1;如果收盘价的 58 日移动平均线存在,则VAR7为 1,否则为 0,再与VAR1相乘。
VAR8:=EMA(IF(LOW<=VAR5,(VAR4+VAR6*2)/2,0),3)/618*VAR7*VAR1;根据最低价与VAR5的比较情况计算指标值,并进行指数移动平均,再除以 618 并与VAR7和VAR1相乘。
二、指标计算与绘制
吸筹:IF(VAR8>100,100,VAR8)*VAR1,COLORRED;计算吸筹指标值,如果VAR8大于 100 则取值为 100,否则为VAR8的值,再与VAR1相乘,显示为红色。
主力吸筹:STICKLINE(吸筹>-150,0,吸筹,8,0),COLORRED;当吸筹指标值大于 -150 时,绘制柱状图,颜色为红色。
SH:=100*(HHV(HIGH,M)-CLOSE)/(HHV(HIGH,M)-LLV(LOW,M)),COLORLIBLUE,LINETHICK1;计算一个指标SH,颜色为浅蓝色,线宽为 1。
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;计算未成熟随机值(RSV)。
K:=SMA(RSV,3,1);和D:=SMA(K,3,1);分别计算 K 值和 D 值,是对 RSV 进行平滑处理得到。
J:=3*K-2*D;计算 J 值。
主力:EMA(J,6),COLORLIRED,LINETHICK2;对 J 值进行指数移动平均得到主力指标,颜色为浅红色,线宽为 2。
AA:=C>MA(C,30);判断当前收盘价是否大于 30 日移动平均线。
STICKLINE(crOSS(主力,SH),0,60,2,0),LINETHICK3,COLORMAGENTA;当主力指标与SH指标交叉时,绘制宽度为 2 的柱状图,颜色为洋红色。
DRAWICON(CROSS(主力,SH),60,9);当主力指标与SH指标交叉时,在 60 的位置绘制图标 9。