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.
 
 

149 lines
3.8 KiB

syntax = "proto3";
import "google/protobuf/struct.proto";
import "api/pub.proto";
option go_package = "./pb";
// 交易系统服务
service TradingService {
// 获取指标绘图属性
rpc IndicatorPlots(ReqIndicatorPlots) returns (RspIndicatorPlots);
// 获取指标序列
rpc IndicatorSeries(ReqIndicatorSeries) returns (RspIndicatorSeries);
// 获取指标序列
rpc StrategySeries(ReqStrategySeries) returns (RspStrategySeries);
// 交易计划回测
rpc Backtest(ReqBacktest) returns (RspBacktest);
// 交易计划参数调试回测
rpc BacktestRace(ReqBacktestRace) returns (RspBacktestRace);
// 交易计划回测记录
rpc BacktestLog(ReqBacktestLog) returns (RspBacktestLog);
// 交易计划回测交易单详情
rpc BacktestLogTrades(ReqBacktestLogTrades) returns (RspBacktestLogTrades);
// 交易计划回测结果统计信息
rpc BacktestLogStats(ReqBacktestLogStats) returns (RspBacktestLogStats);
}
message ReqIndicatorPlots {
repeated string indicators = 1;
}
message RspIndicatorPlots{
repeated IndicatorPlot plots = 1;
}
message ReqIndicatorSeries {
string indicator = 1;
int32 digit = 2; // 结果小数位数
SeriesRange series = 9;
google.protobuf.Struct input = 10; // 指标参数
}
message RspIndicatorSeries {
repeated double matrix = 1;
repeated int64 times = 2;
repeated IndicatorState states = 3;
}
message IndicatorState {
string state = 1;
repeated double matrix = 2;
}
message ReqStrategySeries {
SeriesRange series = 1;
string sig_strategy = 2;
google.protobuf.Struct input = 3; // 指标参数
}
message RspStrategySeries {
repeated Side signal = 1; // 0.sell,1.buy
repeated int64 times = 2;
}
message ReqBacktest {
int64 plan_id = 1;
string stime = 2;
string etime = 3;
}
message RspBacktest {
int64 backtest_id = 1;
}
message BacktestLog {
int64 backtest_id = 1;
int64 plan_id = 2;
int64 stime = 3;
int64 etime = 4;
string interval = 5; // 交易周期
}
message ReqBacktestLog {
Paging paging = 1;
}
message RspBacktestLog {
repeated BacktestLog logs = 1;
}
message BacktestTradeOrder {
int64 backtest_id = 1;
int64 trade_id = 2;
int32 trade_type = 3;
string inst_id = 4;
Side side = 5;
double qty = 6;
double price = 7;
double fee = 8;
int32 leverage = 9;
int64 ctime = 10;
int32 status = 11;
double peak_px = 12;
string close_cause = 13;
double equity = 14;
string hold_time = 15;
double profit = 16;
double last_px = 17;
double entry_px = 18;
double entry_fee = 19;
int64 entry_time = 20;
repeated int64 trades = 21;
}
message ReqBacktestLogTrades {
Paging paging = 1;
int64 backtest_id = 2;
}
message RspBacktestLogTrades {
repeated BacktestTradeOrder trades = 1;
}
message ReqBacktestRace {
int64 plan_id = 1; // 交易计划
repeated InputRange series_input_range = 5; // 运行参数
repeated InputRange sig_input_range = 6; // 信号策略参数
repeated InputRange close_input_range = 7; // 平仓策略参数
repeated InputRange trade_input_range = 8; // 交易策略参数
repeated InputRange risk_input_range = 9; // 风控策略参数
}
message RspBacktestRace {
}
// 回测统计信息(line charts)
message ReqBacktestLogStats {
int64 plan_id = 1;
int64 backtest_id = 2;
}
message RspBacktestLogStats {
repeated int64 times = 1; // k线时间
repeated double equitys = 2; // 平仓后账户净值
repeated BacktestLogBuySellPoint buy_sell = 9; // 买卖点数据统计 charts data
}
// {time: 1763890200000, value: 86400, text: 'BUY:86400', direction: 'up'}
message BacktestLogBuySellPoint {
double value = 2; // k线收盘价
Side side = 3; // 买卖方向
string text = 4; // 买卖点描述
}