您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

数组数据越界问题 [金字塔]

  • 咨询内容:

    请教版主,如下一段程序,目的是一分钟K线图上,先建立270个元素K线序列数据的数组,每天第一根K线时对270个元素数组清零,后根据条件寻找高低拐点,并将各拐点相应的最高最低价格,储存在相应K线(NN)位置序号数组变量中,其他不是拐点的数组变量清零。查看Zigzag[1]~Zigzag[270],可以看到每个拐点的高低点数据,是拐点就有数据,不是拐点数据为零,我想将各波峰波谷高低点数据画线连接起来,但最后一行命令POLYLINE(Zigzag[NN]<>0,Zigzag[NN],COLORRED,1,VTSOLID),总是报数组越界错误,对于数组越界问题,金字塔系统解释不是很到位,如什么情况数组报越界错误,就一个简单的“数组越界"报错,很难找到真正原因。肯请管理员,帮忙提示问题到达在哪儿?谢谢!


    variable:Zigzag[270]=0;


    NN:=barslast(day<>ref(day,1))+1;
    If NN=1 Then BEGIN
       For i=1 to 270 do Zigzag[i]:=0; 
       whatlookfor:=0 ;

       LASTLOWSET:=NN;

       LASTLOW:=OPEN;

       LASTHIGHSET:=NN;

       LASTHIGH:=Open;

       .......

    END            
         
    If whatlookfor=0 Then Begin               //当日首K线为起点,寻找第一个拐点
       .....   
    END

     

    If whatlookfor=1 Then Begin                 //最后K线是向下拐点,寻找高点
        ......

        whatlookfor:=-1;
        Zigzag[LASTLOWSET]:=LASTLOW;
    END

     

    If whatlookfor=-1 Then Begin                //最后K线是向上拐点,寻找低点
        .....

        whatlookfor:=1;          
        Zigzag[LASTHIGHSET]:=LASTHIGH;

    END

     


    POLYLINE(Zigzag[NN]<>0,Zigzag[NN],COLORRED,1,VTSOLID);

     

     

  • 金字塔客服:

    如今天上午股指1分钟的拐点记录,1~135是K线编号,价格就是拐点价格:

     

    2013/06/19 12:20:32  拐点位置:1价格:2404.0
    2013/06/19 12:20:32  拐点位置:2价格:0.0
    2013/06/19 12:20:32  拐点位置:3价格:0.0
    2013/06/19 12:20:32  拐点位置:4价格:0.0
    2013/06/19 12:20:32  拐点位置:5价格:0.0
    2013/06/19 12:20:32  拐点位置:6价格:0.0
    2013/06/19 12:20:32  拐点位置:7价格:0.0
    2013/06/19 12:20:32  拐点位置:8价格:0.0
    2013/06/19 12:20:32  拐点位置:9价格:0.0
    2013/06/19 12:20:32  拐点位置:10价格:0.0
    2013/06/19 12:20:32  拐点位置:11价格:0.0
    2013/06/19 12:20:32  拐点位置:12价格:0.0
    2013/06/19 12:20:32  拐点位置:13价格:0.0
    2013/06/19 12:20:32  拐点位置:14价格:0.0
    2013/06/19 12:20:32  拐点位置:15价格:0.0
    2013/06/19 12:20:32  拐点位置:16价格:0.0
    2013/06/19 12:20:32  拐点位置:17价格:0.0
    2013/06/19 12:20:32  拐点位置:18价格:0.0
    2013/06/19 12:20:32  拐点位置:19价格:0.0
    2013/06/19 12:20:32  拐点位置:20价格:0.0
    2013/06/19 12:20:32  拐点位置:21价格:2381.0
    2013/06/19 12:20:32  拐点位置:22价格:0.0
    2013/06/19 12:20:32  拐点位置:23价格:2391.2
    2013/06/19 12:20:32  拐点位置:24价格:0.0
    2013/06/19 12:20:32  拐点位置:25价格:0.0
    2013/06/19 12:20:32  拐点位置:26价格:0.0
    2013/06/19 12:20:32  拐点位置:27价格:0.0
    2013/06/19 12:20:32  拐点位置:28价格:0.0
    2013/06/19 12:20:32  拐点位置:29价格:0.0
    2013/06/19 12:20:32  拐点位置:30价格:0.0
    2013/06/19 12:20:32  拐点位置:31价格:0.0
    2013/06/19 12:20:32  拐点位置:32价格:0.0
    2013/06/19 12:20:32  拐点位置:33价格:0.0
    2013/06/19 12:20:32  拐点位置:34价格:0.0
    2013/06/19 12:20:32  拐点位置:35价格:0.0
    2013/06/19 12:20:32  拐点位置:36价格:0.0
    2013/06/19 12:20:32  拐点位置:37价格:2376.8
    2013/06/19 12:20:32  拐点位置:38价格:0.0
    2013/06/19 12:20:32  拐点位置:39价格:0.0
    2013/06/19 12:20:32  拐点位置:40价格:0.0
    2013/06/19 12:20:32  拐点位置:41价格:0.0
    2013/06/19 12:20:32  拐点位置:42价格:0.0
    2013/06/19 12:20:32  拐点位置:43价格:0.0
    2013/06/19 12:20:32  拐点位置:44价格:0.0
    2013/06/19 12:20:32  拐点位置:45价格:0.0
    2013/06/19 12:20:32  拐点位置:46价格:0.0
    2013/06/19 12:20:32  拐点位置:47价格:0.0
    2013/06/19 12:20:32  拐点位置:48价格:2388.0
    2013/06/19 12:20:32  拐点位置:49价格:0.0
    2013/06/19 12:20:32  拐点位置:50价格:0.0
    2013/06/19 12:20:32  拐点位置:51价格:0.0
    2013/06/19 12:20:32  拐点位置:52价格:0.0
    2013/06/19 12:20:32  拐点位置:53价格:0.0
    2013/06/19 12:20:32  拐点位置:54价格:0.0
    2013/06/19 12:20:32  拐点位置:55价格:0.0
    2013/06/19 12:20:32  拐点位置:56价格:0.0
    2013/06/19 12:20:32  拐点位置:57价格:0.0
    2013/06/19 12:20:32  拐点位置:58价格:0.0
    2013/06/19 12:20:32  拐点位置:59价格:0.0
    2013/06/19 12:20:32  拐点位置:60价格:0.0
    2013/06/19 12:20:32  拐点位置:61价格:0.0
    2013/06/19 12:20:32  拐点位置:62价格:0.0
    2013/06/19 12:20:32  拐点位置:63价格:0.0
    2013/06/19 12:20:32  拐点位置:64价格:0.0
    2013/06/19 12:20:32  拐点位置:65价格:0.0
    2013/06/19 12:20:32  拐点位置:66价格:0.0
    2013/06/19 12:20:32  拐点位置:67价格:0.0
    2013/06/19 12:20:32  拐点位置:68价格:0.0
    2013/06/19 12:20:32  拐点位置:69价格:0.0
    2013/06/19 12:20:32  拐点位置:70价格:0.0
    2013/06/19 12:20:32  拐点位置:71价格:0.0
    2013/06/19 12:20:32  拐点位置:72价格:0.0
    2013/06/19 12:20:32  拐点位置:73价格:0.0
    2013/06/19 12:20:32  拐点位置:74价格:0.0
    2013/06/19 12:20:32  拐点位置:75价格:0.0
    2013/06/19 12:20:32  拐点位置:76价格:0.0
    2013/06/19 12:20:32  拐点位置:77价格:0.0
    2013/06/19 12:20:32  拐点位置:78价格:0.0
    2013/06/19 12:20:32  拐点位置:79价格:0.0
    2013/06/19 12:20:32  拐点位置:80价格:0.0
    2013/06/19 12:20:32  拐点位置:81价格:0.0
    2013/06/19 12:20:32  拐点位置:82价格:0.0
    2013/06/19 12:20:32  拐点位置:83价格:0.0
    2013/06/19 12:20:32  拐点位置:84价格:0.0
    2013/06/19 12:20:32  拐点位置:85价格:0.0
    2013/06/19 12:20:32  拐点位置:86价格:0.0
    2013/06/19 12:20:32  拐点位置:87价格:0.0
    2013/06/19 12:20:32  拐点位置:88价格:0.0
    2013/06/19 12:20:32  拐点位置:89价格:0.0
    2013/06/19 12:20:32  拐点位置:90价格:0.0
    2013/06/19 12:20:32  拐点位置:91价格:0.0
    2013/06/19 12:20:32  拐点位置:92价格:0.0
    2013/06/19 12:20:32  拐点位置:93价格:2352.2
    2013/06/19 12:20:32  拐点位置:94价格:0.0
    2013/06/19 12:20:32  拐点位置:95价格:0.0
    2013/06/19 12:20:32  拐点位置:96价格:0.0
    2013/06/19 12:20:32  拐点位置:97价格:0.0
    2013/06/19 12:20:32  拐点位置:98价格:0.0
    2013/06/19 12:20:32  拐点位置:99价格:0.0
    2013/06/19 12:20:32  拐点位置:100价格:0.0
    2013/06/19 12:20:32  拐点位置:101价格:0.0
    2013/06/19 12:20:32  拐点位置:102价格:0.0
    2013/06/19 12:20:32  拐点位置:103价格:0.0
    2013/06/19 12:20:32  拐点位置:104价格:0.0
    2013/06/19 12:20:32  拐点位置:105价格:0.0
    2013/06/19 12:20:32  拐点位置:106价格:0.0
    2013/06/19 12:20:32  拐点位置:107价格:0.0
    2013/06/19 12:20:32  拐点位置:108价格:0.0
    2013/06/19 12:20:32  拐点位置:109价格:0.0
    2013/06/19 12:20:32  拐点位置:110价格:0.0
    2013/06/19 12:20:32  拐点位置:111价格:0.0
    2013/06/19 12:20:32  拐点位置:112价格:0.0
    2013/06/19 12:20:32  拐点位置:113价格:0.0
    2013/06/19 12:20:32  拐点位置:114价格:0.0
    2013/06/19 12:20:32  拐点位置:115价格:0.0
    2013/06/19 12:20:32  拐点位置:116价格:0.0
    2013/06/19 12:20:32  拐点位置:117价格:0.0
    2013/06/19 12:20:32  拐点位置:118价格:0.0
    2013/06/19 12:20:32  拐点位置:119价格:0.0
    2013/06/19 12:20:32  拐点位置:120价格:0.0
    2013/06/19 12:20:32  拐点位置:121价格:0.0
    2013/06/19 12:20:32  拐点位置:122价格:0.0
    2013/06/19 12:20:32  拐点位置:123价格:2384.0
    2013/06/19 12:20:32  拐点位置:124价格:0.0
    2013/06/19 12:20:32  拐点位置:125价格:0.0
    2013/06/19 12:20:32  拐点位置:126价格:0.0
    2013/06/19 12:20:32  拐点位置:127价格:0.0
    2013/06/19 12:20:32  拐点位置:128价格:0.0
    2013/06/19 12:20:32  拐点位置:129价格:0.0
    2013/06/19 12:20:32  拐点位置:130价格:0.0
    2013/06/19 12:20:32  拐点位置:131价格:0.0
    2013/06/19 12:20:32  拐点位置:132价格:0.0
    2013/06/19 12:20:32  拐点位置:133价格:0.0
    2013/06/19 12:20:32  拐点位置:134价格:0.0
    2013/06/19 12:20:32  拐点位置:135价格:0.0

     

  • 用户回复: 省略号的东西能写一下吗?

     

  • 网友回复:

    Input:ExtDepth(5,5,25,1),ExtDeviation(5,3,10,1),ExtBackStep(3,3,10,1);
    variable:Zigzag[270]=0,NUM=0,whatlookfor:=0,LastPrice1:=0,LastPrice2:=0,LastSet1:=0,LastSet2:=0;
    WARNING_DISABLE:4;
    NN:=barslast(day<>ref(day,1))+1;
    If NN=1 Then BEGIN
       For i=1 to 270 do Zigzag[i]:=0;
          whatlookfor:=0;
          LastPrice1:=Open;
          LastPrice2:=0;
          LastSet1:=1;
          LastSet2:=0;
          NUM:=1;
          Zigzag[1]:=Open;
    END           
       REFCLOSE:=REF(CLOSE,1);
       LASTHIGH:=HHV(HIGH,NN-LastSet1);
       LASTLOW:=LLV(LOW,NN-LastSet1);
       LASTHIGHSET:=NN-HHVBARS(HIGH,NN-LastSet1);
       LASTLOWSET:=NN-LLVBARS(LOW,NN-LastSet1); 
      
    If Islastbar<>1 AND whatlookfor=0 Then Begin //确定了起点,寻找第一个拐点
       If LastPrice1<>0 AND LastPrice2=0 Then BEGIN
          IF REFCLOSE>LastPrice1 AND (NN-LastSet1)>=ExtDepth AND (REFCLOSE-LastPrice1)>=ExtDeviation Then BEGIN  //先出现高点 
             LastPrice2:=REFCLOSE;
             LastSet2:=NN;
             whatlookfor:=-1;
             GOTO ENDEXIT@;
          END
          IF REFCLOSE<LastPrice1 AND (NN-LastSet1)>=ExtDepth AND (LastPrice1-REFCLOSE)>=ExtDeviation Then BEGIN  //先出现低点
             LastPrice2:=REFCLOSE;
             LastSet2:=NN;
             whatlookfor:=1;
             GOTO ENDEXIT@;
          END
       END 
    END

    If Islastbar<>1 AND whatlookfor=1 Then Begin //最后是向下拐点,寻找高点
       If LastPrice1<>0 AND LastPrice2<>0 Then BEGIN
          If REFCLOSE<LastPrice2 Then BEGIN
             LastPrice2:=REFCLOSE;
             LastSet2:=NN;
          END
          IF REFCLOSE>LastPrice2 AND (NN-LastSet2)>=ExtDepth AND (REFCLOSE-LastPrice2)>=ExtDeviation Then BEGIN  // 找到高点
             NUM:=NUM+1;
             whatlookfor:=-1;
             Zigzag[LASTLOWSET]:=LASTLOW;
             LastPrice1:=LastPrice2;
             LastSet1:=LastSet2;
             LastPrice2:=REFCLOSE;
             LastSet2:=NN;
          END
       END
    END

    If Islastbar<>1 AND whatlookfor=-1 Then Begin //最后是向上拐点,寻找低点
       If LastPrice1<>0 AND LastPrice2<>0 Then BEGIN
          If REFCLOSE>LastPrice2 Then BEGIN
             LastPrice2:=REFCLOSE;
             LastSet2:=NN;
          END
          IF REFCLOSE<LastPrice2 AND (NN-LastSet2)>=ExtDepth AND (LastPrice2-REFCLOSE)>=ExtDeviation Then BEGIN  // 找到低点
             NUM:=NUM+1;
             whatlookfor:=1;         
             Zigzag[LASTHIGHSET]:=LASTHIGH;
             LastPrice1:=LastPrice2;
             LastSet1:=LastSet2;
             LastPrice2:=REFCLOSE;
             LastSet2:=NN;
          END
       END
    END

    ENDEXIT@ ;

    POLYLINE(Zigzag[NN]<>0,Zigzag[NN],COLORRED,1,VTSOLID);

     

  • 网友回复:

    上面是全部代码,按MT4软件和金字塔的Zig函数的原理设计,已经找出高低拐点的价格和位置,但不知道怎样画出来。这样设计,除掉了未来函数的罪名,是顺向推导出已经出现的高低拐点,希望能把它设计完成,也可以给使用金字塔的用户共享非未来函数类的ZIG函数。

     

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 1145508240  有需要帮忙请点击这里留言!!!进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容