Zenbot is a command-line cryptocurrency trading bot using Node.js and MongoDB.

r/zenbot1.4K subscribers4 active
Thrilling update for all! The eagerly-awaited Convex airdrop has officially kicked off. Check your qualification and collect your free CRV tokens via their primary site. I've secured 900 CRV worth $462, but your bonus might differ based on your blockchain activity.HELP WANTED

Exciting news, crypto enthusiasts! Convex Finance is hosting an airdrop to reward our amazing community. Hold CRV tokens, stay active, and spread the word to get free tokens starting 10.02.23 for 10.10.23. Join us in supporting DeFi innovation and be part of this exciting opportunity! https://medium.com/@convex/convex-finance-airdrop-4175d0bd7955

Updates

Do anyone still use zenbot for trading?

zenbot wont buy/sell on binance

I have an instance of zenbot running and i can check my balance, but neither selling or buying is working. When I start the command: ./zenbot.sh buy binance.DOGE-USDT --debug I first get a message preparing buy order... right after this message I get buy delayed and after some seconds zenbot prepares order a second time, but this time the values are all NaN followed by the message invalid order for buy, aborting

Has there been a change to the binance API or is this some other problem?

1
0
1.8y
a grid strategy for zenbot

Hi,

I have created a grid strategy for zenbot. please send an email if you like to have it. There will be very small charge. ([[email protected]](mailto:[email protected]))

Good Luck

0
1
1.8y
Anyone still using zenbot?

Is there anyone still activly using zenbot? I tried to install it as a docker container, but all I get is error messages because of version conflicts as the image is quite old already..

2
3
1.8y
Zenbot on Facebook

Hello, I created a public Facebook group for Zenbot. And would like to support more Zenbot, Enjoy!

https://www.facebook.com/groups/1407097289750298/

Zenbot repo archivedHELP WANTED

The Github page now says;

This repository has been archived by the owner. It is now read-only.

...as of a few days ago.

Anybody know if any forks are being maintained?

Cheers.

How to use the profit for further trading?

There is an option --currency_capital option to start trading with. For example, I've started with 1000$ and earned 10$, I want the next trade the bot to use 1010$ of currency or 100% and so on. Is it possible?

1
0
2.3y
how to connect to external new exchange?HELP WANTED

how to connect to external new exchange?

specifically how to connect to woo-X exchange?

Running many simulations in parallel causing MongoDB bottleneck - anyone have experience?HELP WANTED

I am working on a backtesting platform for Zenbot (have posted here a couple of times before).

Since I made those posts I have decided it is not really suitable for open-sourcing / self-hosting as there are just too many moving parts and expert configuration of various elements involved. I set it all up on AWS before Christmas and it was working pretty well ... but AWS is expensive, and no fun :) so now I bought a server to host it at home. My goal is to build a small community around it.

So anyway, it's working pretty well and I am able to run around 100 - 200 simulations in parallel. For example, i was able to run a batch of 500 simulations against BTC/USD covering 5 different strategies for a trading period of 2 months. That took almost a couple of days to run and I would like to try to optimise that down to a few hours.

So - lots of stuff working! However, the next technical hurdle I have is trying to eliminate bottlenecks to further optimise performance. I believe my current bottleneck is MongoDB. Using mongotop as a rough method of measuring I can see that once I get to around 15-20 simultaneous simulations mongo starts to struggle and the speed at which simulations run slows down drastically. Mongo has a lot of cache space available so that is not the problem. I think Zenbot is doing very large amounts of reads on the trades collection.

If I have got this right I see a few possible options;

- Try to optimise the queries Zenbot is running (i.e. doing fewer queries over larger quantities of data in each query.

- Rewrite Zenbot to use Redis instead of Mongo

- Pay loads of money for MongoDB Enterprise which includes an in-memory storage engine (not gonna happen)

- Rewrite Zenbot so that instead of running many instances in parallel, you run one instance, but in the main loop you process multiple strategies in one (I haven't really looked deeply into this and is really a totally different overall approach from the route I have gone down)

None of these options seem particularly attractive as they all seem quite high effort without any guarantee of success.

Anyway, just wondering if anybody has any comments or advice on this issue. Thanks!

Where are some community groupd for Zenbot?

Can I trade on FTX spot or any other spot market with low fees ? Is Zenbot freeto run and can I run it on any (ArubaCloud) VPS UBUNTU ?

How can i create a simple PING PONG strategy?

HI i just need a bot that would allow me to place limit buy and limit sell orders on different coins,

for example BUY x amount of Y Coin and sell at Z Price, then once the cycle is finished, replace the same order again, how can i do that?

1
9
2.4y
Zenbot - Crypto Bot - Dogecoin WinnerSTRATEGY

This would be a very good starter bot to get to know Zenbot. There are many strategies for Zenbot, but Momentum is one of the only ones I can get to show a profit in simulation. I think it is better to use a stop loss with automated trading. You want to be able to dodge the -20%+ losses. -5% is a fair stop loss that gives room and also limit losses.

Comment if you find any improvements for these settings, or if you have any strategies to share.

Strategy: Momentum

Exchange: Binance.US

Market: DOGE-USD

Days: 100

Period: 10m

Markdown Buy %: 3

Markup Buy %: 2

Stop Loss: 5%

Order Adjust Time: 15m

Profit: +67.48%

Command I used:

node zenbot sim binanceus.DOGE-USD --conf binance-doge-momo.js --period_length=10m --period=10m --momentum_size=5 --days 100 --markdown_buy_pct=3 --markup_sell_pct=2 --order_adjust_time=900000

+67.48%

Replace these settings in the conf.js file

// default selector. only used if omitting [selector] argument from a command.
c.selector = process.env.ZENBOT_DEFAULT_SELECTOR || 'binanceus.DOGE-USD'
// name of default trade strategy
c.strategy = process.env.ZENBOT_DEFAULT_STRATEGY || 'momentum'


// Optional stop-order triggers:

// sell if price drops below this % of bought price (0 to disable)
c.sell_stop_pct = process.env.ZENBOT_SELL_STOP_PCT || 5
// buy if price surges above this % of sold price (0 to disable)
c.buy_stop_pct = process.env.ZENBOT_BUY_STOP_PCT || 0
// enable trailing sell stop when reaching this % profit (0 to disable)
c.profit_stop_enable_pct = process.env.ZENBOT_PROFIT_STOP_ENABLE_PCT || 0
// maintain a trailing stop this % below the high-water mark of profit
c.profit_stop_pct = process.env.ZENBOT_PROFIT_STOP_PCT || 1

// Order execution rules:

// avoid trading at a slippage above this pct
c.max_slippage_pct = process.env.ZENBOT_MAX_SLIPPAGE_PCT || 5
// buy with this % of currency balance (WARNING : sim won't work properly if you set this value to 100)
c.buy_pct = process.env.ZENBOT_BUY_PCT || 99
// sell with this % of asset balance (WARNING : sim won't work properly if you set this value to 100)
c.sell_pct = process.env.ZENBOT_SELL_PCT || 99
// ms to adjust non-filled order after
c.order_adjust_time = process.env.ZENBOT_ORDER_ADJUST_TIME || 900000
// avoid selling at a loss below this pct set to 0 to ensure selling at a higher price...
c.max_sell_loss_pct = process.env.ZENBOT_MAX_SELL_LOSS_PCT || 99
// avoid buying at a loss above this pct set to 0 to ensure buying at a lower price...
c.max_buy_loss_pct = process.env.ZENBOT_MAX_BUY_LOSS_PCT || 99
// ms to poll order status
c.order_poll_time = process.env.ZENBOT_ORDER_POLL_TIME || 5000
// ms to wait for settlement (after an order cancel)
c.wait_for_settlement = process.env.ZENBOT_WAIT_FOR_SETTLEMENT || 1000
// % to mark down buy price for orders
c.markdown_buy_pct = process.env.ZENBOT_MARKDOWN_BUY_PCT || 3
// % to mark up sell price for orders
c.markup_sell_pct = process.env.ZENBOT_MARKUP_SELL_PCT || 2
// become a market taker (high fees) or a market maker (low fees)
c.order_type = process.env.ZENBOT_ORDER_TYPE || 'maker'
// when supported by the exchange, use post only type orders.
c.post_only = process.env.ZENBOT_POST_ONLY || true
// use separated fee currency such as binance's BNB.
c.use_fee_asset = process.env.ZENBOT_USE_FEE_ASSET || false

// Misc options:

// default # days for backfill and sim commands
c.days = process.env.ZENBOT_DAYS || 14
// defaults to a high number of lookback periods
c.keep_lookback_periods = process.env.ZENBOT_KEEP_LOOKBACK_PERIODS || 50
// ms to poll new trades at
c.poll_trades = process.env.ZENBOT_POLL_TRADES || 5000
// amount of currency to start simulations with
c.currency_capital = process.env.ZENBOT_CURRENCY_CAPITAL || 5000
// amount of asset to start simulations with
c.asset_capital = process.env.ZENBOT_ASSET_CAPITAL || 0
// for sim, reverse time at the end of the graph, normalizing buy/hold to 0
c.symmetrical = process.env.ZENBOT_SYMMETRICAL || false
// number of periods to calculate RSI at
c.rsi_periods = process.env.ZENBOT_RSI_PERIODS || 14
// period to record balances for stats
c.balance_snapshot_period = process.env.ZENBOT_BALANCE_SNAPSHOT_PERIOD || '15m'
// avg. amount of slippage to apply to sim trades
c.avg_slippage_pct = process.env.ZENBOT_AVG_SLIPPAGE_PCT || 0.045
// time to leave an order open, default to 1 day (this feature is not supported on all exchanges, currently: GDAX)
c.cancel_after = process.env.ZENBOT_CANCEL_AFTER || 'day'
// load and use previous trades for stop-order triggers and loss protection (live/paper mode only)
c.use_prev_trades = process.env.ZENBOT_USE_PREV_TRADES || false
// minimum number of previous trades to load if use_prev_trades is enabled, set to 0 to disable and use trade time instead
c.min_prev_trades = process.env.ZENBOT_MIN_PREV_TRADES || 0

Bonus Command:

node zenbot sim binanceus.DOGE-USD --conf binance-doge-momo.js --period_length=10m --period=10m --momentum_size=5 --days 100 --markdown_buy_pct=2 --markup_sell_pct=1 --order_adjust_time=900000

+58.03%

DLvWhnDFy5GhBa8RX9jr9KcY9hAqQ73wYa

10
4
2.4y
Config discord webhook

Hi everyone,

Although the remaining docs for zenbot are quite goot, I have a very hard time understanding all the configs, and what they do, or what needs to be put in them.

(Currently on paper mode)

To be more specific, I am trying to make zenbot send me discord messages, and don't know where to put the webhook link. Any tips??

please i need ssome help with installing zenbotHELP WANTED

Create your configuration file by copying

conf-sample.js

to

conf.js

:

and it said "No such file or directory"

i got a lot of questions, any help would be appreciated, Thanks!!

add me on my discord Cocoa#3646

For-hire Zenbot coding work.

I'm looking for freelancers to do Zenbot coding work:

  • Would prefer existing contributors to the project, but anyone welcome with CV.
  • Can pay in crypto if desired, or do classic money.

The work (need all of it done, but you can choose to select only part of it):

  • Add exchanges (would probably start with this as a test as it's straightforward). These have well established APIs
  • Add strategies
  • Small modifications to the engine
  • Multi-coin strategies
  • Improvements to the genetic algo
  • New web interface features
  • New reporting features
  • New long-term strategy running features
  • Preparation for more efficient use of the code on the cloud (k8s/docker work)
  • *If* the main project is interested, objectification of the existing code and addition of comments

All work would be merged into the main project through Pull Requests.

My email is [[email protected]](mailto:[email protected]) but you can also simply answer right here.

Cheers!

9
5
2.5y
Strategy setting

How can I access my average load price and the last trade price in my strategy?

Thanks

1
1
2.5y
Genetic Backtester can not see balance/result, thinks all commands produce Zero (when they don't)

I'm trying to run the genetic backtester with:

./scripts/genetic_backtester/darwin.js --selector="kraken.EWT-GBP" --days="1" --currency_capital="1000" --use_strategies="trend_ema" --population="10" --population_data="simulations/generation_data_test2.json" --maxCores=64

I had to edit zenbot.sh because I use docker, so my zenbot.sh looks like this:

#!/bin/sh
env docker-compose exec server zenbot $@

When I run the darwin script, it seems to work, but *acts* as if all commands run return a balance of 0: https://pastebin.com/iyCuiqFc

However, if I take one of those commands myself, and run it separately, it actually works, and returns a non-zero balance: https://pastebin.com/rPMBQSNn

How comes darwin.js is not seeing the output/balance of these sim runs?

Any ideas?

Thanks a lot, and really great project!

4
2
2.6y
Equivalent to "Spot Grid" strategy.HELP WANTED

Hello.

I'm new to zenbot. I'm trying to use it to reproduce the strategy KuCoin offers with their bots, which they call "Spot Grid", and which has worked well for me for a while.

I'd like to know if there is a strategy in zenbot that does the same thing.

They have a nice explanation of how it works here: https://kucoin.notion.site/kucoin/KuCoin-Trading-Bot-FAQ-a83bab1123094dea957851811a1a2fb7

Pretty much, buy on the way down, sell a bit higher on the way up. Works well if you give it markets that swing a lot but stay within a given range while doing that.

Is there a strategy in zenbot that does the same thing? The strategy descriptions have so far been a bit too cryptic for me. I'm reading code right now so I'll probably figure it out, but any help would be welcome.

If zenbot does not implement this, I'll have a crack at coding it myself and making a PR etc.

Congrats to the devs by the way, it's a really nice project, lots of fun to play with.

Cheers!

2
4
2.6y