diff --git a/.vscode/launch.json b/.vscode/launch.json index 62540d2..c8c60c5 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -5,13 +5,13 @@ "version": "0.2.0", "configurations": [ { - "name": "sig-admin", + "name": "admin", "type": "go", "request": "launch", "mode": "auto", - "program": "${workspaceFolder}/cmd/sig-admin", + "program": "${workspaceFolder}/cmd/admin", "cwd": "${workspaceFolder}", - "output": "${workspaceFolder}/run/sig-admin", + "output": "${workspaceFolder}/run/admin", }, { "name": "market", diff --git a/README.md b/README.md index bec0b5f..5f22c26 100644 --- a/README.md +++ b/README.md @@ -146,3 +146,5 @@ page design: - 回测页: 交易策略, 跑策略, 结果绘图 - 交易计划: 交易策略 -> 交易所,币种,驱动周期 -> risk, sig, close, trade_strategy_param - 参数遍历回测 + +对目标目标k线时序段前的k线进行特征提取, 再进行回测评估, 反复迭代得到Alpha diff --git a/api/gateway.proto b/api/gateway.proto new file mode 100644 index 0000000..56af21f --- /dev/null +++ b/api/gateway.proto @@ -0,0 +1,40 @@ +syntax = "proto3"; + +option go_package = "./pb"; + + +// 通过网关向客户端投递消息 +service GatewayPostal { + // 使用流连续发送数据 + rpc DeliverStream(stream ReqDeliver) returns (ResDeliver); + + // 发送一次数据 + rpc Deliver(ReqDeliver) returns (ResDeliver); + + // 批量发送数据 + rpc DeliverBatch(ReqDeliverBatch) returns (ResDeliver); +} + +message Message { + int64 time = 3; + string target = 4; // 消息处理 handler + bytes body = 15; // protobuf bytes +} + +message ReqDeliver { + string receiver = 1; + Message msg = 2; + + bool sync = 7; // 是否同步阻塞等待投递结果, 默认false立即返回放到队列消费投递 +} +message ResDeliver { + bool ok = 1; + int32 code = 2; + string msg = 3; +} + +message ReqDeliverBatch { + repeated string receivers = 1; + Message msg = 2; + bool sync = 7; +} diff --git a/build-all.sh b/build-all.sh index ce50a37..d39d688 100755 --- a/build-all.sh +++ b/build-all.sh @@ -1,7 +1,12 @@ #! /bin/bash -./build.sh market 1.0 \ - && ./build.sh exchange 1.0 \ - && ./build.sh gateway 1.0 \ - && ./build.sh admin 1.0 \ - && ./build.sh trading 1.0 +# ./build-all.sh 1.0 hub.docker.com + +VERSION=$1 +DOMAIN=$2 + +./build.sh market $VERSION $DOMAIN \ + && ./build.sh exchange $VERSION $DOMAIN \ + && ./build.sh gateway $VERSION $DOMAIN \ + && ./build.sh admin $VERSION $DOMAIN \ + && ./build.sh trading $VERSION $DOMAIN diff --git a/build.sh b/build.sh index d978cc7..7cb2ee4 100755 --- a/build.sh +++ b/build.sh @@ -1,9 +1,10 @@ #! /bin/bash -# ./build.sh exchange 1.0 +# ./build.sh exchange 1.0 domain APP=$1 -DOCKER_IMAGE_VERSION=$2 +VERSION=$2 +DOMAIN=$3 GO111MODULE=on CGO_ENABLED=0 GOOS=linux @@ -11,10 +12,15 @@ GOARCH=amd64 go build -o target/$APP cmd/$APP/main.go -if [ -n "$DOCKER_IMAGE_VERSION" ]; then - echo "docker build -t sig-$APP:$DOCKER_IMAGE_VERSION --build-arg APP=$APP ." +if [ -n "$VERSION" ]; then cp -f /usr/share/zoneinfo/Asia/Shanghai ./localtime - docker build -t sig-$APP:$DOCKER_IMAGE_VERSION --build-arg APP=$APP . + if [ -n "$DOMAIN" ]; then + echo "docker build -t $DOMAIN/sig-$APP:$VERSION --build-arg APP=$APP ." + docker build -t $DOMAIN/sig-$APP:$VERSION --build-arg APP=$APP . + else + echo "docker build -t sig-$APP:$VERSION --build-arg APP=$APP ." + docker build -t sig-$APP:$VERSION --build-arg APP=$APP . + fi rm -f localtime fi diff --git a/generate.go b/generate.go index e1c65fa..dba7812 100644 --- a/generate.go +++ b/generate.go @@ -8,6 +8,7 @@ import "fmt" //go:generate protoc --go_out=./api/ --go-grpc_out=./api/ ./api/exchange.proto //go:generate protoc --go_out=./api/ --go-grpc_out=./api/ ./api/order.proto //go:generate protoc --go_out=./api/ --go-grpc_out=./api/ ./api/trading.proto +//go:generate protoc --go_out=./api/ --go-grpc_out=./api/ ./api/gateway.proto // run cmd: go generate generate.go func main() { diff --git a/internal/gateway/gateway_postal_grpc_server.go b/internal/gateway/gateway_postal_grpc_server.go new file mode 100644 index 0000000..98c5138 --- /dev/null +++ b/internal/gateway/gateway_postal_grpc_server.go @@ -0,0 +1,34 @@ +package gateway + +import ( + "context" + "sig-pub/api/pb" + + "google.golang.org/grpc" +) + +type GatewayPostalGrpcServer struct { + pb.UnimplementedGatewayPostalServer +} + +func NewGatewayGrpcServer() *GatewayPostalGrpcServer { + return &GatewayPostalGrpcServer{} +} + +// DeliverStream 使用流连续发送数据 +func (svr *GatewayPostalGrpcServer) DeliverStream(req grpc.ClientStreamingServer[pb.ReqDeliver, pb.ResDeliver]) (err error) { + + return nil +} + +// Deliver 发送一次数据 +func (svr *GatewayPostalGrpcServer) Deliver(ctx context.Context, req *pb.ReqDeliver) (*pb.ResDeliver, error) { + + return nil, nil +} + +// DeliverBatch 批量发送数据 +func (svr *GatewayPostalGrpcServer) DeliverBatch(ctx context.Context, req *pb.ReqDeliverBatch) (res *pb.ResDeliver, err error) { + + return nil, nil +}