mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-17 15:09:59 +00:00
* Ramshackle early leads to GRPC backtester * Adds GRPC server, default config generation * Partial support for GRPC backtester config * Update to use Buf, merge fixes * Full config for GRPC * Adds new commands, causes big panic * Fixes panics * Setup for the future * Docs update * test * grpc tests * Fix merge issues. Lint and test * minor fixes after rebase * Docs, formatting and main fixes * Change buf owner * shazNits * test-123 * rpc fixes * string fixes * Removes --singlerun flag and just relies on --singlerunstrategypath * fixes test * initial post merge compatability fixes * this actually all seems to work? unexpected * adds pluginpath to config * rm unused func. add gitignore * rm unused func. add gitignore * lintle * tITLE cASE lOG fIX,rm auth package, gitignore, tmpdir fix * buf updates + gen. go mod tidy * x2 * Update default port, update error text
730 lines
18 KiB
JSON
730 lines
18 KiB
JSON
{
|
|
"swagger": "2.0",
|
|
"info": {
|
|
"title": "btrpc.proto",
|
|
"version": "version not set"
|
|
},
|
|
"tags": [
|
|
{
|
|
"name": "BacktesterService"
|
|
}
|
|
],
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"paths": {
|
|
"/v1/executestrategyfromconfig": {
|
|
"get": {
|
|
"operationId": "BacktesterService_ExecuteStrategyFromConfig",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/btrpcExecuteStrategyResponse"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "An unexpected error response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/rpcStatus"
|
|
}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "config.nickname",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.goal",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.strategySettings.name",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.strategySettings.useSimultaneousSignalProcessing",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"name": "config.strategySettings.disableUsdTracking",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"name": "config.fundingSettings.useExchangeLevelFunding",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.interval",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string",
|
|
"format": "uint64"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.datatype",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.apiData.startDate",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.apiData.endDate",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.apiData.inclusiveEndDate",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.databaseData.startDate",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.databaseData.endDate",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.databaseData.config.enabled",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.databaseData.config.verbose",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.databaseData.config.driver",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.databaseData.config.config.host",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.databaseData.config.config.port",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.databaseData.config.config.userName",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.databaseData.config.config.password",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.databaseData.config.config.database",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.databaseData.config.config.sslMode",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.databaseData.path",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.databaseData.inclusiveEndDate",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.csvData.path",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.liveData.apiKeyOverride",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.liveData.apiSecretOverride",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.liveData.apiClientIdOverride",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.liveData.api2faOverride",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.liveData.apiSubAccountOverride",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.dataSettings.liveData.useRealOrders",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"name": "config.portfolioSettings.leverage.canUseLeverage",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"name": "config.portfolioSettings.leverage.maximumOrdersWithLeverageRatio",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.portfolioSettings.leverage.maximumLeverageRate",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.portfolioSettings.leverage.maximumCollateralLeverageRate",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.portfolioSettings.buySide.minimumSize",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.portfolioSettings.buySide.maximumSize",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.portfolioSettings.buySide.maximumTotal",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.portfolioSettings.sellSide.minimumSize",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.portfolioSettings.sellSide.maximumSize",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.portfolioSettings.sellSide.maximumTotal",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "config.statisticSettings.riskFreeRate",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
}
|
|
],
|
|
"tags": [
|
|
"BacktesterService"
|
|
]
|
|
}
|
|
},
|
|
"/v1/executestrategyfromfile": {
|
|
"get": {
|
|
"operationId": "BacktesterService_ExecuteStrategyFromFile",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/btrpcExecuteStrategyResponse"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "An unexpected error response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/rpcStatus"
|
|
}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "strategyFilePath",
|
|
"in": "query",
|
|
"required": false,
|
|
"type": "string"
|
|
}
|
|
],
|
|
"tags": [
|
|
"BacktesterService"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"definitions": {
|
|
"btrpcApiData": {
|
|
"type": "object",
|
|
"properties": {
|
|
"startDate": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"endDate": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"inclusiveEndDate": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"btrpcCSVData": {
|
|
"type": "object",
|
|
"properties": {
|
|
"path": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"btrpcConfig": {
|
|
"type": "object",
|
|
"properties": {
|
|
"nickname": {
|
|
"type": "string"
|
|
},
|
|
"goal": {
|
|
"type": "string"
|
|
},
|
|
"strategySettings": {
|
|
"$ref": "#/definitions/btrpcStrategySettings"
|
|
},
|
|
"fundingSettings": {
|
|
"$ref": "#/definitions/btrpcFundingSettings"
|
|
},
|
|
"currencySettings": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/btrpcCurrencySettings"
|
|
}
|
|
},
|
|
"dataSettings": {
|
|
"$ref": "#/definitions/btrpcDataSettings"
|
|
},
|
|
"portfolioSettings": {
|
|
"$ref": "#/definitions/btrpcPortfolioSettings"
|
|
},
|
|
"statisticSettings": {
|
|
"$ref": "#/definitions/btrpcStatisticSettings"
|
|
}
|
|
}
|
|
},
|
|
"btrpcCurrencySettings": {
|
|
"type": "object",
|
|
"properties": {
|
|
"exchangeName": {
|
|
"type": "string"
|
|
},
|
|
"asset": {
|
|
"type": "string"
|
|
},
|
|
"base": {
|
|
"type": "string"
|
|
},
|
|
"quote": {
|
|
"type": "string"
|
|
},
|
|
"buySide": {
|
|
"$ref": "#/definitions/btrpcPurchaseSide"
|
|
},
|
|
"sellSide": {
|
|
"$ref": "#/definitions/btrpcPurchaseSide"
|
|
},
|
|
"minSlippagePercent": {
|
|
"type": "string"
|
|
},
|
|
"maxSlippagePercent": {
|
|
"type": "string"
|
|
},
|
|
"makerFeeOverride": {
|
|
"type": "string"
|
|
},
|
|
"takerFeeOverride": {
|
|
"type": "string"
|
|
},
|
|
"maximumHoldingsRatio": {
|
|
"type": "string"
|
|
},
|
|
"skipCandleVolumeFitting": {
|
|
"type": "boolean"
|
|
},
|
|
"useExchangeOrderLimits": {
|
|
"type": "boolean"
|
|
},
|
|
"useExchangePnlCalculation": {
|
|
"type": "boolean"
|
|
},
|
|
"spotDetails": {
|
|
"$ref": "#/definitions/btrpcSpotDetails"
|
|
},
|
|
"futuresDetails": {
|
|
"$ref": "#/definitions/btrpcFuturesDetails"
|
|
}
|
|
}
|
|
},
|
|
"btrpcCustomSettings": {
|
|
"type": "object",
|
|
"properties": {
|
|
"keyField": {
|
|
"type": "string"
|
|
},
|
|
"keyValue": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"btrpcDataSettings": {
|
|
"type": "object",
|
|
"properties": {
|
|
"interval": {
|
|
"type": "string",
|
|
"format": "uint64"
|
|
},
|
|
"datatype": {
|
|
"type": "string"
|
|
},
|
|
"apiData": {
|
|
"$ref": "#/definitions/btrpcApiData"
|
|
},
|
|
"databaseData": {
|
|
"$ref": "#/definitions/btrpcDatabaseData"
|
|
},
|
|
"csvData": {
|
|
"$ref": "#/definitions/btrpcCSVData"
|
|
},
|
|
"liveData": {
|
|
"$ref": "#/definitions/btrpcLiveData"
|
|
}
|
|
}
|
|
},
|
|
"btrpcDatabaseConfig": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"verbose": {
|
|
"type": "boolean"
|
|
},
|
|
"driver": {
|
|
"type": "string"
|
|
},
|
|
"config": {
|
|
"$ref": "#/definitions/btrpcDatabaseConnectionDetails"
|
|
}
|
|
}
|
|
},
|
|
"btrpcDatabaseConnectionDetails": {
|
|
"type": "object",
|
|
"properties": {
|
|
"host": {
|
|
"type": "string"
|
|
},
|
|
"port": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"userName": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"database": {
|
|
"type": "string"
|
|
},
|
|
"sslMode": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"btrpcDatabaseData": {
|
|
"type": "object",
|
|
"properties": {
|
|
"startDate": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"endDate": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"config": {
|
|
"$ref": "#/definitions/btrpcDatabaseConfig"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"inclusiveEndDate": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"btrpcExchangeLevelFunding": {
|
|
"type": "object",
|
|
"properties": {
|
|
"exchangeName": {
|
|
"type": "string"
|
|
},
|
|
"asset": {
|
|
"type": "string"
|
|
},
|
|
"currency": {
|
|
"type": "string"
|
|
},
|
|
"initialFunds": {
|
|
"type": "string"
|
|
},
|
|
"transferFee": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"btrpcExecuteStrategyResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"success": {
|
|
"type": "boolean"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"btrpcFundingSettings": {
|
|
"type": "object",
|
|
"properties": {
|
|
"useExchangeLevelFunding": {
|
|
"type": "boolean"
|
|
},
|
|
"exchangeLevelFunding": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/btrpcExchangeLevelFunding"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"btrpcFuturesDetails": {
|
|
"type": "object",
|
|
"properties": {
|
|
"leverage": {
|
|
"$ref": "#/definitions/btrpcLeverage"
|
|
}
|
|
}
|
|
},
|
|
"btrpcLeverage": {
|
|
"type": "object",
|
|
"properties": {
|
|
"canUseLeverage": {
|
|
"type": "boolean"
|
|
},
|
|
"maximumOrdersWithLeverageRatio": {
|
|
"type": "string"
|
|
},
|
|
"maximumLeverageRate": {
|
|
"type": "string"
|
|
},
|
|
"maximumCollateralLeverageRate": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"btrpcLiveData": {
|
|
"type": "object",
|
|
"properties": {
|
|
"apiKeyOverride": {
|
|
"type": "string"
|
|
},
|
|
"apiSecretOverride": {
|
|
"type": "string"
|
|
},
|
|
"apiClientIdOverride": {
|
|
"type": "string"
|
|
},
|
|
"api2faOverride": {
|
|
"type": "string"
|
|
},
|
|
"apiSubAccountOverride": {
|
|
"type": "string"
|
|
},
|
|
"useRealOrders": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"btrpcPortfolioSettings": {
|
|
"type": "object",
|
|
"properties": {
|
|
"leverage": {
|
|
"$ref": "#/definitions/btrpcLeverage"
|
|
},
|
|
"buySide": {
|
|
"$ref": "#/definitions/btrpcPurchaseSide"
|
|
},
|
|
"sellSide": {
|
|
"$ref": "#/definitions/btrpcPurchaseSide"
|
|
}
|
|
}
|
|
},
|
|
"btrpcPurchaseSide": {
|
|
"type": "object",
|
|
"properties": {
|
|
"minimumSize": {
|
|
"type": "string"
|
|
},
|
|
"maximumSize": {
|
|
"type": "string"
|
|
},
|
|
"maximumTotal": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"btrpcSpotDetails": {
|
|
"type": "object",
|
|
"properties": {
|
|
"initialBaseFunds": {
|
|
"type": "string"
|
|
},
|
|
"initialQuoteFunds": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"btrpcStatisticSettings": {
|
|
"type": "object",
|
|
"properties": {
|
|
"riskFreeRate": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"btrpcStrategySettings": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"useSimultaneousSignalProcessing": {
|
|
"type": "boolean"
|
|
},
|
|
"disableUsdTracking": {
|
|
"type": "boolean"
|
|
},
|
|
"customSettings": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/btrpcCustomSettings"
|
|
}
|
|
}
|
|
},
|
|
"title": "struct definitions"
|
|
},
|
|
"protobufAny": {
|
|
"type": "object",
|
|
"properties": {
|
|
"@type": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": {}
|
|
},
|
|
"rpcStatus": {
|
|
"type": "object",
|
|
"properties": {
|
|
"code": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"details": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/protobufAny"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|