以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  9点15分出错  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=97061)

--  作者:黄金精算师
--  发布时间:2016/5/5 9:22:08
--  9点15分出错
帮看一下,这段程序那里不对
我第二次在盘中突然报错
Sub TestReportData()                                                               \' 取行情数据
    
    set report1=marketdata.getreportdata("IF09","ZJ")
     bk_TextBox2.text=report1.NewPrice
     bk_TextBox1.text=report1.buyprice1
     bk_TextBox3.text = report1.sellprice1 
     
     set report1=marketdata.getreportdata("SH300","ZJ") 
    bk_TextBox14.text=report1.NewPrice
    
     bk_TextBox11.text= ROUND((bk_TextBox7 - bk_TextBox2) * 300 ,4)    \'利润
     
     bk_TextBox12.text=ROUND((bk_TextBox2 - bk_TextBox14) / bk_TextBox14  ,4)     \'   报错后指向这一行程序,这段程序也是我在论坛里问过很多次那个小数点的事
     bk_TextBox21.text=  ROUND(bk_TextBox12*bk_TextBox14*300,1)     \'到期利润

这是在运行中出错的提示,出错时间应该是刚进入9点15分,在开盘前,这是第二次出错,这一次,怎么都开不了金字塔软件查到最后也没有找到原因,后面就不明不白的好了

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20160505091858.bmp
图片点击可在新窗口打开查看




--  作者:黄金精算师
--  发布时间:2016/5/5 9:24:35
--  
这个程有两段,下面这一段好像一直与上面的结果不同
这是下面一半
这两个代码方式是一样的,一个做的IF09一个做的IC09
 
\' ------------------
    
    set report1=marketdata.getreportdata("IC09","ZJ")
\'    application.msgout Cdate(time) & ",IC09最新价:" &report1.NewPrice & ",买1价:"&report1.buyprice1&",卖1价:"&report1.sellprice1
    
     bk_TextBox5.text=report1.NewPrice
     bk_TextBox4.text=report1.buyprice1
     bk_TextBox6.text = report1.sellprice1
     
     set report1=marketdata.getreportdata("SH905","ZJ") 
    bk_TextBox13.text=report1.NewPrice
\'    
\'     bk_TextBox15.text=  bk_TextBox5*200 - 200*bk_TextBox19    \'利润
     bk_TextBox15.text= ROUND((bk_TextBox5 - bk_TextBox19) * 200 ,4)   \'利润
     bk_TextBox20.text= ROUND((bk_TextBox5 - bk_TextBox13) / bk_TextBox13 ,4)    \'贴水
     bk_TextBox22.text=  ROUND((bk_TextBox13-bk_TextBox5)*200,1)     \'到期利润
    
    
    bk_TextBox23.text= bk_TextBox15.text*-1
    bk_TextBox24.text= bk_TextBox23.text*-1
\'    ---------------------

--  作者:黄金精算师
--  发布时间:2016/5/5 9:26:58
--  
是不是因为在数据切入行情时这里不能去读取数据?我这次出错是在运行中突然中断的,再进入一切正常
--  作者:yukizzc
--  发布时间:2016/5/5 9:29:27
--  
某个数值取到了0值,你用msgout把被除数都做下输出,自己查下是哪个数值的问题吧
--  作者:王锋
--  发布时间:2016/5/5 9:30:42
--  

 从描述上看是除零错误,就是除数是0导致的。

有可能是开盘前很多价格都是0,你没有去检查就直接去除导致的


--  作者:黄金精算师
--  发布时间:2016/5/5 10:46:39
--  
谢谢,
写了一行除0的确实现像一样 bk_TextBox32.text=  bk_TextBox23.text/0

这样有什么好的处理办法吗,还是一定要加IF语句处理?
--  作者:黄金精算师
--  发布时间:2016/5/5 10:46:51
--  
谢谢,
写了一行除0的确实现像一样 bk_TextBox32.text=  bk_TextBox23.text/0

这样有什么好的处理办法吗,还是一定要加IF语句处理?
--  作者:黄金精算师
--  发布时间:2016/5/5 10:47:03
--  
谢谢,
写了一行除0的确实现像一样 bk_TextBox32.text=  bk_TextBox23.text/0

这样有什么好的处理办法吗,还是一定要加IF语句处理?
--  作者:王锋
--  发布时间:2016/5/5 11:23:50
--  

要加IF判断处理,VBA编程不像PEL,很多东西需要自己去考虑,编写代码要考虑代码的健壮性