以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  VBA 被零除  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=86792)

--  作者:stockwiner
--  发布时间:2015/10/30 14:13:17
--  VBA 被零除
真是晕了,求助下。

图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

左边显示 的是输出的price , 不等于0,为什么 VBA编译器一直说我被零除?

我也试过乘以100,还是一样的错误。

--  作者:yukizzc
--  发布时间:2015/10/30 14:26:34
--  
把你完整代码贴下
--  作者:stockwiner
--  发布时间:2015/10/30 15:41:12
--  
sub placeorder(stkname,price,newcc,oldcc) \'生成订单
dim jbsl,stkcc,stkzt,quan,temp
    quan=newcc-oldcc
    
    if strcomp(right(stkname,3),"USD")=0 then  \'根据交易币种和基本交易美金数量,计算目标货币交易数量
      application.MsgOut time&" "&stkname&" 价格:"&price&" 仓差:"&quan
      jbsl=round(usdsl/price)
    else
      jbsl=usdsl \'round(usdsl*price/10000)*10000
    end if
end sub


调用这个过程的语句
 for i=1 to 2 
      set  formula=marketdata.stkindi(stkname(i),"WH","t_chgp_wh",0,11,stksj(i),1000)
    
      call placeorder(stkname(i),formula.getbufdatabyindex(0,formula.datasize-1),formula.getbufdatabyindex(1,formula.datasize-1),stkcc(i))
      stkcc(i)=formula.getbufdatabyindex(1,formula.datasize-1)
    next 
[此贴子已经被作者于2015/10/30 15:42:33编辑过]

--  作者:stockwiner
--  发布时间:2015/10/30 16:29:17
--  
真是晕 ,换了台电脑,是正常的
再把代码拷回到原电脑,还是出错。
我新加了句 application.msgout vartype(price)
显示是4  应该是单精浮点数


--  作者:yukizzc
--  发布时间:2015/11/2 10:27:31
--  

是不是其他部分,新建一个工程然后输出看呢

jbsl=round(usdsl/price),或者你这里把/换*试下,看是这里除0的问题吗?