终于开始自己写模拟成交了(深圳A股普通交易与撤单)

来源:互联网 发布:政府网站域名 编辑:程序博客网 时间:2024/05/01 16:07

用了三天时间解决了td字体小的问题之后,奚立哥貌似开始重视我了。。。开始叫我做模拟成交。。。这样能让我更好地熟悉业务。。。

考虑到公司有些环境是2000svr。我只能搬出n年没有使用的vb来。。。用惯了.net现在发现曾经最爱的vb还不是一般的低效啊。。。

 

大致需求:

用一个程序管理多个环境下的委托成交数据库。

上海是sql数据库。深圳是dbf数据库。

行情是卫星实时的dbf数据库。

 

能模拟处理20种深圳证券业务和20余种上海证券业务的成交。

实现手动成交和实时自动成交。

 

支持特殊模拟成交方式:

委托价部分成交

多价位部分成交

多价位全部成交

最优五档转撤销、最优五档转限价

未成全成

未成全撤

强制废单

 

可对被监控数据库进行添加、删除、修改操作。

 

记录成交记录,可自动保存成交记录。

 

工程基本结构如下:

config.dbf························程序配置数据库

SimularDone.frm·············窗体文件

SimularDone.RES············程序资源文件

 

GlobalVariable.bas·········静态对象模块

modErrorHandling.bas···错误处理模块

 

ConfigClass.cls···············配置管理类

DBClass.cls····················数据库操作类

PriceClass.cls·················行情管理类

DoneClass.cls················模拟成交类**(核心)

StringFormat.cls·············数据字典类

LogClass.cls···················日志管理类

 

已完成内容:

完成程序结构搭建。之后的业务扩展只需要改动部分业务代码。程序有很好的扩充性与兼容性。

完成特殊模拟成交方式。精心设计委托库转回报库接口。

实现获取实时行情。实现成交日志显示。实现数据库配置。

实现普通买卖业务的模拟成交。

 

业务流程:

首先处理特殊成交方式的请求。若需处理则处理后结束本次处理流程。

再处理撤单请求。

最后按业务类别处理各业务的买卖委托。

处理完一笔委托后需将wtclbz置为非z(正常处理后置为1)

 

程序处理技巧:

根据委托库中wtywlb字段所表示的业务类别,分类处理请求。普通交易业务类别是0B和0S。表示普通买卖。

撤单是0C。普通买卖只需将委托库中信息,转储到回报库中。而撤单委托需要根据已成交数量,在回报库中减去未成交的数量。

特殊委托则是需要使用备用字段进行部成标记。之后用group by处理部成委托,实现各种特殊成交方式。

 

 

核心代码: