设为首页收藏本站

 找回密码
 注册
查看: 1213|回复: 4
打印 上一主题 下一主题

请教版主:如何统计一个价格在若干个bar中出现的次数 [复制链接]

Rank: 1

精华
0
UID
296377
积分
4
帖子
3
主题
1
阅读权限
10
注册时间
2020-10-3
最后登录
1970-1-1
跳转到指定楼层
1#
发表于 2020-10-14 20:03:53 |只看该作者 |倒序浏览
请教版主。请教如下:假设最新的bar上的价格是C,历史上每个bar出现过的价格范围是H-L,如何统计价格C在前若干个周期(如20个周期、60个周期)中出现的次数(c的价格历史上的每一个bar的H-L范围内为一次)。
比如,最新bar的收盘价是10元,前一个bar的最高价是11元,最低价是9元,那么最新价10元对于前一个bar算出现了一次。如果前前一个bar最高价是12元,最低价是11元,则不算。最后,对于最新bar的收盘价10元,在前2个bar中出现的次数是1次。

Rank: 3Rank: 3

精华
0
UID
280467
积分
163
帖子
103
主题
32
阅读权限
40
注册时间
2019-6-20
最后登录
2021-10-26
2#
发表于 2020-10-15 20:40:57 |只看该作者
本帖最后由 qh2019 于 2020-10-15 20:49 编辑

序列变量来记录,用for循环遍历.

使用道具 举报

Rank: 1

精华
0
UID
296377
积分
4
帖子
3
主题
1
阅读权限
10
注册时间
2020-10-3
最后登录
1970-1-1
3#
发表于 2020-10-17 12:32:05 |只看该作者
本帖最后由 mashaobin 于 2020-10-17 19:03 编辑
qh2019 发表于 2020-10-15 20:40
序列变量来记录,用for循环遍历.


Events
    OnBar(ArrayRef<Integer> indexs)
    {
            If((C <= H[1] And C >= L[1]))   
            AB=1;
            Else
            AB=0;       
            If((C <= H[2] And C >= L[2]))   
            AC=1;
            Else
            AC=0;
            If((C <= H[3] And C >= L[3]))   
            AD=1;
            Else
            AD=0;
            If((C <= H[4] And C >= L[4]))   
            AE=1;
            Else
            AE=0;
            If((C <= H[5] And C >= L[5]))   
            AF=1;
            Else
            AF=0;       
            A = AB+AC+AD+AE+AF;       
            }

上面是傻瓜型的编写方法,哪位能帮忙改简洁一些?

使用道具 举报

Rank: 4

精华
0
UID
110114
积分
380
帖子
314
主题
16
阅读权限
50
注册时间
2012-4-20
最后登录
2021-12-29
4#
发表于 2020-10-19 08:35:06 |只看该作者
记录每一个历史收盘价,排序,存入一个数组。根据当前K线收盘价查询数组,寻找价格一致的数据的数量(使用排序后的数组可以减少运行时间)。
我的问题在于,求解这个问题的意义在哪儿?

使用道具 举报

Rank: 1

精华
0
UID
296377
积分
4
帖子
3
主题
1
阅读权限
10
注册时间
2020-10-3
最后登录
1970-1-1
5#
发表于 2020-10-19 20:15:24 |只看该作者
本帖最后由 mashaobin 于 2020-10-19 21:35 编辑
Yuen_Lee 发表于 2020-10-19 08:35
记录每一个历史收盘价,排序,存入一个数组。根据当前K线收盘价查询数组,寻找价格一致的数据的数量(使用 ...


这个问题的意义在于判断前期历史bar的价格集中范围。在关键的价格集中区域,突破或跌破这个区域,价格表现是不同的,这就是这个问题的现实意义。

既然是要判断区域,那么每一个bar都是用H-L来界定每一个区间的,所以按照你的思路历史收盘价编入数组是实现不了的,编入数组的不是收盘价,是H到L的一个区间。

当然,可以换一个思路,不用现在c来判断是否在之前的区间中,也可以把区间做出来,再来判断C与区间的关系。



ps:把判断结果放在数组中调用,该问题已经解决,还是需要使用数组简化。谢谢各位。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-4-24 08:05

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部