Kucoin proxy for freqtrade that is using websockets to maintain candlestick/klines data in memory

freqtrade-proxy

Kucoin proxy for freqtrade that is using websockets to maintain candlestick/klines data in memory, thus having great performance and reducing the amount of API calls to the Kucoin API. All other calls are proxied as usual.

This project I made just for myself but can add more exchanges in the future.

OPS

Local

git clone https://github.com/mikekonan/freqtrade-proxy.git
make build
./freqtrade-proxy -port 8080

config.json

{
    "exchange": {
        "name": "kucoin",
        "key": "",
        "secret": "",
        "ccxt_config": {
            "enableRateLimit": false,
            "urls": {
                "api": {
                    "public": "http://127.0.0.1:8080/kucoin",
                    "private": "http://127.0.0.1:8080/kucoin"
                }
            }
        },
        "ccxt_async_config": {
            "enableRateLimit": false
        }
    }
}

Docker (suggested way)

docker run --restart=always -p 127.0.0.1:8080:8080 --name freqtrade-proxy -d mikekonan/freqtrade-proxy:main

config.json

{
    "exchange": {
        "name": "kucoin",
        "key": "",
        "secret": "",
        "ccxt_config": {
            "enableRateLimit": false,
            "urls": {
                "api": {
                    "public": "http://127.0.0.1:8080/kucoin",
                    "private": "http://127.0.0.1:8080/kucoin"
                }
            }
        },
        "ccxt_async_config": {
            "enableRateLimit": false
        }
    }
}

Docker-compose (best way)

See example - docker-compose.yml

  freqtrade-proxy:
    image: mikekonan/freqtrade-proxy:main
    restart: unless-stopped
    container_name: freqtrade-proxy

config.json

{
    "exchange": {
        "name": "kucoin",
        "key": "",
        "secret": "",
        "ccxt_config": {
            "enableRateLimit": false,
            "urls": {
                "api": {
                    "public": "http://freqtrade-proxy:8080/kucoin",
                    "private": "http://freqtrade-proxy:8080/kucoin"
                }
            }
        },
        "ccxt_async_config": {
            "enableRateLimit": false
        }
    }
}

Donations

Donations are appreciated and will make me motivated to support and improve the project.

USDT TRC20 - TYssA3EUfAagJ9afF6vfwJvwwueTafMbGY

XRP - rNFugeoj3ZN8Wv6xhuLegUBBPXKCyWLRkB 1869777767

DOGE - D6xwe5V9jRkvWksiHiajwZsJ3KJxBVqBUC

Owner
Mikalai Konan
Software Engineer
Mikalai Konan
Comments
  • Age filter seems not working

    Age filter seems not working

    I encounter 2 situations:

    1. All pairs get the same listed day - 4
    2. Seems like listed day is not returned or something, but at least age filter does not work (https://www.freqtrade.io/en/stable/plugins/#agefilter)
  • Concurrency limit?

    Concurrency limit?

    Getting

    2021/12/29 17:24:25 The incoming connection cannot be served, because 262144 concurrent connections are served. Try increasing Server.Concurrency
    

    How to increase concurrency? Thanks!

  • Latest version is crashing

    Latest version is crashing

    Hi with the latest version of mikekonan/freqtrade-proxy:main-amd64 (must be 1.0.12) i just did docker pull mikekonan/freqtrade-proxy:main-amd64 then started my docker-compose stack which was working fine on the previous version of mikekonan/freqtrade-proxy:main-amd64

    i am getting this error:

    time="2021-12-06T08:19:58Z" level=info msg="starting proxy server on :8080 port..." caller="/src/proxy/kucoin/kucoin.go:323 (*kucoin).Start" time="2021-12-06T08:20:02Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:20:02Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:20:07Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:20:07Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:20:11Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:20:11Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:20:15Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:20:15Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:20:20Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:20:20Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:20:26Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:20:26Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:20:33Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:20:33Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:20:44Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:20:44Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:21:01Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:21:01Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:21:30Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:21:30Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:22:26Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:22:26Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:23:30Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:23:30Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:24:34Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:24:34Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:25:38Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:25:38Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:25:40Z" level=info msg="starting proxy server on :8080 port..." caller="/src/proxy/kucoin/kucoin.go:323 (*kucoin).Start" time="2021-12-06T08:25:44Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:25:44Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:25:48Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:25:48Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:25:52Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:25:52Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:25:57Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:25:57Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:26:01Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:26:01Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:26:07Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:26:07Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:26:14Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:26:14Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit" time="2021-12-06T08:26:25Z" level=debug msg="proxying over - /kucoin/api/v1/currencies" caller="/src/proxy/kucoin/kucoin.go:303 (*kucoin).Start.func2" time="2021-12-06T08:26:25Z" level=error msg="lookup openapi-v2.kucoin.com: device or resource busy" caller="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2" stack="/src/proxy/kucoin/kucoin.go:312 (*kucoin).Start.func2\n/go/pkg/mod/github.com/qiangxue/[email protected]/context.go:67 (*Context).Next\n/go/pkg/mod/github.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\n/go/pkg/mod/github.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\n/go/pkg/mod/github.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\n/usr/local/go/src/runtime/asm_amd64.s:1581

  • Empty whitelist

    Empty whitelist

    Freqtrade Version: 2021.10 Proxy Version: I was unable to find the version for the specific docker image on my machine, however this is the digest: "mikekonan/freqtrade-proxy@sha256:89639a81424877576624d108bfc5cd4a818ff42b5b285487151a455379a61996" Operating System: Ubuntu 20.04

    Here is my current exchange information in my configuration:

    "name": "kucoin",
            "key": "",
            "secret": "",
            "password": "",
            "ccxt_config": {
                "enableRateLimit": false,
                "timeout": 60000,
                "urls": {
                    "api": {
                        "public": "http://freqtrade-proxy:8080/kucoin",
                        "private": "http://freqtrade-proxy:8080/kucoin"
                    }
                }
            },
            "ccxt_async_config": {
                "enableRateLimit": false,
                "timeout": 60000
            },
    

    My filters:

    {
                "method": "VolumePairList",
                "number_assets": 80,
                "sort_key": "quoteVolume",
                "refresh_period": 1800
            },
            {"method": "AgeFilter", "min_days_listed": 7},
            {"method": "SpreadFilter", "max_spread_ratio": 0.006},
            {
                "method": "RangeStabilityFilter",
                "lookback_days": 3,
                "min_rate_of_change": 0.05,
                "refresh_period": 1800
            },
            {
                "method": "VolatilityFilter",
                "lookback_days": 3,
                "min_volatility": 0.02,
                "max_volatility": 0.75,
                "refresh_period": 43200
            },
            {"method": "ShuffleFilter"}
    

    On start, the proxy works perfectly. After a certain amount of time, my whitelist is down to a very small amount of pairs. Usually 1-6. How it happens, or how long it takes I'm not sure. I have tried pulling the newest image from docker hub, however it doesn't seem to have solved my issue. Sometime within 24 hours of starting this happens. The output of my whitelist is as follows when the problem arises:

    Using whitelist ['VolumePairList', 'AgeFilter', 'SpreadFilter', 'RangeStabilityFilter', 'VolatilityFilter', 'ShuffleFilter'] with 6 pairs
    SUKU/USDT, ENS/USDT, TRX/USDT, OPCT/USDT, LYXE/USDT, WILD/USDT
    
  • Whitelist is emptied

    Whitelist is emptied

    When using the proxy and NFIX strategy pairs are removed from the whitelist after sometime. A reload of the config fixes the issue. I'm running freqtrade 2021.10. It appears to be related to the Volatility Filter. These are the logs

    freqtrade_kucoin    | 2021-11-18 07:22:10,340 - VolatilityFilter - INFO - Removed BTC/USDT from whitelist, because volatility over 3 days is: 0.001 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,342 - VolatilityFilter - INFO - Removed ETH/USDT from whitelist, because volatility over 3 days is: 0.001 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,343 - VolatilityFilter - INFO - Removed CRO/USDT from whitelist, because volatility over 3 days is: 0.006 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,344 - VolatilityFilter - INFO - Removed LUNA/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,345 - VolatilityFilter - INFO - Removed KDA/USDT from whitelist, because volatility over 3 days is: 0.007 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,346 - VolatilityFilter - INFO - Removed AVAX/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,348 - VolatilityFilter - INFO - Removed SAND/USDT from whitelist, because volatility over 3 days is: 0.004 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,349 - VolatilityFilter - INFO - Removed GALAX/USDT from whitelist, because volatility over 3 days is: 0.006 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,350 - VolatilityFilter - INFO - Removed XRP/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,351 - VolatilityFilter - INFO - Removed ALGO/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,352 - VolatilityFilter - INFO - Removed MANA/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,353 - VolatilityFilter - INFO - Removed BLOK/USDT from whitelist, because volatility over 3 days is: 0.007 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,354 - VolatilityFilter - INFO - Removed DOT/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,356 - VolatilityFilter - INFO - Removed VRA/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,357 - VolatilityFilter - INFO - Removed SHIB/USDT from whitelist, because volatility over 3 days is: 0.005 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,358 - VolatilityFilter - INFO - Removed BNB/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,359 - VolatilityFilter - INFO - Removed SOL/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,360 - VolatilityFilter - INFO - Removed LTC/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,361 - VolatilityFilter - INFO - Removed FTM/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,363 - VolatilityFilter - INFO - Removed ADA/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,364 - VolatilityFilter - INFO - Removed ELON/USDT from whitelist, because volatility over 3 days is: 0.008 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,365 - VolatilityFilter - INFO - Removed RNDR/USDT from whitelist, because volatility over 3 days is: 0.006 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,366 - VolatilityFilter - INFO - Removed VET/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,367 - VolatilityFilter - INFO - Removed QRDO/USDT from whitelist, because volatility over 3 days is: 0.008 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,369 - VolatilityFilter - INFO - Removed LRC/USDT from whitelist, because volatility over 3 days is: 0.006 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,370 - VolatilityFilter - INFO - Removed HTR/USDT from whitelist, because volatility over 3 days is: 0.007 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,371 - VolatilityFilter - INFO - Removed DOGE/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,372 - VolatilityFilter - INFO - Removed ROSE/USDT from whitelist, because volatility over 3 days is: 0.004 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,373 - VolatilityFilter - INFO - Removed FLUX/USDT from whitelist, because volatility over 3 days is: 0.008 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,374 - VolatilityFilter - INFO - Removed TRX/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,375 - VolatilityFilter - INFO - Removed TRIAS/USDT from whitelist, because volatility over 3 days is: 0.004 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,377 - VolatilityFilter - INFO - Removed MATIC/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,378 - VolatilityFilter - INFO - Removed ATOM/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,379 - VolatilityFilter - INFO - Removed XTM/USDT from whitelist, because volatility over 3 days is: 0.007 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,380 - VolatilityFilter - INFO - Removed ONE/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,381 - VolatilityFilter - INFO - Removed TEL/USDT from whitelist, because volatility over 3 days is: 0.006 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,382 - VolatilityFilter - INFO - Removed JASMY/USDT from whitelist, because volatility over 3 days is: 0.004 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,383 - VolatilityFilter - INFO - Removed NAKA/USDT from whitelist, because volatility over 3 days is: 0.008 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,385 - VolatilityFilter - INFO - Removed XLM/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,386 - VolatilityFilter - INFO - Removed WAXP/USDT from whitelist, because volatility over 3 days is: 0.005 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,387 - VolatilityFilter - INFO - Removed PYR/USDT from whitelist, because volatility over 3 days is: 0.005 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,388 - VolatilityFilter - INFO - Removed SCLP/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,389 - VolatilityFilter - INFO - Removed MOVR/USDT from whitelist, because volatility over 3 days is: 0.004 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,390 - VolatilityFilter - INFO - Removed ENJ/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,391 - VolatilityFilter - INFO - Removed CRV/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,393 - VolatilityFilter - INFO - Removed LINK/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,394 - VolatilityFilter - INFO - Removed RMRK/USDT from whitelist, because volatility over 3 days is: 0.008 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,395 - VolatilityFilter - INFO - Removed NEAR/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,396 - VolatilityFilter - INFO - Removed OPUL/USDT from whitelist, because volatility over 3 days is: 0.006 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,397 - VolatilityFilter - INFO - Removed EXRD/USDT from whitelist, because volatility over 3 days is: 0.008 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,398 - VolatilityFilter - INFO - Removed GRT/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,399 - VolatilityFilter - INFO - Removed CAKE/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,401 - VolatilityFilter - INFO - Removed IOTX/USDT from whitelist, because volatility over 3 days is: 0.013 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,402 - VolatilityFilter - INFO - Removed EOS/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,403 - VolatilityFilter - INFO - Removed CHR/USDT from whitelist, because volatility over 3 days is: 0.006 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,404 - VolatilityFilter - INFO - Removed XPR/USDT from whitelist, because volatility over 3 days is: 0.004 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,406 - VolatilityFilter - INFO - Removed DYDX/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,407 - VolatilityFilter - INFO - Removed XYO/USDT from whitelist, because volatility over 3 days is: 0.007 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,408 - VolatilityFilter - INFO - Removed SENSO/USDT from whitelist, because volatility over 3 days is: 0.004 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,409 - VolatilityFilter - INFO - Removed QNT/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,410 - VolatilityFilter - INFO - Removed CPOOL/USDT from whitelist, because volatility over 3 days is: 0.009 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,412 - VolatilityFilter - INFO - Removed HERO/USDT from whitelist, because volatility over 3 days is: 0.004 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,413 - VolatilityFilter - INFO - Removed GLCH/USDT from whitelist, because volatility over 3 days is: 0.005 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,414 - VolatilityFilter - INFO - Removed BOSON/USDT from whitelist, because volatility over 3 days is: 0.004 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,415 - VolatilityFilter - INFO - Removed LTO/USDT from whitelist, because volatility over 3 days is: 0.005 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,416 - VolatilityFilter - INFO - Removed RFOX/USDT from whitelist, because volatility over 3 days is: 0.005 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,418 - VolatilityFilter - INFO - Removed WIN/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,419 - VolatilityFilter - INFO - Removed QI/USDT from whitelist, because volatility over 3 days is: 0.006 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,420 - VolatilityFilter - INFO - Removed ICP/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75.
    freqtrade_kucoin    | 2021-11-18 07:22:10,421 - VolatilityFilter - INFO - Removed ACE/USDT from whitelist, because volatility over 3 days is: 0.006 which is not in the configured range of 0.02-0.75.
    
  • Age filter not working

    Age filter not working

    2021-12-02 14:53:34 - AgeFilter - INFO - Removed VR/USDT from whitelist, because age 0 is less than 14 days 2021-12-02 14:53:34 - AgeFilter - INFO - Removed XTAG/USDT from whitelist, because age 2 is less than 14 days 2021-12-02 14:53:34 - AgeFilter - INFO - Removed MNET/USDT from whitelist, because age 1 is less than 14 days 2021-12-02 14:53:34 - AgeFilter - INFO - Removed ILA/USDT from whitelist, because age 7 is less than 14 days 2021-12-02 14:53:34 - AgeFilter - INFO - Removed RSR/USDT from whitelist, because age 7 is less than 14 days 2021-12-02 14:53:34 - AgeFilter - INFO - Removed POLC/USDT from whitelist, because age 2 is less than 14 days

    2021-12-02 15:23:15 - VolumePairList - INFO - Searching 80 pairs: ['BTC/USDT', 'ETH/USDT', 'LUNA/USDT', 'MATIC/USDT', 'SHIB/USDT', 'SOL/USDT', 'ADA/USDT', 'SAND/USDT', 'XRP/USDT', 'AVAX/USDT', 'MANA/USDT', 'KDA/USDT', 'BNB/USDT', 'CRO/USDT', 'HERO/USDT', 'BLOK/USDT', 'VR/USDT', 'DOT/USDT', 'FTM/USDT', 'REQ/USDT', 'BAX/USDT', 'VRA/USDT', 'LTC/USDT', 'DOGE/USDT', 'PYR/USDT', 'ALGO/USDT', 'RNDR/USDT', 'EGLD/USDT', 'VET/USDT', 'ALICE/USDT', 'GALAX/USDT', 'ROSE/USDT', 'RMRK/USDT', 'QRDO/USDT', 'KOK/USDT', 'LRC/USDT', 'DYDX/USDT', 'XLM/USDT', 'ATOM/USDT', 'ONE/USDT', 'MOVR/USDT', 'XTAG/USDT', 'MNET/USDT', 'TRX/USDT', 'SHILL/USDT', 'HTR/USDT', 'TLM/USDT', 'CRV/USDT', 'LINK/USDT', 'NTVRK/USDT', 'FLUX/USDT', 'UOS/USDT', 'CWAR/USDT', 'TEL/USDT', 'QI/USDT', 'NAKA/USDT', 'DFI/USDT', 'EWT/USDT', 'YGG/USDT', 'QNT/USDT', 'STX/USDT', 'ELON/USDT', 'ILA/USDT', 'RFOX/USDT', 'ENJ/USDT', 'TRIAS/USDT', 'RSR/USDT', 'SOUL/USDT', 'SUPER/USDT', 'ZKT/USDT', 'POLC/USDT', 'EOS/USDT', 'DIVI/USDT', '1INCH/USDT', 'XTZ/USDT', 'JASMY/USDT', 'XTM/USDT', 'ZEC/USDT', 'UNI/USDT', 'NUM/USDT']

    However, POLC, RSR, ILA, MNET and VR are still in pairlist,but they should have been blocked by the age filter.

  • Issue with agefilter ?

    Issue with agefilter ?

    Hello,

    I'd like to sumbit an issue with Agefilter which might be related to kucoin-proxy :

    Using whitelist ['VolumePairList', 'AgeFilter', 'PrecisionFilter', 'PriceFilter', 'SpreadFilter', 'ShuffleFilter'] with 73 pairs
    TEL/USDT, RMRK/USDT, NUM/USDT, SHILL/USDT, MANA/USDT, MATIC/USDT, SOL/USDT, ADA/USDT, ONE/USDT, QNT/USDT, BCH/USDT, ENJ/USDT, XMR/USDT, FTM/USDT, XRP/USDT, DOT/USDT, LINK/USDT, LTC/USDT, ROSE/USDT, VET/USDT, ETH/USDT, SAND/USDT, QRDO/USDT, MOVR/USDT, FIL/USDT, KOK/USDT, FLUX/USDT, BTC/USDT, STRONG/USDT, XLM/USDT, EGLD/USDT, AXS/USDT, GRT/USDT, UOS/USDT, BLOK/USDT, DOGE/USDT, HTR/USDT, XTM/USDT, PYR/USDT, THETA/USDT, 1INCH/USDT, SUPER/USDT, COMP/USDT, JASMY/USDT, VR/USDT, ALGO/USDT, LUNA/USDT, CRO/USDT, BTT/USDT, PBX/USDT, ALICE/USDT, GALAX/USDT, SOUL/USDT, RNDR/USDT, HERO/USDT, EOS/USDT, LRC/USDT, DYDX/USDT, DODO/USDT, ATOM/USDT, KDA/USDT, NAKA/USDT, AVAX/USDT, VRA/USDT, TRIAS/USDT, ICP/USDT, NEAR/USDT, ZEC/USDT, TRX/USDT, KCS/USDT, RUNE/USDT, XTZ/USDT, CREDI/USDT
    "pairlists": [
        {
            "method": "VolumePairList",
            "number_assets": 90,
            "sort_key": "quoteVolume",
            "min_value": 0,
            "refresh_period": 1800
        },
              {"method": "AgeFilter", "min_days_listed": 21},
              {"method": "PrecisionFilter"},
              {"method": "PriceFilter", "low_price_ratio": 0.002},
              {"method": "SpreadFilter", "max_spread_ratio": 0.004},
              {"method": "ShuffleFilter"}
             ], 
    

    I have CREDI/USDT in my whitelist which is one day old I'm using kucoin and kucoin proxy, freqtrade version is docker 2021.11

    Below some freqtrade logs which show that agefilter is sometimes active and sometimes not :

    2021-12-09 10:39:37,299 - VolumePairList - INFO - Searching 90 pairs: ['BTC/USDT', 'ETH/USDT', 'LUNA/USDT', 'MATIC/USDT', 'XRP/USDT', 'LRC/USDT', 'AVAX/USDT', 'VRA/USDT', 'SAND/USDT', 'KDA/USDT', 'DOT/USDT', 'XTZ/USDT', 'SOL/USDT', 'MANA/USDT', 'NEAR/USDT', 'ADA/USDT', 'ATOM/USDT', 'LINK/USDT', 'CRO/USDT', 'BLOK/USDT', 'FTM/USDT', 'EOS/USDT', 'WAXP/USDT', 'VR/USDT', 'LTC/USDT', 'PYR/USDT', 'XLM/USDT', 'KCS/USDT', 'BTT/USDT', 'ROSE/USDT', 'QRDO/USDT', 'RMRK/USDT', 'GALAX/USDT', 'ICP/USDT', 'HERO/USDT', 'HTR/USDT', 'TRX/USDT', 'DOGE/USDT', 'NAKA/USDT', 'VET/USDT', 'EGLD/USDT', 'QNT/USDT', 'SUPER/USDT', 'FIL/USDT', 'UOS/USDT', 'ONE/USDT', 'SHILL/USDT', 'RNDR/USDT', 'TRIAS/USDT', 'MOVR/USDT', 'ENJ/USDT', 'IMX/USDT', 'TEL/USDT', 'GRT/USDT', 'FLUX/USDT', 'ALGO/USDT', 'KOK/USDT', 'DYDX/USDT', 'CRV/USDT', 'SUSHI/USDT', 'XTM/USDT', 'RUNE/USDT', '1INCH/USDT', 'RSR/USDT', 'ILA/USDT', 'STX/USDT', 'SOUL/USDT', 'ELON/USDT', 'BCH/USDT', 'THETA/USDT', 'TLM/USDT', 'MASK/USDT', 'ALICE/USDT', 'XPR/USDT', 'PBX/USDT', 'CIRUS/USDT', 'ZEC/USDT', 'GODS/USDT', 'KIN/USDT', 'UNI/USDT', 'MIR/USDT', 'FTT/USDT', 'DODO/USDT', 'RFOX/USDT', 'CREDI/USDT', 'WOO/USDT', 'LTO/USDT', 'KSM/USDT', 'CBC/USDT', 'XMR/USDT']
    2021-12-09 10:39:37,861 - AgeFilter - INFO - Removed CREDI/USDT from whitelist, because age 0 is less than 21 days
    2021-12-09 10:39:37,862 - AgeFilter - INFO - Validated 87 pairs.
    
    2021-12-09 11:10:28,822 - VolumePairList - INFO - Searching 90 pairs: ['BTC/USDT', 'ETH/USDT', 'LUNA/USDT', 'MATIC/USDT', 'XRP/USDT', 'LRC/USDT', 'SAND/USDT', 'AVAX/USDT', 'VRA/USDT', 'KDA/USDT', 'XTZ/USDT', 'DOT/USDT', 'SOL/USDT', 'MANA/USDT', 'NEAR/USDT', 'ADA/USDT', 'ATOM/USDT', 'BLOK/USDT', 'FTM/USDT', 'CRO/USDT', 'LINK/USDT', 'EOS/USDT', 'WAXP/USDT', 'VR/USDT', 'LTC/USDT', 'XLM/USDT', 'PYR/USDT', 'KCS/USDT', 'BTT/USDT', 'GALAX/USDT', 'ROSE/USDT', 'QRDO/USDT', 'RMRK/USDT', 'HERO/USDT', 'HTR/USDT', 'ICP/USDT', 'TRX/USDT', 'NAKA/USDT', 'DOGE/USDT', 'EGLD/USDT', 'VET/USDT', 'QNT/USDT', 'SUPER/USDT', 'ONE/USDT', 'FIL/USDT', 'RNDR/USDT', 'UOS/USDT', 'SHILL/USDT', 'TRIAS/USDT', 'MOVR/USDT', 'ENJ/USDT', 'KOK/USDT', 'IMX/USDT', 'GRT/USDT', 'TEL/USDT', 'FLUX/USDT', 'DYDX/USDT', 'ALGO/USDT', 'SUSHI/USDT', 'CRV/USDT', 'XTM/USDT', 'RUNE/USDT', '1INCH/USDT', 'ILA/USDT', 'CREDI/USDT', 'RSR/USDT', 'STX/USDT', 'ALICE/USDT', 'SOUL/USDT', 'BCH/USDT', 'ELON/USDT', 'THETA/USDT', 'MASK/USDT', 'TLM/USDT', 'XPR/USDT', 'PBX/USDT', 'CIRUS/USDT', 'ZEC/USDT', 'KIN/USDT', 'GODS/USDT', 'FTT/USDT', 'MIR/USDT', 'CBC/USDT', 'RFOX/USDT', 'DODO/USDT', 'UNI/USDT', 'WOO/USDT', 'API3/USDT', 'KSM/USDT', 'XMR/USDT']
    2021-12-09 11:10:29,422 - AgeFilter - INFO - Validated 87 pairs.
    
    
    'LRC/USDT', 'DOT/USDT', 'KDA/USDT', 'ADA/USDT', 'NEAR/USDT', 'GALAX/USDT', 'KOK/USDT', 'LINK/USDT', 'BLOK/USDT', 'PYR/USDT', 'CRO/USDT', 'FTM/USDT', 'KCS/USDT', 'ATOM/USDT', 'FLUX/USDT', 'MIR/USDT', 'QRDO/USDT', 'ROSE/USDT', 'LTC/USDT', 'RMRK/USDT', 'XTZ/USDT', 'HERO/USDT', 'XLM/USDT', 'EOS/USDT', 'TRX/USDT', 'BTT/USDT', 'CREDI/USDT', 'VET/USDT', 'HTR/USDT', 'RNDR/USDT', 'WAXP/USDT', 'DOGE/USDT', 'EGLD/USDT', 'UOS/USDT', 'NAKA/USDT', 'ONE/USDT', 'MOVR/USDT', 'TEL/USDT', 'QNT/USDT', 'ENJ/USDT', 'IOTX/USDT', 'FIL/USDT', 'TRIAS/USDT', 'ICP/USDT', 'ALICE/USDT', 'CBC/USDT', 'RSR/USDT', 'ALGO/USDT', 'SHILL/USDT', 'DYDX/USDT', 'IMX/USDT', 'ILA/USDT', 'CRV/USDT', 'ELON/USDT', 'API3/USDT', 'SUPER/USDT', 'JASMY/USDT', 'NUM/USDT', 'SOUL/USDT', 'TLM/USDT', 'ZEC/USDT', 'GRT/USDT', 'KIN/USDT', 'RUNE/USDT', 'XTM/USDT', '1INCH/USDT', 'DODO/USDT', 'PBX/USDT', 'THETA/USDT', 'RFOX/USDT', 'CIRUS/USDT', 'BCH/USDT', 'XMR/USDT', 'ZKT/USDT', 'AXS/USDT', 'STRONG/USDT', 'COMP/USDT', 'MASK/USDT', 'GODS/USDT']
    2021-12-10 03:25:54,453 - AgeFilter - INFO - Removed GODS/USDT from whitelist, because age 11 is less than 21 days
    2021-12-10 03:25:54,453 - AgeFilter - INFO - Validated 88 pairs.
    
    
    
  • You are being rate limited

    You are being rate limited

    Happy New Year Mike,

    NB: I noticed the here under while updating freqtre to 2021-12.

    I'm using your proxy since a little while, with my Kucoin Exchange, and my docker-compose.yml file is structured like this...

    freqtrade-kcproxy: image: mikekonan/freqtrade-proxy:main-arm64 restart: unless-stopped container_name: freqtrade-proxy

    freqtrade1: environment: SLEEP: "60" build: context: . dockerfile: "Dockerfile" restart: unless-stopped container_name: freqtrade1 volumes: - "./user_data:/freqtrade/user_data" ports: - "127.0.0.1:9301:8080" command: > trade --db-url sqlite:////freqtrade/user_data/myfirstDB.sqlite --config /freqtrade/user_data/myfirstCONFIG.json --strategy myfirstStrategy --logfile /freqtrade/user_data/logs/myfirstLOG.log

    freqtrade2: environment: SLEEP: "60" build: etc... etc...

    My config .json on the section involved with your proxy is as following content:

        "ccxt_config": {
            "enableRateLimit": false,
            "timeout": 60000,
            "urls": {
                "api": {
                    "public": "http://freqtrade-proxy:8080/kucoin",
                    "private": "http://freqtrade-proxy:8080/kucoin"
                }
            }
        },
        "ccxt_async_config": {
           "enableRateLimit": false,
                        "timeout": 60000
        },
    

    And here below the extract of my logs :

    freqtrade3 | Ray ID: 6c8311993b3e346f • freqtrade3 | 2022-01-04 08:24:07 UTC freqtrade3 |

    You are being rate limited

    freqtrade3 | freqtrade3 | freqtrade3 |
    freqtrade3 |
    freqtrade3 |

    What happened?

    freqtrade3 |

    The owner of this website (openapi-v2.kucoin.com) has banned you temporarily from accessing this website.

    freqtrade3 | freqtrade3 |
    freqtrade3 | freqtrade3 | freqtrade3 |
    freqtrade3 | freqtrade3 | freqtrade3 | freqtrade3 | freqtrade3 |
    freqtrade3 |
    freqtrade3 | freqtrade3 | freqtrade3 | freqtrade3 | freqtrade3 | " freqtrade3 | 2022-01-04 08:24:07,886 - freqtrade.exchange.common - WARNING - retrying fetch_ticker() still for 1 times freqtrade3 | 2022-01-04 08...

    Do you have an idea of what could be wrong ?

    Thank you

  • Issue with volitility filter

    Issue with volitility filter

    Below is an example of where volatility is not correct. I know for a fact that many of these have much higher volitility.

    2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed BTC/USDT from whitelist, because volatility over 3 days is: 0.001 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed ETH/USDT from whitelist, because volatility over 3 days is: 0.001 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed LUNA/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed SAND/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed GALAX/USDT from whitelist, because volatility over 3 days is: 0.005 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed MANA/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed SHIB/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed CRO/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed KDA/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed XRP/USDT from whitelist, because volatility over 3 days is: 0.001 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed AVAX/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed BLOK/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed REQ/USDT from whitelist, because volatility over 3 days is: 1.328 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed FTM/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed BNB/USDT from whitelist, because volatility over 3 days is: 0.001 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed DOT/USDT from whitelist, because volatility over 3 days is: 0.001 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed PYR/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed VRA/USDT from whitelist, because volatility over 3 days is: 0.002 which is not in the configured range of 0.02-0.75. 2021-11-26 15:08:02 - VolatilityFilter - INFO - Removed LRC/USDT from whitelist, because volatility over 3 days is: 0.003 which is not in the configured range of 0.02-0.75.

  • check this please

    check this please

    • freqtrade.exchange.common - WARNING - _async_get_candle_history() returned exception: "Could not fetch historical candle (OHLCV) data for pair LTO/USDT due to ExchangeNotAvailable. Message: kucoin GET http://freqtrade-proxy:8080/kucoin/api/v1/market/candles?symbol=LTO-USDT&type=5min&startAt=1636827968&endAt=1636977968 500 Internal Server Error [HTTP]Failure: status code is NOT 200, GET /api/v1/market/candles?endAt=1636977968&startAt=1636827900&symbol=LTO-USDT&type=5min with body=, respond code=429 body={"code":"429000","msg":"Too Many Requests"}"
  • Limits

    Limits

    Hi Mike,

    Thanks for your work regarding this proxy tool for FreqTrade ... it seriously help.

    I have actually a couple of bots using it and it works just fine.

    Do you know the limits as far as the maximum number of bots able to connect to the proxy with Kucoin subaccounts ?

    Thank you for your reply and pretty week-end to you.

  • panic: runtime error: invalid memory address or nil pointer dereference

    panic: runtime error: invalid memory address or nil pointer dereference

    I see this in the logs at least once per day. The service restarts the proxy, but it shuts down for at least a few minutes.

    `Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: panic: runtime error: invalid memory address or nil pointer dereference Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: [signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x78f5aa] Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: goroutine 765 [running]: Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: [github.com/mikekonan/exchange-proxy/store.(*TTLCache).Get(0xc00000e2b8](http://github.com/mikekonan/exchange-proxy/store.(*TTLCache).Get(0xc00000e2b8), {0xc000302fe0, 0x20}) Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: #011github.com/mikekonan/exchange-proxy/store/ttl_cache.go:41 +0x12a Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: github.com/mikekonan/exchange-proxy/proxy.TransparentOverCacheHandler.func1(0xc0001ed570) Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: #011github.com/mikekonan/exchange-proxy/proxy/handler.go:52 +0x105 Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: github.com/qiangxue/fasthttp-routing.(*Context).Next(0xc0001ed570) Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: #011github.com/qiangxue/[email protected]/context.go:67 +0x55 Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: [github.com/qiangxue/fasthttp-routing.(*Router).HandleRequest(0xc000227720](http://github.com/qiangxue/fasthttp-routing.(*Router).HandleRequest(0xc000227720), 0xc000bb2580) Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: #011github.com/qiangxue/[email protected]/router.go:75 +0x1d0 Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: [github.com/valyala/fasthttp.(*Server).serveConn(0xc000130d80](http://github.com/valyala/fasthttp.(*Server).serveConn(0xc000130d80), {0x914f48?, 0xc000010188}) Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: #011github.com/valyala/[email protected]/server.go:2251 +0x1167 Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: [github.com/valyala/fasthttp.(*workerPool).workerFunc(0xc0003166e0](http://github.com/valyala/fasthttp.(*workerPool).workerFunc(0xc0003166e0), 0xc0008f5cc0) Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: #011github.com/valyala/[email protected]/workerpool.go:223 +0xa9 Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: github.com/valyala/fasthttp.(*workerPool).getCh.func1() Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: #011github.com/valyala/[email protected]/workerpool.go:195 +0x38 Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: created by github.com/valyala/fasthttp.(*workerPool).getCh Apr 17 16:55:12 ip-172-31-74-118 exchange-proxy[8069]: #011github.com/valyala/[email protected]/workerpool.go:194 +0x1b0

    Apr 17 16:55:22 ip-172-31-74-118 systemd[1]: kucoin_proxy.service: Scheduled restart job, restart counter is at 5.`

  • Issue with large startup_candle_count

    Issue with large startup_candle_count

    Hello, I'm having an issue when using startup_candle_count > 800. I really don't need that much candles, but my strategy works on 5m and 1h candles, so to have 100 1h candles I have to set a minimum of 100*12 5m candles. However, I've found that the number or candles in my dataframe varies unexpectedly when using this proxy. To check it, I'm printing the length of both 5m and 1h dataframes at the beginning of the populate_indicators() function.

    When I'm not using the proxy, the length of the 5m candles is always a number near but higher than startup_candle_count, and the number of 1h candles is near the number of 5m candles divided by 12. For example, for startup_candle_count = 801 I'm getting 999 5m candles and 83 1h candles.

    When I'm using the proxy, for startup_candle_count = 700 this behavior is the same, but if I use 800 or more startup candles, then the length of the 1h candles becomes near but higher than startup_candle_count, and the number of 5m candles is that multiplied by 12 (so around 10000). For example, with the proxy enabled, for startup_candle_count = 801 I'm getting 11995 5m candles and 999 1h candles, while for startup_candle_count = 700 I'm getting 999 5m candles and 83 1h candles.

    When this happens, I'm also getting this error for each time new candles are received (this uses startup_candle_count = 801):

    ...
    2022-02-22 14:32:28,367 - freqtrade.data.converter - INFO - Missing data fillup for ALGO/USDT: before: 620 - after: 999 - 61.13%
    2022-02-22 14:32:28,447 - freqtrade.data.converter - INFO - Missing data fillup for VET/USDT: before: 620 - after: 999 - 61.13%
    2022-02-22 14:32:28,474 - freqtrade.data.converter - INFO - Missing data fillup for XRP/USDT: before: 620 - after: 999 - 61.13%
    2022-02-22 14:32:28,501 - freqtrade.data.converter - INFO - Missing data fillup for IMX/USDT: before: 620 - after: 999 - 61.13%
    2022-02-22 14:32:28,510 - freqtrade.data.converter - INFO - Missing data fillup for QRDO/USDT: before: 620 - after: 999 - 61.13%
    2022-02-22 14:32:28,519 - freqtrade.data.converter - INFO - Missing data fillup for ARKER/USDT: before: 620 - after: 999 - 61.13%
    2022-02-22 14:32:28,563 - freqtrade.data.converter - INFO - Missing data fillup for TLOS/USDT: before: 620 - after: 999 - 61.13%
    2022-02-22 14:32:28,590 - freqtrade.data.converter - INFO - Missing data fillup for ZEC/USDT: before: 620 - after: 999 - 61.13%
    2022-02-22 14:32:28,684 - freqtrade.data.converter - INFO - Missing data fillup for EOS/USDT: before: 620 - after: 999 - 61.13%
    ...
    

    This latter error seems to me that refers to the 1h data (based on the 999 length).

  • More issues with AgeFilter

    More issues with AgeFilter

    Hi Mike, Unfortunately, it is still not good. I have in the configuration, among others:

                    {
                            "method": "VolumePairList",
                            "number_assets": 100,
                            "sort_key": "quoteVolume",
                            "refresh_period": 1800
                    },
                    {
                           "method": "AgeFilter", "min_days_listed": 31
                    },
    ...
    ...
    ...
    

    I just noticed in FreqUI that my whiltelist is only 5 pairs. A quick check in the FT log and we see such wonders:

    2022-01-18 21:46:01 - VolumePairList - INFO - Searching 100 pairs: ['LUNA/USDT', 'ADA/USDT', 'MATIC/USDT', 'CLH/USDT', 'ONE/USDT', 'ROSE/USDT', 'DOT/USDT', 'XRP/USDT', 'SOL/USDT', 'VRA/USDT', 'LINK/USDT', 'KDA/USDT', 'GARI/USDT', 'LTC/USDT', 'DOGE/USDT', 'KOK/USDT', 'MANA/USDT', 'GLMR/USDT', 'FLUX/USDT', 'PBX/USDT', 'STX/USDT', 'QNT/USDT', 'CRO/USDT', 'ICP/USDT', 'CRV/USDT', 'RNDR/USDT', 'TRX/USDT', 'ALGO/USDT', 'QRDO/USDT', 'XLM/USDT', 'BLOK/USDT', 'STRONG/USDT', 'VET/USDT', 'WOO/USDT', 'VR/USDT', 'MOVR/USDT', 'THETA/USDT', 'EOS/USDT', 'EGLD/USDT', 'RUNE/USDT', 'ETC/USDT', 'CHR/USDT', 'DYDX/USDT', 'XMR/USDT', 'IOTX/USDT', 'ENJ/USDT', 'RMRK/USDT', 'ELA/USDT', 'CAKE/USDT', 'ROUTE/USDT', 'TEL/USDT', 'NEO/USDT', 'IMX/USDT', 'PRE/USDT', 'REQ/USDT', 'GALAX/USDT', 'GODS/USDT', 'ELON/USDT', 'BCH/USDT', 'UFO/USDT', 'FIL/USDT', 'UOS/USDT', 'XPR/USDT', '1EARTH/USDT', 'XTZ/USDT', 'NIF/USDT', 'SFUND/USDT', 'OOE/USDT', 'AXS/USDT', 'TRIAS/USDT', 'FTT/USDT', 'XDC/USDT', 'GRT/USDT', 'ENS/USDT', 'SHILL/USDT', 'SOS/USDT', 'KSM/USDT', 'SKL/USDT', 'ZEC/USDT', '1INCH/USDT', 'WILD/USDT', 'ILA/USDT', 'MHC/USDT', 'CIRUS/USDT', 'CHMB/USDT', 'XCAD/USDT', 'ZIL/USDT', 'MIR/USDT', 'CQT/USDT', 'TIME/USDT', 'HERO/USDT', 'XHV/USDT', 'SHA/USDT', 'SENSO/USDT', 'VLX/USDT', 'DAG/USDT', 'DFI/USDT', 'DAO/USDT', 'FLOW/USDT', 'VXV/USDT']
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed LUNA/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed ADA/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed MATIC/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed CLH/USDT from whitelist, because age 11 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed ONE/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed ROSE/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed DOT/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed XRP/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed SOL/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed VRA/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed LINK/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed KDA/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed GARI/USDT from whitelist, because age 0 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed LTC/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed DOGE/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed KOK/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed MANA/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed GLMR/USDT from whitelist, because age 7 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed FLUX/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed PBX/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed STX/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed QNT/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed CRO/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed ICP/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed CRV/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed RNDR/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed TRX/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed ALGO/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed QRDO/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed XLM/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed BLOK/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed STRONG/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed VET/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed WOO/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed VR/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed MOVR/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed THETA/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed EOS/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed EGLD/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed RUNE/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed ETC/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed CHR/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed DYDX/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed XMR/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed IOTX/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed ENJ/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed RMRK/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed ELA/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed CAKE/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed ROUTE/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed TEL/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed NEO/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed IMX/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed PRE/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed REQ/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed GALAX/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed GODS/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed BCH/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed FIL/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed UOS/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed XPR/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed 1EARTH/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed XTZ/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed NIF/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed SFUND/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed OOE/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed AXS/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed TRIAS/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed FTT/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed XDC/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed GRT/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed ENS/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed SHILL/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed SOS/USDT from whitelist, because age 24 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed SKL/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed ZEC/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed 1INCH/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed WILD/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed ILA/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed MHC/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed CIRUS/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed CHMB/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed XCAD/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed ZIL/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed CQT/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed TIME/USDT from whitelist, because age 21 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed HERO/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed XHV/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed SHA/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed SENSO/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed VLX/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed DAG/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed DFI/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed DAO/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Removed VXV/USDT from whitelist, because age 4 is less than 31 days
    2022-01-18 21:46:02 - AgeFilter - INFO - Validated 5 pairs.
    

    In any case, out of the expected 100 * / USDT pairs, 95 pairs were dropped, which is obvious nonsense, if only because all these 95 pairs were 4 days old.

    The glitch mentioned reappears very irregularly, for a while everything seems to be working fine, then there is a case of clearing the whitelist to zero, or a fraction of what it should contain.

    After launching my FT for Kucoin without a proxy, it works rather poorly / sluggishly for me, but at least I have an expected list. After starting FT without a proxy, I have in my log:

    ...
    2022-01-18 23:55:44 - AgeFilter - INFO - Removed CLH/USDT from whitelist, because age 11 is less than 31 days
    2022-01-18 23:55:44 - AgeFilter - INFO - Removed GARI/USDT from whitelist, because age 0 is less than 31 days
    2022-01-18 23:55:44 - AgeFilter - INFO - Removed GLMR/USDT from whitelist, because age 7 is less than 31 days
    2022-01-18 23:55:44 - AgeFilter - INFO - Removed SOS/USDT from whitelist, because age 24 is less than 31 days
    2022-01-18 23:55:44 - AgeFilter - INFO - Removed TIME/USDT from whitelist, because age 21 is less than 31 days
    2022-01-18 23:55:44 - AgeFilter - INFO - Validated 95 pairs.
    ...
    

    It turns out that pairs that were previously supposed to be 4 days old are now "correct", validated

    I've seen signals with similar behavior using your proxy for a long time. I would be very glad if you could look at this problem again ...

    Best wishes :-)

    P.S. I build the proxy myself on my VPS with

    ubuntu@jerzya1ampere-2cpus-2live-usdt:~/kucoin-proxy$ go version
    go version go1.17.6 linux/arm64
    

    from version:

    commit 3f96b22542fd9dcb8656f4d1717f7e6e34d015be (HEAD -> main, tag: v1.2.6, origin/main, origin/HEAD)
    Author: Mikalai Konan <[email protected]>
    Date:   Fri Jan 14 15:23:58 2022 +0300
    
  • Outdated history

    Outdated history

    When i use latest version (in docker) mikekonan/exchange-proxy:latest-amd64 i get continue Outdated history for pair like: 2022-01-18 10:34:53 - freqtrade.strategy.interface - WARNING - Outdated history for pair LIT/USDT. Last tick is 10 minutes old 2022-01-18 10:34:53 - freqtrade.strategy.interface - WARNING - Outdated history for pair ALPACA/USDT. Last tick is 8 minutes old 2022-01-18 10:34:58 - freqtrade.strategy.interface - WARNING - Outdated history for pair LIT/USDT. Last tick is 10 minutes old 2022-01-18 10:34:58 - freqtrade.strategy.interface - WARNING - Outdated history for pair ALPACA/USDT. Last tick is 8 minutes old 2022-01-18 10:35:09 - freqtrade.strategy.interface - WARNING - Outdated history for pair LIT/USDT. Last tick is 11 minutes old 2022-01-18 10:35:09 - freqtrade.strategy.interface - WARNING - Outdated history for pair ALPACA/USDT. Last tick is 9 minutes old

    When i go back to mikekonan/freqtrade-proxy:main-amd64 everything working fine?

  • Issue with Volatility filter

    Issue with Volatility filter

    Hi Mike

    There still seems to be an issue with the Volatility filter when running through the proxy. I updated to v1.2.0 e536fc2 today (seemed to be working OK with v1.0.12 previously)

    I made an updated version of the VolatilityFilter to use hours (1h) instead of days (1d) The VolatilityFilterHours works OK with anything up to 48 lookback hours, but anything over that just filters out every pair with nan

    If I run without the proxy (or back to v1.0.12) it works OK.

    2021-12-29 13:47:49,913 - VolatilityFilterHours - INFO - Removed WAXP/USDT from whitelist, because volatility over 49 hours is: nan which is not in the configured range of 0.02-0.75. 2021-12-29 13:47:49,914 - VolatilityFilterHours - INFO - Removed PBX/USDT from whitelist, because volatility over 49 hours is: nan which is not in the configured range of 0.02-0.75. 2021-12-29 13:47:49,915 - VolatilityFilterHours - INFO - Removed ANC/USDT from whitelist, because volatility over 49 hours is: nan which is not in the configured range of 0.02-0.75. 2021-12-29 13:47:49,916 - VolatilityFilterHours - INFO - Removed LTO/USDT from whitelist, because volatility over 49 hours is: nan which is not in the configured range of 0.02-0.75. Pairs for USDT: []

            "method": "VolatilityFilterHours",
            "lookback_hours": 49,
            "min_volatility": 0.02,
            "max_volatility": 0.75,
            "refresh_period": 1800
    

    Perhaps the proxy is only getting the last 2 days of 1h data? Let me know if you need any more info

  • Let specify the listening interface and / or ip

    Let specify the listening interface and / or ip

    Hi,

    I have a server with multiple IPV4, i would like to launch the proxy on all available ips / interfaces instead of 0.0.0.0, so i can use more than 7-8 bots (more than this number will make the ip banned by cloudflare)

    EG: i can use a specific ip with curl like curl --interface vint0 ifconfig.me

    Edit: i have tested by changing the code:

    panic(fasthttp.ListenAndServe(fmt.Sprintf(":%d", port), router.HandleRequest)) with panic(fasthttp.ListenAndServe(fmt.Sprintf("x.x.x.x:%d", port), router.HandleRequest))

    but it doesn't works, the ip used is still my "default" ip (i can see that with the cloudflare ban which display the ip used) I don't know if you can use something like SO_BINDTODEVICE with your go libs ?

    Edit2: Found that, idk if it can help you: https://github.com/valyala/fasthttp/issues/759

  • a simple shitty project for learn more about websockets

    video-transmission A simple shitty project for learn more about websockets. For run this you only need to have docker in your computer and then execut

    Mar 29, 2022
    Go client for an OBS WebSockets server

    goobs It's a Go client for Palakis/obs-websocket, allowing us to interact with OBS Studio via Go. disclaimer This project is still a work-in-progress.

    Jan 1, 2023
    handling 1M websockets connections in Go

    Going Infinite, handling 1M websockets connections in Go This repository holds the complete implementation of the examples seen in Gophercon Israel ta

    Jan 1, 2023
    A small and basic service to echo requests made via websockets

    Ping Service A small and basic service to echo requests made via websockets, can be useful for measuring latency between clients and this service. Run

    Nov 18, 2021
    Websockets - Chaotic Web Sockets With Golang

    Chaotic Web Sockets The intention of this project is to show the behavior of a s

    Jan 21, 2022
    proxy your traffic through CDN using websocket

    go-cdn2proxy proxy your traffic through CDN using websocket what does it do example server client thanks what does it do you can use this as a library

    Dec 7, 2022
    Websocket server. Get data from provider API, clean data and send to websoket, when it's changed.

    Описание Сервис получает данные по киберспортивным матчам CS:GO от провайдера, структурирует, очищает от лишнего и отправляет всем активным вебсокет к

    Apr 6, 2022
    A little websocket TCP proxy to let browsers talk to a fixed port on arbitrary hosts. Built for Gemini (gemini://, port 1965)

    Kepler A little websocket TCP proxy built to let Amfora talk to Gemini servers when running in a browser. Usage $ git clone https://github.com/awfulco

    May 27, 2022
    Websocket market data capture utility for coinbase (written in Go)

    mdcapture Websocket market data capture utility for coinbase (written in Go) Features Live subscription and capture of Coinbase market data Intended f

    Jan 6, 2022
    A simple server to convert ATK-IMU901 serial data into websocket stream

    A simple server to convert ATK-IMU901 serial data into WebSocket stream.

    Jan 31, 2022
    Simple example for using Turbos Streams in Go with the Gorilla WebSocket toolkit.

    Go Example for TurboStreams over WebSockets Simple example for using Turbos Streams in Go with the Gorilla WebSocket toolkit.

    Dec 22, 2022
    BrisGolang is a Go implementation of the game of briscola using the WebSocket protocol for client/server communication.

    BrisGolang BrisGolang is a Go implementation of the game of briscola using the WebSocket protocol for client/server communication. Usage You can play

    Nov 1, 2021
    Encrypted-websocket-chat - Encrypted websocket chat using golang

    Encrypted websocket chat First version written in python This version should be

    Sep 15, 2022
    🎥 Proxy livestreams from websockets to external RTMP endpoints.

    pxy pxy is a Go server that routes incoming livestream data from websockets to an external RTMP endpoint. This project is a work in progress, I'll upd

    Nov 26, 2022
    A reverse proxy implementing IRC-over-WebSockets

    webircproxy webircproxy is a reverse proxy that accepts IRCv3-over-WebSocket connections, then forwards them to a conventional ircd that speaks the no

    Dec 22, 2021
    httpx is a fast and multi-purpose HTTP toolkit allows to run multiple probers using retryablehttp library, it is designed to maintain the result reliability with increased threads.
    httpx is a fast and multi-purpose HTTP toolkit allows to run multiple probers using retryablehttp library, it is designed to maintain the result reliability with increased threads.

    Features • Installation • Usage • Running httpx • Notes • Join Discord httpx is a fast and multi-purpose HTTP toolkit allow to run multiple probers us

    Jan 8, 2023
    Library for receiving (near) realtime notifications about earthquakes using websockets

    goseismic goseismic is library for receiving (near) realtime notifications about earthquakes using websockets from SeismicPortal. Using goseismic, rec

    Dec 29, 2022
    Online multiplayer board game server written in Go, using WebSockets.

    BfH Server The Battle for Hermannia is a board game created as a gift by the father of hermannm, a developer of this project. This digital edition of

    Nov 7, 2022
    Maintain a lower-bitrate copy of a music library in sync with the main copy.

    msync Maintain a lower-bitrate copy of your music library, in sync with the main copy.

    Mar 6, 2022
    Annotated and kubez-autoscaler-controller will maintain the HPA automatically for kubernetes resources.

    Kubez-autoscaler Overview kubez-autoscaler 通过为 deployment / statefulset 添加 annotations 的方式,自动维护对应 HorizontalPodAutoscaler 的生命周期. Prerequisites 在 kuber

    Jan 2, 2023