hasakiserver

command module
v0.0.0-...-8afb814 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 28, 2022 License: Apache-2.0 Imports: 23 Imported by: 0

README

Hasaki Server Center

服务不会自动连接交易所,用户需要服务去连接交易所需要在配置文件中登记

启动websocket服务,接受用户的连接,如果用户没有连接,那么服务就暂停请求交易所,为了节约资源

交易服务和策略容器连接流程:

1,策略容器连接交易服务,然后向交易服务发送订阅信息和验证信息,个人用户不需要验证,使用hasaki服务的容器才需要验证 用户传过来的账户信息不要持久化处理,也就是数据中台不能把用户的api key写到文件,策略端才保存用户的api key的数据。

2,交易服务接受到策略容器的消息后,再去请求交易所,接收交易所的行情,转发回策略容器

3,交易服务收到策略容器的发单,并转发到交易所,交易所返回的订单信息,则传到策略,另外数据中台提供信息通知的功能, 用户可以自定义绑定重要信息发送到钉钉机器人(建议使用钉钉机器人,非常方便)

4,数据服务除了一个websocket连接用于实时交易之外,还提供一个restful数据请求服务. hasaki server自身的从外界获取到的数据会保存在数据库中,用户可以通过外部请求下载过往的历史数据用于做数据分析或者策略数据预热

架构设计:

|   [ crawlManager ]   [ gateway ] ---------- logManager
|        |                  |      
|      [     dataManager       ]   ---------- logManager
|            |          |
|     [websocket ]  [ database ]   ---------- logManager
|        |                |
|      [        user           ]   ---------- config.json
connect exchange

服务中心连接交易所

gateio : gateio数字货币交易所

crawl the news

服务中心爬取舆情数据

govNewsCroll : 中华人民共和国政府网

start websocket

服务中心启动websocket服务接收策略的发单并把行情新闻数据发给策略

消息推送分两种: 1,服务等待请求,收到请求之后再一次性推送. 2,订阅模式,绑定钉钉机器人等,定时推送.

data saving

行情数据和新闻舆情数据都默认保存在数据库Mysql和mongoDB,服务默认是一直持久化保存数据,可选只保存一天的数据,因为如果 部署到云服务的话,云服务的数据库很贵,所以保存一天的数据,而由外部的硬盘来保存所有的数据则是可行的方案,若用户是在自己设备上 运行服务,则我们认为,用用户自身的硬盘的是安全且无限的。

config

用户使用配置文件定义服务,配置文件可以指定网关和爬虫只执行部分功能,方便在墙外部署同一个服务中台,墙外的服务中台可以不用去连接国内的 交易所和网站,节省资源。

config.json包括:每个交易所的apikey设置,订阅交易所,订阅新闻爬取种类

Documentation

Overview

hasaki-quant A股接口,通过凤凰api获取 API : http://api.finance.ifeng.com/akdaily/?code=sh000001&type=last sh000001是上证指数,一次请求,能获取所有上证指数从2017年到现在的数据 取回的数据在record中,列表中的数据的排列分别为: date,open,high,close,low,volume,chg(涨跌额),p_chg(涨跌幅), ma5(5日均价),ma10(10日均价),ma20(20日均价),vma5(5日均量) vma10(10日均量),vma20(20日均量),turnover换手率(指数没有)

新浪财经api:http://hq.sinajs.cn/?format=json&list=sh600000 股票名字,今日开盘价,昨日收盘价,当前价,今日最高价,今日最低价, 买一价,卖一价,成交股票数,成家额,买一量,买一价(以此类推)

查指数 : http://hq.sinajs.cn/list=s_sh000001 上证指数,当前点数,当前价格,涨跌幅,成交量(手),成交额(万)

网上股票API介绍的博客: https://www.cnblogs.com/me115/archive/2011/05/09/2040826.html

注意:这里的请求是请求回日线的行情,所以每天请求一次就可以了 同时周末不需要查询,查询的数据再和数据库最新的数据作对比查重

从新浪财经获取道琼斯指数,DJI就是道琼斯指数 地址 : https://gu.sina.cn/us/hq/quotes.php?vt=1&cid=76556&code=DJI

道琼斯价格 : <div class="hqbox-point-price" 道琼斯涨跌额 : <ul class="hqbox-point-more" <li id="HQBox_Point_change" 道琼斯涨跌幅 : <ul class="hqbox-point-more" <li id="HQBox_Point_percent"

注意,

Server common function

服务常量文件

hasaki-quant server center的爬虫调度中心 所有爬虫程序都会通过该爬虫中心进行调度处理

定时轮询爬虫,在该代码中设置定时轮询的时间,方便修改 在数据中台中设置定时轮询的间隔

用户不知道是否应该要爬取部分网站还是所有网站,也不知道应该多久轮询一次 爬虫,所以用户不应该感知到自己设置了爬虫

hasaki-quant server center data manager code 所有数据操作全部在dataManager中进行统一调度 包括行情数据和爬虫数据,websocket获取数据并返回到外部

行请处理: 从gateway对象获取行请,行请通过websocket发送到用户策略中,行请保存到数据库中,最新一条行请保存在内存中 方便以后给用户发送价格警告

舆情处理: 从crawlCenter中获取的舆情新闻,hasaki-quant数据中台还没有能力做NLP处理,所以 新闻舆情会直接保存到数据库,用户可以指定某些字符串,新闻中有相关字符串则给用户地址 发送新闻

订单处理: gateway订单信息触发后,传递订单信息到dataManager,由dataManager传给策略, 订单详情保存到数据库

基金接口,包括世界上大的基金动作,用于跟踪大手笔的操作, 一般像桥水等大基金的操作是可以影响市场的 基金的消息不会更新得很快,所以一个小时去获取一次即可 跟踪欧洲股票的网站 : https://breakoutpoint.com/ (要钱)

连接gateio的API

每次发单前,请求一次行情,然后根据最新的行情发出订单

最后一次修改时间 : 2020-1-15

hasaki-quant 数据中台连接交易所的网关 所有交易所的连接都通过gateway去调度 网关包括请求所有交易所的价格行情,所有接口的数据最后在gateway中进行抽象

网关还包含统一发单的功能,如果交易所被墙,那么在外网部署另一个hasaki-server,然后国内的服务中台的网关 连接墙外的数据中台进行数据订阅 所以hasaki-quant data server center做一个分支,若是在墙外启动,则在服务中台的配置文件中进行设置,只执行部分功能

网关接受下单需要的参数: market,symbol,price,volume 订阅行情需要的参数 : market,symbol,frequency

获取黄金的行情,从新浪财经 黄金地址 : http://gu.sina.cn/m/?vt=1&cid=76613#/futures/foreign

纽约黄金 : <li data-symbol="hf_GC"

聚合数据的黄金数据接口API : http://web.juhe.cn:8080/finance/gold/shgold?key=您申请的APPKEY 每两分钟更新一次,这个接口可能也是爬取别的站的,但是调用比直接爬取新浪财经快, 作为备用方案

hasaki-quant server log system 管理数据中台运行的所有日志数据 包括系统日志,debug日志,错误日志,日志保存,日志发送到用户前端,终端日志

hasaki-quant trade module hasaki-quant server center 总调度程序 从配置文件获取到用户配置,然后启动其他模块 流程: 1,先从配置文件config.json中获取到用户的key,密钥和指定获取数据接口的参数 2,启动系统的日志中心 logManager.go 3,启动数据模块 dataManager.go 4,启动行情网关 gateway.go 5,启动爬虫模块 crawlCenter.go 6,启动websocket服务并接收用户的请求websocket.go last Code At : 2020-2-13

hasaki server restful return the news data and quote data to user 这个restful请求会全部返回数据库中所有的数据给用户, 用户在启动服务的时候,已经设定好了,数据量的保存模式 保存所有数据或者只保留一天的数据,如果是保存一天的数据应该就不需要数据库了 因为一天的数据的量并不大

hasaki-quant websocket server

新浪新闻,国际新闻爬虫 爬虫的地址不是PC端的新浪地址,而是用手机的新浪新闻地址: https://news.sina.cn/gj?vt=1&pos=8 vt=1的时候是简化版

能直接拿到题目,但是要进去到页面才能拿到时间,链接的标签是 a class="f_card_m_f_a_r"

进入链接之后,新闻标题是: h1 class="art_tit_h1" 时间的标签是:time class="art_time"

只要拿到标题和时间即可,文章内容不需要爬取,注意是一个页面, 爬取到内容直接保存到数据库即可

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL