以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  VBA选股与软件中选股的结果不一致  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=93938)

--  作者:天涯doa
--  发布时间:2016/3/3 22:34:36
--  VBA选股与软件中选股的结果不一致

以下内容为程序代码:

1 Set b = CreateObject("Stock.Block")
2 b.ClearBlock "自选","两连板"
3 call b.ToSave("自选","两连板") \'保存数据
4 Dim blocktype2(5)
5 Dim blockname2(5)
6
7 TIMAX2=1
8 blocktype2(TIMAX2)="上海证券交易所"
9 blockname2(TIMAX2)= "上海A股"
10 TIMAX2=TIMAX2+1
11 blocktype2(TIMAX2)="深圳证券交易所"
12 blockname2(TIMAX2)= "深圳A股"
13 TIMAX2=TIMAX2+1
14 blocktype2(TIMAX2)="深圳证券交易所"
15 blockname2(TIMAX2)= "深圳创业"
16
17
18 FOR I=1 TO TIMAX2
19 call b.open(blockname2(I),0)
20 tnblockcount=b.count
21 application.MsgOut tnblockcount & blockname2(I)
22 for J=0 TO tnblockcount-1
23
24 TCMARKET=b.GetStockMarket(J)
25 TCCODE=b.GetStockCode(J)
26 Set Formula1 = marketdata.STKINDI(TCCODE,TCMARKET,"两连扳测试",0,5)
27 DataSize=Formula1.DataSize
28 IF Formula1.GetBufData("两连扳",DataSize-1) =1 and Formula1.GetBufData("连续涨停数",DataSize-1)=2 and Formula1.GetBufDateData(DataSize-1)=date THEN \'非停牌股
29 application.MsgOut TCCODE & TCMARKET & ":" & Formula1.GetBufData("两连扳",DataSize-1) & ", " & Formula1.GetBufData("连续涨停数",DataSize-1)
30 call b.open("两连板",1)
31 call b.AddStock(TCMARKET,TCCODE)
32 call b.ToSave("自选","两连板") \'保存数据
33 END IF
34 next
35 next

以上是VBA的选股代码,在今天执行,得到的结果有3个,600490.000505,300023

但是用选股系统选出来的要多,像000626,000657,002133,002145都是符合公式条件的,就是没有被选进去

公式代码如下:

涨停:=C>REF(C,1)*1.095;
两连扳:ref(涨停,1) and 涨停;
连续涨停数:BARSLast(not(涨停));

求解惑!!


--  作者:天涯doa
--  发布时间:2016/3/4 19:45:39
--  
版主,求答疑!!!
--  作者:天涯doa
--  发布时间:2016/3/4 21:53:05
--  

经过逐句调试已经发现问题了,在循环中执行下面语句后,数据提取会失败,比如板块中1000个股票,在10个股票中符合IF条件,然后会执行下面的语句。执行完毕后第11个股票的数据就提取不出来了

以下内容为程序代码:

1 call b.open("两连板",1)
2 31 call b.AddStock(TCMARKET,TCCODE)
3 32 call b.ToSave("自选","两连板") \'保存数据

解决方案是建立数组,在循环结束后统一添加进板块


--  作者:jinn
--  发布时间:2016/3/11 11:08:48
--  
请问一下
set b=nothing什么时候用要?

--  作者:yukizzc
--  发布时间:2016/3/11 13:29:23
--  
在你不再需要该对象的时候去执行
--  作者:jinn
--  发布时间:2016/3/11 15:02:28
--  
谢谢