开拓者期货期权程序化系统交易论坛

标题: 请教版主:如何统计一个价格在若干个bar中出现的次数 [打印本页]

作者: mashaobin    时间: 2020-10-14 20:03:53     标题: 请教版主:如何统计一个价格在若干个bar中出现的次数

请教版主。请教如下:假设最新的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次。
作者: qh2019    时间: 2020-10-15 20:40:57

本帖最后由 qh2019 于 2020-10-15 20:49 编辑

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

作者: mashaobin    时间: 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;       
            }

上面是傻瓜型的编写方法,哪位能帮忙改简洁一些?
作者: Yuen_Lee    时间: 2020-10-19 08:35:06

记录每一个历史收盘价,排序,存入一个数组。根据当前K线收盘价查询数组,寻找价格一致的数据的数量(使用排序后的数组可以减少运行时间)。
我的问题在于,求解这个问题的意义在哪儿?
作者: mashaobin    时间: 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:把判断结果放在数组中调用,该问题已经解决,还是需要使用数组简化。谢谢各位。




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2