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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → VBA多公式选股问题

   

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


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

主题:VBA多公式选股问题

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


加好友 发短信
等级:新手上路 帖子:43 积分:1 威望:0 精华:0 注册:2013/3/9 23:18:00
VBA多公式选股问题  发帖心情 Post By:2016/11/10 13:36:09 [只看该作者]

我用VBA代码选股,有三个选股公式,但是最后出的结果只是最后一个公式 结果,不知道哪个代码出问题了,求指导!

以下内容为程序代码:

1 dim blocktype2(5)
2 dim blockname2(5)
3 s1=""
4 s2=""
5 s3=""
6 Set b = CreateObject("Stock.Block")
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 FOR I=1 TO TIMAX2
18 'application.MsgOut tnblockcount & blockname2(I)
19 call b.open(blockname2(I),0)
20 tnblockcount=b.count
21 for J=0 TO tnblockcount-1
22 TCMARKET=b.GetStockMarket(J)
23 TCCODE=b.GetStockCode(J)
24 Set Formula1 = marketdata.STKINDI(TCCODE,TCMARKET,"中枢选股",0,5)
25 Set Formula2 = marketdata.STKINDI(TCCODE,TCMARKET,"中枢选股(4,3,-3,160)",0,5)
26 Set Formula3 = marketdata.STKINDI(TCCODE,TCMARKET,"原版信号",0,5)
27 DataSize=Formula1.DataSize
28 IF Formula1.GetBufData("信号",DataSize-1) =1 THEN 
29 s1=s1 & TCCODE & chr(10)
31 END IF
32 IF Formula2.GetBufData("信号",DataSize-1) =1 THEN
33 s2=s2 & TCCODE & chr(10)
34 END IF
35 IF Formula3.GetBufData("信号3",DataSize-1) =1 THEN
36 s3=s3 & TCCODE & chr(10)
37 END IF
38 next
39 next

 

其中s1、s2、s3储存三个公式的选股信号,但是经过测试发现,最后s1、s2、s3中的结果都是s3的结果,也就都是Formula3选出来的,但实际上这三个结果是不同的,这个是什么原因啊

[此贴子已经被作者于2016-11-10 13:37:07编辑过]

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


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

看stkindi说明

注意: 该方法返回的Formula对象将使用共享的内存缓冲区,如果你有多个品种需要转换并且同时处理,请使用数组类Array.保存转换后的Formula对象数据.

 

GetHistoryData 对象

看这个方法下面有如何使用数组保存数据的例子


 回到顶部