• Stars
    star
    566
  • Rank 78,207 (Top 2 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created over 6 years ago
  • Updated 12 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

量化交易工具。同花顺手机版模拟炒股python API,基于uiautomator2和图色方法实现。【可自行扩展到实盘】

THSTrader

量化交易工具。同花顺手机版模拟炒股python API,基于uiautomator2和图色方法实现。【可自行扩展到实盘,见最后】

为什么有这个项目

本来看到了这个easytrader这个项目,不过这个客户端已经过时了(被强制更新)。于是乎,自己看了一遍easytrader的源码,写了一个自己的版本。旧版本为PC版本,已经不能用了,如有兴趣请查看PC同花顺-旧版分支。

安装说明

需要Windows系统哈,别的系统可以考虑自己连接安卓真机改一下截图的参数。

1. Python依赖

我使用的是Python3.9,以上版本应该也可以。

git clone https://github.com/nladuo/THSTrader.git
cd THSTrader
pip install -r requirements.txt

2. 安装雷电9模拟器

下载链接:https://res.ldmnq.com/download/leidian9/ldinst_9.0.48.0.exe

3. 配置模拟器分辨率

模拟器分辨率我用的是720x1280,320dpi,如需其他分辨率请自行修改代码里的参数。

4. 安装同花顺APP

在模拟器上安装同花顺APP,链接:https://pan.baidu.com/s/1IuoXaOfKgckUTi91hUiqlQ ,提取码:449w。

安装好之后请登录同花顺APP找到模拟炒股那里保证模拟炒股可以使用,如果不知道怎么操作可以看后面的B站视频。

5. 安装配置ADB

首先下载ADB,下载后添加到系统的环境变量中。雷电模拟器也自带了ADB,可以去安装目录下的LDPlayer9下面找到。

操作接口(API)

操作演示视频见:https://www.bilibili.com/video/BV1sX4y147Qe/。咱也不求赞助,如果本项目对你有帮助,请给个B站的关注。

测试连接模拟器

首先检查设备,如果是只有一个雷电模拟器的话,一般都是emulator-5554这个。

adb kill-server
adb devices

然后初始化uiautomator2

python -m uiautomator2 init

连接设备

from THS.THSTrader import THSTrader
trader = THSTrader(r"emulator-5554")    # 连接手机

获取当前可用资金

trader.get_balance()

返回:

{
	'总资产': 199987.96,
	'可用余额': 170632.4,
	'股票市值': 10146.0
}

** 注意:这里总资产并不是可用余额+股票市值,有一些资金可能代表未成交的金额。 **

获取当前持有的股票

说明:获取当前持仓的速度会比较慢,后续需要优化。

trader.get_position()

返回:

[{
	'股票名称': '美的集团',
	'股票余额': 100,
	'可用余额': 0
}, {
	'股票名称': '平安银行',
	'股票余额': 200,
	'可用余额': 200
}, {
	'股票名称': '浦发银行',
	'股票余额': 100,
	'可用余额': 100
}, {
	'股票名称': '工商银行',
	'股票余额': 100,
	'可用余额': 100
}, {
	'股票名称': '中国银行',
	'股票余额': 100,
	'可用余额': 100
}]

因为A股是T+1,可用余额为当前可以卖出下单的。

买入股票

trader.buy(stock_no="601988", amount=300, price=3.94)

返回:

{
	'success': True,
	'msg': '委托已提交。合同号为:3549926014',
	'stock_name': '中国银行',
	'amount': '300',
	'price': '3.94',
	'type': '买入'
}

卖出股票

trader.sell(stock_no="601988", amount=100, price=4.00)

返回:

{
	'success': True,
	'msg': '委托已提交。合同号为:3549959358',
	'stock_name': '中国银行',
	'amount': '100',
	'price': '4.0',
	'type': '卖出'
}

获取当前可撤单列表

说明:获取当前可撤单列表会比较慢,后续需要优化。

trader.get_avail_withdrawals()

返回:

[{
	'股票名称': '美的集团',
	'委托价格': 58.33,
	'委托数量': 100,
	'委托类型': '卖出'
}, {
	'股票名称': '中国银行',
	'委托价格': 3.97,
	'委托数量': 100,
	'委托类型': '买入'
}, {
	'股票名称': '中国银行',
	'委托价格': 3.97,
	'委托数量': 100,
	'委托类型': '买入'
}, {
	'股票名称': '五粮液',
	'委托价格': 184.09,
	'委托数量': 100,
	'委托类型': '买入'
}]

买卖撤单

说明:撤单操作速度比较慢,后续需要优化。

trader.withdraw(stock_name="中国银行", t="买入", amount=300, price=3.94)

返回:

{
	'success': True,
}

实盘

经过群友测试,可以使用实盘,可以使用uiautomator2+weditor然后筛选元素,修改THSTrader.__back_to_moni_page

交流群

更新可能没那么及时这里提供一个交流群。群号:562639692(2群),399623752(1群已满)

LICENSE

GPL-3.0

More Repositories

1

captcha-break

captcha break based on opencv2, tesseract-ocr and some machine learning algorithm.
C++
715
star
2

IoT-Firstep

一个物联网(IoT)开发的入门教程。涉及单片机、上位机、移动应用、服务器后台开发的知识。以及蓝牙4.0、以太网模块的使用实例。
Java
692
star
3

taobao_bra_crawler

a taobao web crawler just for fun.
Python
196
star
4

novelRS

一个简单的网络小说推荐系统。
Jupyter Notebook
122
star
5

PyAndroidControl

Your Remote ADB controller. Control your Android device via python scripts.
Kotlin
80
star
6

visit_analytics

自用的网站访问量统计工具
Go
80
star
7

MMFinder

An image search application demo.
Python
78
star
8

online_office_viewer

preview doc/ppt/xls online via unoconv.
PHP
70
star
9

KB-PM

a CLI tool (like supervisor and pm2) keep a group of programs running continuously.
C
60
star
10

go-phantomjs-fetcher

pyspider phantomjs fetcher clone in golang.
Go
48
star
11

AI_beatmap_generator

尝试使用神经网络生成音乐游戏Malody的谱面。
Jupyter Notebook
43
star
12

USTBCrawlers

那些年,我爬过的北科。一个由浅入深的定向爬虫教程。
Python
41
star
13

live2d-chatbot-demo

A live2D chatbot Demo build with python and js.
Jupyter Notebook
31
star
14

tieba_autosign

百度贴吧自动签到脚本
Python
25
star
15

sync-go

sync files between multiple remote servers using sftp.
Go
20
star
16

lianjia_crawler

学习scrapy,爬取链家网北京二手房信息并进行数据可视化。
Python
19
star
17

ustb_choose_course_system

【OUTDATED】北京科技大学选课系统第三方Windows、Linux、Mac、Android、iOS客户端
Swift
19
star
18

go-zk-fifo

a distributed fifo queue based on zookeeper.
Go
17
star
19

ml-study-stuff

some machine learning(deep learning) study stuff and examples.
Jupyter Notebook
15
star
20

go-zk-lock

a distributed locker based on zookeeper and implemented in golang.
Go
14
star
21

ElectronicDIY

做过的一些电子(物联网)DIY
C
11
star
22

Tem

a tiny php MVC framework implemented by c extension.
C
10
star
23

go-webcrawler

a simple, concurrent , distributed, go-implemented web crawler framework.
Go
8
star
24

RM2Malody

节奏大师谱面转Malody谱面的slide模式。
Python
8
star
25

malody_beatmap_speed_changer

Malody Beatmap Speed Changer, also support .osu and .imd files.
Python
7
star
26

nladuo.github.io

my github pages.
HTML
7
star
27

go-proxypool

自用的代理ip池,作为一个基础框架。
Go
5
star
28

stock_selection

A股选股策略
Jupyter Notebook
4
star
29

yys_assist

【DEAD】基于Android ADB的一个阴阳师挂机魂10的脚本(打手模式)。
Python
3
star
30

android-push

android push server cluster and client based on https://github.com/Terry-Mao/goim.
Java
3
star
31

code_extras

一些杂七杂八的代码和脚本。
Shell
2
star
32

serialport-cc2541-xcx

蓝牙4.0 CC2541 串口调试小程序。
JavaScript
2
star
33

owncloud-videos

An ownCloud videos app. (owncloud 9.X)
PHP
2
star
34

bing_search_crawler

Bing search crawler for academic use.
Go
2
star
35

go-splash

a simple wrapper for Splash HTTP API.
Go
1
star
36

UCAS_Toolkit

an android school app for UCAS.
Java
1
star
37

CookiesPoolBuildingTool

一个cookie池构建助手。
JavaScript
1
star
38

python-AI-practice

AI practice in python.
1
star
39

MalodyBSC-android

Android版Malody谱面调速器。
Python
1
star
40

RL2048

play 2048 game by reinforcement learning.
Python
1
star
41

beat_track_douyin

基于背景音频节拍点实现视频抖音特效。
Python
1
star
42

sae-mvc

a tiny php mvc framework for deployment on SAE.
PHP
1
star