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


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

   

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


  共有7297人关注过本帖平板打印复制链接

主题:能够自定义函数再调用么

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/8/1 14:45:53 [只看该作者]

Function GetPosition(Formula,sStrategy,sContract)
    '系统会在逐K线模式解释公式时的每个周期都会调用此函数一遍,因此设计时应该注重程序的执行效率,不要重复的执行一些没必要的代码
   GetPosition=0
  
   APPLICATION.MsgOut "111111"

    file = "C:\" & sStrategy & "_" & sContract  & ".txt"
    Set fs = CreateObject("Scripting.FileSystemObject")

    if fs.fileexists(file) then
        Set a = fs.OpenTextFile(file, 1)
        GetPosition = cint(a.ReadLine())
        a.Close
    end if
   
    Set fs = Nothing

End Function

Function SetPosition(Formula,sStrategy,sContract,iPosition)
   SetPosition=0
  
   APPLICATION.MsgOut "22222"
   
    file = "C:\" & sStrategy & "_" & sContract  & ".txt"
    Set fs = CreateObject("Scripting.FileSystemObject")

    Set a = fs.OpenTextFile(file, 2, True)
    a.WriteLine(iPosition)
    a.Close
   
    Set fs = Nothing

End Function

 

通过简单的这样调试,金字塔是可以都运行的。不清楚你那边为什么不可以

此外金字塔支持序列和逐K线模式,上面我是用序列模式调用的,因此就只调用一次,如果你用逐K线,那么它会连续调用多次。

上述你的VBS代码是通过参数传递来传递目录,但是金字塔不支持字符串自定义函数参数,因此是不会正常工作,但至少是都调用了。

 

如果你对金字塔的运行机制不了解,其实通过一些简单的调试工作就可以很容易明白的,建议你仔细并阅读
http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332 问题4, 里面的调试技巧,重点阅读公式调试器,和日志记录这几种调试方法,不明白的地方,通过自己编写公式,然后结合调试技巧,就自然很容易明白金字塔的公式系统的各种运行机理。

 

此外参考

金字塔后台高级编程技巧

http://v.youku.com/v_show/id_XMjkyNjU3Mjc2.html 观看密码: bj123456

 

 

上述介绍的学习资料,希望你能认真的看一遍并能彻底理解,如果你不看,那么你日后就没法更深入的使用好金字塔



金字塔—专业程序化软件提供商

金字塔-技术部

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

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
总数 14 1 2 下一页