zerioo 发表于 2016-9-29 17:59

不好意思,我想请教大家一个公式的问题

我想找出一个前40天到前10天一直横盘整理的股,请问怎样编写公式可选出呢?我用的是通达信。

横盘整理,我定的条件是这期间任意三天的高低点不超过5%。不知是否正确?

请大家指点我一下。谢谢!

投资顺利 发表于 2016-9-29 18:23

芝麻李秋平 发表于 2016-9-29 18:25

任意三天是指 前40天 至前10天里的任意三天 还是 这段期间内的任意连续三天
感觉条件还是有点模糊

zerioo 发表于 2016-9-29 19:27

芝麻李秋平 发表于 2016-9-29 18:25
任意三天是指 前40天 至前10天里的任意三天 还是 这段期间内的任意连续三天
感觉条件还是有点模糊

谢谢兄弟点醒我。我想条件就算在这期间内,高点与低点相差不超5%;另外,任意连续三天的差不超3%吧。

芝麻李秋平 发表于 2016-9-29 19:32

zerioo 发表于 2016-9-29 19:27
谢谢兄弟点醒我。我想条件就算在这期间内,高点与低点相差不超5%;另外,任意连续三天的差不超3%吧。

高点与低点相差不超5%
这个5%是相对于谁的 是前40 前10天这端时间的均价吗?
还有任意连续三天的差不超3% 是相对于谁的

zerioo 发表于 2016-9-29 20:15

芝麻李秋平 发表于 2016-9-29 19:32
高点与低点相差不超5%
这个5%是相对于谁的 是前40 前10天这端时间的均价吗?
还有任意连续三天的差不超3 ...

我想的是:
一、前40天到前10天之内,(最高点-最低点)/最低点<5%


二、前40天到前10天之内,(任意连线三天的高点-这三天的低点)/这三天的低点<3%

qushi 发表于 2016-9-29 22:27

一:
统计的实际是10天前的30天的统计结果,即,ref(统计结果,10), 统计结果换种思路就是一旦出现最高价比最低价高1.05%,即为不符合条件,30天内不符合的统计个数为零,为达标。可以这样做:
ref(count(h/l>1.05,30)=0,10)=0;
二:
方法相同,但考虑统计的两头各有前后两天参与统计,所以要各扣除2天,即有30-2-2=26天作为统计条件。可以这样做:
ref(count(hhv(h,3)/llv(l,3)>1.03,26)=0,10)=0;
似乎楼主把高低比给搞反了,哪有当日高低比<1.05%,反而要求3天内高低比<1.03%的?
是不是应该这样:
一、
ref(count(h/l>1.03,30)=0,10)=0;
二、
ref(count(hhv(h,3)/llv(l,3)>1.05,26)=0,10)=0;
随手在帖子上写的,没有在软件上编写和验证,如有细微错误,还请自己改正。

zhangjipeng0 发表于 2016-9-30 06:50

你提出的问题太简单了,但是不是几句话就能说清的,快拜我为师吧,我好教你,,,

zerioo 发表于 2016-9-30 08:59

qushi 发表于 2016-9-29 22:27
一:
统计的实际是10天前的30天的统计结果,即,ref(统计结果,10), 统计结果换种思路就是一旦出现最高价比 ...

你好,“似乎楼主把高低比给搞反了,哪有当日高低比<1.05%,反而要求3天内高低比<1.03%的?”,我的意思是这样

一、前40天到前10天这三十天内的最高点与最低点相差不到5%。

二、前40天到前10天这三十天内,连续三天的最高点与最低点相差不到3%。


你的公式我试了一下,不行,请看用ref(count(hhv(h,3)/llv(l,3)>1.05,26)=0,10)=0;,选出的首创股份,不满足要求。

zerioo 发表于 2016-9-30 09:08

zhangjipeng0 发表于 2016-9-30 06:50
你提出的问题太简单了,但是不是几句话就能说清的,快拜我为师吧,我好教你,,,

好啊,拜师没问题,请先解决一下我的问题,最好用一行语句解决。因为我已想出三种解决办法,但我想更精简公式,并想了解通达信的期间选择计算的方法。谢谢!

一笑过客 发表于 2016-9-30 09:10

本帖最后由 一笑过客 于 2016-9-30 09:12 编辑

qushi 发表于 2016-9-29 22:27
一:
统计的实际是10天前的30天的统计结果,即,ref(统计结果,10), 统计结果换种思路就是一旦出现最高价比 ...
没有热心和奖励了,只好回复点赞,大师水平。
两点建议,一是不必放在一句话里面;二是,h、l用惜玉的hhv、llv。
惜玉果然是谦谦君子,话不点明,公式里改,明眼人一看即知。但是楼下惜玉选择出来的不是预期,我估计是出自hhv(h,3)/llv(l,3)里面的参数3。

zerioo 发表于 2016-9-30 09:18

其实,我就是想选择出横盘整理后,向上突破再回调的股。问题拆解,就要先找出前期横盘整理的股。
我找出一个股,上个图可能描述更清楚。

一笑过客 发表于 2016-9-30 12:06

我下面的是形式逻辑,要跑通,麻烦修改语法:
{M天前N日内的振幅OSCIMN}
HHM:=HHV(H,M);HHN:=HHV(H,N-1);HHMN:=REF(HHN,M+1);

LLM:=LLV(L,M);LLN:=LLV(L,N-1);LLMN:=REF(LLN,M+1);
OSCIMN:=IF(HHM=HHN,HHM,HHMN)/IF(LLM=LLN,LLM,LLMN);

这里有横盘:=IF(OSCIMN<0.05);

zerioo 发表于 2016-9-30 13:16

一笑过客 发表于 2016-9-30 12:06
我下面的是形式逻辑,要跑通,麻烦修改语法:
{M天前N日内的振幅OSCIMN}
HHM:=HHV(H,M);HHN:=HHV(H,N-1) ...


我下面的是形式逻辑,要跑通,麻烦修改语法:
{M天前N日内的振幅OSCIMN}
HHM:=HHV(H,M);HHN:=HHV(H,N-1);HHMN:=REF(HHN,M+1);

LLM:=LLV(L,M);LLN:=LLV(L,N-1);LLMN:=REF(LLN,M+1);
OSCIMN:=IF(HHM=HHN,HHM,HHMN)/IF(LLM=LLN,LLM,LLMN);

这里有横盘:=IF(OSCIMN<0.05);


你好,我试用了此公式,但选出的股还是有问题,我觉得原因如下:

因我只考虑前40天到前10天内这三十天之间的高低点,所以,如果10天前到今天有最高点,则IF(HHM=HHN,HHM,HHMN)必满足HHM=HHN,则取出的高点是10天内的高点,而不是40天到前10天内这三十天之间的高点,低点也是这样。
因此,还是没有将前10天到今天的高低点的干扰排除。


一笑过客 发表于 2016-9-30 13:42

最后的一两句是不严谨的

OSCIMN:=IF(HHM=HHN,HHM,HHMN)/IF(LLM=LLN,LLMN,LLM);最后的两个应该倒过来。
这里有横盘:=IF(OSCIMN<1.05);不是0.05

zerioo 发表于 2016-9-30 14:58

一笑过客 发表于 2016-9-30 13:42
最后的一两句是不严谨的

OSCIMN:=IF(HHM=HHN,HHM,HHMN)/IF(LLM=LLN,LLMN,LLM);最后的两个应该倒过来。


谢谢帮助,我用如下公式试了一下,还不是能将我自己想要的股选出:

HHM:=HHV(H,M);HHN:=HHV(H,N-1);HHMN:=REF(HHN,M+1);

LLM:=LLV(L,M);LLN:=LLV(L,N-1);LLMN:=REF(LLN,M+1);

OSCIMN:=HHMN/LLMN;
OSCIMN<1.05;

zerioo 发表于 2016-9-30 14:59

我自己写了另一种思路的公式:

BARSLAST(HHV(H,30)/LLV(L,30)<1.05)<10 AND BARSLAST(HHV(H,30)/LLV(L,30)<1.05)>=8;

选了个600107.

一笑过客 发表于 2016-9-30 15:31

可惜6107是破位下行的。

对,就是这个barslast,老朽想了半天想不起来。
不过,它的用法对我而言有一点迷惑。
我得作为练习,把它用好。

zerioo 发表于 2016-9-30 15:56

一笑过客 发表于 2016-9-30 15:31
可惜6107是破位下行的。

对,就是这个barslast,老朽想了半天想不起来。

我将条件放松一些,再加个20日均线向上:

F1:=BARSLAST(HHV(H,30)/LLV(L,30)<1.05)<15 AND BARSLAST(HHV(H,30)/LLV(L,30)<1.05)>=3;
F2:=MA(C,20)>REF(MA(C,20),1);{现在M20上行的}
F1 AND F2;


现在只能选出601339。

不过,搜索前期横盘整理的股的要求已基本满足。现在需要精益求精了。

zhangjipeng0 发表于 2016-10-15 06:56

zerioo 发表于 2016-9-30 09:08
好啊,拜师没问题,请先解决一下我的问题,最好用一行语句解决。因为我已想出三种解决办法,但我想更精简 ...

下载数据,利用电子表格,在利用简单的逻辑运算。。。
页: [1] 2
查看完整版本: 不好意思,我想请教大家一个公式的问题