以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- VBA多公式选股问题 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=142491) |
-- 作者:天涯doa -- 发布时间:2016/11/10 13:36:09 -- VBA多公式选股问题 我用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 -- 发布时间:2016/11/10 14:31:32 -- 看stkindi说明 注意: 该方法返回的Formula对象将使用共享的内存缓冲区,如果你有多个品种需要转换并且同时处理,请使用数组类Array.保存转换后的Formula对象数据.
GetHistoryData 对象 看这个方法下面有如何使用数组保存数据的例子 |