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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 金字塔是否有函数能能指定数据开始日期

   

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


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

主题:金字塔是否有函数能能指定数据开始日期

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


加好友 发短信
等级:超级版主 帖子:18691 积分:0 威望:0 精华:0 注册:2013/7/15 9:22:16
金字塔是否有函数能能指定数据开始日期  发帖心情 Post By:2019/3/11 11:17:36    Post IP:180.169.30.6[只看该作者]

请问金字塔是否有函数能能指定数据开始日期,
此函数能指定起始计算数据的日期,如框架里的指定开始日期一样。
若没有,能否增加一个。

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/3/11 11:21:25    Post IP:180.169.30.6[只看该作者]

 可以在指标里面做限定,限定指标仅在指定日期之后开始指标的计算。
比如限定代码仅在18年10.16之后开始才进行计算。只需要把代码嵌入到一个if语句下面即可。if的条件设置成日期的判断。
if date>=1181016 then
begin
//交易代码
end


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
sword8586
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:388 积分:0 威望:0 精华:0 注册:2014/11/22 18:13:16
  发帖心情 Post By:2019/4/2 13:50:43    Post IP:14.27.45.61[只看该作者]

使用该法,提示ema在if.......之后,不能用。请金字塔提供起始函数

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/4/2 14:01:03    Post IP:180.169.30.6[只看该作者]

 一般这样做,把ema的计算放到if外部。然后if里面调用这个变量。
es:ema(c,5);
if date>=1181016 then
begin
//调用es变量
end


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
sword8586
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:388 积分:0 威望:0 精华:0 注册:2014/11/22 18:13:16
  发帖心情 Post By:2019/4/2 14:20:42    Post IP:14.27.45.61[只看该作者]

这就没用了,我要的是ema(c,5)计算的起点是在指定日期以后。

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/4/2 14:55:26    Post IP:180.169.30.6[只看该作者]

那就不能直接使用这个函数了。只能把函数的算法抽离出来,自行编写代码了。比如ema(c,20),在第一个K上取回的值就是当时的c.这样后面的都可以按照算法计算出来了。

N:=10;//相当于ema的参数N
X:=C;//相当于ema参数x
VARIABLE:mark:=0;
VARIABLE:ema_:=0;
//ema
mark:=if(date>=1181016,1,0);//指定日期开始计算

if count(mark=1,0)=1 then ema_:=X;
ema_:=if(count(mark=1,0)>1,(2*x+(N-1)*REF(ema_,1))/(N+1),ema_);//ema算法处理

ema_show:ema_;//最后结果

上面这个代码供参考。



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
sword8586
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:388 积分:0 威望:0 精华:0 注册:2014/11/22 18:13:16
  发帖心情 Post By:2019/4/2 15:18:51    Post IP:14.27.45.61[只看该作者]

这样,可以但好麻烦。能否提供一个函数,就如exit一样,自此以下从开始日期计算,框架确定任意起始可以,应该可以调用。请提供解决方案。

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/4/2 15:24:28    Post IP:180.169.30.6[只看该作者]

 没办法,ema这种只能还原它算法的方式来获取了。没有其他可用的函数了。


命数如织,当如磐石。
 回到顶部