• Stars
    star
    123
  • Rank 290,145 (Top 6 %)
  • Language
    Python
  • Created over 3 years ago
  • Updated over 1 year ago

Reviews

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

Repository Details

同花顺自动化交易股票下单接口, 证券量化交易必备工具, WEB API服务框架,交易下单自动排队,支持多策略和实时回报查询, 智能按钮定位,模拟点击升级版本,多年实盘稳定运行!

ths_trade

同花顺自动化交易接口, 量化交易必备工具, 支持分策略交易和查询, 多年实盘自动化交易

同花顺自动化交易

本实例操作自动化交易的是同花顺的 xiadan.exe 程序,支持市价买入、市价卖出、查询成交;

市价委托为达到指令的快速成交,所以使用的市价委托

支持多策略发送交易指令,交易指令自动进入队列,逐条执行交易,可同时向交易程序发送交易指令;服务框架采用基于强大的异步网络库 tornado;

交易界面1


说明

交易服务运行需要开启一个同花顺交易客户端,对同花顺交易客户端 没有做任何修改和破解,所以没有法律上的问题;

交易服务 API 不带任何界面,API 可以不受约束的下发交易查询指令,对多种编程语言都可以调用;


环境

Windows 7 SP1 及以上

Python 3.7

同花顺 xiadan.exe


支持的券商

交易服务运行需要开启一个同花顺交易客户端,对同花顺交易客户端 没有做任何修改和破解。 实际支持的券商和功能以满足监管要求为准,通过应用层的处理,方便通过同花顺下单,同花顺交易端支持 70~80 家券商,下方是支持的部分券商名单(完整券商名单请见:同花顺交易客户端相关->下载):

支持的券商


实盘效果

先上个实盘操作买卖效果如下图

交易服务程序启动后, 使用工具向 api 发送数据; 发送数据后自动进入队列, 开始实盘交易;

实盘效果


同花顺设置

同花顺网上交易 5.0 以上的可以控制

在同花顺安装目录下面的 xiadan.exe 程序的 系统>

界面设置

    显示悬浮工具栏	【否】

快速交易

    自动弹出窗口停留时间【1】秒
    是否弹出成交回报提示窗口     【滚动模式】
    委托前是否需要确认          【否】
    委托成功后弹出提示对话框     【是】
    超出可用按最大可用进行委托   【否】

界面设置界面设置


安装依赖库

    pip install -U pip

    pip install -r requirements.txt

    pip install  pywinauto


配置交易服务参数

applications/API_Config.py中配置交易服务程序的参数

cfg = {
    # 同花顺xiadan.exe 所在位置
    'exe_path': 'C:\\同花顺软件\\同花顺\\xiadan.exe',

    # 活动的工作流文件路径
    "activework_path": "./applications/work_queue/ActiveWork.csv",
    # 活动的工作流文件字段
    "activework_field": ["key", "strategy_no", "stock_no", "stock_name",
                         "amount", "operate", "status"],

    # 自动化交易工作数据记录文件路径
    "workdatalog_path": "./applications/Work_Data_Log.csv",
    # 保存csv的自动化交易工作记录
    'workdata_field': ["key", "委托时间", "证券代码", "证券名称", "操作", "备注",
                       "委托数量", "成交数量", "委托价格", "成交均价",
                       "撤消数量", "合同编号", "策略编号"],

    # 自动化交易休眠时间间隔
    "sleepA": 0.2,
    "sleepB": 0.5,
    "sleepC": 1,
}



自动化交易运行

运行文件 app.py 启动自动化交易服务,服务启动后就可以用程序调用买入卖出查询;

    python app.py

运行后服务程序的端口为 6003, 可以向服务程序接口发送指令了;


买入和卖出 接口调用

接口地址

http://127.0.0.1:6003/api/queue

参数类型

application/json

传递参数 json 数组

[
	{
		"strategy_no": "1001",
		"code": "513030",
		"name": "德国30",
		"ct_amount": 100,
		"operate": "buy"
	},
	{
		"strategy_no": "1001",
		"code": "162411",
		"name": "华宝油气",
		"ct_amount": 100,
		"operate": "sell"
	}
]

参数说明

参数名 参数描述 类型 必填
strategy_no 策略编号 string
code 股票代码/标的 string
name 股票名称 string
ct_amount 数量 int
operate 买卖: buy:买入 sell:卖出 string

查询成交 接口调用

接口地址

http://127.0.0.1:6003/api/search

参数类型

application/json

传递参数

{
	"strategy_no": "A101",
	"operate": "get_today_entrusts"
}

参数说明

参数名 参数描述 类型 必填
strategy_no 策略编号 string
operate 查询什么 string

查询什么

get_position 获取市价委托的 F6 持仓

get_today_trades 获取市价委托的 F7 当日成交

get_today_entrusts 获取市价委托的 F8 委托 (推荐使用此种方式查询委托的成交)

get_balance 获取资金情况


长期运行

交易服务可运行于个人电脑云服务器

个人电脑:交易服务运行后,完成交易指令需要获取电脑的焦点,所以交易服务正在交易时不要使用鼠标,使 xiadan 程序前置;

云服务器(推荐):在云服务器端安装使用 VNCServer 工具,在客户端安装 VNCClient 远程连接云服务器,实测使用此工具可以随时连接和断开连接而不影响云服务器的焦点,可以长期运行,只要客户策略端向交易服务发送接口即可进入交易队列,等待交易;

不要使用远程桌面(mstsc)来连接云服务器,此工具在断开连接后,云服务器会退出登录,交易服务就无法完成后续交易

实盘跑交易服务在云服务器(VNC 工具连接)稳定轻松运行


交易队列

在 applications/work_queue 文件夹下的 ActiveWork.csv 文件是交易的队列


key strategy_no stock_no stock_name amount operate status
536f341c-40fe-11eb-b47a-fcaa14e6e347 1001 510900 H 股 ETF 100 buy 1
543f341c-42fe-15eb-b46a-sega14e6e864 1001 510900 H 股 ETF 100 buy 0

如果调整过程中程序异常, 检查此交易队列中的 status 有没有为 0(未执行)的数据, 如果不需要再次执行则可以删除整行;

未执行的, 下次交易服务再次运行时会自动检测队列;

如果修改文件请使用开发工具打开 或 EditPlus 或 Notepad++ ; 避免使用文本文件打开修改后出现编码问题;


注意事项

运行顺序

  1. 运行 xiadan.exe 输入个人帐号密码登录进入主程序界面;
  2. 运行自动化交易控制程序; 运行后, 交易程序会控制到 xiadan 程序;

打开项目使用 Pycharm 或 VSCode ;


巴特量化

  • 数字货币 股市量化工具 行情系统软件开发

  • BTC 虚拟货币量化交易策略开发 自动化交易策略运行

微信


More Repositories

1

ChinaStock_TradeAPI

ChinaStock_TradeAPI/A股交易接口
C++
49
star
2

SLSK

Steam Linux Swiss Knife - A backup utility for Linux Steam games
C
26
star
3

hardware-id-generator

Кроссплатформенный генератор UUID по железу
C++
20
star
4

nginx-netty-hls

nginx、netty hls流媒体架构,实现时移和回看功能。nginx负责m3u8的组装,netty负责运算把ts信息返回给nginx。实测m3u8 时移、回看功能长连接下载并发可达4w,ts 3000路跑满网卡,系统瓶颈在网卡
C
18
star
5

eqos

Easy QoS for OpenWRT/Lede
Shell
17
star
6

tdxhq

通达信行情接口,生成DLL,使用redis订阅
C++
16
star
7

Underwater-Acoustic-Communication-System

历时将近一年的srp项目:水声通信系统,硬件包括潜水器框架、迷你PC和STM32主控板等,软件包括RTX 、CAN、Socket等,现整理并复习项目知识
16
star
8

TinyTor

A tiny Tor client implementation (written in C).
C
10
star
9

High-performance-pub-sub

Pub/sub prototype 50x faster than Redis
C++
10
star
10

tcpgo_another_tcpcopy_core

(仅核心代码)受启发于网易的tcp流量复制工具tcpcopy,这是另一个C++版的tcpcopy,部署方式很不一样。
C++
10
star
11

shell_repository

Linux 运维 shell常用分析命令和运维脚本 工作中不断更新中
Shell
9
star
12

MaxBill-RedisPlus

https://gitee.com/MaxBill/RedisPlus/tree/master/src/main
JavaScript
7
star
13

QlinBaoleiji

麒麟堡垒机支持rdp/vnc/x11/ssh/telnet/ftp/sftp运维操作、审计、录相内置动态口令和SSLVPN
PHP
6
star
14

MiniLzma

Minimum LZMA2/FLZMA2 Library
C
5
star
15

TinyVPN

一个用来学习的简易vpn,基于tun隧道实现
C++
5
star
16

cpp_component

对 cpp 一些常用的功能进行封装
C++
5
star
17

N2N-Edge-GUI

N2N Edge GUI is a basic installer and GUI configuration screen for the peer-to-peer 'n2n' VPN solution available at http://www.ntop.org/n2n/
C++
5
star
18

nriet-sw2-vpx-zynq

十四所信号处理二代交换模块ZYNQ程序
C
5
star
19

gkvdb

Go语言开发的基于DRH(Deep-Re-Hash)深度哈希分区算法的高性能Key-Value嵌入式数据库。 http://johng.cn/gkvdb
Go
4
star
20

Nano

Console Text Editor
C
4
star
21

Zhihuishu_Aided

智慧树网课平台自动挂机刷课,基于图像识别,无封号风险。
C++
4
star
22

netcat-for-windows

Netcat for windows.
C
4
star
23

Air-202-

力德公司水表项目
C
4
star
24

CircularWSDeque

dynamic circular work-stealing deque
C++
3
star
25

miniFTP-2

一个迷你的FTP服务器实现
C
3
star
26

DynamicTrack_Socket

动态跟踪并通过socket传输,三维显示
C++
3
star
27

RioSockets

High-performance zero-copy UDP sockets abstraction over Registered I/O
C
3
star
28

C_SDK

C_SDK(Luat_IoT_SDK_C语言开发环境)是针对使用合宙模块而准备的一套C语言的软件开发环境
C
3
star
29

libIMEI

Tiny IMEI generation and verification library
C
3
star
30

vmm_setup

OpenBSD vmm(4) example of usage
Makefile
3
star
31

-

个人云盘系统,附带类似于私密朋友圈的功能(情侣用,两人共享),上传下载文件,传照片写心情,传大尺度照片美滋滋,还有站内信,广播等功能。文件提供加密服务,安全放心
C++
3
star
32

c_datetime

A small date and time library to convert to and from UNIX epoch timestamps.
C
2
star
33

TimerManager

Crossplatform library for simple working with timers
C++
2
star
34

awesome-pcaptools

一些网络协议分析跟踪工具的集合
2
star
35

smartcar-vision

AGV 基于自定义路标导航 快速识别 定位
C++
2
star
36

HexEditer

my hex editer
C++
2
star
37

sweet-b

Sweet B is a safe, compact, embeddable library which implements public key elliptic curve cryptography (ECC) using the NIST P-256 and SECG secp256k1 curves.
C
2
star
38

TMemter

服务器程序压力测试工具
C++
2
star
39

RimeTDMANodeCode

锐米公司开源的基于LoRa的TDMA节点代码
C
2
star
40

mysql-proxy

MySQL-Proxy
PHP
2
star
41

maruhash

Maru Hash is a string hash function using the Speck block cipher
C
2
star
42

tcptunnel

简单的TCP端口转发器
C
2
star
43

boa-cgi-server

build-arm-easy
C
1
star
44

dbpool_postgres

libpq wrap and DBpool for postgres
C
1
star
45

find-C

用C语言实现Linux find命令
C
1
star
46

libevent0.1

C
1
star
47

NoSqlDb

NoSQL in-memory key value database with querying with backup feature using persistent XML files
C++
1
star
48

ifindex

证券行情分析交易平台
C++
1
star
49

tcp_ledbat

customize designed tcp_ledbat
C
1
star
50

micro_tcp

Micro TCP - server and client implementation with secure SSL/TLS support
C++
1
star
51

TaskPool

Spin up threads, push tasks to those threads and receive callbacks on the main thread when those tasks are completed
C++
1
star
52

server_inspection_system-server_inspection_system

服务器健康检测系统
C
1
star
53

CppPluginSystem

Flexible multiplatform C++ plugin system
C++
1
star
54

Easylinker201804

https://gitee.com/what520/EasyLinker
Java
1
star
55

SQLiteDumper

Super simple way to dump SQLite databases into CSV files. Useful for ingestion into HDFS when sqoop no workie.
Shell
1
star
56

duilibUltimate

C++
1
star
57

pigpio-cpp

A C++ wrapper for the pigpio (non-daemon) C library.
C++
1
star
58

Win32DiskImager_new

https://sourceforge.net/p/win32diskimager/code/ci/master/tree/
C++
1
star
59

WhereToGo

个人网址指南
1
star
60

SimJQ

SimJQ全称Simple JQuery,支持类似JQuery语法的常用DOM操作和网络请求功能。它不到4K大小,适合应用于存储空间极其有限的场景。 http://leytton.gitee.io/simjq
HTML
1
star
61

EasyLinkerApplication

EasyLinkerV3
Java
1
star
62

toopan

免费网盘, 免费图床, 临时网盘, 文件仓库, 文件外链, 文件猎奇, 免费外链, 游客上传
PHP
1
star
63

libhttpd

C
1
star
64

modbusd-1

Modbus master daemon based on libmodbus
C
1
star
65

tcp-tunnel

tcp-segment/udp-datagram over tcp connection(tunnel)
C
1
star
66

libuhttpd-feed

openwrt feed for libuhttpd
Makefile
1
star
67

HttpServer-2

基于线程池和epoll模型的多并发Web服务器
C
1
star
68

TortoiseGit

Windows Shell Interface to Git, https://tortoisegit.org
C++
1
star
69

skynet-vs2015

skynet-vs2015
C
1
star
70

sockets

Simple socket connections in C
C
1
star
71

IPscanner

十分蹩脚而且东拼西凑的ip扫描器
C++
1
star
72

fafacms

💐FaFa CMS: A simple CMS | 五脏俱全的社区管理系统
Go
1
star
73

json-beautifier

Extremely lightweight, simple and fast JSON beautifier for large files written in C++.
C++
1
star
74

XPlay

一个只有最低程度GUI的多媒体播放器,支持流媒体,基于libmpv开发。
C++
1
star
75

xmsg-cpp

C++14 implementation of xMsg
C++
1
star
76

UIManager

RxJava+Retrofit+数据库缓存+UI界面统一切换+异常捕获统一处理
Java
1
star
77

nanoarq

Embedded-friendly Selective Repeat ARQ
C++
1
star
78

eladmin-mybatisplus

eladmin mybatis-plus版本
Java
1
star
79

freeGdial

Connect to mobile broadband via wvdial
Shell
1
star
80

nbfs

distributed file system(small file storage)
C++
1
star
81

zj

基于raft 算法开发的高可用、高性能、简洁易用的跳板机
C
1
star
82

avue2

Avue.js2.0是基于现有的element-ui库进行的二次封装,简化一些繁琐的操作,核心理念为数据驱动视图,主要的组件库针对table表格和form表单场景,同时衍生出更多企业常用的组件,达到高复用,容易维护和扩展的框架,同时内置了丰富了数据展示组件,让开发变得更加容易 https://avue.top
JavaScript
1
star
83

CxxDisruptor

Implementation of the LMAX Disruptor pattern in C++. A Disruptor is a high performance inter-thread messaging system. The original pattern was written in Java, and this project is a porting of the original pattern to C++. Note: The code is mostly written C++ 11 The original Java code can be found here: http://lmax-exchange.github.io/disruptor/
1
star
84

uploadserver

通用上传服务,分布式部署,支持断点续传,并发分片上传,云存储(目前实现bos存储),自研调度系统,提高可靠性,后端本地存储,元数据长时间保留,高效上传云(目前仅支持同步上传,异步目前考虑通用性不太友好未实现(client需要拿到云端只读地址))各个上传节点独立,扩展性好,提高整体服务性能,和可用性,高并发下任务互不影响,除了机器资源竞争,稳定性有一定保障
Go
1
star