• Stars
    star
    566
  • Rank 78,774 (Top 2 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created over 6 years ago
  • Updated about 1 year 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