Files
gocryptotrader/backtester/btrpc/btrpc.swagger.json
Scott 1461cba363 backtester: standalone application (#988)
* 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
2022-09-08 16:22:30 +10:00

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"
}
}
}
}
}
}