以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  求助:为什么数组元素都显示零  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=30685)

--  作者:daishw
--  发布时间:2012/11/16 11:16:56
--  求助:为什么数组元素都显示零

      dim d1
       Set d1 = CreateObject("Stock.Array")       
       set Data1= marketdata.GetHistoryData("if12","zj",0)
      dim d2
       Set d2 = CreateObject("Stock.Array")       
       set Data2= marketdata.GetHistoryData("if11","zj",0)   
     If Data1.Count < 20 or Data2.Count < 20 Then
        Set d1 = nothing 

        Set d2 = nothing 

        Exit Sub
      End if     
      for i=Data1.Count-20 to Data1.Count-1
         d1.AddBack(Data1.Close(i))
         d2.AddBack(Data1.Close(i)-Data2.Close(i))          
      next
      for j=0 to 19
         Application.MsgOut d1.getat(j)
         Application.MsgOut d2.getat(j)
      next
     
      A=d1.GetAt(19)
      B=d1.GetAt(19)- d2.GetAt(19)   
     Application.MsgOut A
     MsgBox B

 

问题:数组d1正常,为什么数组d2的元素都为零?B值为d1.GetAt(19)的值?请教问题出在哪里?


--  作者:guotx2010
--  发布时间:2012/11/16 11:40:13
--  

\'分开给每一个数组赋值就行了。

 

dim d1
       Set d1 = CreateObject("Stock.Array")       
       set Data1= marketdata.GetHistoryData("if12","zj",0)
      for i=Data1.Count-20 to Data1.Count-1
         d1.AddBack(Data1.Close(i))
      next
     
      dim d2
       Set d2 = CreateObject("Stock.Array")       
       set Data2= marketdata.GetHistoryData("if11","zj",0)  
      for i=Data2.Count-20 to Data2.Count-1
         d2.AddBack(Data2.Close(i))
         \'d2.AddBack(Data1.Close(i)-Data2.Close(i))          
      next
     If Data1.Count < 20 or Data2.Count < 20 Then
        Set d1 = nothing

        Set d2 = nothing

        Exit Sub
      End if     
     
      for j=0 to 19
         Application.MsgOut "d1:"&j&"="&d1.getat(j)
         Application.MsgOut "d2:"&j&"="&d2.getat(j)
      next
     
      A=d1.GetAt(19)
      B=d1.GetAt(19)- d2.GetAt(19)   
     Application.MsgOut A
     MsgBox B