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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 请教关于Formula读取数值的问题

   

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


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

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

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


加好友 发短信
等级:新手上路 帖子:99 积分:0 威望:0 精华:0 注册:2015/8/1 10:56:48
请教关于Formula读取数值的问题  发帖心情 Post By: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)

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


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

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

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

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

 


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


加好友 发短信
等级:新手上路 帖子:99 积分:0 威望:0 精华:0 注册:2015/8/1 10:56:48
  发帖心情 Post By:2015/8/13 9:32:58 [只看该作者]

对于第一个问题,是否如果图表显示了其他品种的,这个输出值就会不正确?

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


加好友 发短信
等级:新手上路 帖子:99 积分:0 威望:0 精华:0 注册:2015/8/1 10:56:48
  发帖心情 Post By:2015/8/13 9:37:56 [只看该作者]

对于第三点,是否把语句修改为下面这样?
Set Formula1 = marketdata.STKINDI(sCode,sMarket,"MACD",0,iPeriod,0,60)  

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


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

不是的,只要你今天打开过,换成别的品种,不影响的

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


加好友 发短信
等级:新手上路 帖子:99 积分:0 威望:0 精华:0 注册:2015/8/1 10:56:48
  发帖心情 Post By:2015/8/13 12:06:36 [只看该作者]

以下是引用guotx2010在2015/8/13 10:10:29的发言:
不是的,只要你今天打开过,换成别的品种,不影响的


如果没打开过,就是以本地历史数据最后一条1分钟K线作为计算依据?

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


加好友 发短信
等级:超级版主 帖子:5960 积分:0 威望:0 精华:2 注册:2014/6/12 11:29:04
  发帖心情 Post By:2015/8/13 14:25:44 [只看该作者]

1,是的,打开图表软件会自动推送给你最近的数据


金字塔—专业程序化交易量化投资平台

产品部

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

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
gzcoolfire
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:99 积分:0 威望:0 精华:0 注册:2015/8/1 10:56:48
  发帖心情 Post By:2015/8/13 14:31:45 [只看该作者]

如果我的程序里面是跑两个或者多个品种,就需要在行情窗口里面先设置好,比如在框架中打开,再在程序中使用Application.ActiveFramWithCode 进行打开。
是这样吗?

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


加好友 发短信
等级:超级版主 帖子:5960 积分:0 威望:0 精华:2 注册:2014/6/12 11:29:04
  发帖心情 Post By:2015/8/13 16:56:04 [只看该作者]

1,你直接自己建个框架,里面包含这2个品种!然后直接打开这个框架不就行了!


金字塔—专业程序化交易量化投资平台

产品部

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

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部