You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

88 lines
2.4 KiB

syntax = "proto3";
import "api/pub.proto";
option go_package = "./pb";
// 订阅/查询/存储,交易所k线图/热度/深度等基础数据指标
service ExchangeService {
// 订阅实时K线
rpc SubscribeKline(stream ReqStreamSubscribeKline) returns (stream RspStreamSubscribeKline);
// 获取支持的交易所列表
rpc Exchanges(ReqExchanges) returns (RspExchanges);
// 获取交易所交易产品状态
rpc ExchangeInstanceState(ReqExchangeInstanceState) returns (RspExchangeInstanceState);
// 查询SeriesRange时间范围
rpc SeriesRange(ReqSeriesRange) returns (RspSeriesRange);
// 查询历史k线
rpc HistoryKline(ReqHistoryKline) returns (RspHistoryKline);
// 查询历史k线(流式返回)
rpc HistoryKlineStream(ReqHistoryKlineStream) returns (stream RspHistoryKlineStream);
}
message ReqStreamSubscribeKline {
SubscribeType sub_type = 1;
repeated ExchangeType exchanges = 2; // 交易所
repeated string inst_ids = 3;
repeated string intervals = 4;
bool only_confirm = 5; // 只要confirm的k线
}
message RspStreamSubscribeKline { StreamKline kline = 1; }
message StreamKline {
repeated Kline klines = 2;
ExchangeType exchange = 3; // 交易所
string inst_id = 4; // 交易产品id
int64 stream_id = 5; // subscribe stream id
}
message ReqExchanges {
}
message RspExchanges {
repeated ExchangeType exchanges = 1;
}
message ReqExchangeInstanceState {
bool all_exchange = 1; // 所有交易所
bool all_insts = 2; // 所有交易产品
bool all_status = 3; // 所有状态
repeated ExchangeType exchanges = 4; // 指定交易所
repeated string insts = 5; // 指定交易产品
repeated int32 status = 6; // 指定交易产品状态
}
message RspExchangeInstanceState {
repeated TradeInstanceState insts_state = 1; // 交易产品列表
}
message ReqSeriesRange {
SeriesRange series = 1;
}
message RspSeriesRange {
int64 after = 1;
int64 before = 2;
int64 total = 3;
}
message ReqHistoryKline {
SeriesRange series = 1;
}
message RspHistoryKline {
ExchangeType exchange = 1; // 交易所
string inst_id = 2;
string interval = 3;
bool live = 4; // 第一根是否实时k线
// bool next = 5; // 是否有更多历史数据: 为true时, 可以用最后一根k线的ts作为before继续请求
KlineSeries klines = 9;
}
message ReqHistoryKlineStream {
SeriesRange series = 1;
}
message RspHistoryKlineStream {
repeated Kline klines = 2;
}