请舟亢或冬夜老师回答:BARSSINCEN函数的使用 (文华财经WH6赢顺V6.7)

投资者咨询:请舟亢或冬夜老师回答:BARSSINCEN函数的使用 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-7-30 16:39
  舟亢、冬夜老师好!

     不好意思,因在编程中使用到BARSSINCEN函数,但在验证中发现结果与该函数的说明有出入,只好请教二位。  

     测试代码如下:(测试结果如下图)

当前低点:REF(L,2)=LLV(L,60),NODRAW;//前第2根K线为60周期内最低(A点)
当前高点:HHV(H,20),NODRAW;//当前低点前面的高点(B点) 
当前高点距离:HHVBARS(H,20),NODRAW;//HHV(H.20)距当前K线的距离 
上次低点:REF(LLV(L,60),当前高点距离),NODRAW;//从当前高点(B点)开始算起,前60周期内的低点(C点)

上次低点距离A:BARSSINCE(L=上次低点),NODRAW;//BARSSINCE(COND) 统计第一次满足条件的K线到现在的周期数
        //例:BARSSINCE(CLOSE>OPEN);//统计第一次满足阳线这个条件的K线到现在的周期数

上次低点距离B:BARSSINCEN(L=上次低点,60),NODRAW; //统计N周期内第一次条件成立到当前的周期数

      //例:
     //N:=BARSLAST(DATE<>REF(DATE,1))+1;//分钟周期,当日K线数。
     //BARSSINCEN(ISUP,N);//统计N周期内第一次满足阳线到当前的周期数

 请教:BARSSINCEN(COND,N)函数是从光标处的K线开始,从后向前检索满足条件的K线?还是从当前光标处前数N周期开始,从前向后检索满足条件的K线?

   从验证结果看,BARSSINCEN函数是从光标处的K线开始,从后向前检索“L=上次低点”的K线,在检索到前面第3根K线满足条件后,给出结果=3。并同时停止再向前进行检索。

     而不是从当根K线的前60根K线开始检索。如果是从前60根K线检索,那结果应该是23。

     如果我的理解是正确的话,那么我认为BARSSINCEN(COND,N)函数的说明中的“N周期内的第一次”有误,或者没有说清楚。

    另外,如果BARSSINCEN(COND,N)函数定义就是【N周期内距当前K线最近的“第一次”】,我个人认为不如定义为【N周期内距当前K线最开始的“第一次”】更有实际使用价值。

    如何能够找到下图中距光标处前23的那根K线?

    请指教!谢谢。  

图片点击可在新窗口打开查看
 
技术人员回复
日期:2018-7-30 17:02

BARSSINCEN与函数说明没有出入的

 

关键在于'上次低点‘’这个值是变动的所以60周内不能总以2806.25来判断L=上次低点

 

您结合原帖15与17楼回复以及下图理解一下:http://help.wenhua.com.cn/dispbbs.asp?boardid=14&id=723088&page=&star=2

 

为例便于比较下图输出“上次低点”并且当L=上次低点时标注笑脸:



图片点击可在新窗口打开查看

投资者咨询:请舟亢或冬夜老师回答:BARSSINCEN函数的使用 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-7-30 16:39
 冬夜老师好!

      谢谢您的回复!

          我发此贴有2个目的:

             1、  想搞清楚:BARSSINCEN(COND,N)函数是从光标处的K线开始,从后向前检索满足条件的K线?还是从当前光标处前数N周期开始,从前向后检索满足条件的K线?

                   泡芙老师说是“从前向后”,那我就不明白了,结果为什么不是23,或其他(因为一共有5处)?

            2、如何编程能够找到距光标处前23的那根K线?

          再次感谢!
投资者咨询:请舟亢或冬夜老师回答:BARSSINCEN函数的使用 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-7-30 16:39
 冬夜老师好!

        我用函数说明中的例子测试:

               N:BARSLAST(DATE<>REF(DATE,1))+1,NODRAW;//分钟周期,当日K线数。
         当日第一根阳线距离:BARSSINCEN(ISUP,N),NODRAW;//统计N周期内第一次满足阳线到当前的周期数

  BARSSINCEN函数确实是从前向后搜索的!

但让我不解的是:当K线走到光标处时,上次低点的值是一个定值,只不过是以变量的形式存在。那么在执行BARSSINCEN函数时,函数应该以这个变量值为条件在N周期内从前向后搜索,而不应该再

重新计算上次低点。

从代码被执行的逻辑上讲,当代码运行到BARSSINCEN函数时,(这时上次低点的代码已经执行完,并得到了2806.25数值)调用BARSSINCEN函数模块,并将COND和N这两个外部变量导入BARSSINCEN函数模块。

 然后在该函数内部执行循环N次,以从前向后方式检索在N周期内“第一次”满足COND条件的点。因此根本涉及不到重新计算“上次低点”的代码啊。

 不明白,不明白!

冬夜老师,真的没有办法求得图中距当前K线23处的那个K线吗?




 
技术人员回复
日期:2018-7-30 21:04
 您不要想复杂了,您把BARSSINCEN(COND,N) 分开看就行了

首先先确定N周期的范围,包括当前周期在内和之前k线的N周期,然后这部分k线单独看COND条件

找出这些k线中第一次满足的位置,然后求距离就行了,这里的COND和当前k线没关系,只看区域内当根k线是否满足当时的COND

可您理解中条件的判断用了当前k线数据,那肯定是不对的

最后您想去的数值,您在条件上就有问题的,因为上次低点是可能长时间不变,但是最为一个价格,很难出现正好相等的情况

低点的取值不是用这个方法的,函数使用就不对,您没必要继续用这个方法研究的,如果想取值,请重新量化条件后取值

比如上穿均线后,取之前最低价
 
投资者咨询:请舟亢或冬夜老师回答:BARSSINCEN函数的使用 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-7-30 16:39
 舟亢老师好!

        根据您的解释,我理解BARSSINCEN(COND,N) 函数是“单独”运行的,也就是说BARSSINCEN(COND,N) 函数运行时和前面的那些代码计算结果是没关系的。

          当运行到BARSSINCEN(COND,N) 时,在区域内检索某根K线是否满足“L=上次低点”时,再分别去求出当前K线的L和“上次低点”。

          如果是这样,那我就明白了泡芙老师和冬夜老师所说的“上次低点”是不确定的意思了。

          我个人认为。顶底背离是判断行情的后期走向准确率最高的方法之一(走单边除外,因为那时任何指标都是失效的)。而找到和判断前期的高低点与当前高低点之间的状态,又是判断顶底背离的重要和最有效的方法!

           我也看到很多人在论坛里问到关于前期高低点判断的问题。

           如果文华能够开发出来我上面所说的函数就好了。

         
技术人员回复
日期:2018-7-31 9:00

 您6楼理解是正确的,每一根K线最低价都与当根的“上次低点”去比较判断是否成立

 

此外,23这个数值是求不出来的,因为对应前23周期的“上次低点”还没到2806.25

 

所以此类未来性质的求法是无法与交易指令连用的,您了解一下