发新话题
打印

给大家出一道题

引用:
索龙居士趋势猫 于 2004-8-5 03:53 写道:
您好!请问这个周期动态的,或者称“智能”的周期有何意义?
它本身并无实质意义,是一个帮助你达到另一个目的的工具。说白了它就是一个“自动的测量”工具。举个例:今成交量创近期新高,“近期”是一个模糊的概念,究竟“近期”是多少,用它就能精确的实现。

TOP

再举一个例,一般选大黑马的一个基本要素是:在一定的Y幅度内横盘X周期,这里的YX都是固定的。这个要素简单实用,但不能排序,如用南客老师的题意改编YX中的一个为动态数,那就可排序了。个人管见,望大家指正。

TOP

难度大。。。。。。。。

TOP

转帖一个


b:=hhv(h,0);
a:=if(BARPOS=1,9999,h);
z:SUMBARS(REF(a,1)-a,0);
DRAWNUMBER(BARPOS=SYSPARAM(1),1,z,0)ALIGN4,colorwhite;
u:=hhv(v,0);
s:=if(BARPOS=1,999999999999,v)
y:SUMBARS(REF(s,1)-s,0);
DRAWNUMBER(BARPOS=SYSPARAM(1),1,y,0)ALIGN3,coloryellow;

TOP

引用:
bajatje 于 2004-8-6 19:26 写道:
转帖一个


b:=hhv(h,0);
a:=if(BARPOS=1,9999,h);
z:SUMBARS(REF(a,1)-a,0);
DRAWNUMBER(BARPOS=SYSPARAM(1),1,z,0)ALIGN4,colorwhite;
u:=hhv(v,0);
s:=if(BARPOS=1,999999999999,v)
y:SUMBARS(REF(s, ...
好像还是不太对题
短线易,中线难,长线更难

TOP

试了试用循环函数写:
VARIABLE:A=2,B=2,AA=VOL,BB=H;
WHILE AA[1]>AA[A] DO A=A+1;
WHILE BB[1]>BB[B]  DO B=B+1;

TOP

呵呵,终于用基本函数有了符合要求的代码,最后的参考结果如下:
复制内容到剪贴板
代码:
b:=hhv(h,0);
a:=if(BARPOS=1,b[datacount],h);
价:SUMBARS(REF(a,1)-a,0);

u:=hhv(v,0);
s:=if(BARPOS=1,u[datacount],v);
量:SUMBARS(REF(s,1)-s,0);

TOP

引用:
白郎 于 2004-8-6 09:39 PM 写道:
试了试用循环函数写:
VARIABLE:A=2,B=2,AA=VOL,BB=H;
WHILE AA[1]>AA[A] DO A=A+1;
WHILE BB[1]>BB[B]  DO B=B+1;
要用二重循环才有办法实现:)

TOP

使用飞狐循环的公式代码,参考如下:
复制内容到剪贴板
代码:
fv:=vol;
p:0*vol;
if datacount>1 then
  for i=2 to datacount do begin
    for j=i downto 1 do begin
      if fv[j]>fv[i] then begin
        p[i]:=i-j; break;
      end;
    end;
    if p[i]=0 then p[i]:=i;
  end;
p[1]:=1;

TOP

附加说明,飞狐中,sumbars()函数起始有效周期有点小问题,新的测试版已经修正。

TOP

3q

TOP

第一天显示还有点问题,
是飞狐的BUG引起的。谢谢老师!

本贴由 joneslee 于 2004-8-6 22:58 最后编辑

TOP

谢谢南客老师!

TOP

第1个周期,正常情况下,是不会显示数值的,飞狐的sumbars()函数有BUG,在新版中已经修正了。

TOP

请教南客朋友:
b:=hhv(h,0);
a:=if(BARPOS=1,b[datacount],h);
价:SUMBARS(REF(a,1)-a,0);

u:=hhv(v,0);
s:=if(BARPOS=1,u[datacount],v);
量:SUMBARS(REF(s,1)-s,0);

同样的公式,为什么价能显示,量不能显示?
把“量:SUMBARS(REF(s,1)-s+1,0)”中的“S”加1
或把“s:=if(BARPOS=1,u[datacount]+1,v)”中的“u[datacount]”加1才能显示,是何原因?

TOP

u[datacount],实际上就是历史最大成交量,有可能由于成交量太大,导致的浮点数转换误差,造成u[datacount]并没有最大。
此时,可把u[datacount]换成u[datacount]+10000,单是加1是不够的。数值太大时,转换误差也越大。

比如,观察上证指数的年线。

至于价格,一般数值都不会太大,出现误差的可能性小。

TOP

谢谢南客
短线易,中线难,长线更难

TOP

请问南客公式粘贴后出现一下现象,为何?
附件: 您所在的用户组无法下载或查看附件
短线易,中线难,长线更难

TOP

附件: 您所在的用户组无法下载或查看附件
短线易,中线难,长线更难

TOP

对比
附件: 您所在的用户组无法下载或查看附件
短线易,中线难,长线更难

TOP

哦,原来是遇到最大值时,会有这个现象,看来最大值还不行,要比最大值稍大一点。有时遇到最大值时,又不会有这个现象,是因为累加误差的缘故。

代码修正如下:
复制内容到剪贴板
代码:
b:=hhv(h,0);
a:=if(BARPOS=1,b[datacount]*1.2,h);
价:SUMBARS(REF(a,1)-a,0);

u:=hhv(v,0);
s:=if(BARPOS=1,u[datacount]*1.2,v);
量:SUMBARS(REF(s,1)-s,0);

TOP

代码的另一种写法,参考如下:
复制内容到剪贴板
代码:
VH:=HHV(VOL,0);
FV:=VOL;
FV[1]:=VH[DATACOUNT]*1.2;  //VH[DATACOUNT]是历史最高成交量
量创新高周期数:SUMBARS(REF(FV,1)-FV,0);

TOP

问题已解决
好东西
非常感谢南客!!!
短线易,中线难,长线更难

TOP

代码已经成功了,原理是什么呢?

假设某是成交量是vol,是3日内的最大成交量,则必有:
ref(vol,3)-vol>=0
等价于
(ref(vol,3)-ref(vol,2))  +  (ref(vol,2)-ref(vol,1))  +  (ref(vol,1)-vol) >=0
意思就是说,“昨成交量与今成交量之差”逐日累加,直到某日累加和大于等于0,则这之间的天数,就是所要求的日数。

我们再来看看sumbars()函数的含义
SUMBARS(X,A):将X向前累加直到大于等于A,返回这个区间的周期数

显然上面的式子
(ref(vol,3)-ref(vol,2))  +  (ref(vol,2)-ref(vol,1))  +  (ref(vol,1)-vol) >=0
可以写成
sumbars(ref(vol,1)-vol, 0);


为何第1周期的成交量要替换成比所有成交量都大的数值?请大家自己思考。

TOP

发新话题