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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 在VBA里如何调用系统的函数?

   

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


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

主题:在VBA里如何调用系统的函数?

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


加好友 发短信
等级:新手上路 帖子:43 积分:240 威望:0 精华:0 注册:2010/12/16 9:11:28
在VBA里如何调用系统的函数?  发帖心情 Post By:2011/6/23 15:52:53 [只看该作者]

 在VBA里如何调用系统的函数?比如ma(c,5)取五日均线函数。或者 MACD:="MACD"(26,12,9);
就是说在系统公式里可以直接用的语句,在VBA里可以直接调用吗?

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


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2011/6/23 15:59:51 [只看该作者]

使用自定义函数将MA的值传入VBA后台。

 


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


加好友 发短信
等级:新手上路 帖子:43 积分:240 威望:0 精华:0 注册:2010/12/16 9:11:28
谢谢  发帖心情 Post By:2011/6/23 16:41:42 [只看该作者]

 我的意思是在VBA里调用系统函数,不是在系统里调用VBA函数。是我没理解你的话吗?

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


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2011/6/23 16:53:33 [只看该作者]

是,在公式里面,将这些MA的数值,使用自定义函数传到VBA后台,VBA后台用变量来获取这些值。

 


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


加好友 发短信
等级:新手上路 帖子:43 积分:240 威望:0 精华:0 注册:2010/12/16 9:11:28
非常感谢  发帖心情 Post By:2011/6/23 16:59:07 [只看该作者]

 能够给举个例子?意思听明白了,但是自定义函数的值如何能保证是最新的实时数据?定义个自定义函数系统能自动运行吗?如果不运行,在VBA 里调用变量得到的是实时的数据吗?

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


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



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

金字塔-技术部

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

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

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
xm1212
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:43 积分:240 威望:0 精华:0 注册:2010/12/16 9:11:28
谢谢你,很有帮助,但是还有问题。  发帖心情 Post By:2011/6/23 22:10:54 [只看该作者]

 Set Formula = marketdata.STKINDI("m01","dq","ma(5,10,20,60)",0,0) '调用大连期货豆粕 M1201合约的1分钟的MA移动平均线指标,参数依次是5,10,20,60
userform2_textbox2.text=Formula.GetBufData("ma1",60) '显示第60根k线上的MA1指标线数值
userform2_textbox3.text=Formula.GetBufData("ma2",60) '显示第60根k线上的MA2指标线数值
userform2_textbox4.text=Formula.GetBufData("ma3",60) '显示第60根k线上的MA3指标线数值
userform2_textbox5.text=Formula.GetBufData("ma4",60) '显示第60根k线上的MA4指标线数值

得到的结果分别为
3284.4
3284.4
3285
3282.583

但是实际上我觉得应该是2011-06-23日的十点整数据吧?
我想得到的数据应该是
3291.8
3292
3292.85
9294.417
能否告诉我错在哪了?
[此贴子已经被作者于2011-6-23 22:11:52编辑过]

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


加好友 发短信
等级:新手上路 帖子:43 积分:240 威望:0 精华:0 注册:2010/12/16 9:11:28
还有个问题  发帖心情 Post By:2011/6/24 8:40:53 [只看该作者]

要想取开盘以后运行了多少分钟必须这么取吗?这样就必须给主窗口设置成程序监测的板块,有更好的解决办法吗?就是说可以不必手动修改主窗口的内容,直接取各个市场的开盘时间。


  Set Grid = Technic.GetGridByName("Main")
 set Market = grid.GetMarketinfo()
 userform3_textbox1.text=int(Market.OpenSeconds(TIME)/60)

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


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

问题1. 应该是用STKINDI取公式数据与你在图形上显示的数据数量不同导致,虽然都是从开始第60个K线,但是日期不同.建义你用DataSize输出看看公式数据有多少跟K线与K线图对比.或者在工具->选项->维护中将 图形显示和内存保留都设到0这样就同步了. 再此提醒用户使用公式数据不要用周期来定位,应该使用日期,这样才不会有问题.

问题2.MarketData对象的 GetMarketInfo 方法



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

金字塔-技术部

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

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

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
xm1212
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:43 积分:240 威望:0 精华:0 注册:2010/12/16 9:11:28
谢谢  发帖心情 Post By:2011/6/24 11:47:12 [只看该作者]

 日期如何定位? Set Formula = marketdata.STKINDI("m01","dq","ma(5,10,20,60)",0,0) '调用大连期货豆粕 M1201合约的1分钟的MA移动平均线指标,参数依次是5,10,20,60
Co 为坐标轴类型 0交易日坐标 1自然日 2交易交易时间 是改这个参数吗?给改成1,自然日,然后 2011-06-23 ?还是怎么改?

 回到顶部
总数 13 1 2 下一页