technical_analysis: TWAP & VWAP + TA methods to candles and link to existing RPC server for GCTCLI prototyping (#970)

* kline: add weighted price helpers for candles

* twap/vwap: basic implementation and hook to rpc for protype

* ta: cont implementation. (WIP)

* kline: Add tests

* kline: add helpers

* ta: full impl.

* kline: remove support for macd and add in correlation-coefficient handling

* rpc: change naming convention

* linter: fix

* protolinter: fix

* linter: ++

* kline: reinstate macd handling after adding in check

* glorious: nits

* gctcl: linter

* Update exchanges/kline/weighted_price.go

Co-authored-by: Scott <gloriousCode@users.noreply.github.com>

* glorious: nits

* glorious: nits v2.0

* kline: fix test

* huobi-tests: shift from next quarter to this weeks contracts as they were erroring out in tests.

* btcmarkets: update supported kline intervals

* zb: fix test

* rpcserver: fix bug and tests

Co-authored-by: Ryan O'Hara-Reid <ryan.oharareid@thrasher.io>
Co-authored-by: Scott <gloriousCode@users.noreply.github.com>
This commit is contained in:
Ryan O'Hara-Reid
2022-07-08 15:21:56 +10:00
committed by GitHub
parent 68db4155bf
commit 7da745120f
21 changed files with 3509 additions and 325 deletions

View File

@@ -2577,6 +2577,159 @@
]
}
},
"/v1/gettechnicalanalysis": {
"get": {
"operationId": "GoCryptoTraderService_GetTechnicalAnalysis",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/gctrpcGetTechnicalAnalysisResponse"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "exchange",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "pair.delimiter",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "pair.base",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "pair.quote",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "assetType",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "algorithmType",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "interval",
"in": "query",
"required": false,
"type": "string",
"format": "int64"
},
{
"name": "start",
"in": "query",
"required": false,
"type": "string",
"format": "date-time"
},
{
"name": "end",
"in": "query",
"required": false,
"type": "string",
"format": "date-time"
},
{
"name": "period",
"in": "query",
"required": false,
"type": "string",
"format": "int64"
},
{
"name": "fastPeriod",
"in": "query",
"required": false,
"type": "string",
"format": "int64"
},
{
"name": "slowPeriod",
"in": "query",
"required": false,
"type": "string",
"format": "int64"
},
{
"name": "standardDeviationUp",
"in": "query",
"required": false,
"type": "number",
"format": "double"
},
{
"name": "standardDeviationDown",
"in": "query",
"required": false,
"type": "number",
"format": "double"
},
{
"name": "movingAverageType",
"in": "query",
"required": false,
"type": "string",
"format": "int64"
},
{
"name": "otherExchange",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "otherPair.delimiter",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "otherPair.base",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "otherPair.quote",
"in": "query",
"required": false,
"type": "string"
},
{
"name": "otherAssetType",
"in": "query",
"required": false,
"type": "string"
}
],
"tags": [
"GoCryptoTraderService"
]
}
},
"/v1/getticker": {
"post": {
"operationId": "GoCryptoTraderService_GetTicker",
@@ -4989,6 +5142,17 @@
}
}
},
"gctrpcGetTechnicalAnalysisResponse": {
"type": "object",
"properties": {
"signals": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/gctrpcListOfSignals"
}
}
}
},
"gctrpcGetTickerRequest": {
"type": "object",
"properties": {
@@ -5014,6 +5178,18 @@
}
}
},
"gctrpcListOfSignals": {
"type": "object",
"properties": {
"signals": {
"type": "array",
"items": {
"type": "number",
"format": "double"
}
}
}
},
"gctrpcModifyOrderResponse": {
"type": "object",
"properties": {