GithubHelp home page GithubHelp logo

mikekonan / exchange-proxy Goto Github PK

View Code? Open in Web Editor NEW
111.0 14.0 31.0 117 KB

exchange-proxy

License: GNU General Public License v3.0

Dockerfile 2.12% Go 96.21% Makefile 1.67%
kucoin kucoin-proxy freqtrade freqtrade-proxy exchange-proxy cryptoexchange

exchange-proxy's Introduction

exchange-proxy

Exchange proxy using WebSockets to maintain candlestick/klines data in memory, thus having great performance, reducing the number of API calls to the exchange API, decreases latency and CPU usage. There is no warranty of correct working. You take all risks of using this. All improvements are made by me on a voluntary basis in my spare time.

OPS

Usage

Usage of ./dist/exchange-proxy:
  -bindaddr string
        bindable address (default "0.0.0.0")
  -cache-size int
        amount of candles to cache (default 1000)
  -client-timeout duration
        client timeout (default 15s)
  -concurrency-limit int
        server concurrency limit (default 262144)
  -kucoin-api-url string
        kucoin api address (default "https://openapi-v2.kucoin.com")
  -kucoin-topics-per-ws int
        amount of topics per ws connection [10-280] (default 200)
  -port string
        listen port (default "8080")
  -ttl-cache-timeout duration
        ttl of blobs of cached data (default 10m0s)
  -verbose int
        verbose level: 0 - info, 1 - debug, 2 - trace

Note

All unforeseen connection errors or the inaccessibility of the exchange will lead to the proxy crash, which means that you have to handle it on your end

Local

./exchange-proxy -port 8080

Docker (suggested way)

Use different tags for different platforms e.g. - latest-amd64, latest-arm-v6, latest-arm-v7, latest-arm64
docker run --restart=always -p 127.0.0.1:8080:8080 --name exchange-proxy -d mikekonan/exchange-proxy:latest-amd64

Examples of usage:

Supported exchanges:

Donations

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

  • USDT TRC20 - TYssA3EUfAagJ9afF6vfwJvwwueTafMbGY
  • XRP - rNFugeoj3ZN8Wv6xhuLegUBBPXKCyWLRkB 1869777767
  • DOGE - D6xwe5V9jRkvWksiHiajwZsJ3KJxBVqBUC
  • BTC - 35SrQDWAfwXcRGHaKbxNWwvHRNSLAbVjrk
  • ETH - 0x37c34bac13cf60f022be1bdea2dec1136cdc838a

Referral links:

exchange-proxy's People

Contributors

mikekonan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

exchange-proxy's Issues

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.

Interference with freqtrade docker on port 8080

Hi,

Thanks for your proxy and the continuing development. I encountered some errors when running the proxy with it's default config on port 8080, which the frequi/API of freqtrade is also running on.

Error starting userland proxy: listen tcp4 0.0.0.0:8080: bind: address already in use.

Maybe having another port to run the proxy, would prevent this issue by default? For example port 8090?

Thanks in advance!

Cloudflare is blocking my IP

Hi, i've 8 freqtrade bots running with your proxy. Since i have started the 8th bot i am sometimes getting banned by Cloudflare.

2021-11-21 14:15:16,630 - freqtrade.worker - INFO - Bot heartbeat. PID=1, version='docker-06c81b52', state='RUNNING'
2021-11-21 14:15:16,899 - freqtrade.exchange.common - WARNING - fetch_ticker() returned exception: "kucoin GET http://freqtrade-kcproxy:8080/kucoin/api/v1/market/stats?symbol=YGG-USDT 429 Too Many Requests <!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->
<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->
<head>
<title>Access denied | openapi-v2.kucoin.com used Cloudflare to restrict access</title>
<meta charset="UTF-8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/main.css" type="text/css" media="screen,projection" />


<script defer src="https://api.radar.cloudflare.com/beacon.js"></script>
<script async src='/cdn-cgi/bm/cv/669835187/api.js'></script></head>
<body>
  <div id="cf-wrapper">
    <div class="cf-alert cf-alert-error cf-cookie-error hidden" id="cookie-alert" data-translate="enable_cookies">Please enable cookies.</div>
    <div id="cf-error-details" class="p-0">
      <header class="mx-auto pt-10 lg:pt-6 lg:px-8 w-240 lg:w-full mb-15 antialiased">
         <h1 class="inline-block md:block mr-2 md:mb-2 font-light text-60 md:text-3xl text-black-dark leading-tight">
           <span data-translate="error">Error</span>
           <span>1015</span>
         </h1>
         <span class="inline-block md:block heading-ray-id font-mono text-15 lg:text-sm lg:leading-relaxed">Ray ID: 6b1a877a7f6d4a7f &bull;</span>
         <span class="inline-block md:block heading-ray-id font-mono text-15 lg:text-sm lg:leading-relaxed">2021-11-21 14:15:16 UTC</span>
        <h2 class="text-gray-600 leading-1.3 text-3xl lg:text-2xl font-light">You are being rate limited</h2>
      </header>

      <section class="w-240 lg:w-full mx-auto mb-8 lg:px-8">
          <div id="what-happened-section" class="w-1/2 md:w-full">
            <h2 class="text-3xl leading-tight font-normal mb-4 text-black-dark antialiased" data-translate="what_happened">What happened?</h2>
            <p>The owner of this website (openapi-v2.kucoin.com) has banned you temporarily from accessing this website.</p>
            
          </div>

          
      </section>

      <div class="cf-error-footer cf-wrapper w-240 lg:w-full py-10 sm:py-4 sm:px-8 mx-auto text-center sm:text-left border-solid border-0 border-t border-gray-300">
  <p class="text-13">
    <span class="cf-footer-item sm:block sm:mb-1">Cloudflare Ray ID: <strong class="font-semibold">6b1a877a7f6d4a7f</strong></span>
    <span class="cf-footer-separator sm:hidden">&bull;</span>
    <span class="cf-footer-item sm:block sm:mb-1"><span>Your IP</span>: xxx.xxx.xxx.xxx</span>
    <span class="cf-footer-separator sm:hidden">&bull;</span>
    <span class="cf-footer-item sm:block sm:mb-1"><span>Performance &amp; security by</span> <a rel="noopener noreferrer" href="https://www.cloudflare.com/5xx-error-landing" id="brand_link" target="_blank">Cloudflare</a></span>
    
  </p>
</div><!-- /.error-footer -->


    </div><!-- /#cf-error-details -->
  </div><!-- /#cf-wrapper -->

  <script type="text/javascript">
  window._cf_translation = {};
  
  
</script>

<script type="text/javascript">(function(){window['__CF$cv$params']={r:'6b1a877a7f6d4a7f',m:'yhpFRiUNVxZg9XUJG7eSaoZEpHv9lngE2gcu8HTWDKY-1637504116-0-AZza/PnOdV0QXyEKo09Bt91Mbq7/ohfDsYlLJ3vOaS6KuVycjDTwbeZQXWsH10iqw/FBHkl1utRM5bqX65tOlk3X4RN7JV/F24qzcieCVnNGYxVWdrF3+BmW8ZO4/nD1rH0bnect9RBujT81FEPzWBd2p49UmBHZKgWCQT4WrSzx',s:[0xea13506f1c,0x067e0c19e7],}})();</script></body>
</html>"
2021-11-21 14:15:16,900 - freqtrade.exchange.common - WARNING - retrying fetch_ticker() still for 4 times
2021-11-21 14:15:16,900 - freqtrade.exchange.common - INFO - Applying DDosProtection backoff delay: 1
2021-11-21 14:16:16,662 - freqtrade.worker - INFO - Bot heartbeat. PID=1, version='docker-06c81b52', state='RUNNING'

Is this supposed to be or am it at the limit?

Warning in logs after adding proxy

It's normal to have these warning in logs for all my whitlisted pairs while using the proxy?

2021-11-18 19:37:55 - freqtrade.exchange.common - WARNING - retrying _async_get_candle_history() still for 4 times
2021-11-18 19:37:55 - freqtrade.exchange.common - WARNING - _async_get_candle_history() returned exception: "Could not fetch historical candle (OHLCV) data for pair DOGE/USDT due to RequestTimeout. Message: kucoin GET http://freqtrade-proxy:8080/kucoin/api/v1/market/candles?symbol=DOGE-USDT&type=1day&startAt=1635897600&endAt=1679097600"

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

FATA[0266]

FATA[0266] Wait ack message timeout in 10s caller="github.com/mikekonan/freqtradeProxy/proxy/kucoin/kucoin.go:37 (*subscriptionManager).Subscribe" stack="github.com/mikekonan/freqtradeProxy/proxy/kucoin/kucoin.go:37 (*subscriptionManager).Subscribe\ngithub.com/mikekonan/freqtradeProxy/proxy/kucoin/kucoin.go:253 (*kucoin).Start.func1\ngithub.com/qiangxue/[email protected]/context.go:67 (*Context).Next\ngithub.com/qiangxue/[email protected]/router.go:75 (*Router).HandleRequest\ngithub.com/valyala/[email protected]/server.go:2251 (*Server).serveConn\ngithub.com/valyala/[email protected]/workerpool.go:223 (*workerPool).workerFunc\ngithub.com/valyala/[email protected]/workerpool.go:195 (*workerPool).getCh.func1\nruntime/asm_amd64.s:1581 goexit"

Getting below error

Attaching to freqtrade-proxy
freqtrade-proxy | standard_init_linux.go:228: exec user process caused: exec format error
freqtrade-proxy | standard_init_linux.go:228: exec user process caused: exec format error
freqtrade-proxy | standard_init_linux.go:228: exec user process caused: exec format error
freqtrade-proxy | standard_init_linux.go:228: exec user process caused: exec format error
freqtrade-proxy | standard_init_linux.go:228: exec user process caused: exec format error
freqtrade-proxy | standard_init_linux.go:228: exec user process caused: exec format error
freqtrade-proxy | standard_init_linux.go:228: exec user process caused: exec format error
freqtrade-proxy | standard_init_linux.go:228: exec user process caused: exec format error
freqtrade-proxy exited with code 1
freqtrade-proxy | standard_init_linux.go:228: exec user process caused: exec format error
freqtrade-proxy | standard_init_linux.go:228: exec user process caused: exec format error
freqtrade-proxy | standard_init_linux.go:228: exec user process caused: exec format error
freqtrade-proxy | standard_init_linux.go:228: exec user process caused: exec format error
freqtrade-proxy | standard_init_linux.go:228: exec user process caused: exec format error
freqtrade-proxy | standard_init_linux.go:228: exec user process caused: exec format error
freqtrade-proxy | standard_init_linux.go:228: exec user process caused: exec format error
freqtrade-proxy | standard_init_linux.go:228: exec user process caused: exec format error
freqtrade-proxy | standard_init_linux.go:228: exec user process caused: exec format error

Error is on Oracle Op ARM based proccessor.

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

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

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

Wrong candle data

When using freqtrade-proxy I get wrong candle data (5m timeframe) from ELON/USDT pair according to frequi.
All other pairs looks fine.
elonusdt

Docker container repeatedly crashing and not restarting

Hey after using your awesome project for a little while without issue, the proxy is now repeatedly crashing and not restarting regardless of the docker restart policy. The only error I've been able to find is:

FATA[0185] Error: %sread tcp 172.18.0.2:52570->99.84.133.34:443: read: connection reset by peer caller="/src/proxy/kucoin/kucoin.go:135 (*ws).serveFor" stack="/src/proxy/kucoin/kucoin.go:135 (*ws).serveFor\n/usr/local/go/src/runtime/asm_amd64.s:1581 goexit"

Let me know if there's any other info I can provide to help get to the bottom of this.

Advice for collaborating/developing in this project

Hello,

I use this proxy and love it, and would like to improve it. I have experience in python and c++ but I don't know Golang.

I'd like to include more exchanges, and I would really appreciate if you could give me some guidelines about what files to look at, possible issues, ...

Thanks!

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.

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 | Cloudflare Ray ID: 6c8311993b3e346f
freqtrade3 | โ€ข
freqtrade3 | Your IP: xxx.xxx.xxx.xx
freqtrade3 | โ€ข
freqtrade3 | Performance & security by Cloudflare
freqtrade3 |
freqtrade3 |


freqtrade3 |

freqtrade3 |
freqtrade3 |
freqtrade3 |
freqtrade3 |
freqtrade3 |
freqtrade3 | <script type="text/javascript">
freqtrade3 | window._cf_translation = {};
freqtrade3 |
freqtrade3 |
freqtrade3 | </script>
freqtrade3 |
freqtrade3 | <script type="text/javascript">(function(){window['__CF$cv$params']={r:'xxxxxxxxxxxxxxxx',m:'xxxxxxxxxxxxx',s:[yyyyyyyyy,zzzzzzzzz],}})();</script>
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

"ExchangeNotAvailable" warnings.

Hi
I have this kind of errors but not only.
Is there a solution ?

The command is
(.env) admin@ip-172-11-11-11:~/freqtrade$ freqtrade download-data -c config-static-2.json --timerange 20210101-20211118
Thanks

2021-11-18 11:56:41,316 - freqtrade.exchange.common - WARNING - _async_get_candle_history() returned exception: "Could not fetch historical candle (OHLCV) data for pair XAVA/USDT due to ExchangeNotAvailable. Message: kucoin GET http://127.0.0.1:9090/kucoin/api/v1/market/candles?symbol=XAVA-USDT&type=1min&startAt=1636699200&endAt=1636729200"
2021-11-18 11:56:41,316 - freqtrade.exchange.common - WARNING - retrying _async_get_candle_history() still for 3 times
2021-11-18 11:56:41,317 - freqtrade.exchange.common - WARNING - _async_get_candle_history() returned exception: "Could not fetch historical candle (OHLCV) data for pair XAVA/USDT due to ExchangeNotAvailable. Message: kucoin GET http://127.0.0.1:9090/kucoin/api/v1/market/candles?symbol=XAVA-USDT&type=1min&startAt=1636729200&endAt=1636759200"
2021-11-18 11:56:41,317 - freqtrade.exchange.common - WARNING - retrying _async_get_candle_history() still for 3 times
2021-11-18 11:56:41,317 - freqtrade.exchange.common - WARNING - _async_get_candle_history() returned exception: "Could not fetch historical candle (OHLCV) data for pair XAVA/USDT due to ExchangeNotAvailable. Message: kucoin GET http://127.0.0.1:9090/kucoin/api/v1/market/candles?symbol=XAVA-USDT&type=1min&startAt=1636759200&endAt=1636789200"
2021-11-18 11:56:41,317 - freqtrade.exchange.common - WARNING - retrying _async_get_candle_history() still for 3 times
2021-11-18 11:56:41,318 - freqtrade.exchange.common - WARNING - _async_get_candle_history() returned exception: "Could not fetch historical candle (OHLCV) data for pair XAVA/USDT due to ExchangeNotAvailable. Message: kucoin GET http://127.0.0.1:9090/kucoin/api/v1/market/candles?symbol=XAVA-USDT&type=1min&startAt=1636789200&endAt=1636819200"
2021-11-18 11:56:41,318 - freqtrade.exchange.common - WARNING - retrying _async_get_candle_history() still for 3 times
2021-11-18 11:56:41,318 - freqtrade.exchange.common - WARNING - _async_get_candle_history() returned exception: "Could not fetch historical candle (OHLCV) data for pair XAVA/USDT due to ExchangeNotAvailable. Message: kucoin GET http://127.0.0.1:9090/kucoin/api/v1/market/candles?symbol=XAVA-USDT&type=1min&startAt=1636819200&endAt=1636849200"
2021-11-18 11:56:41,318 - freqtrade.exchange.common - WARNING - retrying _async_get_candle_history() still for 3 times
2021-11-18 11:56:41,319 - freqtrade.exchange.common - WARNING - _async_get_candle_history() returned exception: "Could not fetch historical candle (OHLCV) data for pair XAVA/USDT due to ExchangeNotAvailable. Message: kucoin GET http://127.0.0.1:9090/kucoin/api/v1/market/candles?symbol=XAVA-USDT&type=1min&startAt=1636849200&endAt=1636879200"
2021-11-18 11:56:41,319 - freqtrade.exchange.common - WARNING - retrying _async_get_candle_history() still for 3 times
2021-11-18 11:56:41,319 - freqtrade.exchange.common - WARNING - _async_get_candle_history() returned exception: "Could not fetch historical candle (OHLCV) data for pair XAVA/USDT due to ExchangeNotAvailable. Message: kucoin GET http://127.0.0.1:9090/kucoin/api/v1/market/candles?symbol=XAVA-USDT&type=1min&startAt=1636879200&endAt=1636909200"
2021-11-18 11:56:41,319 - freqtrade.exchange.common - WARNING - retrying _async_get_candle_history() still for 3 times
2021-11-18 11:56:41,320 - freqtrade.exchange.common - WARNING - _async_get_candle_history() returned exception: "Could not fetch historical candle (OHLCV) data for pair XAVA/USDT due to ExchangeNotAvailable. Message: kucoin GET http://127.0.0.1:9090/kucoin/api/v1/market/candles?symbol=XAVA-USDT&type=1min&startAt=1636909200&endAt=1636939200"
2021-11-18 11:56:41,320 - freqtrade.exchange.common - WARNING - retrying _async_get_candle_history() still for 3 times
2021-11-18 11:56:41,320 - freqtrade.exchange.common - WARNING - _async_get_candle_history() returned exception: "Could not fetch historical candle (OHLCV) data for pair XAVA/USDT due to ExchangeNotAvailable. Message: kucoin GET http://127.0.0.1:9090/kucoin/api/v1/market/candles?symbol=XAVA-USDT&type=1min&startAt=1636939200&endAt=1636969200"
2021-11-18 11:56:41,320 - freqtrade.exchange.common - WARNING - retrying _async_get_candle_history() still for 3 times
^CSIGINT received, aborting ...

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: valyala/fasthttp#759

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!

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 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.

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).

Not working apparently on computers with ARM Cpu

I did try to install your proxy on my Freqtrade bot.

Unfortunately it's apparently not compatible with ARM CPU based computer :-(

Is there a possibility to have your proxy working on such machine?

Thanks

HTTPError: 404 Client Error: Not Found for url: http://freqtrade-proxy:8080/kucoin/api/v1/currencies

version: '3'
services:
freqtrade-proxy:
image: mikekonan/freqtrade-proxy:main
restart: unless-stopped
container_name: freqtrade-proxy

Combined_NFIv7_SMA_Rallipanos_20210707:
image: freqtradeorg/freqtrade:stable
# image: freqtradeorg/freqtrade:develop
# Use plotting image
# image: freqtradeorg/freqtrade:develop_plot
# Build step - only needed when additional dependencies are needed
# build:
# context: .
# dockerfile: "./docker/Dockerfile.custom"
restart: always
container_name: Combined_NFIv7_SMA_Rallipanos_20210707
volumes:
- "./user_data:/freqtrade/user_data"
# Expose api on port 8080 (localhost only)
# Please read the https://www.freqtrade.io/en/latest/rest-api/ documentation
# before enabling this.
ports:
- "0.0.0.0:8100:8080"
environment :
- TZ=Asia/Kolkata

# Default command used when running `docker compose up`
command: >
  trade
  --logfile /freqtrade/user_data/logs/Combined_NFIv7_SMA_Rallipanos_20210707.log
  --db-url sqlite:////freqtrade/user_data/db/Combined_NFIv7_SMA_Rallipanos_20210707.tradesv3.sqlite
  --config /freqtrade/user_data/config/config_kucoin_dry.json
  --config /freqtrade/user_data/config/api.json

  --config /freqtrade/user_data/config/kucoin-proxy.json
  --strategy Combined_NFIv7_SMA_Rallipanos_20210707

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

2021-11-14 21:02:30,355 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': False, 'urls': {'api': {'public': 'http://freqtrade-proxy:8080/kucoin', 'private': 'http://freqtrade-proxy:8080/kucoin'}}}
2021-11-14 21:02:30,365 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': False, 'urls': {'api': {'public': 'http://freqtrade-proxy:8080/kucoin', 'private': 'http://freqtrade-proxy:8080/kucoin'}}, 'rateLimit': 300}
2021-11-14 21:02:30,375 - freqtrade.exchange.exchange - INFO - Using Exchange "KuCoin"
2021-11-14 21:02:30,879 - freqtrade.exchange.exchange - ERROR - Unable to initialize markets.
Traceback (most recent call last):
File "/home/ftuser/.local/lib/python3.9/site-packages/ccxt/base/exchange.py", line 613, in fetch
response.raise_for_status()
File "/home/ftuser/.local/lib/python3.9/site-packages/requests/models.py", line 953, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: http://freqtrade-proxy:8080/kucoin/api/v1/currencies

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/freqtrade/freqtrade/exchange/exchange.py", line 339, in _load_markets
self._markets = self._api.load_markets()
File "/home/ftuser/.local/lib/python3.9/site-packages/ccxt/base/exchange.py", line 1411, in load_markets
currencies = self.fetch_currencies()
File "/home/ftuser/.local/lib/python3.9/site-packages/ccxt/kucoin.py", line 511, in fetch_currencies
response = self.publicGetCurrencies(params)
File "/home/ftuser/.local/lib/python3.9/site-packages/ccxt/base/exchange.py", line 457, in inner
return entry(_self, **inner_kwargs)
File "/home/ftuser/.local/lib/python3.9/site-packages/ccxt/base/exchange.py", line 506, in request
return self.fetch2(path, api, method, params, headers, body, config, context)
File "/home/ftuser/.local/lib/python3.9/site-packages/ccxt/base/exchange.py", line 502, in fetch2
return self.fetch(request['url'], request['method'], request['headers'], request['body'])
File "/home/ftuser/.local/lib/python3.9/site-packages/ccxt/base/exchange.py", line 629, in fetch
self.handle_errors(http_status_code, http_status_text, url, method, headers, http_response, json_response, request_headers, request_body)
File "/home/ftuser/.local/lib/python3.9/site-packages/ccxt/kucoin.py", line 2249, in handle_errors
self.throw_exactly_matched_exception(self.exceptions['exact'], errorCode, self.id + ' ' + message)
File "/home/ftuser/.local/lib/python3.9/site-packages/ccxt/base/exchange.py", line 520, in throw_exactly_matched_exception
raise exactstring
ccxt.base.errors.NotSupported: kucoin Not Found
2021-11-14 21:02:30,884 - freqtrade.commands.trade_commands - ERROR - Could not load markets, therefore cannot start. Please investigate the above error for more details.
2021-11-14 21:02:30,884 - freqtrade.commands.trade_commands - ERROR - Fatal exception!
Traceback (most recent call last):
File "/freqtrade/freqtrade/commands/trade_commands.py", line 18, in start_trading
worker = Worker(args)
File "/freqtrade/freqtrade/worker.py", line 35, in init
self._init(False)
File "/freqtrade/freqtrade/worker.py", line 52, in _init
self.freqtrade = FreqtradeBot(self._config)
File "/freqtrade/freqtrade/freqtradebot.py", line 65, in init
self.exchange = ExchangeResolver.load_exchange(self.config['exchange']['name'], self.config)
File "/freqtrade/freqtrade/resolvers/exchange_resolver.py", line 32, in load_exchange
exchange = ExchangeResolver._load_exchange(exchange_name,
File "/freqtrade/freqtrade/resolvers/exchange_resolver.py", line 54, in _load_exchange
exchange = ex_class(**kwargs)
File "/freqtrade/freqtrade/exchange/exchange.py", line 153, in init
self.validate_stakecurrency(config['stake_currency'])
File "/freqtrade/freqtrade/exchange/exchange.py", line 370, in validate_stakecurrency
raise OperationalException(
freqtrade.exceptions.OperationalException: Could not load markets, therefore cannot start. Please investigate the above error for more details.

More exchanges

Hi! First, congratulate you about this project! It is very useful, thanks!

Are you considering adding more exchanges? If so, I could try to help (right now I don't have time but christmas is coming!). If so, I do program in Python usually but I don't know Go, but I am sure that with very few indications of where is the right code I could help to implement other exchanges, or at least with testing.

Also, I am running it on Windows 10 through Docker. Is there a way to run the code natively (without Docker)?

Thanks!

proxy stopped

FATA[137267] read tcp 10.148.0.40:45262->13.33.96.10:443: read: connection reset by peer caller="/home/runner/work/exchange-proxy/exchange-proxy/proxy/kucoin/ws.go:312 (*ws).serve" stack="/home/runner/work/exchange-proxy/exchange-proxy/proxy/kucoin/ws.go:312 (*ws).serve\n/opt/hostedtoolcache/go/1.17.6/x64/src/runtime/asm_amd64.s:1581 goexit"

check this please

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.

pull access denied for mikekonan/exchange-proxy,

Got error when run docker-compose pull

ERROR: pull access denied for mikekonan/exchange-proxy, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

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.

verbosity for less spam in console

Hi, would it be possible to have message verbosity?
error, warning, info

would like to have less clutter in the tmux instance.

that great job! <3

asyncio - ERROR - Unclosed client session

This also came on restart from gui
2021-11-16 06:35:21 - ccxt.base.exchange - WARNING - kucoin requires to release all resources with an explicit call to the .close() coroutine. If you are using the exchange instance with async coroutines, add exchange.close() to your code into a place when you're done with the exchange and don't need the exchange instance anymore (at the end of your async coroutine).
2021-11-16 06:35:21 - asyncio - ERROR - Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7fc018ac07f0>

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.`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.