以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- 请教关于Formula读取数值的问题 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=83224) |
-- 作者:gzcoolfire -- 发布时间:2015/8/13 9:10:44 -- 请教关于Formula读取数值的问题 我使用一下的代码读取IF09对应的MACD值,但运行过程中有以下几个疑问需要请教一下: 1、我的VBA程序默认启动金字塔就运行,这个时候没有打开图表窗口,但发现输出的MACD值不正确,需要在图表中打开IF09的1分钟图才是正确的输出。我要如何设置才能在打开金字塔的时候就能直接读取到正确的值? 这个是否是marketdata对象不正确的问题? 2、Diff和DEA通过这个方法获取的话,是否是最新的1分钟MACD值,这个值会随行情最新价格变动?如果是Formula1.DataSize-2和Formula1.DataSize-3,是否就对应前1分钟以及前2分钟的值? 3、如果要打开图表的话,程序会很卡,如何可以在一打开的时候就设置为”只显示60根K线“,否则程序会提示加载了过多的K线数量。 我的代码如下: sCode="IF09" sMarket="ZJ" Set Formula1 = marketdata.STKINDI(sCode,sMarket,"MACD",0,iPeriod) Diff=Formula1.GetBufData("DIFF",Formula1.DataSize-1) DEA=Formula1.GetBufData("DEA",Formula1.DataSize-1)
|
-- 作者:guotx2010 -- 发布时间:2015/8/13 9:17:51 -- 1、可以使用Application.ActiveFramWithCode方法自动打开框架 2、Formula1.DataSize-2和Formula1.DataSize-3,是对应前1分钟以及前2分钟的值 3、使用MarketData.Stkinid的最后一个参数,可以限制读入的数据个数
|
-- 作者:gzcoolfire -- 发布时间:2015/8/13 9:32:58 -- 对于第一个问题,是否如果图表显示了其他品种的,这个输出值就会不正确? |
-- 作者:gzcoolfire -- 发布时间:2015/8/13 9:37:56 -- 对于第三点,是否把语句修改为下面这样? Set Formula1 = marketdata.STKINDI(sCode,sMarket,"MACD",0,iPeriod,0,60)
|
-- 作者:guotx2010 -- 发布时间:2015/8/13 10:10:29 -- 不是的,只要你今天打开过,换成别的品种,不影响的 |
-- 作者:gzcoolfire -- 发布时间:2015/8/13 12:06:36 -- 以下是引用guotx2010在2015/8/13 10:10:29的发言: 不是的,只要你今天打开过,换成别的品种,不影响的 |
-- 作者:FexTel -- 发布时间:2015/8/13 14:25:44 -- 1,是的,打开图表软件会自动推送给你最近的数据 |
-- 作者:gzcoolfire -- 发布时间:2015/8/13 14:31:45 -- 如果我的程序里面是跑两个或者多个品种,就需要在行情窗口里面先设置好,比如在框架中打开,再在程序中使用Application.ActiveFramWithCode 进行打开。 是这样吗?
|
-- 作者:FexTel -- 发布时间:2015/8/13 16:56:04 -- 1,你直接自己建个框架,里面包含这2个品种!然后直接打开这个框架不就行了! |