Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:请教关于Formula读取数值的问题

1楼
gzcoolfire 发表于:2015/8/13 9:10:44
我使用一下的代码读取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)
2楼
guotx2010 发表于:2015/8/13 9:17:51

1、可以使用Application.ActiveFramWithCode方法自动打开框架

2、Formula1.DataSize-2和Formula1.DataSize-3,是对应前1分钟以及前2分钟的值

3、使用MarketData.Stkinid的最后一个参数,可以限制读入的数据个数

 

3楼
gzcoolfire 发表于:2015/8/13 9:32:58
对于第一个问题,是否如果图表显示了其他品种的,这个输出值就会不正确?
4楼
gzcoolfire 发表于:2015/8/13 9:37:56
对于第三点,是否把语句修改为下面这样?
Set Formula1 = marketdata.STKINDI(sCode,sMarket,"MACD",0,iPeriod,0,60)  
5楼
guotx2010 发表于:2015/8/13 10:10:29
不是的,只要你今天打开过,换成别的品种,不影响的
6楼
gzcoolfire 发表于:2015/8/13 12:06:36
以下是引用guotx2010在2015/8/13 10:10:29的发言:
不是的,只要你今天打开过,换成别的品种,不影响的


如果没打开过,就是以本地历史数据最后一条1分钟K线作为计算依据?
7楼
FexTel 发表于:2015/8/13 14:25:44
1,是的,打开图表软件会自动推送给你最近的数据
8楼
gzcoolfire 发表于:2015/8/13 14:31:45
如果我的程序里面是跑两个或者多个品种,就需要在行情窗口里面先设置好,比如在框架中打开,再在程序中使用Application.ActiveFramWithCode 进行打开。
是这样吗?
9楼
FexTel 发表于:2015/8/13 16:56:04
1,你直接自己建个框架,里面包含这2个品种!然后直接打开这个框架不就行了!
共9 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.01563 s, 2 queries.