【实战指南】同花顺WEB下单接口API:从零搭建个人量化交易系统
1. 为什么选择同花顺WEB下单接口很多刚接触量化交易的朋友都会问市面上有那么多专业交易软件为什么要用同花顺的WEB接口我刚开始做量化时也纠结过这个问题后来发现同花顺这套方案有几个特别实在的优势。首先是最现实的成本问题。券商提供的专业API接口动辄上万元而用同花顺的方案几乎是零成本。我自己用的ths_trade工具是完全开源的连代码都给你看得明明白白。记得我第一次用某券商的API光开户门槛就要50万这哪是普通投资者玩得起的其次是兼容性。同花顺支持70多家券商基本上你听说过的券商都能用。我有次换了券商账户原来的交易系统直接不能用了但同花顺这边改个登录账号就搞定策略代码完全不用动。这个兼容性对经常换券商的朋友特别友好。不过也要说实话这种通过模拟鼠标键盘操作的方式确实有速度限制。实测下来每个订单大概需要3秒比不了券商直连的毫秒级响应。但你想啊除非是做高频套利大多数趋势策略一天也就交易几次这个速度完全够用。我自己的几个策略平均持仓都是按天算的根本不在乎这几秒的延迟。2. 环境准备与配置2.1 硬件和软件基础这套系统对电脑要求真心不高。我的第一台量化交易电脑还是十年前的联想笔记本装个Windows 10照样跑得飞起。具体需要操作系统Windows 7 SP1及以上实测Win10最稳定Python环境3.7版本注意一定要用64位的同花顺交易终端网上交易5.0以上版本这里有个坑要特别注意Python一定要装3.7版本我试过3.8、3.9都会报各种奇怪的依赖错误。后来发现是pywinauto这个库的兼容性问题折腾了两天才找到原因。2.2 同花顺客户端设置安装好同花顺后千万别急着登录。先把这几个关键设置改了不然交易时各种确认弹窗能让你怀疑人生打开同花顺安装目录下的xiadan.exe进入系统界面设置显示悬浮工具栏选【否】快速交易设置自动弹出窗口停留时间1秒成交回报提示窗口滚动模式委托前确认取消勾选委托成功提示保持勾选这些设置我都是踩过坑才总结出来的。有次没关委托确认半夜策略触发交易时卡在确认窗口眼睁睁看着行情跑掉。后来在日志里发现这个bug时真想给自己一巴掌。3. 核心功能实现3.1 安装依赖库打开cmd依次执行这几个命令pip install -U pip pip install -r requirements.txt pip install pywinauto这里有个小技巧建议先创建虚拟环境。我有次更新其他项目时不小心把依赖搞乱了交易服务直接起不来。用虚拟环境能完美隔离不同项目的依赖。3.2 配置文件详解找到applications/API_Config.py主要配置这些参数cfg { exe_path: C:\\同花顺软件\\同花顺\\xiadan.exe, # 改成你的实际路径 sleepA: 0.2, # 操作间隔时间 workdatalog_path: ./applications/Work_Data_Log.csv # 交易记录存放位置 }重点说下sleep参数sleepA控制点击间隔实测0.2秒最稳定。设太短容易漏点击设太长又影响速度。这个值是我用高速摄像机录屏测试了二十多次才确定的。4. 交易接口实战4.1 买入卖出接口启动服务后用POST访问http://127.0.0.1:6003/api/queue请求示例[ { strategy_no: 1001, code: 513030, name: 德国30, ct_amount: 100, operate: buy } ]我建议把常用操作封装成函数def send_order(code, amount, operation): params { strategy_no: my_strategy, code: code, name: get_stock_name(code), # 自己实现股票名称查询 ct_amount: amount, operate: operation } requests.post(http://localhost:6003/api/queue, json[params])4.2 查询接口查成交记录用http://127.0.0.1:6003/api/search请求示例{ strategy_no: A101, operate: get_today_entrusts }返回的数据是CSV格式建议用pandas处理df pd.read_csv(Work_Data_Log.csv) today_profit df[df[操作]卖出][成交金额].sum() - df[df[操作]买入][成交金额].sum()5. 部署与监控5.1 本地运行技巧在个人电脑上跑的话记住这几点交易时不要移动鼠标否则会打断自动化操作显示器不要休眠建议设置成常亮关闭系统自动更新我有次半夜被强制重启坑惨了5.2 云服务器部署推荐用腾讯云轻量服务器2核4G配置就够安装VNC Serversudo apt install tightvncserver vncserver :1 -geometry 1920x1080 -depth 24客户端用VNC Viewer连接不要用Windows远程桌面远程桌面断开后程序会暂停但VNC不会。设置开机自启动crontab -e reboot /usr/bin/vncserver :1我在阿里云和腾讯云都部署过实测腾讯云的网络延迟更低。部署好后记得在安全组开放6003端口。6. 常见问题排查6.1 交易指令没执行先检查三件事xiadan.exe是否在最前台可用AltTab切换ActiveWork.csv里status是否为0查看日志文件error.log6.2 成交回报丢失这个问题困扰了我很久后来发现是同花顺的成交弹窗被其他窗口挡住了。解决方案确保xiadan.exe窗口不被覆盖在设置里开启滚动模式的成交回报加个定时任务每5分钟主动查询一次6.3 内存泄漏问题长期运行后如果发现内存占用越来越高# 在app.py里添加内存监控 import psutil def check_memory(): if psutil.virtual_memory().percent 90: os._exit(1)建议每天凌晨重启一次服务可以用Windows任务计划或Linux的crontab实现。这套系统我已经稳定运行三年多最大的感受是量化交易最难的不是技术而是保持耐心。刚开始总想追求完美系统后来发现能稳定运行的才是好系统。现在我的日均交易量在20笔左右年化收益大概15%最重要的是再也不用整天盯着盘面看了。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2516506.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!