GithubHelp home page GithubHelp logo

ekliptor / wolfbot Goto Github PK

View Code? Open in Web Editor NEW
690.0 42.0 210.0 9.98 MB

Crypto currency trading bot written in TypeScript for NodeJS

Home Page: https://wolfbot.org

License: GNU Affero General Public License v3.0

TypeScript 68.11% JavaScript 18.96% CSS 4.59% HTML 1.62% SCSS 6.63% Sass 0.08% Dockerfile 0.02%
typescript webpack webpack3 html5 html nodejs javascript css bitcoin cryptocurrency

wolfbot's Introduction

WolfBot

This is the source of the Crypto currency trading bot running on: https://wolfbot.org

It is written in TypeScript for NodeJS + MongoDB.

Features

  • Trading: buying + selling, portfolio management (sync balances with exchanges)
  • Margin Trading: leveraged trading including short selling and futures trading
  • Arbitrage: profit from price differences between 2 exchanges (done "on the books" with balances on both exchanges, no withdrawals from exchanges required)
  • Lending: lend your coins on the lending market of supported crypto exchanges for the highest possible interest rates
  • Backtesting: test your trade strategies in simulation on historical data
  • Web Plugins: Access social media data from Twitter, Reddit, Telegram Channels, RSS Feeds,... to trade based on news and real world events (not part of open source version yet)

Key trading advantages

  • Indicators: Over 200 technical indicators (MACD, RSI, EMA,..), candlestick pattern recognition (Doji, Tri-Star,...) of 20+ most common patterns, Fibonacci Retracements (upwards & downwards), automatic trendline (support & resistance) detection
  • Strategy events: All strategies emit buy/sell events that can be forwarded to other strategies using different candle sizes before trade execution. This gives you the ability to easily configure your bot to “zoom in” on candlestick chart data (for example from 12h candles trendline to 1h MACD to 10min RSI).
  • Realtime: Trades come in realtime via websocket connection from the exchange. Strategies can process (and react) on every single trade. Furthermore all indicators can be updated within the current (latest) candle as new data comes in.
  • Backtesting: Advanced automatic parameter optimization using:
    • the Cartesian product to try all permutations of given config parameters or
    • a genetic algorithm to find the most profitable config parameters within given parameter ranges

Screenshots of the Trading UI:

Trading Chart

Live Strategy data

Strategy configuration

A more detailed list of all features: https://wolfbot.org/features/

The list of supported exchanges: https://wolfbot.org/features/exchanges/

Additionally WolfBot supports over 130 exchanges using CCXT Library (no WebSockets, no margin trading).

The full strategy documentation: https://wolfbot.org/strategy-docs/

Getting Started

Requirements

NodeJS >= 12 && <= 14
MongoDB >= 4.0
TypeScript >= 3.5
yarn >= 1.9.4 (npm should work too, but no support given if you run into errors)
Webpack >= 4 (only for UI modifications)

Installation

git clone https://github.com/Ekliptor/WolfBot
yarn install

You can use the --production flag if you only want to run the bot and not make any code changes.

Start trading

Rename the configLocal-sample.ts file in the project root directory to configLocal.ts and add at least mongoUrl (plus some exchange API keys if you want to trade).

After running TypeScript (automatically in your IDE or run the tsc command in the project root dir) you will see a file:

build/app.js

tsc will show you some errors (due to shared code with missing types between server and client side, I will refactor this later). Just ignore these errors and make sure noEmitOnError is not set (the default) and that you have a build/ dir in the project root as well as for all packages under node_modules/@ekliptor which contain a tsconfig.json file. Use the build directory as the working directory and run:

node app.js --debug --config=Noop --trader=RealTimeTrader --noUpdate --noBrowser

The config parameter must be a JSON file from the config directory. For a list of all parameters look at the top of the app.ts file.

Docker support

To you can install WolfBot with all its dependencies using Docker:

docker-compose up

Writing your own trading strategies

There is documentation available here: https://forum.wolfbot.org/forums/strategy-development.17/

Look into the /src/Strategies folder for more examples.

Incoming trades flow diagram Outgoing trades flow diagram

Modifying the UI

In the project root directory, run:

yarn watch

You should also run the bot with the --uiDev flag so that changes to HTML template files are reloaded from disk.

The UI uses a single persistent WebSocket connection. UI related code is in the following directories:

├ project root
├─── public <- all code shipped to the browser
├────── js <- all TypeScript code to be compiled with WebPack
├─── src
├────── WebSocket <- all server-side logic to push updates to the browser
├─── views <- all HTML templates

REST and WebSocket JSON APIs

If you want to connect WolfBot to your trading terminal, please take a look at the API docs.

This let's you:

  • create new cloud bot instances and earn commission for every referral (not applicable to open source version)
  • import the trades book with all trades WolfBot made via REST API call
  • subscribe to live trades via WebSocket to display them in your trading terminal
  • subscribe to live strategy data and indicator values via WebSocket

Contact

Follow me on Twitter and Memo.

No donations, I actually make money trading;)

wolfbot's People

Contributors

8yone avatar dependabot[bot] avatar dwmcqueen avatar ekliptor avatar jorisw avatar kirschte avatar trisbele avatar xl-reaper 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  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

wolfbot's Issues

AI config?

IS the AI config not released yet? Is it any different from the other example configs?

Bitmex Position / Order and Price inconsistencies

For testing purposes I ran the default BitmexFisher strategy live. As you can see in the attached screenshots the orders supposedly executed and logged by WolfBot diverge from those actually executed on Bitmex - not only by price but fatally even by side/direction.

Screenshot 2020-03-14 at 09 42 17
Screenshot 2020-03-14 at 09 41 59

Looking more carefully I realized that for those trades (Mar 14, 2020, 8:46:01 AM, Mar 14, 2020, 8:47:03 AM) on the wrong side also the prices diverge - apparently WolfBot received an incorrect market price, submitted a limit order on the "wrong" side of the book (without the "Post-only" flag which should be used for limit orders on Bitmex if they are not supposed to convert to market orders) and thus triggering a market order at the wrong price and wrong side.

Furthermore the order at Mar 14, 2020, 9:00:04 AM was canceled for unknown reasons but appears as a trade in WolfBot history.

The order at Mar 14, 2020, 9:04:04 AM does not appear in WolfBot history at all.

option --bitmex gives an error

$node app.js --config=Noop.json --trader=RealTimeTrader --noBrowser --noUpdate --days=30 --debug

works (in Noop.js i set BitMEX as the exchange)

but

$node app.js --config=Noop.json --trader=RealTimeTrader --noBrowser --noUpdate --days=30 --debug --bitmex

fails with the next error:

Error: Cannot find module './BitmexFix'
Require stack:
- /Users/arnoudbos/Documents/crypto/projects/bots/WolfBot/build/src/Exchanges/BitMEX.js
- /Users/arnoudbos/Documents/crypto/projects/bots/WolfBot/build/src/Exchanges/AbstractExchange.js
- /Users/arnoudbos/Documents/crypto/projects/bots/WolfBot/build/src/ExchangeController.js
- /Users/arnoudbos/Documents/crypto/projects/bots/WolfBot/build/src/Controller.js
- /Users/arnoudbos/Documents/crypto/projects/bots/WolfBot/build/app.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:772:15)
    at Function.Module._load (internal/modules/cjs/loader.js:677:27)
    at Module.require (internal/modules/cjs/loader.js:830:19)
    at require (internal/modules/cjs/helpers.js:68:18)
    at Object.<anonymous> (/Users/arnoudbos/Documents/crypto/projects/bots/WolfBot/src/Exchanges/BitMEX.ts:31:88)
    at Module._compile (internal/modules/cjs/loader.js:936:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:947:10)
    at Module.load (internal/modules/cjs/loader.js:790:32)
    at Function.Module._load (internal/modules/cjs/loader.js:703:12)
    at Module.require (internal/modules/cjs/loader.js:830:19)
    at require (internal/modules/cjs/helpers.js:68:18)
    at Object.<anonymous> (/Users/arnoudbos/Documents/crypto/projects/bots/WolfBot/src/Exchanges/AbstractExchange.ts:922:1)
    at Module._compile (internal/modules/cjs/loader.js:936:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:947:10)
    at Module.load (internal/modules/cjs/loader.js:790:32)
    at Function.Module._load (internal/modules/cjs/loader.js:703:12)
    at Module.require (internal/modules/cjs/loader.js:830:19)
    at require (internal/modules/cjs/helpers.js:68:18)
    at Object.<anonymous> (/Users/arnoudbos/Documents/crypto/projects/bots/WolfBot/src/ExchangeController.ts:5:1)
    at Module._compile (internal/modules/cjs/loader.js:936:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:947:10)
    at Module.load (internal/modules/cjs/loader.js:790:32)

compile error prevents mongo initial setup

hi, very interesting bot you created. Specs and flexibility are promising. Unfortunately i can't get it to run locally to test it out.

You mention that there are some expected compile errors but this one seems to fall in to another category. when running tsc this one is the one preventing me to run the bot:

tests/init/init.ts:42:36 - error TS2339: Property 'getInitFunctions' does not exist on type 'typeof import("/Users/arnoudbos/Documents/crypto/projects/bots/WolfBot/node_modules/@ekliptor/bit-models/build/models/Liquidation")'.

42     addInitFn(actions, Liquidation.getInitFunctions(db.get()));

command to start the bot (hoped it may not be a showstopper):

node app.js --config=Back../config/HoneyBadger.json --trader=RealTimeTrader --noUpdate --noBrowser

But then then the output is:
2019-09-09 00:29:02 - info: Connected to MongoDB
2019-09-09 00:29:02 - info: minified all resources
2019-09-09 00:29:02 - info: Initializing database: Creating collections on first start
2019-09-09 00:29:02 - warn: Unhandled Rejection
2019-09-09 00:29:02 - warn: {"message":"bit_models_1.Liquidation.getInitFunctions is not a function","stack":"TypeError: bit_models_1.Liquidation.getInitFunctions is not a function\n at Object. (/Users/arnoudbos/Documents/crypto/projects/bots/WolfBot/tests/init/init.ts:42:36)\n at Generator.next ()\n at fulfilled (/Users/arnoudbos/Documents/crypto/projects/bots/WolfBot/build/tests/init/init.js:8:58)\n at processTicksAndRejections (internal/process/task_queues.js:93:5)"}
2019-09-09 00:29:02 - warn: TypeError: bit_models_1.Liquidation.getInitFunctions is not a function
at Object. (/Users/arnoudbos/Documents/crypto/projects/bots/WolfBot/tests/init/init.ts:42:36)
at Generator.next ()
at fulfilled (/Users/arnoudbos/Documents/crypto/projects/bots/WolfBot/build/tests/init/init.js:8:58)
at processTicksAndRejections (internal/process/task_queues.js:93:5)

So basically can't setu the mongo db for first time usage.

Regards, Arnoud

ichimoku ?

Can you add ichimoku strategy please.?

Cannot find module '@ekliptor/bit-models'

I tried your code but it thrown "info: DISCOUNT Having trouble setting up WolfBot on your local machine? Try the cloud version at https://wolfbot.org with a 30% discount with this code"

This logger message and it thrown Cannot find module '@ekliptor/bit-models' this error.

Why it will happen please solve this issue as soon as possible.

Issues with MongoUrl

Error connecting to MongoDB {"message":"no hostname or hostnames provided in connection string","stack":"Error: no hostname or hostnames provided in connection string\n

my connection string is "mongodb+srv://(user):(password)@cluster0-qmy0b.mongodb.net/test?retryWrites=true&w=majority" which does not fit within the parameters of the url parser. Could you clarify what the MongoUrl requires?

I tried fitting in the host name by changing the connection string to "mongodb+srv://(user):(password)@cluster0-qmy0b.mongodb.net:27017/admin" but the same error message appears.

CexIo

Hello first, thanks for the help, the bot is now running.
I would like to add CexIo, unfortunately this is not possible because the API phrase is missing. If I do it manually in "configLocal.ts", I get the message that I have to enter an API key first.
Can you help me?

Ubuntu installation 02

Hello,
unfortunately the installation does not work, even if I start it with the command:

node app.js --debug --config=Noop --trader=RealTimeTrader --noUpdate --noBrowser

$ node app.js --debug --config=Noop --trader=RealTimeTrader --noUpdate --noBrowser
internal/modules/cjs/loader.js:968
throw err;
^

Error: Cannot find module '/home/locadm/WolfBot/app.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:965:15)
at Function.Module._load (internal/modules/cjs/loader.js:841:27)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []

Can anyone help me? thank you

I install the following on an Ubuntu 20.04:

sudo apt update -y && sudo apt -y upgrade
sudo apt -y install curl dirmngr apt-transport-https lsb-release ca-certificates
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt -y install nodejs
sudo apt -y install gcc g++ make

sudo apt-get install gnupg -y
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y mongodb-org
sudo apt update && sudo apt install node-typescript -y
sudo npm install -g typescript
sudo apt-get update -y
sudo apt-get install -y webpack

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update -y
sudo apt install -y yarn
sudo apt install --no-install-recommends yarn

sudo apt install -y git
git clone https://github.com/Ekliptor/WolfBot
yarn install
build/app.js

Indicator CCI not working

Suggestion for the file /src/Indicators/CCI.ts
this.valuesHigh = this.addData(this.valuesHigh, candle.close, this.params.interval);
this.valuesLow = this.addData(this.valuesLow, candle.volume, this.params.interval);
this.valuesClose = this.addData(this.valuesClose, candle.volume, this.params.interval);
should be
this.valuesHigh = this.addData(this.valuesHigh, candle.high, this.params.interval);
this.valuesLow = this.addData(this.valuesLow, candle.low, this.params.interval);
this.valuesClose = this.addData(this.valuesClose, candle.close, this.params.interval);
Tested. TALib works fine then.

Refusing to run NodeJS app as root Error

root@trade9ine:~/trader# cd build
root@trade9ine:~/trader/build# node app.js --debug
Refusing to run NodeJS app as root
root@trade9ine:~/trader/build# ls
ai.js app.js.map config.js configLocal-sample.js configLocal.js.map public
ai.js.map backfind.js config.js.map configLocal-sample.js.map imports.js src
app.js backfind.js.map config.json configLocal.js imports.js.map tests
root@trade9ine:~/trader/build# node app.js
Refusing to run NodeJS app as root
root@trade9ine:~/trader/build#

"testData.forEach is not a function"

Hi,

I got this error while trying to run the bot

2018-07-31 11:44:07 - info: Initializing database: Creating collections on first start
2018-07-31 11:44:08 - warn: Uncaught Exception
2018-07-31 11:44:08 - warn:  {"message":"testData.forEach is not a function","stack":"TypeError: testData.forEach is not a function\n    at utils.test.readData (/home/tinh/workspace/projects/blockchain/WolfBot/node_modules/@ekliptor/bit-models/models/serverConfig.ts:395:26)\n    at ReadFileContext.fs.readFile [as callback] (/home/tinh/workspace/projects/blockchain/WolfBot/node_modules/@ekliptor/apputils/test.ts:6:20)\n    at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:437:13)"}
2018-07-31 11:44:08 - warn: TypeError: testData.forEach is not a function
    at utils.test.readData (/home/tinh/workspace/projects/blockchain/WolfBot/node_modules/@ekliptor/bit-models/models/serverConfig.ts:395:26)
    at ReadFileContext.fs.readFile [as callback] (/home/tinh/workspace/projects/blockchain/WolfBot/node_modules/@ekliptor/apputils/test.ts:6:20)
    at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:437:13)

It seems this file https://github.com/Ekliptor/bit-models/blob/master/models/serverConfig.ts#L392 expect the file serverConfig.json which I can't find anywhere

BitMex Backtesting

Hello

Anyone can help me for Bitmex Backtesting ?

image

It doesn't work for me ... any idea?

Thank you

Regards

Error connecting to mongo

Hi,

I got this error when running:

2019-03-10 09:49:43 - info: Server is listening on http://bitmex:8331/index.html
2019-03-10 09:49:43 - info: Server is listening on https://bitmex:8332/index.html
(node:18078) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
2019-03-10 09:49:43 - error: Error connecting to MongoDB {"message":"Invalid apiVersion "5.0", expected a function or one of _default, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 2.4, 1.7, 0.90, 6.7, 7.0, 7.x, master","stack":"TypeError: Invalid apiVersion "5.0", expected a function or one of _default, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 2.4, 1.7, 0.90, 6.7, 7.0, 7.x, master\n at Object.utils.funcEnum (/usr/lib/node_modules/elasticsearch/src/lib/utils.js:285:13)\n at new Client (/usr/lib/node_modules/elasticsearch/src/lib/client.js:70:33)\n at connectSearch (/home/ubuntu/wolfbot/src/database.ts:121:26)\n at connectOps.push.Promise (/home/ubuntu/wolfbot/src/database.ts:63:13)\n at new Promise ()\n at Object.connectAll (/home/ubuntu/wolfbot/src/database.ts:62:25)\n at Controller.connect (/home/ubuntu/wolfbot/src/Controller.ts:190:12)\n at Promise (/home/ubuntu/wolfbot/src/Controller.ts:100:18)\n at new Promise ()\n at Controller.start (/home/ubuntu/wolfbot/src/Controller.ts:98:16)\n at Object. (/home/ubuntu/wolfbot/app.ts:271:16)\n at Module._compile (module.js:653:30)\n at Object.Module._extensions..js (module.js:664:10)\n at Module.load (module.js:566:32)\n at tryModuleLoad (module.js:506:12)\n at Function.Module._load (module.js:498:3)\n at Function.Module.runMain (module.js:694:10)\n at startup (bootstrap_node.js:204:16)\n at bootstrap_node.js:625:3"}
2019-03-10 09:49:43 - info: Main process exited with code 1

Could you please help?
Thank you.

MongoDB does not allow for writing on admin,local or config databases

Error message:"error: {"name":"MongoError","message":"not authorized on admin to execute command { create: "sysMessages", writeConcern: { w: "majority?socketTimeoutMS" } }","ok":0,"errmsg":"not authorized on admin to execute command { create: "sysMessages", writeConcern: { w: "majority?socketTimeoutMS" } }","code":8000,"codeName":"AtlasError"}"

Is there a way for the bot to write on the other databases on MongoDB instead of the three databases?

Error: https://registry.yarnpkg.com/@ekliptor%2freddit-snooper: Not found

Thank you for sharing the project.
yarn install produces the below error
Yarn version:
1.9.4
Node version:
10.10.0
Error: https://registry.yarnpkg.com/@ekliptor%2freddit-snooper: Not found
at Request.params.callback [as _callback] (/usr/lib/node_modules/yarn/lib/cli.js:64202:18)
at Request.self.callback (/usr/lib/node_modules/yarn/lib/cli.js:137468:22)
at Request.emit (events.js:182:13)
at Request. (/usr/lib/node_modules/yarn/lib/cli.js:138440:10)
at Request.emit (events.js:182:13)
at IncomingMessage. (/usr/lib/node_modules/yarn/lib/cli.js:138362:12)
at Object.onceWrapper (events.js:273:13)
at IncomingMessage.emit (events.js:187:15)
at endReadableNT (_stream_readable.js:1092:12)
at process._tickCallback (internal/process/next_tick.js:63:19)

running error

after running this cmd node app.js --debug --config=Noop --trader=RealTimeTrader --noUpdate --noBrowser I'm getting this error
Screen Shot 2019-09-21 at 9 35 52 PM

any idea?

Project images

It would be nice here or on the website to have some images from the web interface, I notice you are using the tradingview with socket, really excited to see the results.... I have a lot of experience with data feed (fix/socket), any help you need, let me know

Error connecting to MongoDB v3.6.3

error: Error connecting to MongoDB {"message":"missing delimiting slash between hosts and options","stack":"Error: missing delimiting slash between hosts and options\n at parseConnectionString (/home/kriss/WolfBot/node_modules/mongodb/lib/url_parser.js:147:11)\n at parseHandler (/home/kriss/WolfBot/node_modules/mongodb/lib/url_parser.js:113:14)\n at module.exports (/home/kriss/WolfBot/node_modules/mongodb/lib/url_parser.js:98:5)\n at connect (/home/kriss/WolfBot/node_modules/mongodb/lib/mongo_client.js:485:3)\n at Function.MongoClient.connect (/home/kriss/WolfBot/node_modules/mongodb/lib/mongo_client.js:250:3)\n at connect (/home/kriss/WolfBot/src/database.ts:81:17)\n at /home/kriss/WolfBot/src/database.ts:58:13\n at new Promise (<anonymous>)\n at Object.connectAll (/home/kriss/WolfBot/src/database.ts:57:25)\n at Controller.connect (/home/kriss/WolfBot/src/Controller.ts:190:12)\n at /home/kriss/WolfBot/src/Controller.ts:100:18\n at new Promise (<anonymous>)\n at Controller.start (/home/kriss/WolfBot/src/Controller.ts:98:16)\n at Object.<anonymous> (/home/kriss/WolfBot/app.ts:278:16)\n at Module._compile (internal/modules/cjs/loader.js:776:30)\n at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)\n at Module.load (internal/modules/cjs/loader.js:643:32)\n at Function.Module._load (internal/modules/cjs/loader.js:556:12)\n at Function.Module.runMain (internal/modules/cjs/loader.js:839:10)\n at internal/main/run_main_module.js:17:11"} 2019-07-08 19:48:47 - info: Main process exited with code 1

any idea?

Backtest for binance produces garbage

I am still trying to get the open source version working - no success til yet.
On a semi working instance I have made a new backtests with binance data.

The backtest of pairs on binance don't work either for USDT_BTC nor for BTC_ATOM for example:

Configuration: MACD-Binance ("pair": "USDT_BTC", "marginTrading": false, "tradeTotalBtc": 1000)
Exchange: Binance
From: 07/01/2019 2:00 AM
To: 08/01/2019 1:00 AM
Start Balance: 2000
Slippage: 0.05

Start balance (BTC equivalent): 0.18177125
Current balance (BTC): -101.40490396
Start balance (USDT): 2000.00000000
Current balance (USDT): -1012782.49233102
Buy trades: 0
Winning buy trades: 0
Losing buy trades: 0
Sell trades: 431
Winning sell trades: 0
Losing sell trades: 0
Market exposure time (days): 0
Market exposure time (hours): 0
Market exposure time (percent): 0
Coin holdings efficiency (in %): -55887.100
Market efficiency (in %): -9.200
Bot efficiency (in %): -50739.100
Bot vs Market efficiency (in %): -50729.900

Configuration: MACD-Binance ("pair": "BTC_ATOM", "marginTrading": false, "tradeTotalBtc": 0.15)
Exchange: Binance
From: 07/01/2019 2:00 AM
To: 08/01/2019 1:00 AM
Start Balance: 1
Slippage: 0.05

Start balance (ATOM equivalent): 1977.84810127
Current balance (ATOM): -314.38701222
Start balance (BTC): 1.00000000
Current balance (BTC): -0.11412249
Buy trades: 8
Winning buy trades: 0
Losing buy trades: 0
Sell trades: 16
Winning sell trades: 0
Losing sell trades: 0
Market exposure time (days): 26.67
Market exposure time (hours): 1.11
Market exposure time (percent): 3.59
Coin holdings efficiency (in %): -115.900
Market efficiency (in %): -28.200
Bot efficiency (in %): -111.400
Bot vs Market efficiency (in %): -83.200

Backtests with Margin Trading on Bitfinex works.

i can't use the same data with different strategies

download the 4 months data with a strategy.
When I went to try the same data with a different strategy he started downloading it again.
and when i click on the button show currencies with fully imported history , not work.

List of currencies with completely imported history
This is a list of automatically imported currencies for backtesting. We recommend using one of the pairs here to skip the waiting time for the initial import. The history gets updated every 24h (so it will not contain the last day).

image

support triangular arbitrage

hello, can i know this github project can do fully auto triangular arbitrage on binance ? if can do 24/7 automatic triangular arbitrage on binance (auto complate buy/sell order when calc profit % include fee on triangular arbitrage opportunity ) i will donate BTC .. Thanks You!

Error Backtesting

2020-09-24 05:33:53 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:33:54 - verbose: Updating portfolio of 1 exchanges in RealTimeTrader
2020-09-24 05:33:55 - verbose: Synced Bitfinex USD_BTC portfolio: 1.8e-7 coins, 0 margin amount
2020-09-24 05:33:55 - verbose: Synced Bitfinex USD_ETH portfolio: 0 coins, 0 margin amount
2020-09-24 05:33:56 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:33:57 - verbose: Checked Bitfinex margin collateral (for possible margin call): 1
2020-09-24 05:34:01 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:01 - verbose: Fetched ticker of Bitfinex
2020-09-24 05:34:04 - verbose: 1min BITFINEX candle USD_BTC at 2020-09-24 05:33:00: high 10318.36815700, low 10318.36815700, close 10318.36815700, volume 0.10000000, trades 1
2020-09-24 05:34:04 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:09 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:11 - verbose: 1min BITFINEX candle USD_ETH at 2020-09-24 05:33:00: high 326.02000000, low 325.87000000, close 326.02000000, volume 47.11900000, trades 7
2020-09-24 05:34:14 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:18 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:21 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:26 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:27 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:29 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:31 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:32 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:36 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:41 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:43 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:48 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:49 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:50 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:54 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:34:57 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:02 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:02 - verbose: Fetched ticker of Bitfinex
2020-09-24 05:35:05 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:09 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:10 - verbose: 1min BITFINEX candle USD_BTC at 2020-09-24 05:34:00: high 10319.00000000, low 10319.00000000, close 10319.00000000, volume 0.44487680, trades 5
2020-09-24 05:35:10 - verbose: 1min BITFINEX candle USD_ETH at 2020-09-24 05:34:00: high 325.92972488, low 325.90051502, close 325.90051502, volume 56.14889520, trades 8
2020-09-24 05:35:11 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:14 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:17 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:19 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:24 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:28 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:32 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:36 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:37 - debug: Secure request: /backtest
2020-09-24 05:35:38 - debug: Secure request: /css/style.css?v=8
2020-09-24 05:35:39 - debug: Secure request: /css/libs/bootstrap-datetimepicker.min.css
2020-09-24 05:35:39 - debug: Secure request: /icons/fav/icon_114.png
2020-09-24 05:35:41 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:41 - debug: Secure request: /locales/en.json?v=0.1.0
2020-09-24 05:35:42 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:43 - debug: Secure request: /css/libs/bootstrap-datetimepicker.min.css
2020-09-24 05:35:43 - debug: Secure request: /js/libs/moment/moment.min.js
2020-09-24 05:35:44 - debug: Secure request: /js/libs/bootstrap-datetimepicker.min.js
2020-09-24 05:35:44 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:48 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:53 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:55 - verbose: Updating portfolio of 1 exchanges in RealTimeTrader
2020-09-24 05:35:58 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:35:58 - verbose: Checked Bitfinex margin collateral (for possible margin call): 1
2020-09-24 05:35:59 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:36:00 - verbose: WebSocket connection closed with code 1001: 
2020-09-24 05:36:01 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:36:02 - verbose: WebSocket connection closed with code 1001: 
2020-09-24 05:36:06 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:36:06 - verbose: Fetched ticker of Bitfinex
2020-09-24 05:36:09 - debug: Secure request: /backtest
2020-09-24 05:36:09 - debug: Secure request: /css/style.css?v=8
2020-09-24 05:36:10 - debug: Secure request: /js/libs/functions.js
2020-09-24 05:36:10 - debug: Secure request: /css/bootstrap-multiselect.css
2020-09-24 05:36:10 - debug: Secure request: /css/libs/bootstrap-datetimepicker.min.css
2020-09-24 05:36:10 - debug: Secure request: /js/polyfills.js
2020-09-24 05:36:10 - debug: Secure request: /js/libs/i18next.min.js
2020-09-24 05:36:10 - debug: Secure request: /js/libs/Chart.bundle.js
2020-09-24 05:36:10 - debug: Secure request: /js/libs/eventemitter2.js
2020-09-24 05:36:10 - debug: Secure request: /js/libs/i18nextXHRBackend.min.js
2020-09-24 05:36:10 - debug: Secure request: /js/libs/bootstrap-multiselect.js
2020-09-24 05:36:10 - debug: Secure request: /js/libs/ace/ace.js
2020-09-24 05:36:10 - debug: Secure request: /js/libs/jquery.dataTables.js
2020-09-24 05:36:10 - debug: Secure request: /js/libs/dataTables.bootstrap.js
2020-09-24 05:36:10 - debug: Secure request: /js/constants.js
2020-09-24 05:36:10 - debug: Secure request: /js/libs/helper.js
2020-09-24 05:36:10 - debug: Secure request: /js/libs/browserutils.js
2020-09-24 05:36:10 - debug: Secure request: /js/libs/tv/charting_library.min.js
2020-09-24 05:36:10 - verbose: Error sending WebSocket data WebSocket is not open: readyState 3 (CLOSED)
2020-09-24 05:36:10 - verbose: Error sending WebSocket data WebSocket is not open: readyState 3 (CLOSED)
2020-09-24 05:36:10 - verbose: Error sending WebSocket data WebSocket is not open: readyState 3 (CLOSED)
2020-09-24 05:36:10 - verbose: Error sending WebSocket data WebSocket is not open: readyState 3 (CLOSED)
2020-09-24 05:36:10 - verbose: Error sending WebSocket data WebSocket is not open: readyState 3 (CLOSED)
2020-09-24 05:36:10 - debug: Secure request: /js/bundle.js?v=8
2020-09-24 05:36:11 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:36:11 - verbose: 1min BITFINEX candle USD_ETH at 2020-09-24 05:35:00: high 325.92972488, low 325.57000000, close 325.92972488, volume 11.63720949, trades 4
2020-09-24 05:36:11 - verbose: WebSocket connection closed with code 1006: 
2020-09-24 05:36:11 - debug: Secure request: /icons/fav/icon_114.png
2020-09-24 05:36:11 - debug: Secure request: /locales/en.json?v=0.1.0
2020-09-24 05:36:12 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:36:13 - verbose: Error sending WebSocket data WebSocket is not open: readyState 3 (CLOSED)
2020-09-24 05:36:13 - verbose: Error sending WebSocket data WebSocket is not open: readyState 3 (CLOSED)
2020-09-24 05:36:13 - verbose: Error sending WebSocket data WebSocket is not open: readyState 3 (CLOSED)
2020-09-24 05:36:13 - verbose: Error sending WebSocket data WebSocket is not open: readyState 3 (CLOSED)
2020-09-24 05:36:13 - verbose: Error sending WebSocket data WebSocket is not open: readyState 3 (CLOSED)
2020-09-24 05:36:13 - verbose: 1min BITFINEX candle USD_BTC at 2020-09-24 05:35:00: high 10319.00000000, low 10319.00000000, close 10319.00000000, volume 0.11262808, trades 3
2020-09-24 05:36:14 - debug: Secure request: /fonts/fontawesome-webfont.woff2?v=4.7.0
2020-09-24 05:36:14 - debug: Secure request: /js/libs/moment/moment.min.js
2020-09-24 05:36:14 - debug: Secure request: /css/libs/bootstrap-datetimepicker.min.css
2020-09-24 05:36:14 - debug: Secure request: /js/libs/bootstrap-datetimepicker.min.js
2020-09-24 05:36:15 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:36:17 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:36:18 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:36:19 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:36:20 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:36:21 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators
    at new UpdateOneOperation (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/operations/update_one.js:12:13)
    at Collection.updateOne (/home/jordanlanch/WolfBot/node_modules/mongodb/lib/collection.js:758:5)
    at collection.findOne.then (/home/jordanlanch/WolfBot/node_modules/@ekliptor/bit-models/models/Process.ts:74:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
2020-09-24 05:36:23 - warn: Error setting process active TypeError: Update document requires atomic operators
TypeError: Update document requires atomic operators

Error: ENOENT: no such file or directory

Currently having this warning:

Error: ENOENT: no such file or directory, open '/home/sarmel/Ashdown/Ashbot/node_modules/@ekliptor/browserutils/src/js/functions.js'

installation issues

this happens with 'yarn install' (I am in the wolfbot directory):

yarn install v1.16.0
util.js:220
throw new ERR_OUT_OF_RANGE('err', 'a negative integer', err);
^

RangeError [ERR_OUT_OF_RANGE]: The value of "err" is out of range. It must be a negative integer. Received 536870212
at Object.getSystemErrorName (util.js:220:11)
at exceptionWithHostPort (internal/errors.js:459:21)
at internalConnect (net.js:833:16)
at defaultTriggerAsyncIdScope (internal/async_hooks.js:288:20)
at emitLookup (net.js:976:9)
at /usr/local/Cellar/yarn/1.16.0/libexec/lib/cli.js:106745:29
at /usr/local/Cellar/yarn/1.16.0/libexec/lib/cli.js:106591:25
at RawTask.module.exports.RawTask.call (/usr/local/Cellar/yarn/1.16.0/libexec/lib/cli.js:82961:19)
at flush (/usr/local/Cellar/yarn/1.16.0/libexec/lib/cli.js:83043:29)
at processTicksAndRejections (internal/process/task_queues.js:82:9)

Mongo Db connection error.

Error connecting to MongoDB {"message":"invalid schema, expected mongodb or mongodb+srv","stack":"Error: invalid schema, expected mongodb or mongodb+srv\n at module.exports (/var/www/html/WolfBot/node_modules/mongodb/lib/url_parser.js:15:21)\n at connect (/var/www/html/WolfBot/node_modules/mongodb/lib/mongo_client.js:485:3)\n at Function.MongoClient.connect (/var/www/html/WolfBot/node_modules/mongodb/lib/mongo_client.js:250:3)\n at connect (/var/www/html/WolfBot/src/database.ts:81:17)\n at /var/www/html/WolfBot/src/database.ts:58:13\n at new Promise ()\n at Object.connectAll (/var/www/html/WolfBot/src/database.ts:57:25)\n at Controller.connect (/var/www/html/WolfBot/src/Controller.ts:190:12)\n at /var/www/html/WolfBot/src/Controller.ts:100:18\n at new Promise ()\n at Controller.start (/var/www/html/WolfBot/src/Controller.ts:98:16)\n at Object. (/var/www/html/WolfBot/app.ts:278:16)\n at Module._compile (internal/modules/cjs/loader.js:759:30)\n at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)\n at Module.load (internal/modules/cjs/loader.js:628:32)\n at Function.Module._load (internal/modules/cjs/loader.js:555:12)\n at Function.Module.runMain (internal/modules/cjs/loader.js:826:10)\n at internal/main/run_main_module.js:17:11"}
2019-08-26 10:35:33 - info: Main process exited with code 1

Please help me as soon as possible.

Missing files

I've added missing forex.analytics dependency, created a script to run tsc on each @Ekliptor dependency folder with tsconfig inside (overwriting watch to false), but now facing errors about missing files.

src/Controller.ts:29:34 - error TS2307: Cannot find module './Social/Crawler/Telegram'.
29 import {RawTelegramMessage} from "./Social/Crawler/Telegram";
-----------
src/WebSocket/TradingViewData.ts:21:30 - error TS2307: Cannot find module '../../public/js/libs/tv                                                             /charting_library.min'.
21 import * as TradingView from "../../public/js/libs/tv/charting_library.min"

These folders and file are in the .gitignore:

src/Social/Crawler
src/Social/Watcher
public/js/libs/tv
src/Exchanges/BitmexFix.ts
src/Strategies/TradingViewSignal.ts
config/TradingViewSignal.json

Can you please remove some of these files from .gitignore and push them?

error on fresh install : deribit-v2-ws compiling SyntaxError

After compiling manually some modules (as said in other issues, like apputils). When, from build folder, I run:
node app.js --debug --config=Noop --trader=RealTimeTrader --noUpdate --noBrowser
I get this error:

/mnt/workspace/ws/git/cry/WolfBot/node_modules/deribit-v2-ws/con.js:62
  ping = async() => {
       ^
SyntaxError: Unexpected token =
(...)

I tried a different version of deribit-v2-ws (1.0.0 instead of 1.0.3) but a very similar error (the same but for anhoter function)

Any ideas?
Thanks

Installation Error (MongoDB)

Hi - trying to install but keep getting the following error:

WolfBot/build$ node app.js --debug --config=Noop --trader=RealTimeTrader --noUpdate --noBrowser 2020-06-19 14:18:30 - info: ***DISCOUNT*** Having trouble setting up WolfBot on your local machine? Try the cloud version at https://wolfbot.org with a 30% discount with this code: gitsource7393 2020-06-19 14:18:31 - verbose: Ta-Lib successfully loaded. Ta-Lib Version 1.1.2 ready 2020-06-19 14:18:31 - error: Error connecting to MongoDB {"message":"failed to connect to server [localhost:2007] on first connect [Error: connect ECONNREFUSED 127.0.0.1:2007\n at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {\n name: 'MongoError'\n}]","name":"MongoError","stack":"MongoError: failed to connect to server [localhost:2007] on first connect [Error: connect ECONNREFUSED 127.0.0.1:2007\n at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {\n name: 'MongoError'\n}]\n at Pool.<anonymous> (/home/me/WolfBot/node_modules/mongodb-core/lib/topologies/server.js:336:35)\n at Pool.emit (events.js:315:20)\n at Connection.<anonymous> (/home/me/WolfBot/node_modules/mongodb-core/lib/connection/pool.js:280:12)\n at Object.onceWrapper (events.js:422:26)\n at Connection.emit (events.js:315:20)\n at Socket.<anonymous> (/home/me/WolfBot/node_modules/mongodb-core/lib/connection/connection.js:189:49)\n at Object.onceWrapper (events.js:422:26)\n at Socket.emit (events.js:315:20)\n at emitErrorNT (internal/streams/destroy.js:92:8)\n at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)\n at processTicksAndRejections (internal/process/task_queues.js:84:21)"} 2020-06-19 14:18:31 - info: Main process exited with code 1
Can you help please?

Thank you in advance.

Bot is completely broken in timezone other than GMT (UTC+0)

Bot just refuses to work and write following:
In my case, GMT+3:

lastCandleTick: 3 h ago
2020-10-21 09:34:18 - error: Last candle tick was longer than 120 minutes ago. Scheduling restart
2020-10-21 09:34:18 - info: NoNotificationService: WolfBot RSIScalper BTC_ETH: Restarting bot - Last candle tick was longer than 120 minutes ago. Scheduling restart
2020-10-21 09:34:18 - verbose: Saved strategy state to: /home/tolik/git/WolfBot/temp/state-bittrex1.json
2020-10-21 09:34:22 - info: Main process exited with code 0
2020-10-21 09:34:22 - info: Exiting main process. Please wait...

image

How to reproduce:
Set computer time to GMT+3 and over. I didn't check how it work +1, +2 and negative time shifts.

Ubuntu installation

hello I tried to install WolfBot on an Ubuntu 20.04, finally when I run build / app.js nothing happens. This is how I installed everything:

sudo apt update -y && sudo apt -y upgrade
sudo apt -y install curl dirmngr apt-transport-https lsb-release ca-certificates
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt -y install nodejs
sudo apt -y install gcc g++ make

sudo apt-get install gnupg -y
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y mongodb-org
sudo apt update && sudo apt install node-typescript -y
sudo npm install -g typescript
sudo apt-get update -y
sudo apt-get install -y webpack

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update -y
sudo apt install -y yarn
sudo apt install --no-install-recommends yarn

sudo apt install -y git
git clone https://github.com/Ekliptor/WolfBot
yarn install
build/app.js

Unable to compile

Tried to install the bot on a fresh Ubuntu 18. Installed all requirements. However when compiling with TSC it fails keeps outputing a lot of javascript code and never completes. Is the install instruction in the readme still accurate? Also the gulp install finished without errors. I tried npm install as well on a clean clone but that failed because it was unable to find the depency from genetic module.

Example code doesn't work.

Hi. Upon running node app.js --debug --config=Noop --trader=RealTimeTrader --noUpdate --noBrowser I get:

Error: Cannot find module '@ekliptor/apputils'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:655:15)
    at Function.Module._load (internal/modules/cjs/loader.js:580:25)
    at Module.require (internal/modules/cjs/loader.js:711:19)
    at require (internal/modules/cjs/helpers.js:14:16)
    at Object.<anonymous> (/home/tom/Code/Code9/WolfBot/app.ts:42:1)
    at Module._compile (internal/modules/cjs/loader.js:805:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:816:10)
    at Module.load (internal/modules/cjs/loader.js:672:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:612:12)
    at Function.Module._load (internal/modules/cjs/loader.js:604:3)

backtesting not run old data

I took the test by doing a 1 year test.
Once it was finished I did another backtesting with a different strategy, the mistake is that it started to download another full year.
in the mongo database is already in 10Gb and continues downloading data.
as if it did not recognize the data already downloaded

image

image

many errors after fresh installation

Hey,

I very eager to try your trading bot. Unfortunately it's not working. I cloned the project, ran yarn install and yarn add webpack webpack-cli(because it was missing) and tried to do yarn watch, but I get this errors (just an excerpt, I have many more of them):

image
image

@ekliptor/bit-models

Hi, i'm try to setup WolfBot, i've renamed config file but i see an alert
wolfBot-First-Config

Something missing ?

Cannot run on fresh install

Install seems to go OK.

Versions are:
CentOS 7
NodeJS 10 (Installed via NVM)
Yarn 1.16.0 (Installed Via [curl -o- -L https://yarnpkg.com/install.sh | bash])
typescript 3.4.5

Try running:
node app.js --debug --config=Noop --trader=RealTimeTrader --noUpdate --noBrowser

Error: Cannot find module 'deribit-v2-ws'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15)
at Function.Module._load (internal/modules/cjs/loader.js:508:25)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object. (/home/WolfBot/WolfBot/src/Exchanges/Deribit.ts:35:1)
at Module._compile (internal/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object. (/home/WolfBot/WolfBot/src/Exchanges/AbstractExchange.ts:899:1)
at Module._compile (internal/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object. (/home/WolfBot/WolfBot/src/ExchangeController.ts:5:1)
at Module._compile (internal/modules/cjs/loader.js:701:30)

MongoDB connects, UI accessible, then fails, exit

2020-12-08 02:34:10 - info: ***DISCOUNT*** Having trouble setting up WolfBot on your local machine? Try the cloud version at https://wolfbot.org with a 30% discount with this code: gitsource7393
2020-12-08 02:34:11 - info: minified all resources
2020-12-08 02:34:29 - warn: Received WebSocket data without corresponding receiver. Opcode 11
2020-12-08 02:34:29 - warn: Received WebSocket data without corresponding receiver. Opcode 23
2020-12-08 02:34:29 - warn: Received WebSocket data without corresponding receiver. Opcode 18
2020-12-08 02:34:29 - warn: Received WebSocket data without corresponding receiver. Opcode 13
2020-12-08 02:34:29 - warn: Received WebSocket data without corresponding receiver. Opcode 22
2020-12-08 02:34:41 - error: Error connecting to MongoDB {"message":"getaddrinfo EAI_AGAIN mongo","stack":"MongoServerSelectionError: getaddrinfo EAI_AGAIN mongo\n    at Timeout._onTimeout (/home/dmattox10/git/WolfBot/node_modules/mongodb/lib/core/sdam/topology.js:438:30)\n    at listOnTimeout (internal/timers.js:549:17)\n    at processTimers (internal/timers.js:492:7)","name":"MongoServerSelectionError","reason":{"type":"Single","setName":null,"maxSetVersion":null,"maxElectionId":null,"servers":{},"stale":false,"compatible":true,"compatibilityError":null,"logicalSessionTimeoutMinutes":null,"heartbeatFrequencyMS":10000,"localThresholdMS":15,"commonWireVersion":null}}
2020-12-08 02:34:41 - info: Main process exited with code 1

Following the instructions, this is as far as I can get after hours of fiddling. Ran from the CLI as:

MONGO_URI="mongodb://REDACTED:REDACTED@mongo:27017/wolf" BITTREX_API_KEY="REDACTED" BITTREX_API_SECRET="REDACTED" node app.js --config=Noop --trader=RealTimeTrader --noUpdate --noBrowser

I'm trying to get it working within docker, which gives me a whole different error I won't bother you with as it's an unsupported config, but mongoDB is running in docker, hence the hostname, and I couldn't get the app to read from .env file even after adding the package and code, so I defined everything in the run command. The configLocal.ts is expecting these values to be passed in via process.env, it works, it just doesn't work for long, which I've never encountered.

im trying to run the program but i get error message

node app.js --debug --config=Noop --trader=RealTimeTrader --noUpdate –noBrowser

Error: Cannot find module '@ekliptor/apputils'
at Function.Module._resolveFilename (module.js:548:15)
at Function.Module._load (module.js:475:25)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object. (/home/hack/crypto/algotrades/WolfBot/app.ts:42:1)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)

MongoDB issue

Hello,

When I try to start the bot, I got this error.

image

Anyone can help me to fix it please ?

Regards

Binance Futures

Hello, do you plan to implement Binance Futures?

Congratulations for your project!

Issue with candle making and/or resampling candles

There seems to be an issue with timestamps and resampling ohlcv, which affects both the chart in the UI and calculation of data within strategy. Thanks for taking a look at it.

Here is my log with 5m setting and CandleTester strategy:

2020-04-30 11:46:08 - error: Loading notification class NoNotificationService failed. Loading fallback %s
2020-04-30 11:46:08 - verbose: Fetched ticker of BitMEX
2020-04-30 11:46:08 - info: Active candle makers: ["BITMEX USD_BTC"]
2020-04-30 11:46:08 - info: User specific configurations: none
2020-04-30 11:46:08 - info: Active candle batchers: ["BITMEX USD_BTC: 1 min","BITMEX USD_BTC: 5 min"]
2020-04-30 11:46:08 - verbose: Opening Websocket connection in BitMEX to wss://apiclient
2020-04-30 11:46:08 - verbose: Creating backup of 176 config files
2020-04-30 11:46:08 - info: Restored strategy state of 1-USD_BTC CandleTester from state-CandleTester.json
WebSocket [INFO]: Connected.
WebSocket [INFO]: Connected.
2020-04-30 11:46:08 - info: BitMEX WS Connection opened
2020-04-30 11:46:08 - verbose: BitMEX Client initialized, data is flowing.
2020-04-30 11:46:08 - info: Starting with empty order book snapshot. seqNr 0
2020-04-30 11:47:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 09:46:00: high 8882.00000000, low 8816.50000000, close 8840.00000000, volume 19690514.00000000, trades 5483
2020-04-30 11:47:08 - verbose: Fetched ticker of BitMEX
2020-04-30 11:48:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 09:47:00: high 8878.00000000, low 8840.00000000, close 8866.50000000, volume 9076955.00000000, trades 5096
2020-04-30 11:48:09 - verbose: Fetched ticker of BitMEX
(node:12763) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
2020-04-30 11:48:09 - verbose: Checked BitMEX margin collateral (for possible margin call): 1
2020-04-30 11:49:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 09:48:00: high 8886.50000000, low 8867.00000000, close 8872.00000000, volume 4240718.00000000, trades 4235
WebSocket [ERROR]: WebSocket closed with code 1006
WebSocket [INFO]: Retry in 1000 ms
WebSocket [INFO]: Reconnecting...
WebSocket [INFO]: Connected.
2020-04-30 11:49:10 - verbose: Fetched ticker of BitMEX
2020-04-30 11:50:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 09:49:00: high 8872.50000000, low 8859.50000000, close 8860.00000000, volume 2928570.00000000, trades 2760
2020-04-30 11:50:12 - verbose: Fetched ticker of BitMEX
2020-04-30 11:50:12 - verbose: Checked BitMEX margin collateral (for possible margin call): 1
2020-04-30 11:51:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 09:50:00: high 8859.50000000, low 8755.00000000, close 8792.00000000, volume 33073906.00000000, trades 8997
2020-04-30 11:51:00 - verbose: CandleTester 1 candle: 2020-04-30 11:46:00 CandleTester Market time: 2020-04-30 11:50:59, open 8881.50, close 8792.00, volume 69010663.00, trades 26571
2020-04-30 11:51:15 - verbose: Fetched ticker of BitMEX
2020-04-30 11:52:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 09:51:00: high 8814.50000000, low 8774.00000000, close 8774.50000000, volume 14366201.00000000, trades 7197
WebSocket [ERROR]: WebSocket closed with code 1006
WebSocket [INFO]: Retry in 1000 ms
WebSocket [INFO]: Reconnecting...
WebSocket [INFO]: Connected.
2020-04-30 11:52:14 - verbose: Checked BitMEX margin collateral (for possible margin call): 1
2020-04-30 11:52:19 - verbose: Fetched ticker of BitMEX
2020-04-30 11:53:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 09:52:00: high 8800.00000000, low 8755.00000000, close 8799.50000000, volume 19371439.00000000, trades 9856
2020-04-30 11:53:22 - verbose: Fetched ticker of BitMEX
2020-04-30 11:54:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 09:53:00: high 8809.50000000, low 8791.00000000, close 8809.50000000, volume 7722733.00000000, trades 4629
2020-04-30 11:54:16 - verbose: Checked BitMEX margin collateral (for possible margin call): 1
2020-04-30 11:54:24 - verbose: Fetched ticker of BitMEX
2020-04-30 11:55:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 09:54:00: high 8830.00000000, low 8808.50000000, close 8822.00000000, volume 10260625.00000000, trades 5927
WebSocket [ERROR]: WebSocket closed with code 1006
WebSocket [INFO]: Retry in 1000 ms
WebSocket [INFO]: Reconnecting...
WebSocket [INFO]: Connected.
2020-04-30 11:55:24 - verbose: Fetched ticker of BitMEX
2020-04-30 11:56:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 09:55:00: high 8822.00000000, low 8787.00000000, close 8787.00000000, volume 7302972.00000000, trades 4677
2020-04-30 11:56:00 - verbose: CandleTester 2 candle: 2020-04-30 11:51:00 CandleTester Market time: 2020-04-30 11:55:58, open 8792.50, close 8787.00, volume 59023970.00, trades 32286
2020-04-30 11:56:20 - verbose: Checked BitMEX margin collateral (for possible margin call): 1
2020-04-30 11:56:25 - verbose: Fetched ticker of BitMEX
2020-04-30 11:57:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 09:56:00: high 8791.00000000, low 8747.50000000, close 8763.00000000, volume 15338583.00000000, trades 4303
2020-04-30 11:57:25 - verbose: Fetched ticker of BitMEX
2020-04-30 11:58:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 09:57:00: high 8787.00000000, low 8750.00000000, close 8750.00000000, volume 7355696.00000000, trades 6453
WebSocket [ERROR]: WebSocket closed with code 1006
WebSocket [INFO]: Retry in 1000 ms
WebSocket [INFO]: Reconnecting...
WebSocket [INFO]: Connected.
2020-04-30 11:58:20 - verbose: Checked BitMEX margin collateral (for possible margin call): 1
2020-04-30 11:58:25 - verbose: Fetched ticker of BitMEX
2020-04-30 11:59:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 09:58:00: high 8765.00000000, low 8663.50000000, close 8693.50000000, volume 36610585.00000000, trades 11551
2020-04-30 11:59:25 - verbose: Fetched ticker of BitMEX
2020-04-30 12:00:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 09:59:00: high 8722.00000000, low 8668.00000000, close 8668.00000000, volume 18941875.00000000, trades 4006
2020-04-30 12:00:22 - verbose: Checked BitMEX margin collateral (for possible margin call): 1
2020-04-30 12:00:27 - verbose: Fetched ticker of BitMEX
2020-04-30 12:01:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 10:00:00: high 8668.50000000, low 8554.00000000, close 8625.50000000, volume 51234817.00000000, trades 6660
2020-04-30 12:01:00 - verbose: CandleTester 3 candle: 2020-04-30 11:56:00 CandleTester Market time: 2020-04-30 12:00:58, open 8787.00, close 8625.50, volume 129481556.00, trades 32973
WebSocket [ERROR]: WebSocket closed with code 1006
WebSocket [INFO]: Retry in 1000 ms
WebSocket [INFO]: Reconnecting...
WebSocket [INFO]: Connected.
2020-04-30 12:01:31 - verbose: Fetched ticker of BitMEX
2020-04-30 12:02:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 10:01:00: high 8644.00000000, low 8586.50000000, close 8644.00000000, volume 19721260.00000000, trades 6129
2020-04-30 12:02:23 - verbose: Checked BitMEX margin collateral (for possible margin call): 1
2020-04-30 12:02:33 - verbose: Fetched ticker of BitMEX
2020-04-30 12:03:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 10:02:00: high 8715.50000000, low 8643.50000000, close 8705.50000000, volume 22620195.00000000, trades 7059
2020-04-30 12:03:34 - verbose: Fetched ticker of BitMEX
2020-04-30 12:04:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 10:03:00: high 8744.00000000, low 8688.00000000, close 8706.00000000, volume 20101275.00000000, trades 3574
WebSocket [ERROR]: WebSocket closed with code 1006
WebSocket [INFO]: Retry in 1000 ms
WebSocket [INFO]: Reconnecting...
WebSocket [INFO]: Connected.
2020-04-30 12:04:26 - verbose: Checked BitMEX margin collateral (for possible margin call): 1
2020-04-30 12:04:35 - verbose: Fetched ticker of BitMEX
2020-04-30 12:05:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 10:04:00: high 8724.00000000, low 8695.00000000, close 8723.00000000, volume 8709278.00000000, trades 4841
2020-04-30 12:05:37 - verbose: Fetched ticker of BitMEX
2020-04-30 12:06:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 10:05:00: high 8757.50000000, low 8722.00000000, close 8754.50000000, volume 15073184.00000000, trades 7247
2020-04-30 12:06:00 - verbose: CandleTester 4 candle: 2020-04-30 12:01:00 CandleTester Market time: 2020-04-30 12:05:58, open 8625.50, close 8754.50, volume 86225192.00, trades 28850
2020-04-30 12:06:28 - verbose: Checked BitMEX margin collateral (for possible margin call): 1
2020-04-30 12:06:38 - verbose: Fetched ticker of BitMEX
2020-04-30 12:07:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 10:06:00: high 8757.50000000, low 8737.00000000, close 8740.00000000, volume 10147856.00000000, trades 6088
WebSocket [ERROR]: WebSocket closed with code 1006
WebSocket [INFO]: Retry in 1000 ms
WebSocket [INFO]: Reconnecting...
WebSocket [INFO]: Connected.
2020-04-30 12:07:41 - verbose: Fetched ticker of BitMEX
2020-04-30 12:08:00 - verbose: 1min BITMEX candle USD_BTC at 2020-04-30 10:07:00: high 8762.00000000, low 8736.50000000, close 8750.00000000, volume 5107978.00000000, trades 5532
2020-04-30 12:08:29 - verbose: Checked BitMEX margin collateral (for possible margin call): 1
2020-04-30 12:08:44 - verbose: Fetched ticker of BitMEX

Bitfinex key

Hi

I'm not using Bitfinex and have removed the exchange and I get the below error, I tried a clean install but still seem to get the same error.

2020-02-19 21:46:12 - error: Loading notification class NoNotificationService failed. Loading fallback %s
2020-02-19 21:46:12 - warn: Process monitoring not supported on windows. Skipped
2020-02-19 21:46:14 - info: Loading exchange Bitfinex with apiKey index 0
2020-02-19 21:46:14 - warn: Empty exchange key/secret found for Bitfinex in config. Keeping exchanges idle.

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.