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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]为什么自定义函数不输出图形?

   

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


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

主题:[求助]为什么自定义函数不输出图形?

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


加好友 发短信
等级:新手上路 帖子:35 积分:225 威望:0 精华:0 注册:2011/12/24 20:01:07
[求助]为什么自定义函数不输出图形?  发帖心情 Post By:2012/1/9 12:58:00    Post IP:58.60.36.122[显示全部帖子]

看了系统的自定义函数后写了下面这个(公式名称test):

C1:CU_MA1(CLOSE,15);

显示的时候为什么是一条0的直线?

请教版主和各位高手

[此贴子已经被作者于2012-1-9 13:19:44编辑过]

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


加好友 发短信
等级:新手上路 帖子:35 积分:225 威望:0 精华:0 注册:2011/12/24 20:01:07
回复:(26327756l)你的那条语句是不可以放在自定义函...  发帖心情 Post By:2012/1/9 15:42:24    Post IP:58.60.36.122[显示全部帖子]

我是在新建的公式TEST中调用系统的自定义函数CU_MA1,在公式编辑框内调用,这个语句没有错误,编译通过

而且按照金字塔的说明,公式中调用自定义函数与在公式中调用系统函数是一样的,所以"C1:CU_MA1(CLOSE,5);"应该是没有问题的吧?!

为什么不显示图形?

如果上面我的调用有错,那么要显示图形,在公式编辑中应该如何调用自定义函数呢?不吝赐教!谢谢


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


加好友 发短信
等级:新手上路 帖子:35 积分:225 威望:0 精华:0 注册:2011/12/24 20:01:07
回复:(26327756l)你有没有编辑你自定义的函数呢?...  发帖心情 Post By:2012/1/9 15:56:36    Post IP:58.60.36.122[显示全部帖子]

CU_MA1函数是系统自带的自定义函数,我只是直接引用,并没有编辑

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


加好友 发短信
等级:新手上路 帖子:35 积分:225 威望:0 精华:0 注册:2011/12/24 20:01:07
回复:(fly)“自定义函数”都建在模块Function中,该...  发帖心情 Post By:2012/1/10 14:17:09    Post IP:58.60.37.15[显示全部帖子]

我想发个截图给你们看下,这个话题编辑框偏偏不能插入本地图片,你们说的问题我都没有错误,但就是输出不了

发下代码你们看,系统自己带的,不是我写的,看看有没有问题,我的版本是2.75:

'计算逐周期模式下指定周期长度的收盘价均价
Function CU_MA2(Formula,cyc)
    '得到K线数据对象
 Set History = Formula.ParentGrid.GetHistoryData()
 '若当前周期尚未到计算周期,不参与计算
 if Formula.IndexData < cyc-1 then
  CU_MA2 = 0
  exit function
 end if
 
 DataCount = 0
    for i = Formula.IndexData-cyc+1 to Formula.IndexData
     '累加收盘价
     DataCount = DataCount + history.close(i)
    next
 CU_MA2 = DataCount / cyc
End Function

'计算序列模式下指定周期长度的收盘价均价
Function CU_MA1(Formula,CLOSE,CYC)
   CU_MA1=0

    '防止公式逐周期模式时调用
    If Formula.WorkMode = 0 Then
        Exit Function
    End If

    'CLOSE数组数据长度一定会与Formula.DataSize-1相等
    DataCount = UBound(CLOSE)
    If DataCount <> Formula.DataSize-1 Then
        Exit Function
    End If

    '定义一个计算返回的数组
    Dim ResultMa
    Redim ResultMa(DataCount)

    For i = Cyc-1 To Formula.DataSize-1
        Count = 0
        For k = i-(Cyc-1) To i
            Count = Count + CLOSE(k)
        Next
        ResultMa(i) = Count / Cyc
    Next

    '返回一个计算完毕的均线数组
    CU_MA1 = ResultMa
End Function

 


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


加好友 发短信
等级:新手上路 帖子:35 积分:225 威望:0 精华:0 注册:2011/12/24 20:01:07
回复:(fly)“自定义函数”都建在模块Function中,该...  发帖心情 Post By:2012/1/10 14:31:27    Post IP:58.60.37.15[显示全部帖子]

另外FLY说的X轴应该是说Y轴吧,X轴没有你说的选项


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


加好友 发短信
等级:新手上路 帖子:35 积分:225 威望:0 精华:0 注册:2011/12/24 20:01:07
回复:(fly)是的Y轴,手误. 本地测过,可以的...  发帖心情 Post By:2012/1/11 8:42:59    Post IP:14.153.215.20[显示全部帖子]

都没有问题,序列模式是默认的,不需要更改

要是能传个图片给你看看就好了,偏偏传不了


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


加好友 发短信
等级:新手上路 帖子:35 积分:225 威望:0 精华:0 注册:2011/12/24 20:01:07
回复:(王锋)建议你在其他盘重装个金字塔,自己试试...  发帖心情 Post By:2012/1/11 16:23:01    Post IP:14.153.215.20[显示全部帖子]

终于知道原因了,是主图末端空余周期必须为0

我为了看图方便空了5个周期,所以会导致这个问题产生

多谢各位了!


 回到顶部