K 线形态 - 十字星

  • 逻辑说明:开盘价和收盘价非常接近(实体极小),同时有上下影线,且影线较长。代表多空双方势均力敌,是趋势可能转折的信号。

    1. 一段强烈的下跌趋势之后,出现一个十字星,且下影线较长,代表了探底回升,多方支撑有力,表示反转看涨;

    2. 一段强烈的上涨趋势之后,出现一个十字星,且上影线较长,代表了冲高失败,空方打压强劲,表示反转看跌

  • 计算公式

    1. 实体:abs(开盘 - 收盘)

    2. 实体极小: 实体 / 收盘 < 0.001(阈值通过参数控制)

    3. 上影线:最高 - max(开盘, 收盘)

    4. 下影线:min(开盘, 收盘) - 最低

    5. 上影线较长:上影线 > 实体 * 影线比率 (通过参数控制)

    6. 下影线较长:下影线 > 实体 * 影线比率 (通过参数控制)

    7. 短期均线:收盘 [1-n1:0].avg()(n1 通过参数控制)

    8. 长期均线:收盘 [1-n2:0].avg()(n2 通过参数控制)

    9. 上涨趋势: 短期均线 > 长期均线 * (1 + 0.001) (阈值通过参数控制)

    10. 下跌趋势:短期均线 < 长期均线 * (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)

/调用函数计算指标

运行效果:

..