以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  如何获得A股的所有股票代码  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=85669)

--  作者:dddf
--  发布时间:2015/9/25 18:41:18
--  如何获得A股的所有股票代码
请教一下如何在VBA下获得A股市场所有的股票代码(排除300ETF基金之类),同时确定其中的哪些股票是停牌无法交易的。
哪位老师指导 一下。谢谢。

--  作者:dddf
--  发布时间:2015/9/26 0:33:31
--  
另一个问题是上海A股,用SH表示,深圳用SZ。那么深圳创业,也是用SZ表示的么?
--  作者:王锋
--  发布时间:2015/9/27 15:54:54
--  
示例

‘该示例从郑州市场筛选SR合约得最大持仓量做为主力合约

Sub Test()

Dim MaxCode
Dim MaxVolume

\'得到市场所有品种
Count = MarketData.GetReportCount("ZQ")

For i = 0 To Count-1
Set Report1 = MarketData.GetReportDataByIndex("ZQ",i)
\'只处理SR合约
if Left(Report1.Label,2) = "SR" Then
\'只处理有效合约
if Right(Report1.Label,2) >= "01" And Right(Report1.Label,2) <= "12" Then
If Report1.Volume > MaxVolume Then
MaxCode = Report1.Label
MaxVolume = Report1.Volume
End if
end if
End if
Next

\'显示成交量最大得合约
MsgBox MaxCode

End Sub

 

===============

 

所有的SZ市场的品种市场代码都是SZ的,如果你要区分创业板,你可以直接通过股票代码来却分。如果你不知道怎么区分,你可以看一下 工具菜单-》市场与板块-》打开深圳市场,里面金字塔已经帮你区分好了

[此贴子已经被作者于2015/9/27 15:56:23编辑过]

--  作者:dddf
--  发布时间:2015/9/28 10:57:26
--  
谢谢王老师。
再请教一下
确定其中的哪些股票是停牌无法交易的。使用ISNULL(DYNAINFO()))?

--  作者:dddf
--  发布时间:2015/9/28 11:03:46
--  
 if isnull(Report1.dynainfo(17)) then msgbox  "null" else msgbox  "Y"
我用这个测出来好象都是NULL,不管有没有交易

--  作者:dddf
--  发布时间:2015/9/28 11:06:42
--  
set Report1 = marketdata.GetReportData("601579","SH")
 \'set Report1 = marketdata.GetReportData("002242","SZ")
 if isnull(Report1.dynainfo(18)) then msgbox  "null" else msgbox  "Y"
都是NULL,好象有没有停牌都没有区别

--  作者:王锋
--  发布时间:2015/9/28 11:14:10
--  
有没有停牌的这个不好精确判断,你只能通过开盘后是否是成交量为0来做初步判断
--  作者:chenyan9988q
--  发布时间:2015/10/8 18:12:45
--  
金字塔能交易股票吗?