经过一段时间的研究,现在实现A股的自动交易,采用软件AUTOIT,EXCEL、大智慧2和飞狐两个行情软件的预警相配合。自动程序框架如下: 第一部分: 1、自动登录交易软件 2、打开EXCEL文件,等待接收数据 3、获取持仓数据送EXCEL文件 4、逻辑判断是否触发基本止损条件 5、标准化交易代码,自动下止损单 第二部分: 1、启动行情软件,启动预警 2、获取持仓预警数据回传至EXCEL 3、逻辑判断是否触发辅助止损条件 4、形成交易指令,自动下单 第三部分: 1、利用交易系统以预警的形式对自选股板块进行监控,判断是否满足启动条件 2、触发预警送EXCEL 3、获取当前现金数额,形成交易数量 4、自动下单买入 5、进入持仓数据库进入第一部分流程 程序现在已经完成第一部分,止损单下单正常,只一笔下单用时3S,我试验一下9笔单子程序用时19S,继续完善中。 http://hexun.com/phby/default.html
在此也感谢论坛的fisher和其他的朋友 fisher曾给予了我很多的帮助,他的自动化程序是在C#中实现的。曾经最困扰我的问题是大智慧预警数据的调用,这个问题我也已经顺利解决了,其实最终就是一个SysListView控件的调用问题,AUTOIT是个功能非常强大软件,尤其是对控件的调用比其他的编程语言要简单的多。
我的自动下单也是用Autoit实现的,效果还不错。为了独立运行,有服务器建议使用一个远程桌面用户专门运行下单,如果一台电脑的话,建议用一个轻便的虚拟机,推荐使用开源虚拟机Virtual Box专门跑下单。
还没大量运行,策略的和A股大环境的原因。 我的流程是这样的: 行情(数畅) 策略用AmiBroker来执行 下单指令到数据库 下单守护程序不断读取指令,完成操作,并将成交情况及委托号等数据再更新回数据库。 AB再通过数据库取得成交情况。 无人值守的问题,应该还要加一些检测程序并将情况通知给本人(可以是发Socket消息,短信,IM等),这应该不是什么问题。
AmiBroker 可以用数畅读取国内实时行情?如果这样,也可以在AB的下单接口上开发。 autoit这类的工具也有好处,把它建立在几种流行的行情软件上,实时行情的问题就解决了,只是反馈成交和交易策略在这种情况下不好实现。
AB的Plugin分为DataPlugin和FuncPlugin。 当然可以直接从数畅中直接读,不过我做了一个中间的行情服务器用于存储数据,然后AB和WLD都可以接上去。 下单函数我仿照AB对IB的几个函数,如Connect,PlaceOrder,Cancel,GetPositionsList,GetOrderStatus...等,实际上是对数据库进行操作,当然也可以实现别的功能。 成交回报也可以,只不过需要些技巧,目前对于市价,限价及撤单命令都能较好处理。 还是觉得开发程序比开发策略容易的多。