以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- 在VBA里如何调用系统的函数? (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=6968) |
-- 作者:xm1212 -- 发布时间:2011/6/23 15:52:53 -- 在VBA里如何调用系统的函数? 在VBA里如何调用系统的函数?比如ma(c,5)取五日均线函数。或者 MACD:="MACD"(26,12,9); 就是说在系统公式里可以直接用的语句,在VBA里可以直接调用吗? |
-- 作者:guotx2010 -- 发布时间:2011/6/23 15:59:51 -- 使用自定义函数将MA的值传入VBA后台。
|
-- 作者:xm1212 -- 发布时间:2011/6/23 16:41:42 -- 谢谢 我的意思是在VBA里调用系统函数,不是在系统里调用VBA函数。是我没理解你的话吗? |
-- 作者:guotx2010 -- 发布时间:2011/6/23 16:53:33 -- 是,在公式里面,将这些MA的数值,使用自定义函数传到VBA后台,VBA后台用变量来获取这些值。
|
-- 作者:xm1212 -- 发布时间:2011/6/23 16:59:07 -- 非常感谢 能够给举个例子?意思听明白了,但是自定义函数的值如何能保证是最新的实时数据?定义个自定义函数系统能自动运行吗?如果不运行,在VBA 里调用变量得到的是实时的数据吗? |
-- 作者:王锋 -- 发布时间:2011/6/23 19:15:27 -- 使用 Stkindi 方法 参考 http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&ID=4917&replyID=20514&skin=1 |
-- 作者:xm1212 -- 发布时间: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 -- 发布时间:2011/6/24 8:40:53 -- 还有个问题 要想取开盘以后运行了多少分钟必须这么取吗?这样就必须给主窗口设置成程序监测的板块,有更好的解决办法吗?就是说可以不必手动修改主窗口的内容,直接取各个市场的开盘时间。 Set Grid = Technic.GetGridByName("Main") set Market = grid.GetMarketinfo() userform3_textbox1.text=int(Market.OpenSeconds(TIME)/60) |
-- 作者:王锋 -- 发布时间:2011/6/24 8:52:27 -- 问题1. 应该是用STKINDI取公式数据与你在图形上显示的数据数量不同导致,虽然都是从开始第60个K线,但是日期不同.建义你用DataSize输出看看公式数据有多少跟K线与K线图对比.或者在工具->选项->维护中将 图形显示和内存保留都设到0这样就同步了. 再此提醒用户使用公式数据不要用周期来定位,应该使用日期,这样才不会有问题. 问题2.MarketData对象的 GetMarketInfo 方法 |
-- 作者:xm1212 -- 发布时间: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 ?还是怎么改? |