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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请教IF分段显示与SUM的用法

   

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


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

主题:请教IF分段显示与SUM的用法

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


加好友 发短信
等级:小飞侠 帖子:2046 积分:2707 威望:0 精华:1 注册:2011/6/14 14:49:49
请教IF分段显示与SUM的用法  发帖心情 Post By:2014/4/27 11:13:45    Post IP:125.71.41.225[只看该作者]

原始问题见:

http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=64377

 

H2:=SELFDATAN(3); //自定义资金值
tm:=OPENMINUTES(TIME); //开盘分钟数
ts:=INTPART(CURRBARSCOUNT/270); //距今天数

cha[1]:=VALUEWHEN(tm=255 and ts=1,H2);
cha[2]:=VALUEWHEN(tm=255 and ts=2,H2);
cha[3]:=VALUEWHEN(tm=255 and ts=3,H2);
cha[4]:=VALUEWHEN(tm=255 and ts=4,H2);

……

cha[n]:=VALUEWHEN(tm=255 and ts=n,H2); //每日资金线向上移动的差值,等于15:00的流出量

 

现在的问题是,如下使用IF为何不行?

 

IF ts=1 then H连续:H2-cha[1];

IF ts=2 then H连续:H2-cha[1]-cha[2];

IF ts=3 then H连续:H2-cha[1]-cha[2]-cha[3];

 

我想分段显示该线,一天前显示H2-cha[1],二天前显示H2-cha[1]-cha[2]……可第一天的线就不显示了。不知为何。

 

请问这个IF then该如何使用?


 


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


加好友 发短信
等级:小飞侠 帖子:2046 积分:2707 威望:0 精华:1 注册:2011/6/14 14:49:49
  发帖心情 Post By:2014/4/27 11:14:56    Post IP:125.71.41.225[只看该作者]

另外,试图改写为一条线,用SUM来归纳,其线型却不正确:]

 

H连续:IF(ts=0,H2,H2-SUM(cha[ts],ts));

 

请问这里SUM应该如何正确使用?


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2014/4/28 9:09:06    Post IP:58.246.57.26[只看该作者]

上面的cha[1],cha[2]有没有具体的数据输出?



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

客户服务部

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

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

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


加好友 发短信
等级:小飞侠 帖子:2046 积分:2707 威望:0 精华:1 注册:2011/6/14 14:49:49
  发帖心情 Post By:2014/4/28 11:51:12    Post IP:125.71.41.225[只看该作者]

以下是引用jinzhe在2014/4/28 9:09:06的发言:

上面的cha[1],cha[2]有没有具体的数据输出?

 

有值啊,以下都能显示:

H21:IF(ts=0,H2,H2-cha[1]);
H22:IF(ts=0,H2,H2-cha[1]-cha[2]);
H23:IF(ts=0,H2,H2-cha[1]-cha[2]-cha[3]);
H24:IF(ts=0,H2,H2-cha[1]-cha[2]-cha[3]-cha[4]);


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


加好友 发短信
等级:小飞侠 帖子:2046 积分:2707 威望:0 精华:1 注册:2011/6/14 14:49:49
  发帖心情 Post By:2014/4/28 16:03:22    Post IP:125.71.41.225[只看该作者]

无人解答吗?

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


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

1楼问题,后面的会覆盖前面的.

 

以下代码为一个均线,分段显示不同的颜色,希望对您的编写有启发

 

//5日均线,连续3个向上后(即今天的数值大于昨天的,连续3个),均线用红色显示,
//连续3个向下后,用绿色显示;
//如果数值有上有下,用白色显示。

mc:ma(close,5),colorwhite;
rmc:=ref(mc,1);
partline(all(mc>=rmc,3),mc,colorred);
partline(all(mc<=rmc,3),mc,colorgreen);

 

2楼.

H连续:IF(ts=0,H2,H2-SUM(cha[ts],ts));

 

你试试把求和放到前面

cha1:=SUM(cha,ts);

H连续:IF(ts=0,H2,H2-cha1);

 



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

客户服务部

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

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

service@weistock.com

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

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


加好友 发短信
等级:小飞侠 帖子:2046 积分:2707 威望:0 精华:1 注册:2011/6/14 14:49:49
  发帖心情 Post By:2014/4/28 16:53:26    Post IP:125.71.41.225[只看该作者]

以下是引用fly在2014/4/28 16:24:00的发言:

1楼问题,后面的会覆盖前面的.

 

以下代码为一个均线,分段显示不同的颜色,希望对您的编写有启发

 

//5日均线,连续3个向上后(即今天的数值大于昨天的,连续3个),均线用红色显示,
//连续3个向下后,用绿色显示;
//如果数值有上有下,用白色显示。

mc:ma(close,5),colorwhite;
rmc:=ref(mc,1);
partline(all(mc>=rmc,3),mc,colorred);
partline(all(mc<=rmc,3),mc,colorgreen);

 

2楼.

H连续:IF(ts=0,H2,H2-SUM(cha[ts],ts));

 

你试试把求和放到前面

cha1:=SUM(cha,ts);

H连续:IF(ts=0,H2,H2-cha1);

 

 

1楼问题。

因为画线不是最终结果,而是要引用H连续曲线这个数据,因此用partline似乎不行。

 

2楼问题。

放到前面后,画出的曲线与放到里面完全一样。


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


加好友 发短信
等级:小飞侠 帖子:2046 积分:2707 威望:0 精华:1 注册:2011/6/14 14:49:49
  发帖心情 Post By:2014/4/28 16:54:17    Post IP:125.71.41.225[只看该作者]

原始问题如下:

 

目前,已经保存每天每分钟的“资金值”记录。

现在,希望模型计算的时候,把昨天的资金曲线的尾巴,与今天资金曲线的开头,连接起来。形成累加的资金曲线。

就象K线那样连续。

 

要求的结果是:如果今天9:30的初始值为0,则昨天15:00的结束值为0。

 

也就是说,昨天如果到15:00的时候资金流出100亿,则写个代码,把昨天的所有保存“资金值”数据都加上100亿。

 

 


图片点击可在新窗口打开查看此主题相关图片如下:分段.jpg
图片点击可在新窗口打开查看

 

目前是这样



图片点击可在新窗口打开查看此主题相关图片如下:连续.jpg
图片点击可在新窗口打开查看


希望连接成类似这样

 

以上演示是易士0号的累加效果,需要保留大量扩展数据,且一旦中断补充就无法连接。

而我们保存了自定义资金数据,为每日每分钟线。

以上需求,可支付现金解决。


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


加好友 发短信
等级:小飞侠 帖子:2046 积分:2707 威望:0 精华:1 注册:2011/6/14 14:49:49
  发帖心情 Post By:2014/4/28 16:59:30    Post IP:125.71.41.225[只看该作者]


目前的进展:

 

使用如下代码,可以连接好当天与昨天的线,但更早的线就不正确了

H连续:IF(ts=0,H2,H2-SUM(cha[ts],ts));

 

 

 


图片点击可在新窗口打开查看此主题相关图片如下:红线.jpg
图片点击可在新窗口打开查看

图中红箭头段(今天与昨天)的连接是正确的,昨天结束与今天开始是平齐的。

而更早的日期就不对了,如绿箭头所示,前一天结束与当天开始不一样高。


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


加好友 发短信
等级:小飞侠 帖子:2046 积分:2707 威望:0 精华:1 注册:2011/6/14 14:49:49
  发帖心情 Post By:2014/4/29 17:06:02    Post IP:125.71.41.225[只看该作者]

求解。

 回到顶部
总数 13 1 2 下一页