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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 公式中有没有办法实现递归

   

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


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

主题:公式中有没有办法实现递归

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


加好友 发短信
等级:新手上路 帖子:8 积分:55 威望:0 精华:0 注册:2011/11/13 10:18:03
公式中有没有办法实现递归  发帖心情 Post By:2011/11/13 10:29:37    Post IP:61.144.144.197[只看该作者]

请教各位,我想实现以下的语句,但是编译时报错。我尝试了其他系统,通达信和和讯遇到同样问题,不过博易可以。

 

SVOL:=REF(SVOL,1)+VOL;

 

有没有什么方法可以替代呢?先谢谢各位了!!!


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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2011/11/13 10:35:04    Post IP:113.114.116.252[只看该作者]

VARIABLE:SVOL=0;

SVOL:=REF(SVOL,1)+VOL;



金字塔—专业程序化软件提供商

金字塔-技术部

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

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
杉杉
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:8 积分:55 威望:0 精华:0 注册:2011/11/13 10:18:03
  发帖心情 Post By:2011/11/13 10:47:36    Post IP:61.144.144.197[只看该作者]

以下是引用王锋在2011-11-13 10:35:04的发言:

VARIABLE:SVOL=0;

SVOL:=REF(SVOL,1)+VOL;

非常感谢您的回复。我刚才试了一下,编译可以通过。不过SVOL无法实现累加。我写那条语句的初衷是累加一定周期的成交量,但是这样写之后,每次都归零了。

就跟C语言一样,如果是静态变量,定义的时候可以初始化为0,例如 static int abc=0;以后每次调用定义的语句不起作用。但是动态变量就不行了。


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


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/11/13 11:21:49    Post IP:121.207.132.70[只看该作者]

VARIABLE:SVOL=0;

SVOL:=SVOL+VOL;//把每根K线的vol累加到SVOL

 

你想累加一定周期的成交量。实际举个例子吧。


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


加好友 发短信
等级:新手上路 帖子:8 积分:55 威望:0 精华:0 注册:2011/11/13 10:18:03
  发帖心情 Post By:2011/11/13 19:15:23    Post IP:61.140.102.228[只看该作者]

比如我想累加凡是MACD是红柱时的成交量,当绿柱则为0。例如下边的指标,在博易上是可以实现的。其中REF(SUM_VOL,1)这一句为递归调用。

 

DIFF : EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);
DEA  : EMA(DIFF,M);
MACD : 2*(DIFF-DEA), COLORSTICK;

SUM_VOL:IF(MACD>0,REF(SUM_VOL,1)+VOL,0);

 

 

 


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


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/11/14 9:56:04    Post IP:120.42.45.130[只看该作者]

小case

variable:svol=0;

if macd>0 then svol:=svol+vol;

else svol:=0;


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


加好友 发短信
等级:新手上路 帖子:8 积分:55 威望:0 精华:0 注册:2011/11/13 10:18:03
  发帖心情 Post By:2011/11/14 15:25:01    Post IP:61.140.103.92[只看该作者]

以下是引用leevolvo在2011-11-14 9:56:04的发言:

小case

variable:svol=0;

if macd>0 then svol:=svol+vol;

else svol:=0;

非常感谢您的回复。

不过我需要的是累加前一天的SVOL,REF(S_VOL,1)。您的代码是只能加今天的。

而我提出此问题的根本原因在于以下的语句无法编译通过。目前好像只有博易才行。

SVOL:=REF(SVOL,1)+VOL;


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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/11/14 15:33:34    Post IP:58.246.57.26[只看该作者]

无法编译通过,不支持您所写的格式.

 

图表上有几天的数据,就会显示多久

variable:svol=0;

if macd>0 then svol:=svol+vol;

 

vv:svol,noaxis;



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

客户服务部

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

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

service@weistock.com

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

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


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/11/14 23:40:09    Post IP:121.207.132.70[只看该作者]

以下是引用杉杉在2011-11-14 15:25:01的发言:

非常感谢您的回复。

不过我需要的是累加前一天的SVOL,REF(S_VOL,1)。您的代码是只能加今天的。

而我提出此问题的根本原因在于以下的语句无法编译通过。目前好像只有博易才行。

SVOL:=REF(SVOL,1)+VOL;

 

本来就是累加昨天的。楼主还没理解金字塔的运行原理


 回到顶部