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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → VB自定义函数问题

   

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


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

主题:VB自定义函数问题

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


加好友 发短信
等级:新手上路 帖子:7 积分:0 威望:0 精华:0 注册:2015/4/29 9:34:33
VB自定义函数问题  发帖心情 Post By:2015/4/29 10:06:39 [显示全部帖子]

VB自定义函数,为逐K线模式,P1为序列变量,如调用时P1为CLOSE

 

Function CROSSUNDER(Formula,P1)
    '系统会在逐K线模式解释公式时的每个周期都会调用此函数一遍,因此设计时应该注重程序的执行效率,不要重复的执行一些没必要的代码
 if Formula.WorkMode = 1 then '防止在序列模式下调用
  Exit Function
 End if
 
 CROSSUNDER = P1(1)

 

End Function


CROSSUNDER = P1(1),返回P1下标1的值

出错,显示为:编译器错误13,类型不匹配'P1'

如何处理?


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


加好友 发短信
等级:新手上路 帖子:7 积分:0 威望:0 精华:0 注册:2015/4/29 9:34:33
  发帖心情 Post By:2015/4/29 12:01:41 [显示全部帖子]

逐K线模式下,函数就不能输入序列变量吗?如果确实需要,如何处理?用数组?请举个例子

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


加好友 发短信
等级:新手上路 帖子:7 积分:0 威望:0 精华:0 注册:2015/4/29 9:34:33
  发帖心情 Post By:2015/4/29 14:56:46 [显示全部帖子]

谢谢。我正在学习,举例来说, 我要在逐K线模式下实现一个是否下穿函数

Function CrossUnder(Formula , P1 , P2)

如当前P1下穿P2,则返回1,否则返回0

P1、P2为序列,应如何处理?

不需要具体写是否下穿部分,只要P1、P2两个序列如何处理

是否为定义两个外部全局变量数组Array_P1、Array_P2?

在函数中

    Array_P1.AddBack(P1)

    Array_P2.AddBack(P2)

疑问:设布林线上轨为Top;布林线下轨为Bottom;

在公式中:

    is1 = CrossUnder(CLOSE,Top)  '是否上穿

    is2 = CrossUnder(CLOSE,Bottom) '是否下穿

 

这样定义的两个数组不就乱了吗?


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


加好友 发短信
等级:新手上路 帖子:7 积分:0 威望:0 精华:0 注册:2015/4/29 9:34:33
  发帖心情 Post By:2015/4/29 15:02:00 [显示全部帖子]

另外,如为:

i1 := cu_ma3(CLOSE,5)

i2 := cu_Ma3(CLOSE,10)

....

j1 := cu_ma3(CLOSE,5)

多处调用了cu_ma3,数组不也乱了吗?


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


加好友 发短信
等级:新手上路 帖子:7 积分:0 威望:0 精华:0 注册:2015/4/29 9:34:33
  发帖心情 Post By:2015/4/29 15:20:09 [显示全部帖子]

另外,如为:

i1 := cu_ma3(CLOSE,5)

i2 := cu_Ma3(CLOSE,10)

....

j1 := cu_ma3(CLOSE,5)

多处调用了cu_ma3,数组不也乱了吗?


 回到顶部