以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  期货人生  (http://222.73.7.161/bbs/list.asp?boardid=7)
----  “admin”版主我给你论坛短信了。  (http://222.73.7.161/bbs/dispbbs.asp?boardid=7&id=9197)

--  作者:简单至善
--  发布时间:2011/12/1 14:41:54
--  “admin”版主我给你论坛短信了。
望查收。谢谢
--  作者:jinzhe
--  发布时间:2011/12/1 14:47:15
--  
我觉得你还是直接发出来好一点~
--  作者:简单至善
--  发布时间:2011/12/1 17:45:22
--  

谢谢!我贴出来:

 

XK:=O;

XD:=L;

XG:=H;

XS:=C;

MA(XS,5);

 

我的想法是:想从系统提供的(或者系统自动生成的)原始k线数据(假设此为数列集合a),选择今日低价小于n周期的低价的k线和今日高价高于n周期前的k线出来组成新的k线数据组(假设此为新的行情数据集合b),ref(xd,1)要判断的数列b中的前一根k线的低价而不是a中的前一根k线的低价,只有满足条件后才生成新的k线和提取数据,否则过滤掉a数列中不符合条件的数据,有可能后面每根k线都要,有可能只要其中一根,也有可能连续很多根k线的数据都不要。MA(XS,5)是对数据列b中新的数据按照时间顺序排列进行ma(不含过滤掉的数据),特别的说明的是它一般不应该和主图中ma(c,5)等值。

 

感觉要参考这个公式:

VARIABLE:hh=high,ll=low,n=0,qs=low;
qs[1]:=0;
FOR i=2 TO DATACOUNT DO
begin
qs:=0;
IF HH>HH[i-1] AND LL>LL[i-1] THEn qs:=1 ;
IF HH<HH[i-1] AND LL<LL[i-1] THEN qs:=-1 ;
IF (HH>=HH[i-1] AND LL<=LL[i-1]) or (HH<=HH[i-1] AND LL>=LL[i-1]) THEN
    BEGIN
      IF qs[i-1]=1 THEN
        BEGIN
          HH:=MAX(HH,HH[i-1]);
          LL:=MAX(LL,LL[i-1]);
      END;
      IF qs[i-1]=-1 THEN
        BEGIN
          HH:=MIN(HH,HH[i-1]);
          LL:=MIN(LL,LL[i-1]);
         END;
     n:=n+1;
     HH[i-1]:=0;
     LL[i-1]:=0;
     qs:=qs[i-1];
    END;
END;

 

就是在末尾加Ma(xs,m);

Xs:收盘价的曲线

这两个线。


--  作者:简单至善
--  发布时间:2011/12/2 11:49:57
--  
等。。。
--  作者:fly
--  发布时间:2011/12/2 13:25:55
--  
可以尝试...
--  作者:蔡宛宏
--  发布时间:2011/12/19 16:48:51
--  
金字塔不支持数组吧 试试VBA编写一下?
--  作者:简单至善
--  发布时间:2011/12/21 8:29:11
--  

有哪位大爷是程序和思路的高手作一个