量化交易工具。同花顺手机版模拟炒股python API,基于uiautomator2方法实现。依赖下面的项目:
- pytdx(用于获取行情)
- uiautomator2(用于读取与操作界面)
源于打首板总是破板之后被买进的痛苦,不光是当天蒙受损失,还要等T+1才能卖出,所以就想着能不能写个程序,能够在打首板的时候排队监控买1的手数,如果有人大量撤单,那么程序就能监控到并且撤单,防止破板被迫买进。
建议单独准备一台手机连接电脑USB运行本程序挂机监控,因为程序会不断的刷新撤单列表,如果手机上有其它操作,那么会影响到程序的正常运行。 另外准备一台手机专门负责买入操作,建议使用同花顺的涨停条件单来打板,并设置好封单手数来排板,这样可以最大程度减小破板概率。 目前程序支持以下功能:
- 可以操作实盘或模拟盘
- 可以设置撤单条件,按封单手数撤单、按封单减小幅度撤单
- 可以设置撤单成功语音提示
- 可以设置日志级别、文件大小以及文件个数
- 可以获取行情服务器IP
- THSWithdrawWatcher线程不断的刷新撤单列表,得到添加或删除的股票
- 如果有添加的股票,那么就将其加入到监控列表中,同时QuotationWatcher线程会不断的请求监控列表中股票的行情,当然如果有删除的股票,那么就将其从监控列表中删除
- 当行情数据返回时会交给THSWithdrawal.resolve方法处理
- 接下来会按.env中withdraw配置项条件来判断是否需要撤单,如果需要撤单,那么就会调用THSAction.withdraw方法撤单
- 重复第1-4步
我使用的是Python3.9.1,请务必使用该版本,否则可能会出现无法正常运行的情况。
windows下载地址:https://www.python.org/downloads/windows/ macos下载地址:https://www.python.org/downloads/macos/
git clone https://github.com/nladuo/THSTrader.git
cd THSTrader
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install -r requirements.txt
安装依赖过程中如果有报错,请将下面内容添加到hosts文件中:
185.199.109.133 raw.githubusercontent.com
与屏幕分辨率无关
在模拟器上安装同花顺APP,模拟器上用浏览器打开链接:http://focus.10jqka.com.cn/special/phone/wapsubject_8299.shtml
- 模拟器推荐夜神支持Mac、Windows、Linux
- 真机推荐安卓手机
本项目在小米12手机上测试通过
小米12需要在开发者选项中开启以下选项:
- "USB调试"该项允许adb连接真机
- "USB调试(安全设置)"该项允许模拟点击
- "USB安装"该项允许真机通过adb安装ATX
本项目在荣耀play手机上测试通过
荣耀play需要在开发者选项中开启以下选项:
- "USB调试"该项允许adb连接真机
# 查看方法如下:
# 1.进入uiautomatorviewer目录
cd uiautomatorviewer
# 2.连接模拟器或真机
./adb kill-server
# a.连接手机示例
./adb devices
# b.连接夜神模拟器示例
# 夜神模拟器默认serial_no为127.0.0.1:62001,其它模拟器请自行查看
./adb connect 127.0.0.1:62001
当通过上面步骤连接好模拟器或真机后,按下面所示输入./adb devices
命令,如果看到类似下面的输出,那么就说明连接成功了:
➜ uiautomatorviewer ./adb devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
acfd70a2 unauthorized
这里看到的acfd70a2
就是serial_no,如果是夜神模拟器,那么serial_no为127.0.0.1:62001
,然后请将这个serial_no填入.env.toml文件中的serial_no
字段
cd tools
python check.py
参数(可选):
--num: 获取可用服务器的数量(默认为5个)
--out: 输出到文件的路径(默认为当前目录下的ips.toml)
check程序会自动测试并获取可用的行情服务器ip,然后将可用的ip写入到ips.toml文件中,会按照速度从快到慢的顺序排列,速度越快,排在越前面。建议每天运行一次,因为行情服务器的ip可能会失效。
cp .env.toml.example .env.toml
python main.py
查看uiautomatorviewer的使用方法