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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → marketdata.GetHistoryData("if11","zj",0) 获取的是当前K以前的所有数据吗?

   

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


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

主题:marketdata.GetHistoryData("if11","zj",0) 获取的是当前K以前的所有数据吗?

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2021/1/18 9:28:32 [显示全部帖子]

0的话就是所有1分钟k了


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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2021/1/18 10:18:08 [显示全部帖子]

Count

可选参数,若填数字则表示指定的调用数量,为0或者不填表示读取该品种在本地硬盘保存的全部数据

 

你不填参数,表示该品种所有数据

 

 

技术分析框架和这个没有任何关系的


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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2021/1/18 10:31:54 [显示全部帖子]

电话我把

021-20339087


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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2021/1/26 9:55:04 [显示全部帖子]

软件版本多少,安装官网的最新的6.0beta5试试呢

代码完整的贴下,本地看看

[此贴子已经被作者于2021/1/26 9:55:34编辑过]

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2021/1/27 10:06:46 [显示全部帖子]

我本地运行正常,但是也没看到if88这个品种有数据,是有其他什么操作吗

 

我本地运行正常,但是也没看到if88这个品种有数据,是有其他什么操作吗

 

另外你试试注释掉一些代码呢,这个有一个可能就是代码死循环或者不断创建对象导致内存太大引起

[此贴子已经被作者于2021/1/27 10:08:11编辑过]

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2021/1/27 13:21:37 [显示全部帖子]

DestroyMinuteData

销毁使用GetMinuteData打开的内存缓冲区.

注意:对象使用完毕后一定要调用该方法销毁缓冲区,否则会占用内存

DestroyHistoryMinuteData

销毁使用GetHistoryMinuteData打开的内存缓冲区.

注意:对象使用完毕后一定要调用该方法销毁缓冲区,否则会占用内存

DestroyHistoryData

销毁使用GetHistoryData打开的内存缓冲区

注意:对象使用完毕后一定要调用该方法销毁缓冲区,否则会占用内存

 

这些对象下面方法有说明的,你要注意自己做销毁,不是对象频发建立都不释放的


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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2021/1/27 14:41:38 [显示全部帖子]

 
 
[此贴子已经被作者于2021/1/27 14:43:00编辑过]

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2021/1/27 14:46:20 [显示全部帖子]

没有崩溃,if88有这个合约是有了,但是并没有数据
[此贴子已经被作者于2021/1/27 14:46:33编辑过]

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2021/1/27 14:50:12 [显示全部帖子]

没有问题,没有崩溃,但是也没有数据

 

 


图片点击可在新窗口打开查看此主题相关图片如下:%s)4x788ne~nl6u_for1j.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2021/1/27 14:57:01 [显示全部帖子]

dim shanchu
shanchu = 0     '是否删除历史数据,1为需要


dim dangtianshuju '当日是否有数据,0为没有
dangtianshuju = 1


dim bili
bili = 0.001    '等价线区间


dim xinheyue
xinheyue = "IF88"  '新等价K合约代码
dim xinmingcheng
xinmingcheng = "IF等价K线" '新等价K合约名称
dim xinshichang
xinshichang = "ZJ" '新等价K合约市场


dim laoheyue
laoheyue = "IF00" '标的合约代码
dim laoshichang
laoshichang = "ZJ" '标的合约市场
dim laozhishu
laozhishu = "IF13"

call lishishuju()
Sub lishishuju()


    '查询品种是否存在,不存在则新建
    cunzai = marketdata.IsExistStock(xinheyue,xinshichang)
    if cunzai = 0 then
       call marketdata.AddStock(xinheyue,xinshichang, xinmingcheng)
       application.MsgOut "等价K线【创建成功】!"
    else
       application.MsgOut "等价K线【已经存在】!"
    end if


   
    '等价区间处理
    set Report1 = marketdata.GetReportData(laoheyue,laoshichang)   
    qj = Report1.Open*bili
 
   
    '删除历史数据,创建第一根K线
    if shanchu = 1 then    
       Set History1 = marketdata.GetHistoryData(xinheyue,xinshichang,0)    
       for j = 0 to History1.Count-1
       History1.RemoveAt(j)
       next   
       call History1.InsertAt(0)
       History1.open(0) = Report1.Open
       History1.close(0) = Report1.Open
       History1.high(0) = Report1.Open
       History1.low(0) = Report1.Open
       History1.Date(0) = Report1.Date
       History1.Volume(0) = Report1.Volume
       History1.OpenInt(0) = Report1.OpenInt
       call History1.SaveData(xinheyue,xinshichang,1)       
       application.MsgOut "等价K线【历史数据初始化】成功!"
    end if
             
    set minutedata = marketdata.GetMinuteData(laoheyue,laoshichang)
    Count =  minutedata.Count
   
   
    for i = 1 to count-1
   
        Set History2 = marketdata.GetHistoryData(xinheyue,xinshichang,0)     
        mxopen = History2.open(History2.Count-1)
        mxclose = History2.close(History2.Count-1)
        mxhigh = History2.high(History2.Count-1)
        mxlow = History2.low(History2.Count-1)
        mxDate = History2.Date(History2.Count-1)
        mxVolume = History2.Volume(History2.Count-1)
        mxOpenInt = History2.OpenInt(History2.Count-1)
       


        close = minutedata.newprice(i)
        fbDate = minutedata.Date(i)     
        Volume = minutedata.Volume(i)
        mxVolume = minutedata.Volume(i-1)
        OpenInt = minutedata.OpenInt(i)
        if close > mxhigh then mxhigh = close end if
        if close < mxlow  then mxlow = close end if
        mxdate = fbDate
        mxxVolume = (Volume-mxVolume)+mxxVolume
        mxOpenInt = OpenInt
       
        History2.close(History2.Count-1) = close
        History2.high(History2.Count-1) = mxhigh
        History2.low(History2.Count-1) = mxlow
        History2.Date(History2.Count-1) = mxdate 
        History2.Volume(History2.Count-1) = mxxVolume 
        History2.OpenInt(History2.Count-1) = mxOpenInt
        call History2.SaveData(xinheyue,xinshichang,1)
      
        if abs(close-mxopen) > qj then
        '新建一个K线      
        call History2.InsertAt(History2.Count)
        History2.open(History2.Count-1) = close
        History2.close(History2.Count-1) = close
        History2.high(History2.Count-1) = close
        History2.low(History2.Count-1) = close
        History2.Date(History2.Count-1) = mxdate 
        History2.Volume(History2.Count-1) = 0  
        History2.OpenInt(History2.Count-1) = OpenInt 
        call History2.SaveData(xinheyue,xinshichang,1)  
        mxxVolume = 0
        end if
       
     next


End Sub


sub dengjiaK()'第一次用的时候请先运行改宏创建等价K线数据
     call lishishuju()
end sub


Sub APPLICATION_VBAStart()
    call Application.SetTimer(0,1000) '创建一个0号定时器,间隔时间1秒
End Sub

 


Sub APPLICATION_Timer(ID) 
 
    if ID = 0 then
   


   
     if (cdate(time)<=cdate("11:30:00") and cdate(time)>cdate("9:15:00")) or (cdate(time)<=cdate("15:15:00") and cdate(time)>cdate("13:00:00")) then 
  
      '等价区间处理   
      set Report1 = marketdata.GetReportData(laoheyue,laoshichang)
         qj = Report1.Open*bili
        
              
        Set History2 = marketdata.GetHistoryData(xinheyue,xinshichang,0)     
        mxopen = History2.open(History2.Count-1)
        mxclose = History2.close(History2.Count-1)
        mxhigh = History2.high(History2.Count-1)
        mxlow = History2.low(History2.Count-1)
        mxDate = History2.Date(History2.Count-1)
        mxxVolume = History2.Volume(History2.Count-1)
        mxOpenInt = History2.OpenInt(History2.Count-1)
       
        set minutedata = marketdata.GetMinuteData(laoheyue,laoshichang)
        Count =  minutedata.Count    
       
   
        close = minutedata.newprice(Count-1)
        fbDate = minutedata.Date(Count-1)
        mxVolume = minutedata.Volume(Count-2)
        Volume = minutedata.Volume(Count-1)
        OpenInt = minutedata.OpenInt(Count-1)
        if close > mxhigh then mxhigh = close end if
        if close < mxlow  then mxlow = close end if
        mxdate = fbDate
        mxxVolume = mxxVolume+(Volume-mxVolume)
        mxOpenInt =OpenInt
'        application.MsgOut mxxVolume&" "&Volume&" "&Volume-mxVolume
       


        History2.close(History2.Count-1) = close
        History2.high(History2.Count-1) = mxhigh
        History2.low(History2.Count-1) = mxlow
        History2.Date(History2.Count-1) = mxdate 
        History2.Volume(History2.Count-1) = mxxVolume 
        History2.OpenInt(History2.Count-1) = mxOpenInt 
        call History2.SaveData(xinheyue,xinshichang,1)
      
        if abs(close-mxopen) > qj then
        '新建一个K线      
        call History2.InsertAt(History2.Count)
        History2.open(History2.Count-1) = close
        History2.close(History2.Count-1) = close
        History2.high(History2.Count-1) = close
        History2.low(History2.Count-1) = close
        History2.Date(History2.Count-1) = mxdate 
        History2.Volume(History2.Count-1) = 0 
        History2.OpenInt(History2.Count-1) = OpenInt
        call History2.SaveData(xinheyue,xinshichang,1)
        mxxVolume = 0
        end if
       
     call Application.ActivateFrameWithCode("Technic",xinheyue,xinshichang,0)
     call Technic.Refresh     
    end if
  
   
   
    end if
 
end sub


Sub to_0()


'得到上期所指定品种的日线数据
Set History = marketdata.GetHistoryData("IF88","ZJ",0)
'删掉第一条数据
for i=0 to History.Count-1
History.Volume(i) = 0
next

call History.SaveData("IF88","ZJ",1)
End Sub

 

 


 回到顶部
总数 16 1 2 下一页