Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:请高手指点

1楼
fly 发表于:2010/9/30 11:08:38

在function里面我有一个class。
这个class里面我有一个property是计算盈亏的。
 
 

public Property Get mktPNL
  
      Set ReportClass = marketdata.GetReportData( code, exchange )
      application.MsgOut ( time &",function,mktPNL," & code & "," & exchange )

      if qty > 0 then
           mktPNL = qty * ( ReportClass.BuyPrice1 - entryPrice ) * 10
      else
           mktPNL = qty * ( ReportClass.SellPrice1 - entryPrice ) * 10
      end if

 end Property

 

为什么有时候,是有时候,不是每次。他会告诉我。
object required, reportclass
在mktPNL = qty * ( ReportClass.BuyPrice1 - entryPrice ) * 10那行

是不是在function里面我不能用

Set ReportClass = marketdata.GetReportData( code, exchange )

还是有别的什么问题

请高手指点


[此贴子已经被作者于2010-9-30 11:09:10编辑过]
2楼
wattwei 发表于:2010/9/30 12:34:24
可以这样用,应该不是这里的问题。
加语句
      On Error Resume Next
      if qty > 0 then
           mktPNL = qty * ( ReportClass.BuyPrice1 - entryPrice ) * 10
      else
           mktPNL = qty * ( ReportClass.SellPrice1 - entryPrice ) * 10
      end if

      If Err.Number<>0 Then
            msgbox TypeName(ReportClass)
      End If
捕捉下错误原因,

3楼
fly 发表于:2010/9/30 12:55:32
同样的价格,在报一次就被filled。很奇怪
4楼
admin 发表于:2010/9/30 16:23:07

Set ReportClass = marketdata.GetReportData( code, exchange )

 

这种情况,说明你的code和exchange有问题了,没有正常取到行情报价

建议你仔细检查你的代码,在调用mktPNL属性时,务必检查code,exchange是正确的

5楼
martingale 发表于:2010/10/10 2:40:21
 typename(ReportClass) 返回的是 Nothing
说明什么?我的code 和exchange msgout 显示没有错误。
这个问题不是每一次都发生,偶尔有发生。

奇怪
6楼
admin 发表于:2010/10/10 8:15:44

请确认是否是在系统启动或者某些初始化时出现的,如果是这样,就采取一些措施,等系统准备完成后再来运行VBS代码。

7楼
admin 发表于:2010/10/22 16:20:19

代码中加上对象有效性判断,这样就健壮多了

if Report1 is NoThing Then
    Exit Sub
  End if

共7 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.21289 s, 2 queries.