# 开发者指南

# 开发体系架构

开发体系架构

# 概念介绍

  • 组件:代表SmartX的一个功能菜单的实现,分公有、私有两种。公有组件是组件市场的组件,所有客户都可以直接使用;私有组件是客户自己实现的功能单元,仅限于客户自行开发使用
  • 策略:客户实现基于一定逻辑实现的算法
  • 程序化交易:客户将自己的策略用计算机编成交易策略进行自动下单交易
  • 功夫:功夫是后台策略平台,可以进行极速量化交易,部署于交易所托管机房,具有低延迟的特点
  • XTP:中泰自主研发的极速交易平台
  • SmartX客户端:SmartX是一款智能交易系统软件,支持JavaScript/TypeScript/Python语言的简单客户端策略、支持Python/C++语言的复杂/低延迟交易所托管机房后端策略,并配合XTP极速交易、极速行情,为专业交易者提供全方面的交易服务支持。客户端支持Windows、MacOS系统,除了上述功能还包括文件批量单、国债逆回购、新股申购、配股缴款、资金划拨、ETF申赎、持仓查询、委托查询、成交查询等。
  • 交易所托管机房:SmartX Sever、AlphaX低延时功夫策略平台、AlgoX算法平台、XTP极速行情、交易所行情源、XTP极速交易、交易所撮合机等均运行在交易所托管机房。

# 功能对比

客户端JS组件 客户端Python组件 服务端功夫策略
语言 JS/TS语言开发 Python语言开发 Python 或者 C++编程语言
运行位置 不需要租用服务器,不需要托管 不需要租用服务器,不需要托管 Kungfu策略部署于交易所托管机房的服务器端,支持客户自行采购服务器进行托管,也支持租用中泰计算单元
行情 仅支持leve1行情 仅支持leve1行情 支持leve1及leve2行情
特点 对延迟无要求,成本低,除佣金外无费用,策略本地运行 对延迟无要求,成本低,除佣金外无费用,策略本地运行 低延迟,注重速度
组件间协作 JS组件可以单独执行,也可以作为前端和功夫组件和Python组件协同执行 Python组件可单独执行,也可以作为前端和js组件协同执行 功夫策略可单独执行,也可以作为后端和js组件协同执行

# 申请测试账号

  • XTP官网 (opens new window) 注册用户
  • 注册成功并登陆后,到 个人中心 (opens new window) 填写测试账户申请单,申请测试系统选中"XTP简单交易客户端"(若您需要使用kungfu进行后台策略的开发,还需要勾选"Kungfu"
  • 填写完毕申请信息后点击提交申请。系统在一个工作日内将自动将测试账号、密码发到您第一步注册网站用户时填写的邮箱中,请注意查收。
  • 下载中心 (opens new window)下载 "极速交易客户端(SmartX)"以及操作手册

# 权限申请

  • 若您需要使用kungfu进行后台策略的开发,需要向客户经理申请开通kungfu权限
  • 若您需要使用客户端JS组件进行策略的开发,需要向客户经理申请开通客户端JS组件权限
  • 若您需要使用客户端Python组件进行策略的开发,需要向客户经理申请开通客户端Python组件权限

# 文档链接

客户端JS组件 客户端Python组件 服务端功夫策略
JS组件开发指南 Python组件开发指南 快速上手
SmartX SDK API 文档 SmartX SDK API 文档 开发与调试
SmartX SDK API 示例 SmartX SDK API 示例 SDK API说明
SmartX组件UI设计规范 Python组件升级日志 策略范例
JS组件升级日志 策略回测

# XTP 官网

网站地址: https://xtp.zts.com.cn/ (opens new window)

# Github

github地址: https://github.com/ztsec/smart_client (opens new window)

# Issuse

https://github.com/ztsec/smart_client/issues (opens new window)

# 视频使用讲解

视频快速了解SmartX (opens new window)

示例:客户端Python实现网格交易策略 (opens new window)

示例:kungfu模块使用说明 (opens new window)

# 交互式的项目脚手架

使用smartx create在电脑合适的位置创建插件项目,通过命名启动了一系列引导式的配置,最终创建出一个脚手架工程,为开发者快速开发提供帮助:

# 创建工程

打开SmartX客户端,登录地址选择smarttest.ztqft.com,输入测试账号、密码登录后,在左侧一级菜单的扩展中,选择安装的组件,点击新建扩展组件按钮新建组件

新建扩展组件位置

按照新建扩展组件提示填写内容:

  • 组件ID:推荐使用字母或者字母和数字的组合命名
  • 组件项目模板:可以选择空组件模板、JS组件模板、Python组件模板。
  • 组件类型:普通组件、Python策略组件。在组件项目模板为空组件模板的时候可以选择类型,其他情况下已经选定默认类型。
  • 组件业务分类:手工交易、客户端策略、服务端策略、客户端服务端结合策略、行情展现、算法交易、程序化交易、扩展、分析展现、条件单

新建扩展组件

# 工程编译发布

客户端JS组件工程

客户端Python组件工程

# 组件SDK

说明文档:@xtp-smart/sdk (opens new window)

# 安装

npm install @xtp-smart/sdk
1

后续可以该sdk包进行组件开发,支持TypeScript、JavaScript,支持语法提示(需IDE支持)

# 基础界面库

  • bigTable即sx-big-table组件、
  • 价格/数量/数字输入框组件sx-input-number、
  • 带输入下拉联想功能的股票代码输入框组件sx-ticker-complete、
  • 表格列设置组件sx-col-Setting、
  • 表格内容搜索过滤组件sx-table-filter

说明文档:@xtp-smart/ui (opens new window)

# 安装

npm install @xtp-smart/ui
1

# 使用

import smartx_ui from '@xtp-smart/ui'
Vue.use(smartx_ui);
1
2

# 组件皮肤CSS样式

说明文档:@xtp-smart/style (opens new window)

# 用法:

import '@xtp-smart/style/dist/css/smartx.min.css'
1

# 委托、成交、持仓组件

这里为成品可直接使用,若要修改源码从代码生成机生成组件示例中包含源码

此项目即将废弃,所有源码将由托管在github上的组件示例合集提供

说明文档:@xtp-smart/widget (opens new window)

# 用法:

import smartx_widget from '@xtp-smart/widget'
Vue.use(smartx_widget);
1
2

# 组件示例合集

从最简单的HelloWorld到复杂的策略下单,通过一系列的组件示例由浅入深的展示组件中各个接口与工具的使用。

包括上面的各种npm包的使用方式。

开发组直接工作在Github (opens new window)上,所有代码细节通通展示给你。也欢迎你的PR。

# smartx-cli命令行工具

详细使用说明参见:客户端命令行工具smartx-cli