所属公司: 无
开发角色: 独立全栈
项目状态: 完成1.0.0,停止维护,源码已存档
项目地址: 无
技术栈
- 后端: golang/CEX SDK/web2 server
- 前端: html/js/css, vue/iview, tradingView chart
selfquant
- 在线图表

- 订阅推送

Selfquant 是一款面向金融量化的辅助产品,提供自定义规则信号订阅、自定义数据源、自定义触发模型、自定义外部策略自由接入协作、多维度精准推送等服务,始终致力于以用户需求为出发点提供更精细更及时的自定义信号,任何形式的隐私安全,私有权益,以及注意力焦点,全部由您自己掌控,我们仅仅提供更优雅的解决方案以尊重和满足个性化需求
服务列表
- [ ] ----数据源----
- [x] 支持实时价格行情数据源
- [x] 支持交易成交明细数据源
- [x] 交易所行情http请求代理
- [x] 交易所行情实时订阅代理
- [ ] ----信号订阅---
- [x] 支持实时行情信号订阅推送
- [x] 支持实时交易信号订阅推送
- [x] 支持自定义规则信号订阅推送
- [ ] ----信号推送------
- [x] 开源官方默认触发模型(libsignal)
- [x] 支持自定义推送通道(libapi/push)
- [x] 支持自定义触发模型(libapi/trigger)
- [ ] ----分布式协作------
- [ ]
支持用户策略接入云端模拟交易 - [ ]
支持信号触发模型接入云端交易
1. 常见问题-用户
> 1.1. 用户登录注册: 暂时仅支持邮箱登录注册
> 1.2. 用户权限: 所有订阅功能只有成功登录才可使用,部分订阅功能仅面向高级版及以上的会员,比如订阅交易数据源,外部订阅信号触发API等,具体请浏览价格页面描述
> 1.3. 免费用户: 针对新注册用户,系统暂时默认提供7天试用时间,更多用户权益将陆续开放,所有用户购买付费产品都支持赠送订阅推送服务,具体以实际产品价格为准
> 1.4. 用户登录: 系统用户以邮箱为准,针对从微信公众号或其他第三方进入的用户一律需要进行邮箱绑定,以保障用户的合法权益
> 1.5. 用户数据: 系统仅仅需要用户邮箱作为登录验证和信号推送,其他个人敏感信息一律不需要提供,其他用户数据后续将提供更合理的方式供用户自主选择存储
2. 常见问题-行情
2.1. 交易所合约
所有版本全部可以浏览所有交易所的BTC合约行情,合约类型支持三种: 当周, 次周, 季度,交易所支持: 火币
2.2. 交易所合约订阅是否有限制?
暂时仅支持火币的BTC全合约,后续会全面支持各大交易所
2.3. 实时行情图表
实时行情图表数据分为两部分,上半部分为实时价格走势,下半部分为实时成交量,买入量为多仓,柱状图显示的颜色为绿色,卖出量为空仓,柱状图显示的颜色为红色,系统支持所有在线图表全部面向所有用户开放
2.4. 在线实时数据真实性是否可靠?
行情数据直接从各大交易所提供的API订阅,真实可靠,针对高级版会员已推出交易所API代理服务,包括短连接http代理和长连接websocket代理,可在自定义模型中自由请求和订阅
2.5. 周期是指什么?
> 2.5.1. 实时,表示每隔1秒由交易所主动推送行情数据
> 2.5.2. 不同时间段,指的是最近时间段的行情数据,表示行情数据由后台服务提供,包括最近的24小时、4小时、1小时等等
2.6. 模式是指什么?
> 2.6.1. 行情: 表示图表数据,订阅信号的数据由市场行情提供,比如火币的合约行情订阅API-> 合约websocket接口: market detail
> 2.6.1. 交易: 表示图表数据,订阅信号的数据由交易详情提供,比如火币的合约交易详情订阅API-> 合约websocket接口: trade detail3. 常见问题-订阅
3.1. 系统架构
markdown
> 3.1.1. 系统采用web页面的形式提供信号订阅入口,以自定义规则的形式满足用户不同的信号触发策略需求,行情信号订阅,交易信号信号订阅,自定义规则信号订阅,三大部分全部面向所有用户开放
> 3.1.2. 目前系统以云存储的方式对信号规则进行持久化,后续将支持更多形式以保证到达用户端的信号数据更加高效和安全3.2. 订阅规则触发行情信号
> 3.2.1. 触发价格: 触发条件包括大于等于,小于等于以及完全等于,支持输入指定价格,后台会实时匹配,一旦达到触发条件则进行信号推送
> 3.2.2. 行情状态: 单个行情状态触发条件包括上涨和下跌两个方向,当后台计算的盈亏金额满足指定时间段内的金额时将触发信号,支持不同时间段不同盈亏金额的自由组合,多个状态组合的触发条件为全部满足和任意一个满足,时间段支持5秒、10秒、20秒...24小时
3.3. 订阅规则触发交易信号
> 3.3.1. 系统不需要用户输入任何与交易所相关的敏感个人信息,仅仅提供交易信息,包括交易价格,交易方向,交易数量,以及杠杠倍数,用于系统根据交易所提供的计算规则动态计算不同实时行情价格下的盈亏及收益率
> 3.3.2. 盈亏金额: 根据用户输入的盈亏金额以及涨跌方向,当系统根据实时价格计算的盈亏金额满足输入条件将触发信号进行推送
> 3.3.3. 收益率: 根据用户输入的收益率百分比数值以及涨跌方向,当系统根据实时价格计算的收益率满足输入条件将触发信号进行推送
> 3.3.4. 所有计算规则由各大交易所提供,比如火币的未实现盈亏计算规则:
go
/*
未实现盈亏,是用户当前持有的仓位的盈亏,未实现盈亏会随着最新成交价格变动而变化。
多仓未实现盈亏 =(1/持仓均价 - 1/最新成交价)* 多仓合约张数 * 合约面值
空仓未实现盈亏 =(1/最新成交价 - 1/持仓均价)* 空仓合约张数 * 合约面值
*/3.4. 订阅规则触发自定义信号
> 3.4.1. 针对已接入的第三方信号触发模型,系统支持自定义的触发规则,包括自定义触发名称,自定义触发数值, 数据类型全部为字符串, 用户可在信号触发模型中自由定义,只要符合数据类型规范,系统不做任何限制
4. 常见问题-推送
4.1. 系统架构
markdown
> 4.1.1. 系统采用数据生产和数据消费相互独立的微服务架构,包括信号从生产到消费和决策的整条链路解耦,支持各大交易所数据源+信号触发模型+信号推送通道自由水平扩展,自由接入组合
> 4.1.2. 系统全面支持所有用户自定义外部推送通道,一方面满足一部分用户群体需要自定义私有推送通道的需求,另一方面满足高级用户在自定义的本地策略环境中实时接收信号数据以进行交易决策,系统鼓励所有用户以开发者的身份根据接收到的信号推送数据进行交易策略模型研发,后期将支持本地策略模型接入云端模拟交易,实时查看策略模型驱动下的盈亏走势
> 4.1.3. 针对高级用户,系统以外部接入信号触发的方式支持由交易所推送的数据直接进入到用户本地环境,一方面满足高级用户对交易所数据源的订阅需求,同时系统也针对各大交易所API专门提供了独立的代理服务可进行付费订阅,另一方面,系统鼓励专业版用户以开发者的身份根据接收到的信号触发数据进行信号触发模型研发,后期将支持信号触发模型接入云端交易,以供所有用户付费使用
> 4.1.4. 系统将逐步推进对信号推送效率的提升优化计划,以更及时更高效的提供订阅推送服务4.2. 信号触发
> 4.2.1. 系统默认支持各大交易所行情数据源,即实时行情价格,针对高级用户支持交易详情数据源以及自定义的方式接入其他请求或订阅API,系统已针对各大交易所API专门提供了独立的代理服务可进行付费订阅
> 4.2.2. 当信号触发模型接收到来自交易所的推送数据,将由模型定义的触发算法进行规则匹配,一旦匹配成功即触发推送
> 4.2.3. 对于外部接入信号触发API的本地环境,接收到来自交易所的推送数据可自行处理go
行情数据源触发示例:
{
"userid": "123456",
"signal": "4.73",
"last_signal": "-0.85",
"trigger_rule": "收益率上涨幅度大于等于5.00"
}
交易数据源触发示例:
{
"userid": "123456",
"signal": "4.73",
"last_signal": "-0.85",
"trigger_rule": "收益率上涨幅度大于等于5.00"
}4.3. 信号推送
> 4.3.1. 信号推送依次由外部订阅API、官方推送通道(邮箱等)、web页面推送报告三部分组成,针对官方通道推送失败和推送成功记录都将送入web页面推送报告并进行持久化存储以便用户查看
> 4.3.2. 系统支持所有官方推送通道全部面向所有用户开放,后续将大幅度提升信号推送效率及推送体验的优化,暂时官方推送通道仅支持邮箱推送
> 4.3.3. 由外部进行订阅的API使用文档及相关demo已开源到github(https://www.github.com/selfquant/libapi/push)go
信号推送示例: 交易信号触发: 4.73%
{
"userid": "123456",
"signal": "4.73",
"last_signal": "-0.85",
"trigger_rule": "收益率上涨幅度大于等于5.00"
}4.4. 推送报告
> 4.4.1. 系统支持实时查看所有订阅数据以及相应的推送报告,可通过切换不同的信号名称进行查看
> 4.4.2. 推送地址: 暂时仅支持邮箱推送,所有推送通道针对任何订阅用户不设限制,后续支持app推送
> 4.4.3. 推送限制: 行情最低每隔5秒钟允许推送一次, 交易推送不受限制
> 4.4.4. 触发规则: 由用户自行设定,对于订阅规则异常被冻结或者系统异常导致无法推送的情况,系统将通过信号状态进行描述
> 4.4.5. 推送成功: 描述当前信号总共推送成功的次数,一旦推送成功,页面将自动刷新该数值
> 4.4.6. 推送失败: 描述当前信号推送失败的具体描述,示例如下:
go
{
"ErrorIDs": [
"3707877939(当前)"
],
"推送内容": {
"当前信号": "23.00",
"触发规则": "5秒内价格上涨幅度大于等于23.00"
},
"推送时间": "2020-03-04 12:09:21"
}ErrorIDs为当前规则所有推送失败的错误码,存在(当前)后缀的选项为最近一次推送失败的错误码
5. 常见问题-策略+模型**
5.1. 系统架构
markdown
> 5.1.1. 系统以订阅推送为核心面向所有用户进行服务,通过信号推送的方式辅助基础用户群体进行手动交易决策,用户收到信号可自行前往交易所相关终端查看行情是否已达到进行交易的条件
> 5.1.2. 系统充分尊重用户隐私,在核心业务订阅推送的基础上,针对专业用户群体,以极其灵活的方式将交易量化为数据源,信号触发模型,交易策略三大部分,三部分相辅相成,数据源负责输出行情数据,信号触发模型负责输出信号,交易策略根据信号进行决策,系统仅仅作为调度方为用户的私有订阅推送需求服务
> 5.1.3. 全面支持分布式协作,待续...5.2. 数据源
待完善...5.3. 交易策略
> 5.3.1. 系统已面向所有用户(包括免费版)提供自定义推送通道的方式以大力支持用户私有推送需求
> 5.3.2. 所有用户可根据官方提供的信号推送文档(https://www.selfquant.libapi/push)进行通道自定义
> 5.3.3. 针对具备开发交易策略的用户人群,系统鼓励通过接收到的信号自行研发交易决策逻辑,后期将支持本地策略模型接入云端模拟交易,实时查看策略模型驱动下的盈亏走势,暂时并不影响用户本地策略的研发5.4. 信号触发模型
> 5.4.1. 系统支持模型在web页面自由选择不同选项的方式进行切换使用, 支持所有用户在线付费使用信号触发模型
> 5.4.2. 目前系统支持的官方信号触发模型已开源到github(https://www.github.com/selfquant/libsignal), 支持go和python两种语言进行开发,专业版用户可根据demo示例进行自行研发
> 5.4.3. 更多官方及第三方模型接入交易将陆续开放4. 常见问题-其他
4.1. 是否支持跨平台?
- 系统支持h5直接访问,已做移动端适配处理
- 已支持微信公众号selfquant直接进入订阅
h5访问示例图:

4.2. 在线浏览实时行情部分卡死如何处理?
- 重新刷新页面