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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 这段代码有问题吗?

   

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


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

主题:这段代码有问题吗?

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


加好友 发短信
等级:论坛游侠 帖子:380 积分:0 威望:0 精华:0 注册:2018/10/17 9:47:22
这段代码有问题吗?  发帖心情 Post By:2019/4/22 9:26:44    Post IP:27.154.85.235[只看该作者]

LC:=REF(CLOSE,1);
LO:=REF(OPEN,1);
CD:=ABS(LC-LO);
ACD:=CD/LO;
MACD:=MA(ACD,BARPOS);
MACD10:=MA(ACD,10);
B:MACD10/MACD;
为何运行的时候MACD,这个数字显示不出来

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


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

 定义的缘故。

MACD:=MA(ACD,BARPOS);

这个acd不是每个K都能正常有值的,如果你换成C你发现就正常了。但是acd本身定义决定了在第一个k没有值。
处理办法是:
不要用ma函数。
macd:sum(acd,0)/(BARPOS-1);//这里使用BARPOS-1,因为第一个k acd没有值。所以均值周期应该用BARPOS-1


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


加好友 发短信
等级:论坛游侠 帖子:380 积分:0 威望:0 精华:0 注册:2018/10/17 9:47:22
  发帖心情 Post By:2019/4/22 9:59:39    Post IP:27.154.85.235[只看该作者]

macd:sum(acd,0)/(BARPOS-1);//这里使用BARPOS-1,因为第一个k acd没有值。所以均值周期应该用BARPOS-1,这里面的sum(acd,o)里面的o 应该是barpos-1吧?

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


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

 不是。那个0就是表示从最初值累计到现在的意思。


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


加好友 发短信
等级:论坛游侠 帖子:380 积分:0 威望:0 精华:0 注册:2018/10/17 9:47:22
  发帖心情 Post By:2019/4/22 10:06:57    Post IP:27.154.85.235[只看该作者]

那0和barpos的意思一样?

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


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

 不是的,你看下sum函数参数说明啊,它第二个参数为0是有特殊含义的。


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


加好友 发短信
等级:论坛游侠 帖子:380 积分:0 威望:0 精华:0 注册:2018/10/17 9:47:22
  发帖心情 Post By:2019/4/22 10:15:49    Post IP:27.154.85.235[只看该作者]

另外,我定义一个小10周期的波动率的话,这个是不是也要修改,
LC:=REF(CLOSE,1);
LO:=REF(OPEN,1);
CD:=ABS(LC-LO);
ACD:=CD/LO;
MACD:SUM(ACD,0)/(BARPOS-1)
MACD10:MA(ACD,10);
B:MACD10/MACD;
其中的MACD10:MA(ACD,10);编译的时候好像显示不正常啊

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


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

 
图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看
不要漏了分号。

其他地方可以不用改,因为反正周期小于10的情况下,ma也是没有值的,这是符合正常逻辑的,毕竟不到10个周期计算不出来10周期均线。
前面那个macd那里要改是因为用ma得话,它始终会包含一个没有值的K的情况。


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