欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 数组

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2208人关注过本帖树形打印复制链接

主题:数组

帅哥哟,离线,有人找我吗?
大猩猩
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:17 积分:0 威望:0 精华:0 注册:2014/6/16 8:34:46
数组  发帖心情 Post By:2014/6/24 14:12:57    Post IP:116.76.252.154[只看该作者]

HH:=H;
LL:=L;


FOR I=2 TO DATACOUNT DO BEGIN
N1:=HH[I]>HH[I-1] AND LL[I]>LL[I-1];
N2:=HH[I]<HH[I-1] AND LL[I]<LL[I-1];
N3:=(HH[I]>=HH[I-1] AND LL[I]<=LL[I-1]) OR (HH[I]<=HH[I-1] AND LL[I]>=LL[I-1]);
IF N1 THEN BEGIN A[I]:=1;AA[I]:=1;END;
IF N2 THEN BEGIN A[I]:=2;AA[I]:=2;END;
IF N3 THEN BEGIN A[I]:=3;AA[I]:=AA[I-1];END;

IF N3 THEN BEGIN 
IF AA[I-1]=1 THEN BEGIN 
HH[I]:=MAX(HH[I],HH[I-1]);
LL[I]:=MAX(LL[I],LL[I-1]);
END;
IF AA[I-1]=2 THEN BEGIN
HH[I]:=MIN(HH[I],HH[I-1]);
LL[I]:=MIN(LL[I],LL[I-1]);
END;
END;
IF A[I+1]=3  THEN BEGIN G[I]:=10;GG[I]:=10;END;
END;
老师好,最后一个问题,AA[I-1]是否有错?副图显示数组越界操作,我的取值是I=2 TO DATACOUNT ,为什么AA[I-1]就越界了呢?求详细解答

 回到顶部
帅哥哟,离线,有人找我吗?
FexTel
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:5960 积分:0 威望:0 精华:2 注册:2014/6/12 11:29:04
  发帖心情 Post By:2014/6/24 14:36:06    Post IP:58.246.57.26[只看该作者]

A[]这个数组,I的取值范围是2到DATACOUNT, 当实际数组里I的值不在这个范围内就会越过数组下标或上标。这里建议您加个控制条件,例如

 

HH:=H;
LL:=L;

 


FOR I=2 TO DATACOUNT DO BEGIN
IF I>=3 AND I<=DATACOUNT-1 THEN
BEGIN
N1:=HH[I]>HH[I-1] AND LL[I]>LL[I-1];
N2:=HH[I]<HH[I-1] AND LL[I]<LL[I-1];
N3:=(HH[I]>=HH[I-1] AND LL[I]<=LL[I-1]) OR (HH[I]<=HH[I-1] AND LL[I]>=LL[I-1]);
IF N1 THEN BEGIN A[I]:=1;AA[I]:=1;END;
IF N2 THEN BEGIN A[I]:=2;AA[I]:=2;END;
IF N3 THEN BEGIN A[I]:=3;AA[I]:=AA[I-1];END;


IF N3 THEN BEGIN
IF AA[I-1]=1 THEN BEGIN
HH[I]:=MAX(HH[I],HH[I-1]);
LL[I]:=MAX(LL[I],LL[I-1]);
END;
IF AA[I-1]=2 THEN BEGIN
HH[I]:=MIN(HH[I],HH[I-1]);
LL[I]:=MIN(LL[I],LL[I-1]);
END;
END;
IF A[I+1]=3  THEN BEGIN G[I]:=10;GG[I]:=10;END;
END;
END;



金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
大猩猩
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:17 积分:0 威望:0 精华:0 注册:2014/6/16 8:34:46
  发帖心情 Post By:2014/6/24 14:59:01    Post IP:116.76.252.154[只看该作者]

我已经理解了 IF I>=3 AND I<=DATACOUNT-1 THEN 这句,逻辑上完全可以,但是为什么我刚刚加载了下,还是显示数组跨界呢,仍然是AA[I-1]这个地方跨界,真郁闷了,请老师也加载看看

 回到顶部
帅哥哟,离线,有人找我吗?
FexTel
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:5960 积分:0 威望:0 精华:2 注册:2014/6/12 11:29:04
  发帖心情 Post By:2014/6/24 15:09:23    Post IP:58.246.57.26[只看该作者]

恩,这个随K线长度变化导致的

 

我觉得可以对A[1]和A[DATACOUNT]你自行定义一个值,这样就不会有此情况



金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
大猩猩
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:17 积分:0 威望:0 精华:0 注册:2014/6/16 8:34:46
  发帖心情 Post By:2014/6/24 15:59:22    Post IP:116.76.252.154[只看该作者]

好的。AA[I-1]自定义一个常数,是可以,变成常数时就不会有数组越界这个问题了,但这样无法表达我的原意。就这样将就的用着吧,看是看得到,但有时会显示数组越界。还望老师以后有机会慢慢琢磨这个问题,谢谢你。

 回到顶部
帅哥哟,离线,有人找我吗?
FexTel
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:5960 积分:0 威望:0 精华:2 注册:2014/6/12 11:29:04
  发帖心情 Post By:2014/6/24 16:01:51    Post IP:58.246.57.26[只看该作者]

目前只能这样用着,后续我们再看下



金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部