K 线形态 - 十字星
逻辑说明:开盘价和收盘价非常接近(实体极小),同时有上下影线,且影线较长。代表多空双方势均力敌,是趋势可能转折的信号。
一段强烈的下跌趋势之后,出现一个十字星,且下影线较长,代表了探底回升,多方支撑有力,表示反转看涨;
一段强烈的上涨趋势之后,出现一个十字星,且上影线较长,代表了冲高失败,空方打压强劲,表示反转看跌。
计算公式:
实体:abs(开盘 - 收盘)
实体极小: 实体 / 收盘 < 0.001(阈值通过参数控制)
上影线:最高 - max(开盘, 收盘)
下影线:min(开盘, 收盘) - 最低
上影线较长:上影线 > 实体 * 影线比率 (通过参数控制)
下影线较长:下影线 > 实体 * 影线比率 (通过参数控制)
短期均线:收盘 [1-n1:0].avg()(n1 通过参数控制)
长期均线:收盘 [1-n2:0].avg()(n2 通过参数控制)
上涨趋势: 短期均线 > 长期均线 * (1 + 0.001) (阈值通过参数控制)
下跌趋势:短期均线 < 长期均线 * (1 - 0.001) (阈值通过参数控制)
返回值:
当下跌趋势时,出现实体极小,且下影线较长,返回 1,表示看涨;
当上涨趋势时,出现实体极小,且上影线较长,返回 -1,表示看跌;
否则返回 0
指标参数:
$y |
输出列名 |
n1 |
短周期,缺省 10 |
n2 |
长周期,缺省 20 |
k1 |
实体极小阈值,缺省 0.001 |
k2 |
涨跌趋势阈值,缺省 0.001 |
k3 |
影线较长比率,缺省 3 |
函数代码:
A |
B |
|
1 |
func Doji(A,$y,n1,n2,k1,k2,k3) |
=A.derive@o(abs(开盘 - 收盘 ):BODY, 收盘 [1-n1:0].avg():MA1, 收盘 [1-n2:0].avg():MA2) |
2 |
=A.run(if(MA1<MA2*(1-k2) && BODY/收盘 <k1 && min(开盘, 收盘)- 最低 >BODY*k3:1, MA1>MA2*(1+k2) && BODY/ 收盘 <k1 && 最高 -max(开盘, 收盘)>BODY*k3:-1; 0):${y}) |
|
3 |
=A.alter(;MA1,MA2,BODY) |
举例:
调用脚本计算浦发银行 2024 年的十字星形态:
A |
||
1 |
… |
/计算出源数据 |
2 |
=A1.derive(:Doji) |
/增加要返回的指标字段 |
3 |
= Doji (A2, Doji ,10,20,0.001,0.001,3) |
/调用函数计算指标 |
运行效果: