以文本方式查看主题 
         
      -  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp) 
        --  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5) 
        ----  金字塔vba函数marketdata.STKINDI导出自定义周期的指标问题  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=88279) 
         
       | 
    
    
    
      --  作者:wangguanjin 
        --  发布时间:2015/12/10 11:10:08 
        
        --  金字塔vba函数marketdata.STKINDI导出自定义周期的指标问题 
        问题描述: 
	通过金字塔软件的 菜单:工具->市场与板块(R)... 这个功能成功设置了90分钟,150分钟,3小时的K线 
	  
	通过vba函数 marketdata.STKINDI 将价格(我把高、开、低、收 价格作为四个指标变量)和指标导出,发现所有自定义周期的指标不正确,价格正确。同样的代码,我导出金字塔自带周期1小时,30分钟的数据,价格和指标完全正确 
	  
	附件的两个截图做了详细说明 
	  
	结论:金字塔vba函数marketdata.STKINDI 导出自定义周期的指标数据不正确 
	  
	请问有什么办法解决 
  此主题相关图片如下:2015-12-10_10-44-09.png
  
 
  此主题相关图片如下:2015-12-10_10-51-32.png
   
         
       | 
    
    
      --  作者:wangguanjin 
        --  发布时间:2015/12/10 13:54:25 
        
        --   
         等待中。。。。
         
       | 
    
    
      --  作者:yukizzc 
        --  发布时间:2015/12/10 14:35:41 
        
        --   
        本地测试情况如下,代码测试也如下 
	Set Formula = marketdata.STKINDI("000001","sh","kdj(9,3,3)",0,13,60)  application.MsgOut Formula.GetBufData("k",20)  application.MsgOut Formula.GetBufData("d",20)  application.MsgOut Formula.GetBufData("j",20) 
  此主题相关图片如下:~1kesblrifpsq13pjd%mjf.png
  
  
         
       | 
    
    
      --  作者:wangguanjin 
        --  发布时间:2015/12/10 17:48:18 
        
        --   
         版主,你把 Set Formula = marketdata.STKINDI("000001","sh","kdj(9,3,3)",0,13,60) 最后60 改成 90 试一下 60分钟的结果我这里也是正确的。
  不过前提是你需要 通过菜单:工具->市场与板块(R)... 这个功能成功设置了90分钟的K线,90分钟的k线我是按照如下方法定制
  
	
  此主题相关图片如下:2015-12-10_17-46-25.png
  
  
         
       | 
    
    
      --  作者:wangguanjin 
        --  发布时间:2015/12/10 17:49:40 
        
        --   
        除了金字塔自带的常用周期正确, 自定义周期貌似都不对。 
         
       | 
    
    
      --  作者:yukizzc 
        --  发布时间:2015/12/11 13:05:24 
        
        --   
        您把行情停掉,然后图表上看下取的是不是同一个k。 
	pel代码 
	RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:SMA(RSV,P1,1); D:SMA(K,P2,1); J:3*K-2*D; dd:barpos    这个dd值对应vba里面输出第20根+1 
	  
	Set Formula = marketdata.STKINDI("000001","sh","kdj(9,3,3)",0,13,90)  application.MsgOut Formula.GetBufData("k",20)  application.MsgOut Formula.GetBufData("d",20)  application.MsgOut Formula.GetBufData("j",20)  
	
  此主题相关图片如下:)lf3h4}f6w{%(}`3qsc3gx9.jpg
  
  
         
       | 
    
    
      --  作者:wangguanjin 
        --  发布时间:2015/12/11 17:08:31 
        
        --   
        搞定了,这个问题应该是金字塔的bug或者就这么设计的(如果是bug,是不是请我吃饭 ) 。 
	  
	我定义了多个自定义周期,用vba导出数据前,必须把要导出的周期现在k线图上进行显示,不能一次性全部导出多个自定义周期的数据,否则会乱套 
	  
	  
	[此贴子已经被作者于2015/12/11 17:09:09编辑过] 
         
       | 
    
    
      --  作者:王锋 
        --  发布时间:2015/12/11 18:11:40 
        
        --   
        如果是先要显示,那么有可能是你导出的品种缺失历史数据导致的,打开图表后后自动补充历史数据
         
       | 
    
    
      --  作者:wangguanjin 
        --  发布时间:2015/12/13 16:01:57 
        
        --   
         我可以确定不是数据缺失的问题, 因为我用的是同一个品种(上证指数),而且5分钟的数据确定补充完成。
  如果必须在K图上显示才能正确导出 , 那也就是说不能后台自动输出自定义周期的实时数据? 
         
       | 
    
    
      --  作者:yukizzc 
        --  发布时间:2015/12/14 13:42:27 
        
        --   
        你怎么用的??我这边不打开图表然后输出STKINDI("000001","sh","kdj(9,3,3)",0,13,90)  STKINDI("000001","sh","kdj(9,3,3)",0,13,60) 
	两种自定义的指标输出,然后打开图表对照数据都是一致的。还是说您那边输出了几十个自定义?? 
         
       |