从0到1学指标源码(六)满足某条件时K线画线指标源码解析

从0到1学指标源码(六)满足某条件时K线画线指标源码解析

首页休闲益智画线通过更新时间:2024-08-02

《从0到1学指标源码》已经发布了第6期了,也得到了许多股友们的支持和鼓励。其中,有位粉丝朋友留言,希望能写一个K线画线的公式,满足在主图中,kdj金叉时对应K线最低价画水平线,并且该水平线三天后不再主图中显示。首先,感谢这位粉丝朋友对我的信任和支持,本期文章,就以此展开讨论和解析。

在主图中,满足某条件时对应K线画水平线有以下几种方式:

一、满足某条件时对应K线画水平线不消失。

1、水平线一般都是向右延伸,那么,向右延伸是一直延伸不消失,还是当满足该条件、下一个条件信号发出时,画线重新开始且之前的水平线不消失,这两种形式哪种更合适呢?

2、在实战应用中,一般采取后者更为合适,因为前者水平线不消失的话,所有满足条件的水平线都会一直向右延伸,画面上就留下无数条水平线,不具有参考价值。所以,第一种画线方式我们就按照后者“当满足该条件、下一个条件信号发出时,画线重新开始且之前的水平线不消失”来定义公式。

3、这就需要运用以下几个函数:

(1)FILTER(X,N):过滤连续出现的信号,当X条件满足后,将其后N周期内的数据置为0(即,不显示),N为参数;例如:FILTER(CROSS(J,D),2)。

(2)SUMBARS(X,A):向前累加到指定值到现在的周期数。将X向前累加直到大于等于A,返回这个区间的周期数(即,连续出现);例如:SUMBARS(FILTER(CROSS(J,D),2),1)。

(3)STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY):绘制柱线,该使用方法在《从0到1学指标源码》之前文章中讲解过,这里不再重复。

(4)我们试着用这种方法实现粉丝朋友的画线要求:

RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;

K:=SMA(RSV,3,1);

D:=SMA(K,3,1);

J:=3*K-2*D;

KDJ金叉:=SUMBARS(FILTER(CROSS(J,D),3),1);

STICKLINE(KDJ金叉,REF(L,KDJ金叉-1),REF(L,KDJ金叉-1),5,0)COLOR0000FF;

图例1

图例2:第一种方式公式源码测试通过

二、满足某条件时对应K线画水平线,且原水平线消失,只保留最新满足条件的水平线。

1、正像粉丝朋友所描述,kdj金叉时对应K线最低价画水平线,并且该水平线三天后不再主图中显示,用函数语言描述的话,就是“求到最后K线的周期数”。

2、运用以下几个函数:

(1)CURRBARSCOUNT:求到最后K线的周期数,从最新一根K线倒数编号,从1开始计数。

例如,CURRBARSCOUNT<4,即从最新一根K线向前计数,小于4根,也就是取倒数3根K线。

(2)DRAWSL(COND,PRICE,SLOPE,LEN,DIRECT):绘制斜线,当COND条件满足时,在PRICE位置画斜线,SLOPE为斜率,LEN为长度,DIRECT为0向右延伸,1向左延伸,2双向延伸。

(3)我们就利用这两个函数来满足条件画线:

RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;

K:=SMA(RSV,3,1);

D:=SMA(K,3,1);

J:=3*K-2*D;

DRAWSL(CURRBARSCOUNT<5 AND FILTER(CROSS(J,D),3),L,0,100,0);

图例3

图例4:第二种方式公式源码测试通过

图例5

本期文章就写到这里,感兴趣的股友可以在软件上编辑公式源码,也能体验一下自己编程序的乐趣,也希望各位股友们继续支持我的文章,下期更精彩!

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved