DeviaVir / zenbot

Zenbot is a command-line cryptocurrency trading bot using Node.js and MongoDB.
MIT License
8.24k stars 2.04k forks source link

Contributing in non-programming way? #12

Closed ghostnegotiator closed 8 years ago

ghostnegotiator commented 8 years ago

Hello there,

Currently I am running your bot on one of my servers (Version 3.x) and noticed its stunning performance and trading. As of I started initially with a small amount and its performing nicely on the GDAX Exchange. Hopefully I am able to contribute towards your project in a non programming way and support your project.

Yours Faithfully, RDash

obsidian0001 commented 8 years ago

I second this! I'd like to throw the developer a donation if possible.

ghostnegotiator commented 8 years ago

As for me the bot is running 4 hours and made 6 magnificent trades and about 20 euro profit in assets (BTC). Which suprised me since I ran it for a pure experiment... hence I wish to contribute in donation, testing & bug report.

On Sun, Aug 14, 2016, 16:08 Christopher Sousa notifications@github.com wrote:

I second this! I'd like to throw the developer a donation if possible.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/carlos8f/zenbot/issues/12#issuecomment-239675517, or mute the thread https://github.com/notifications/unsubscribe-auth/AHMwQ3wHRSwt118Php4-1n3tNeYJwHaJks5qfyFpgaJpZM4Jj4-6 .

obsidian0001 commented 8 years ago

My friend -- I just started running this with a starting position of $213. I will inform you of it's progress. I realized 3.0.0 is the latest version after struggling to run 2.8. Thanks for your report! I would like to contribute in anyway I can!

carlos8f commented 8 years ago

Great to hear from both of you!

3.x is going well, I just starting testing it on GDAX the last couple days. There are still some unfinished parts - it doesn't have an auto-learn engine yet, but manual simulations work (and you can plot the virtual trades on the graph).

Once the code settles down I will push it to master, and then have a need for docs and plugins (exchange support, etc). At that point I will accept pull requests for non-core stuff (anything in the plugins folder is fair game).

Cheers, Carlos

carlos8f commented 8 years ago

by the way, I accept donations in BTC :) address on my site: https://s8f.org

ghostnegotiator commented 8 years ago

Awesome!

Could you at least give a propper hint on how to start 2.8? Because I could not figure that out my self propperly.

Ps: BTC Donation incomming aswel!

On Sun, Aug 14, 2016, 21:04 Carlos Rodriguez notifications@github.com wrote:

Great to hear from both of you!

3.x is going well, I just starting testing it on GDAX the last couple days. There are still some unfinished parts - it doesn't have an auto-learn engine yet, but manual simulations work (and you can plot the virtual trades on the graph).

Once the code settles down I will push it to master, and then have a need for docs and plugins (exchange support, etc). At that point I will accept pull requests for non-core stuff (anything in the plugins folder is fair game).

Cheers, Carlos

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/carlos8f/zenbot/issues/12#issuecomment-239690283, or mute the thread https://github.com/notifications/unsubscribe-auth/AHMwQ_Nzmm1VmH1tMLRAxo6U6JCnL2L1ks5qf2asgaJpZM4Jj4-6 .

ghostnegotiator commented 8 years ago

Another question: I understand Open Source Projects are done with allot of passion and love. And no one can espect actual gaurantee. As always I wonder and commonly ask project owners: how far are you willing to support this project?

Yours Faithfully, RDash

On Sun, Aug 14, 2016, 21:06 Daan Montijn anime.machina@gmail.com wrote:

Awesome!

Could you at least give a propper hint on how to start 2.8? Because I could not figure that out my self propperly.

Ps: BTC Donation incomming aswel!

On Sun, Aug 14, 2016, 21:04 Carlos Rodriguez notifications@github.com wrote:

Great to hear from both of you!

3.x is going well, I just starting testing it on GDAX the last couple days. There are still some unfinished parts - it doesn't have an auto-learn engine yet, but manual simulations work (and you can plot the virtual trades on the graph).

Once the code settles down I will push it to master, and then have a need for docs and plugins (exchange support, etc). At that point I will accept pull requests for non-core stuff (anything in the plugins folder is fair game).

Cheers, Carlos

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/carlos8f/zenbot/issues/12#issuecomment-239690283, or mute the thread https://github.com/notifications/unsubscribe-auth/AHMwQ_Nzmm1VmH1tMLRAxo6U6JCnL2L1ks5qf2asgaJpZM4Jj4-6 .

obsidian0001 commented 8 years ago

Awesome - donation coming tomorrow. RDash21, I could never get 2.8 to execute trades or simulate/backtest. I think it could be broken due to the most recent update. Currently, zenbot is only sending buy signals.

Carlos - for the auto-learn engine, is that necessary for proper trade execution?

Thanks all.

semiend commented 8 years ago

Hello there . I managed to run the 2.6 version just fine. Most of the commands work without an issue. But I can not quite understand the Trade settings: run [options] 4. run zenbot on the exchange. I would like to test it on the real market but I'm not sure how to change or tape in any trading data. I will be very grateful for any instructions. Thanks

carlos8f commented 8 years ago

@obsidian0001 if2.8 is broken, I will probably just publish 3.x right now, lol. Can you (or @RDash21 ) provide me with any error messages or steps you couldn't get past?

The basic way to use 2.8 is:

npm install
npm link (sets up bin)
zenbot backfill (should stop at about 90 days backfilled)
(in another window, while backfill going)
zenbot record (gets new trades from exchange)
(in another window, while record going)
zenbot run (interacts with the exchange, getting data from `record`)
(in another window, once backfill finished)
zenbot sim (should stop with a json object)
(in another window, once sim finished)
zenbot learn (runs parallel sims and feeds results to `run`)

I just pushed a commit to master that should fix the 2.8 error ZENBOT_USER_AGENT not defined. But let me know if it's still broken.

carlos8f commented 8 years ago

@semiend use zenbot backfill and then zenbot sim to test it on the backfilled data, and zenbot learn to run parallel sims and adjust the trade params to the best sim results.

carlos8f commented 8 years ago

@obsidian0001

for the auto-learn engine, is that necessary for proper trade execution?

no, but if you leave the bot on for several months, the market conditions will change and probably render the bot less profitable, and the auto-learn mechanism should counter act that. It also speeds up the time it takes to find good trade params, via parallel processing.

ghostnegotiator commented 8 years ago

As for me I had no idea how to properly execute the script, there were no errors at all when executing the startups at a single command. Currently writing a startup script and will verify if I run into errors please hold on. Also will be sharing the startup script for every one here for 2.8 :)

carlos8f commented 8 years ago

@RDash21

how far are you willing to support this project?

It's my main hobby project at the moment, but for me it's long-term important because its underlying engine (zenbrain) is my entry into artificial intelligence research. AI is a field I want to persue for the next 10 years and maybe beyond, so expect zenbrain (and zenbot) to evolve and stay relevant because of that drive.

ghostnegotiator commented 8 years ago

After some dirty scripting here we go!

#!/bin/bash
cd /home/user/zenbot2
screen -dmS "backfill"
screen -S "backfill" -p 0 -X stuff "zenbot backfill$(printf \\r)"
screen -dmS "record"
screen -S "record" -p 0 -X stuff "zenbot record$(printf \\r)" 
screen -dmS "run"
screen -S "run" -p 0 -X stuff "zenbot run$(printf \\r)"
screen -dmS "learn"
screen -S "learn" -p 0 -X stuff "zenbot learn$(printf \\r)"
screen -dmS "listen"
screen -S "listen" -p 0 -X stuff "zenbot listen$(printf \\r)"
exit
ghostnegotiator commented 8 years ago

@carlos8f that's awesome! Hopefully we can give/grant you the support ;)

obsidian0001 commented 8 years ago

For 2.8 - I cannot get the command: $ zenbot learn

to work. The output keeps returning

08/14/2016 07:42:12 PM UTC [ERROR] non-0 code: 1(timers.js:523:5)osa/api.js:15:12)0 AM UTC

08/14/2016 07:42:13 PM UTC [ERROR] non-0 code: 1(timers.js:523:5)osa/api.js:15:12)0 AM UTC

08/14/2016 07:42:14 PM UTC [ERROR] non-0 code: 1(timers.js:523:5)osa/api.js:15:12)0 AM UTC

Hope this helps.

Also,

$ zenbot run

does not return anything nor attempt to execute trades. Perhaps I'm doing something wrong but the npm install and npm link compiled just fine. Let me know if I can provide anything else!

Version 3.0.0 worked fine for me but seemed to only buy bitcoin, never sell (was worried because the price continues to drop!) :)

Chris

carlos8f commented 8 years ago

hmm. yeah, the errors there don't point me to anything specific. I'm just going to publish 3.0 since the code has diverged so much and I don't intend on making further fixes to 2.x.

ghostnegotiator commented 8 years ago

@carlos8f awesome! Mind me asking if there is a 'Roadmap' for future things comming?

obsidian0001 commented 8 years ago

Sounds good @carlos8f !

Will the published version of 3.0 contain the auto-learn engine?

All the best -

Chris

ghostnegotiator commented 8 years ago

0.02 BTC Send to you @carlos8f for your awesomeness :+1:

carlos8f commented 8 years ago

@RDash21 thank you for the donation! I have published 3.02 and tested it, and it seems to be working. See Readme for install instructions. if you have an existing zenbrain mongo db, drop it (mongo command, then use zenbrain and db.dropDatabase()) before installing 3.0.2.

the default trade logic:

You can tweak config.js from there to use bitfinex, or trade ETH/USD, or whatever. common config.js logic can be moved to core or plugins later. use zenbot sim to check your trade strategy.

Auto-learn support and more exchange support will come soon. Will accept PR's :) With the 3.x plugin architecture, external plugins are possible too (published as their own repo/module).

ghostnegotiator commented 8 years ago

Replied to the wrong mail earlyer, here is the snippet...

Heya, just updated and currently on my mobile phone (SSH FTW!). Bot seems to be running smoothly. Although it would be verry pleasent to have config.js moved to sample-config.js (one for Euro and one for USD). I wilk report back as soon as possible.

There are a few things I am really hoping for like:

Next to that this is some great stuff!

Yours Faithfully, RDash

On Sun, Aug 14, 2016, 23:21 Carlos Rodriguez notifications@github.com wrote:

@RDash21 https://github.com/RDash21 thank you for the donation! I have published 3.02 and tested it, and it seems to be working. See Readme for install instructions. if you have an existing zenbrain mongo db, drop it ( mongo command, then use zenbrain and db.dropDatabase()) before installing 3.0.2.

the default trade logic:

  • uses GDAX
  • BTC/USD
  • 15m ticks
  • computes 14-period 15m RSI
  • considers > 70 overbought and < 30 oversold
  • trades 95% of current balance

You can tweak config.js from there to use bitfinex, or trade ETH/USD, or whatever. common config.js logic can be moved to core or plugins later. use zenbot sim to check your trade strategy.

Auto-learn support and more exchange support will come soon. Will accept PR's :) With the 3.x plugin architecture, external plugins are possible too (published as their own repo/module).

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/carlos8f/zenbot/issues/12#issuecomment-239698572, or mute the thread https://github.com/notifications/unsubscribe-auth/AHMwQ_hNjdzmoNBw4Ch7ofe1dgyTZXaYks5qf4bhgaJpZM4Jj4-6 .

obsidian0001 commented 8 years ago

@carlos8f Just a new error I discovered while running run.sh:

08/14/2016 11:43:23 PM UTC [ launcher] cmd run exited with code 1, respawning now. module.js:338 throw err; ^ Error: Cannot find module 'templ' at Function.Module._resolveFilename (module.js:336:15) at Function.Module._load (module.js:278:25) at Module.require (module.js:365:17) at require (module.js:384:17) at Object. (/home/ubuntu/zenbot/node_modules/motley-templ/vendor/_codemap.js:5:12) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) at require (module.js:384:17)

The error keeps repeating. Compile was ok, as well as all other features.

Any thoughts?

Chris

obsidian0001 commented 8 years ago

The full error: 08/14/2016 11:43:21 PM UTC [ launcher] cmd server exited with code 1, respawning now. /home/ubuntu/zenbot/node_modules/coinbase-exchange/node_modules/ws/lib/WebSocket.js:9 const url = require('url'); ^^^^^ SyntaxError: Use of const in strict mode. at exports.runInThisContext (vm.js:73:16) at Module._compile (module.js:443:25) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) at require (module.js:384:17) at Object. (/home/ubuntu/zenbot/node_modules/coinbase-exchange/node_modules/ws/index.js:9:27) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) 08/14/2016 11:43:21 PM UTC [ launcher] cmd run exited with code 1, respawning now. module.js:338 throw err; ^ Error: Cannot find module 'templ' at Function.Module._resolveFilename (module.js:336:15) at Function.Module._load (module.js:278:25) at Module.require (module.js:365:17) at require (module.js:384:17) at Object. (/home/ubuntu/zenbot/node_modules/motley-templ/vendor/_codemap.js:5:12) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) at require (module.js:384:17) 08/14/2016 11:43:22 PM UTC [ launcher] cmd server exited with code 1, respawning now.

carlos8f commented 8 years ago

hmm, the const error is probably you're running an old version of node that doesn't support ES6, I'm guessing. I recommend node 6 for zenbot. The other one templ needs to be installed by npm, try npm ls in your zenbot folder to see if the full dependency list is installed.

carlos8f commented 8 years ago

If npm ls returns any kind of error just do rm -Rf node_modules && npm install and that should fix it, otherwise there's some kind of package error.

obsidian0001 commented 8 years ago

@carlos8f Thanks for your quick response! I'll try that!

obsidian0001 commented 8 years ago

@carlos8f - That fixed it! Thanks!!!

ghostnegotiator commented 8 years ago

Thanks for this amazing topic... we should do it another time :heavy_check_mark: