{"id":13488512,"url":"https://github.com/nladuo/THSTrader","last_synced_at":"2025-03-28T01:36:00.143Z","repository":{"id":44421962,"uuid":"130147705","full_name":"nladuo/THSTrader","owner":"nladuo","description":"量化交易工具。同花顺手机版模拟炒股python API，基于uiautomator2和图色方法实现。【可自行扩展到实盘】","archived":false,"fork":false,"pushed_at":"2023-09-23T23:02:00.000Z","size":1594,"stargazers_count":604,"open_issues_count":1,"forks_count":218,"subscribers_count":40,"default_branch":"master","last_synced_at":"2024-08-01T18:37:56.052Z","etag":null,"topics":["finance","quant"],"latest_commit_sha":null,"homepage":"https://www.bilibili.com/video/av46248487/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nladuo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-04-19T02:26:34.000Z","updated_at":"2024-08-01T03:45:32.000Z","dependencies_parsed_at":"2023-01-21T20:45:53.632Z","dependency_job_id":"6c74e98e-bb1e-4650-9b56-a765d2327134","html_url":"https://github.com/nladuo/THSTrader","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nladuo%2FTHSTrader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nladuo%2FTHSTrader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nladuo%2FTHSTrader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nladuo%2FTHSTrader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nladuo","download_url":"https://codeload.github.com/nladuo/THSTrader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222333976,"owners_count":16968058,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["finance","quant"],"created_at":"2024-07-31T18:01:17.217Z","updated_at":"2025-03-28T01:36:00.121Z","avatar_url":"https://github.com/nladuo.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# THSTrader\r\n量化交易工具。同花顺手机版模拟炒股python API，基于uiautomator2和图色方法实现。【可自行扩展到实盘，见最后】\r\n\r\n\r\n## 为什么有这个项目\r\n本来看到了这个[easytrader](https://github.com/shidenggui/easytrader)这个项目，不过这个客户端已经过时了(被强制更新)。于是乎，自己看了一遍easytrader的源码，写了一个自己的版本。旧版本为PC版本，已经不能用了，如有兴趣请查看[PC同花顺-旧版](https://github.com/nladuo/THSTrader/tree/PC%E5%90%8C%E8%8A%B1%E9%A1%BA-%E6%97%A7%E7%89%88)分支。\r\n\r\n## 安装说明\r\n需要Windows系统哈，别的系统可以考虑自己连接安卓真机改一下截图的参数。\r\n### 1. Python依赖\r\n我使用的是Python3.9，以上版本应该也可以。\r\n``` bash\r\ngit clone https://github.com/nladuo/THSTrader.git\r\ncd THSTrader\r\npip install -r requirements.txt\r\n```\r\n\r\n### 2. 安装雷电9模拟器\r\n下载链接：[https://res.ldmnq.com/download/leidian9/ldinst_9.0.48.0.exe](https://res.ldmnq.com/download/leidian9/ldinst_9.0.48.0.exe)\r\n\r\n### 3. 配置模拟器分辨率\r\n模拟器分辨率我用的是720x1280，320dpi，如需其他分辨率请自行修改代码里的参数。\r\n![](assets/%E6%A8%A1%E6%8B%9F%E5%99%A8%E5%88%86%E8%BE%A8%E7%8E%87.png)\r\n\r\n### 4. 安装同花顺APP\r\n在模拟器上安装同花顺APP，链接：[https://pan.baidu.com/s/1IuoXaOfKgckUTi91hUiqlQ](https://pan.baidu.com/s/1IuoXaOfKgckUTi91hUiqlQ) ，提取码：449w。\r\n\r\n安装好之后请登录同花顺APP找到模拟炒股那里保证模拟炒股可以使用，如果不知道怎么操作可以看后面的B站视频。\r\n\r\n\r\n### 5. 安装配置ADB\r\n首先下载ADB，下载后添加到系统的环境变量中。雷电模拟器也自带了ADB，可以去安装目录下的LDPlayer9下面找到。\r\n\r\n\r\n## 操作接口（API）\r\n操作演示视频见：[https://www.bilibili.com/video/BV1sX4y147Qe/](https://www.bilibili.com/video/BV1sX4y147Qe/)。咱也不求赞助，如果本项目对你有帮助，请给个B站的关注。\r\n\r\n\r\n### 测试连接模拟器\r\n首先检查设备，如果是只有一个雷电模拟器的话，一般都是`emulator-5554`这个。\r\n```\r\nadb kill-server\r\nadb devices\r\n```\r\n\r\n然后初始化uiautomator2\r\n```\r\npython -m uiautomator2 init\r\n```\r\n\r\n\r\n### 连接设备\r\n``` python\r\nfrom THS.THSTrader import THSTrader\r\ntrader = THSTrader(r\"emulator-5554\")    # 连接手机\r\n```\r\n\r\n### 获取当前可用资金\r\n``` python\r\ntrader.get_balance()\r\n```\r\n返回：\r\n```\r\n{\r\n\t'总资产': 199987.96,\r\n\t'可用余额': 170632.4,\r\n\t'股票市值': 10146.0\r\n}\r\n```\r\n\u003e ** 注意：这里总资产并不是可用余额+股票市值，有一些资金可能代表未成交的金额。 **\r\n### 获取当前持有的股票\r\n说明：获取当前持仓的速度会比较慢，后续需要优化。\r\n``` python\r\ntrader.get_position()\r\n```\r\n返回：\r\n```\r\n[{\r\n\t'股票名称': '美的集团',\r\n\t'股票余额': 100,\r\n\t'可用余额': 0\r\n}, {\r\n\t'股票名称': '平安银行',\r\n\t'股票余额': 200,\r\n\t'可用余额': 200\r\n}, {\r\n\t'股票名称': '浦发银行',\r\n\t'股票余额': 100,\r\n\t'可用余额': 100\r\n}, {\r\n\t'股票名称': '工商银行',\r\n\t'股票余额': 100,\r\n\t'可用余额': 100\r\n}, {\r\n\t'股票名称': '中国银行',\r\n\t'股票余额': 100,\r\n\t'可用余额': 100\r\n}]\r\n```\r\n因为A股是T+1，可用余额为当前可以卖出下单的。\r\n\r\n### 买入股票\r\n``` python\r\ntrader.buy(stock_no=\"601988\", amount=300, price=3.94)\r\n```\r\n返回：\r\n```\r\n{\r\n\t'success': True,\r\n\t'msg': '委托已提交。合同号为:3549926014',\r\n\t'stock_name': '中国银行',\r\n\t'amount': '300',\r\n\t'price': '3.94',\r\n\t'type': '买入'\r\n}\r\n```\r\n\r\n### 卖出股票\r\n``` python\r\ntrader.sell(stock_no=\"601988\", amount=100, price=4.00)\r\n```\r\n返回：\r\n```\r\n{\r\n\t'success': True,\r\n\t'msg': '委托已提交。合同号为:3549959358',\r\n\t'stock_name': '中国银行',\r\n\t'amount': '100',\r\n\t'price': '4.0',\r\n\t'type': '卖出'\r\n}\r\n```\r\n\r\n### 获取当前可撤单列表\r\n说明：获取当前可撤单列表会比较慢，后续需要优化。\r\n``` python\r\ntrader.get_avail_withdrawals()\r\n```\r\n返回：\r\n```\r\n[{\r\n\t'股票名称': '美的集团',\r\n\t'委托价格': 58.33,\r\n\t'委托数量': 100,\r\n\t'委托类型': '卖出'\r\n}, {\r\n\t'股票名称': '中国银行',\r\n\t'委托价格': 3.97,\r\n\t'委托数量': 100,\r\n\t'委托类型': '买入'\r\n}, {\r\n\t'股票名称': '中国银行',\r\n\t'委托价格': 3.97,\r\n\t'委托数量': 100,\r\n\t'委托类型': '买入'\r\n}, {\r\n\t'股票名称': '五粮液',\r\n\t'委托价格': 184.09,\r\n\t'委托数量': 100,\r\n\t'委托类型': '买入'\r\n}]\r\n```\r\n\r\n\r\n### 买卖撤单\r\n说明：撤单操作速度比较慢，后续需要优化。\r\n``` python\r\ntrader.withdraw(stock_name=\"中国银行\", t=\"买入\", amount=300, price=3.94)\r\n```\r\n返回：\r\n```\r\n{\r\n\t'success': True,\r\n}\r\n```\r\n\r\n\r\n## 实盘\r\n经过群友测试，可以使用实盘，可以使用uiautomator2+weditor然后筛选元素，修改`THSTrader.__back_to_moni_page`。\r\n![](assets/shipan.png)\r\n\r\n\r\n## 交流群\r\n更新可能没那么及时这里提供一个交流群。群号：399623752(1群)，562639692（2群）。\r\n\r\n\r\n## LICENSE\r\nGPL-3.0\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnladuo%2FTHSTrader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnladuo%2FTHSTrader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnladuo%2FTHSTrader/lists"}