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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → vba每分钟轮询所有A股的行情

   

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


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

主题:vba每分钟轮询所有A股的行情

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2017/9/12 11:06:24 [只看该作者]

MarketData.GetHistoryData

这个也不一定是完整的啊,就好比你看k图,当前最新是多少价格就是多少


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


加好友 发短信
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2015/12/22 1:14:23
  发帖心情 Post By:2017/9/12 13:27:22 [只看该作者]

Sub APPLICATION_VBAStart()
    Call Application.Settimer(0,1000)
End Sub

Sub APPLICATION_Timer(ID)
   if Hour(now) >= 9 And Hour(now) <= 15 And Minute(Now) > 1 And Second(Now) < 1 Then
      DifMin = Minute(Now) Mod 2
      
      IF DifMin = 0 Then
      set fso = CreateObject("Scripting.FileSystemObject")
      set tf = fso.OpenTextFile("E:\SarZ\sarz_py\quant\test\all_stock_code.csv", 1)
      while (not tf.AtEndOfStream)
stock_str = Split(tf.ReadLine, ",")
'msgbox (stock_str(0) & "  " & stock_str(1))
      set stock = MarketData.GetReportData(stock_str(0),stock_str(1))
     
      Set tf2 = fso.OpenTextFile("E:\SarZ\sarz_py\quant\test\jzt.txt", 8)
      tf2.WriteLine(stock.Date & "," & stock.Label & "," & stock.NewPrice)
      tf2.close
      wend
      tf.close
      End If
   End if
End Sub

以上是每两分钟获取的代码,以下是保存的结果:
2017/9/12 13:24:01,603277,19.59
2017/9/12 13:23:57,000868,6.25
2017/9/12 13:24:00,002455,13.38
2017/9/12 13:24:00,002497,20.9
2017/9/12 13:24:00,002747,14.81
2017/9/12 13:24:00,002782,21.69
2017/9/12 13:24:01,603882,12.08
2017/9/12 13:24:00,002407,29.92
2017/9/12 13:24:00,600884,26.68
2017/9/12 13:24:00,600558,7.86
2017/9/12 13:23:57,300484,35.05
2017/9/12 13:24:00,600699,35.33
2017/9/12 13:23:42,002897,39.64
2017/9/12 13:24:01,603305,55.66
2017/9/12 13:24:01,601012,26.35
2017/9/12 13:23:57,300693,69.4
2017/9/12 13:23:51,300681,71.94
2017/9/12 13:23:51,300697,14.63

可以看到,有很多不是整点的,想请教这应该怎解决?

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


加好友 发短信
等级:管理员 帖子:2437 积分:0 威望:0 精华:0 注册:2016/3/5 22:53:41
  发帖心情 Post By:2017/9/12 13:38:10 [只看该作者]

如果你要整点的整理过的K线价格及时间,你只能用MarketData.GetHistoryData


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


加好友 发短信
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2015/12/22 1:14:23
  发帖心情 Post By:2017/9/12 13:39:43 [只看该作者]

但是MarketData.GetHistoryData这个,我应该可以每分钟过了10秒才去取数据,拿最后一根完整的K线,这样应该可以解决了吧?

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


加好友 发短信
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2015/12/22 1:14:23
  发帖心情 Post By:2017/9/12 13:43:36 [只看该作者]

请问要用MarketData.GetHistoryData取最后时间的完整K线,应该怎么写?比如每1分钟取一次的

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


加好友 发短信
等级:管理员 帖子:2437 积分:0 威望:0 精华:0 注册:2016/3/5 22:53:41
  发帖心情 Post By:2017/9/12 13:55:59 [只看该作者]

搜索“定时器”关键字

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


加好友 发短信
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2015/12/22 1:14:23
  发帖心情 Post By:2017/9/12 14:01:13 [只看该作者]

昨天已经搜索过了,各个变量的索引不会用。比如:
set stock = MarketData.GetHistoryData(stock_str(0),stock_str(1), 3)
msgbox stock.Close(stock.Count - 1) 这样取出来的时间很奇怪,机制不明白
定时器我知道怎么用,是GetHistoryData返回的数据如何索引不知道
[此贴子已经被作者于2017/9/12 14:01:53编辑过]

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


加好友 发短信
等级:管理员 帖子:2437 积分:0 威望:0 精华:0 注册:2016/3/5 22:53:41
  发帖心情 Post By:2017/9/12 14:46:31 [只看该作者]

返回值是

HistoryData 对象

 

参考编程帮助的相关信息


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


加好友 发短信
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2015/12/22 1:14:23
  发帖心情 Post By:2017/9/13 13:49:50 [只看该作者]

Sub APPLICATION_VBAStart()
    Call Application.Settimer(0,1000)
End Sub

Sub APPLICATION_Timer(ID)
if Hour(now) >= 1 And Hour(now) <= 15 And (minute(now) mod 5 = 0) and Second(now) = 10 Then      

set fso = CreateObject("Scripting.FileSystemObject")
      
set fp_code = fso.OpenTextFile("E:\SarZ\sarz_py\quant\test\all_stock_code.csv", 1)
      
while (not fp_code.AtEndOfStream)

stock_str = Split(fp_code.ReadLine, ",")

'msgbox (stock_str(0) & "  " & stock_str(1))
      
set stock = marketdata.GetHistoryDataByDate(stock_str(0),stock_str(1), 1, now, now)
            
Set fp_data = fso.OpenTextFile("E:\SarZ\sarz_py\quant\test\time_read.txt", 8)
      
fp_data.WriteLine(stock_str(0) & "," & stock.Date(stock.Count-2) & "," & stock.open(stock.Count-2) & "," & stock.high(stock.Count-2) & "," & stock.low(stock.Count-2) & "," & stock.close(stock.Count-2) & "," & stock.volume(stock.Count-2)  & "," & now)
      
fp_data.close
marketdata.DestroyHistoryData
      
wend
      
fp_code.close
    End if
End Sub

002022,2017/9/13 13:40:00,17.96,17.97,17.96,17.97,439,2017/9/13 13:40:12
000666,2017/9/13 13:40:00,21.2,21.22,21.2,21.21,481,2017/9/13 13:40:12
601718,2017/9/13 13:35:00,8.84,8.84,8.82,8.83,3314,2017/9/13 13:40:12
000668,2017/9/13 13:35:00,17.47,17.47,17.46,17.46,47,2017/9/13 13:40:12
000517,2017/9/13 13:40:00,4.38,4.39,4.38,4.39,673,2017/9/13 13:40:12
300310,2017/9/13 13:40:00,13.08,13.08,13.06,13.06,719,2017/9/13 13:40:12
002825,2017/9/13 13:40:00,34.02,34.12,33.99,34.11,291,2017/9/13 13:40:12
300439,2017/9/13 13:35:00,21.31,21.32,21.3,21.3,59,2017/9/13 13:40:12
600531,2017/9/13 13:40:00,8.55,8.56,8.54,8.56,1463,2017/9/13 13:40:12
002799,2017/9/13 13:35:00,20.69,20.7,20.69,20.7,97,2017/9/13 13:40:12
300313,2017/9/13 13:35:00,15.58,15.6,15.55,15.56,533,2017/9/13 13:35:12
603277,2017/9/13 10:55:00,21.55,21.55,21.55,21.55,10,2017/9/13 13:40:10
000868,2017/9/13 13:40:00,6.88,6.88,6.88,6.88,155,2017/9/13 13:40:10
002455,2017/9/13 13:40:00,14.08,14.2,14.08,14.19,2924,2017/9/13 13:40:10
002497,2017/9/13 13:40:00,21.02,21.28,21.02,21.14,26613,2017/9/13 13:40:10
002747,2017/9/13 13:40:00,14.42,14.43,14.39,14.43,1759,2017/9/13 13:40:10
002782,2017/9/13 13:40:00,20.48,20.48,20.45,20.45,976,2017/9/13 13:40:10
603882,2017/9/13 9:55:00,13.29,13.29,13.29,13.29,66,2017/9/13 13:40:10

代码和输出结果。输出结果格式为:代码,时间,开高低收,当前时间。
有几个问题:
第一,部分涨停板的股票,时间怎么会是9:55:00或10:55:00等等,我代码是取最后一根完整K线的,为什么会出现这种情况。
第二,当前时间为13:40:12,为什么最后一根完整K先会取到13:35:00
第三,有些停牌的票,开高低收都是0,日期时间也是0,有些停牌的票,是停牌的最后日期
这几个问题麻烦解答一下,谢谢

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2017/9/13 14:55:31 [只看该作者]

一、交易不活跃啊,你在k图上看下这个品种最新5分钟是几点就知道了

二、同样道理,这个是k线时间,不是你现在电脑时间。

三、看下是不是缺少数据,你发现有问题,先打开图表对照k图,然后在做分析


 回到顶部
总数 25 上一页 1 2 3 下一页