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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 求助:为什么数组元素都显示零

   

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


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

主题:求助:为什么数组元素都显示零

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


加好友 发短信
等级:新手上路 帖子:46 积分:201 威望:0 精华:0 注册:2010/11/27 20:39:25
求助:为什么数组元素都显示零  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By: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


 回到顶部