您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 其他期货软件知识>>正文内容

[求助]一个奇怪的问题。BLOCK对象最后二项数据缺乏。 [金字塔]

  • 咨询内容:

    一个VBA程序,导出板块中的市场代码和品种代码到文本文件中。

    前面数据导出正常,板块中的最后二项数据均为空白。

     

    比如一个板块有5个品种:SH600104,SZ000758,SH600756,SZ000089,SH600108

    结果板块文本文件中只有:

    SH600104

    SZ000758

    SH600756

    再加2行空行。

    是否GetStockMarket函数有BUG.

    另外,count到底是基于0还是基于1的

     

    TIMAX=1

     blocktype(TIMAX)="程-预警板块-大幅上涨模式"
     blockname(TIMAX)= "当日中大幅上涨板块"

     

     Set b = CreateObject("Stock.Block")
     
     
     
     FOR I=1 TO  TIMAX 
     
        ' init_block_data_TextBoxType.Text =blocktype(I)
      '   init_block_data_TextBoxBlock.Text = blockname(I)
         'init_block_data.show()
     
             application.MsgOut Date &" " &Time& "导出板块数据....:"&blocktype(I)&"  名称:"&blockname(I)

          If b.IsTypeExist(blocktype(I))=0 Then  
         
              End if    
     
          If b.IsBlockExist(blockname(I))=0  Then
             
          else
               
                call  b.open(blockname(I),1)
                tnblockcount=b.count
       
                      
                tcfiledire=Application.AppPath+"\systemblock\"
                tcfilename=blockname(I)+".txt"
                tcfilepath=tcfiledire+tcfilename
       
                 Set fs = CreateObject("Scripting.FileSystemObject")

                 Set a = fs.CreateTextFile(tcfilepath, True)
                 a.Close

                for J=0 TO tnblockcount
                       tcmarket=b.GetStockMarket(j)
                       tccode=b.GetStockCode(j)
                       tcstr=tcmarket+tccode
                       call document.debugfile(tcfilepath,tcstr,0)
                next      
               
              End if

        NEXT
     
     
         
        application.MsgOut Date &" " &Time& "导出板块数据完成!" 

     

  • 金字塔客服:

    问题正在解决中

     

  • 用户回复:

    count 只是代表总数,有多少个合约就会显示多少,它不是数组变量。

    其他问题还在解决中

    [此贴子已经被作者于2011-11-8 9:33:58编辑过]

     

  • 网友回复:

    GetStockMarket 不是BUG 可以正常使用

    我贴上一个GetStockMarket的使用,并不是保存到文件里,只是打印一下板块的合约代码。从你上面的代码看,你好像是少用了 OPEN 方法。

     

     Set b = CreateObject("Stock.Block")
     
    call b.open("上海A股",0)

    application.MsgOut  b.count

     
     FOR I=1 TO  b.count
       application.MsgOut b.GetStockCode(i)
     next
        
     

     

  • 网友回复: 有啊, call b.open(blockname(I),1)

【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容