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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 关于vba程序发生不定时非法,找到点问题,麻烦看一下,谢谢

   

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


  共有4197人关注过本帖平板打印复制链接

主题:关于vba程序发生不定时非法,找到点问题,麻烦看一下,谢谢

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


加好友 发短信
等级:论坛游侠 帖子:529 积分:1 威望:0 精华:0 注册:2013/6/3 11:41:26
关于vba程序发生不定时非法,找到点问题,麻烦看一下,谢谢  发帖心情 Post By:2016/5/15 10:32:34 [只看该作者]

之前反映程序改成vba后发生不定时非法现象。
现在找到一些异常,但可能还不一定是问题所在。现反映一下:

1、Order.HoldingInfo2:不断调用后内存占用不断升高,貌似不能释放,请看一下为什么(估计是有点问题)
但我现实上并不会像下面这样调用,也就3分钟一共循环调用20次,应该不至于导致内存不足?
2、查windows的日志,非法的时候金字塔很大部分是如下类似的出错记录,由于不是很懂看,能不能帮忙判断一下是哪方面原因?
异常代码: 0xc0000374查了一下代码可能是:堆已损坏

错误应用程序名称: WinStock_3.exe,版本: 3.8.0.0,时间戳: 0x569f42f9
错误模块名称: ntdll.dll,版本: 6.1.7601.23392,时间戳: 0x56eb3625
异常代码: 0xc0000374
错误偏移量: 0x00000000000bf262
错误进程 ID: 0x154c
错误应用程序启动时间: 0x01d1ae36191ac5ab
错误应用程序路径: C:\证券\Weisoft Stock - 测试 - 64\WinStock_3.exe
错误模块路径: C:\Windows\SYSTEM32\ntdll.dll




'-------------------测试Order.HoldingInfo2----------------------------------------------------------------------------------------------Sub APPLICATION_VBAStart()
Call Application.Settimer(5,30) 
End Sub

Sub APPLICATION_Timer(ID)
If ID = 5 then
Call test
End If
End Sub

Sub test()

Dim sAcctNo,iCounter1,aaa
Dim iBuyHolding,dblBuyCost,iBuyTodayHolding,iSellHolding,dblSellCost,iSellTodayHolding,dblPNL,dblUseMargin,sBgCont,sMarket

sAcctNo = 611183 '这里修改为自己的账号
For iCounter1 = 1 to 500 step 1
' aaa = Order.Holding2(sAcctNo)
Call Order.HoldingInfo2(1,iBuyHolding,dblBuyCost,iBuyTodayHolding,iSellHolding,dblSellCost,iSellTodayHolding,dblPNL,dblUseMargin,sBgCont,sMarket,sAcctNo) '其余几个注释掉的,可能也会有类似问题,但是内存增长很不明显,可以当是没问题
' Call Order.Contract("RB10","SQ",dblMultipliter,dblMinTick,iShortPercent,iLongPercent)
' Call Order.HoldingInfoByCode2("RB10","SQ",iBuyHolding,dblBuyCost,iBuyTodayHolding,iSellHolding,dblSellCost,iSellTodayHolding,dblPNL,dblUseMargin,sAcctNo)
' aaa = order.Account2(2,sAcctNo)
' aaa = Order.Account2(6,sAcctNo)
' aaa = Order.Account2(3,sAcctNo)
' aaa = Order.Account2(28,sAcctNo)
' aaa = Order.Account2(31,sAcctNo)
Next

End Sub
'-----------------------------------------------------------------------------------------------------------------------------------------

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