以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  请教:如何读取所有沪市A股在当天的收盘价  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=6182)

--  作者:lilieddove
--  发布时间:2011/4/16 21:01:37
--  请教:如何读取所有沪市A股在当天的收盘价

 

版主,你好,我想读取所有在沪市A股当天的收盘价,当我用n = marketdata.GetReportCount("SH") 时,由于一些指数也记入在SH市场,读出的N有1924,而实际沪市A股数量为896个。

 

请问怎样才能把实际A股的收盘价取出来。

另外,如果是要遍历沪深300指数样本股的收盘价,金字塔的VBA能实现吗?

 

谢谢!


--  作者:guotx2010
--  发布时间:2011/4/16 23:24:03
--  

\'通过股票前3位的编码判断是不是股票,赛选出来的股票放在自选股下面

 

Sub GetStockA()     \'筛选A股
 Dim block
 Dim market
  
 Set block = CreateObject("stock.block")
  
 block.Open "自选股", 1
  
 For i = 0 To block.Count - 1
  block.removeat (0)
 Next
 market = Array("SH", "SZ")
  
 For i = 0 To UBound(market)
  n = marketdata.GetReportCount(market(i))
  For j = 0 To n - 1
   Set report1 = marketdata.GetReportDataByIndex(market(i), j)
   If left(report1.Label, 3) = "600" Then
    block.addstock market(i), report1.Label
   End If
  Next
 Next
  
 block.tosave "自选", "A股"
 MsgBox "成功筛选A股"
End Sub

[此贴子已经被作者于2011-4-16 23:25:15编辑过]

--  作者:lilieddove
--  发布时间:2011/4/17 0:02:36
--  

非常感谢!

把left(report1.Label, 3) = "600"改成left(report1.Label, 2) = "60"后,得出的沪市个数正好是896个。

 

但我想遍历这个自选的"A股"板块中896个股票,并把这些股票最后的收盘价导到EXCEL中。

 

请问如何遍历自选板块中的股票?

 

谢谢版主!


--  作者:guotx2010
--  发布时间:2011/4/17 9:26:49
--  

上面的代码不是已经将需要的股票保存到了自选股下了吗?直接导出到Excel就行了!

 


--  作者:guotx2010
--  发布时间:2011/4/17 9:35:59
--  

或者在If left(report1.Label, 3) = "60" Then
下面增加对该股票的收盘价获取,保存到Excel中,获取的代码是

Set History = marketdata.GetHistoryData(Code,Market,5)

\'Code就是股票编码,本例中为report1.Label,Market就是市场编码,本例中为SH

History.Close(History.Count-1)     \'这就是收盘价

至于如何保存到Excel中,可以参看

 http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=5984

[此贴子已经被作者于2011-4-17 9:36:39编辑过]

--  作者:lilieddove
--  发布时间:2011/4/17 11:18:16
--  

那如果是想遍历沪深300指数的成份股,在代码上没有规律,又应该怎么操作


--  作者:guotx2010
--  发布时间:2011/4/18 12:39:10
--  

没有规律的,我也不知道,等金字塔的开发人员来解答吧!