Bitcoin Forum
April 23, 2024, 03:57:55 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 »
  Print  
Author Topic: Gekko - a javascript trading bot and backtesting platform  (Read 147800 times)
ewibit
Legendary
*
Offline Offline

Activity: 2955
Merit: 1049


View Profile
July 11, 2013, 01:11:20 PM
 #161


That's a bug in Gekko, if you could let me know some details (like are you running the latest version, what exchange and interval) I will look into it!
I have updated now
Code:
git pull https://github.com/askmike/gekko.git && npm update
and I am on Bitstamp
interval is 30

still the same
Code:
ADVICE is to HOLD @ 85.810 (NaN)
which part of config.js do you need?

(BTW: is there any possibility to git pull without to fill out config.js every time new? - I rename the existent to .bak and copy/paste the settings in the new one)
No Gods or Kings. Only Bitcoin
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1713887875
Hero Member
*
Offline Offline

Posts: 1713887875

View Profile Personal Message (Offline)

Ignore
1713887875
Reply with quote  #2

1713887875
Report to moderator
jago25_98
Hero Member
*****
Offline Offline

Activity: 900
Merit: 1000


Crypto Geek


View Profile WWW
July 11, 2013, 06:29:36 PM
Last edit: July 11, 2013, 06:49:03 PM by jago25_98
 #162

Code:
module.js:337
    throw new Error("Cannot find module '" + request + "'");
          ^
Error: Cannot find module 'moment'
    at Function._resolveFilename (module.js:337:11)
    at Function._load (module.js:279:25)
    at Module.require (module.js:359:17)
    at require (module.js:375:17)
    at Object.<anonymous> (/home/pi/src/gekko/gekko.js:20:14)
    at Module._compile (module.js:446:26)
    at Object..js (module.js:464:10)
    at Module.load (module.js:353:32)
    at Function._load (module.js:311:12)
    at Array.0 (module.js:484:10)

Code:
$ ls -R
.:
config.js  docs  exchanges  gekko.js  logger.js  log.js  mailer.js  methods  package.json  portfolioManager.js  README.md  util.js

./docs:
Advanced_features.md  Backtesting.md  Configuring_gekko.md  Exchanges.md  installing_gekko_on_windows.md  Known_problems.md

./exchanges:
bitcoincharts.js  bitstamp.js  btce.js  mtgox.js

./methods:
exponential-moving-averages.js  historical-candle-fetcher.js  realtime-candle-fetcher.js
(following fresh git checkout)

Any ideas?


Bitcoiner since the early days. Crypto YouTube Channel: Trading Nomads | Analyst | News Reporter | Bitcoin Hodler | Support Freedom of Speech!
whydifficult (OP)
Sr. Member
****
Offline Offline

Activity: 287
Merit: 250



View Profile WWW
July 11, 2013, 07:36:50 PM
 #163

Code:
ADVICE is to HOLD @ 85.810 (NaN)
which part of config.js do you need?

I just looked into this and Bitstamp has changed their API, Gekko asks for data in a format not supported anymore (old API, new API). This means that Gekko currently does not work on Bitstamp. I am looking into a fix and hope to resolve this ASAP.

(BTW: is there any possibility to git pull without to fill out config.js every time new? - I rename the existent to .bak and copy/paste the settings in the new one)

Well the main reason is that the config is not solid, the settings may change and using an old settings file can result in Gekko crashing. You could place the config somewhere else (or rename like you did) and make a small script with `node gekko config=config.js.bak` to force Gekko to use another file as config. You can read more about that here, though I would advice against this.

Any ideas?

Gekko has dependencies (like momentjs), you can install them by running `npm install` in Gekko's directory.

Gekko a nodejs bitcoin trading bot!
Realtime Bitcoin Globe - visualizing all transactions and blocks
Tip jar (BTC): 1KyQdQ9ctjCrGjGRCWSBhPKcj5omy4gv5S
jago25_98
Hero Member
*****
Offline Offline

Activity: 900
Merit: 1000


Crypto Geek


View Profile WWW
July 11, 2013, 08:10:33 PM
 #164

It worked before. Queer.

I've been running it on a Raspberry Pi with Raspberian successfully... hmm, what's changed.... I had a external HDD fail but that wasn't the O/S and just data... did a reset... perhaps I had upgraded something which wasn't active until reboot...

Code:
npm ERR! Error: No compatible version found: mtgox-apiv2@'>=1.0.0- <1.1.0-'
npm ERR! No valid targets found.
npm ERR! Perhaps not compatible with your version of node?
npm ERR!     at installTargetsError (/usr/share/npm/lib/cache.js:488:10)
npm ERR!     at next_ (/usr/share/npm/lib/cache.js:438:17)
npm ERR!     at next (/usr/share/npm/lib/cache.js:415:44)
npm ERR!     at /usr/share/npm/lib/cache.js:408:5
npm ERR!     at saved (/usr/share/npm/lib/utils/npm-registry-client/get.js:147:7)
npm ERR!     at Object.oncomplete (/usr/lib/nodejs/graceful-fs.js:230:7)
npm ERR! You may report this log at:
npm ERR!     <http://bugs.debian.org/npm>
npm ERR! or use
npm ERR!     reportbug --attach /home/pi/src/gekko/npm-debug.log npm
npm ERR!
npm ERR! System Linux 3.6.11+
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! cwd /home/pi/src/gekko
npm ERR! node -v v0.6.19
npm ERR! npm -v 1.1.4
npm ERR! message No compatible version found: mtgox-apiv2@'>=1.0.0- <1.1.0-'
npm ERR! message No valid targets found.
npm ERR! message Perhaps not compatible with your version of node?

I would guess that using npm -v 1.1.4 with mtgox-apiv2 would probably be ok... just searching for a way to bypass...
recovered node_modules dir from broken HDD and just copied this over, now working...)

In the mean-time I'll try using a debian box to test as well... now compiling nodejs...
( https://sekati.com/etc/install-nodejs-on-debian-squeeze )

...perhaps run 2 lots of gekko at the same time as a backup - if one already trades then the other will just be doubling up on it anyway

Bitcoiner since the early days. Crypto YouTube Channel: Trading Nomads | Analyst | News Reporter | Bitcoin Hodler | Support Freedom of Speech!
whydifficult (OP)
Sr. Member
****
Offline Offline

Activity: 287
Merit: 250



View Profile WWW
July 11, 2013, 08:58:12 PM
 #165


I would guess that using npm -v 1.1.4 with mtgox-apiv2 would probably be ok... just searching for a way to bypass...
recovered node_modules dir from broken HDD and just copied this over, now working...)

In the mean-time I'll try using a debian box to test as well... now compiling nodejs...
( https://sekati.com/etc/install-nodejs-on-debian-squeeze )

...perhaps run 2 lots of gekko at the same time as a backup - if one already trades then the other will just be doubling up on it anyway

If you are still running into trouble I would suggest updating node, v0.6.19 is really old and I think a lot of dependencies need a newer version.

You can run two gekkos (you just have to copy over the config and point one Gekko to the copied and changed config). But once you start Gekko node will load and parse the files and won't use the files on disk anymore at all (they are kept in memory). So with the exception of an error inside nodejs/raspberry or a really strange API response that Gekko cannot handle I won't see any difference in running two of them (unless you want to monitor multiple exchanges, etc.)

Gekko a nodejs bitcoin trading bot!
Realtime Bitcoin Globe - visualizing all transactions and blocks
Tip jar (BTC): 1KyQdQ9ctjCrGjGRCWSBhPKcj5omy4gv5S
jago25_98
Hero Member
*****
Offline Offline

Activity: 900
Merit: 1000


Crypto Geek


View Profile WWW
July 11, 2013, 09:37:19 PM
Last edit: July 12, 2013, 01:06:38 PM by jago25_98
 #166

Thanks for your help. I've sent a ( tiny :/ ) tip as thanks.

My idea was to run Gekko on 2 different servers, then if one goes down the other will be doing the same thing anyway as backup.

 It seems Raspberian O/S nodejs is out of date. Debian on the other hand required compiling nodejs but that wasn't too bad. Gentoo was more straightforward

edit, found this:
Code:
terminate called after throwing an instance of 'std::bad_alloc'                 
  what():  std::bad_alloc
on debian with compile nodejs, running again now, but wonder how to get more debug info

Bitcoiner since the early days. Crypto YouTube Channel: Trading Nomads | Analyst | News Reporter | Bitcoin Hodler | Support Freedom of Speech!
Mogumodz
Sr. Member
****
Offline Offline

Activity: 290
Merit: 250



View Profile
July 12, 2013, 06:21:43 PM
 #167

Been running it for a few days, tweaking it ever so slightly and watching the results.

One thing I've noticed is a profit calculation hasn't been shown afaik for me in the time I've been running the bot in simulation mode.

http://imgur.com/S3ik8WH

Any known reason for this I've missed.

Bitcoin OTC rating GPG ID: 3E7974A1 P2Pool statistics: p2pool.info
whydifficult (OP)
Sr. Member
****
Offline Offline

Activity: 287
Merit: 250



View Profile WWW
July 20, 2013, 09:44:40 AM
 #168

Been running it for a few days, tweaking it ever so slightly and watching the results.

One thing I've noticed is a profit calculation hasn't been shown afaik for me in the time I've been running the bot in simulation mode.

http://imgur.com/S3ik8WH

Any known reason for this I've missed.

I heard a couple of things like this, I'll look in to this.

--

I don't have as much free time as I had last month. I am still working on Gekko, however not on the daily basis I was before.

Gekko a nodejs bitcoin trading bot!
Realtime Bitcoin Globe - visualizing all transactions and blocks
Tip jar (BTC): 1KyQdQ9ctjCrGjGRCWSBhPKcj5omy4gv5S
jago25_98
Hero Member
*****
Offline Offline

Activity: 900
Merit: 1000


Crypto Geek


View Profile WWW
July 20, 2013, 10:53:36 AM
 #169

What values do you run it at?
Always seems to buy low and sell high for me... but it did catch the more major dips so far which is handy

Been running it for a few days, tweaking it ever so slightly and watching the results.

One thing I've noticed is a profit calculation hasn't been shown afaik for me in the time I've been running the bot in simulation mode.

http://imgur.com/S3ik8WH

Any known reason for this I've missed.

Bitcoiner since the early days. Crypto YouTube Channel: Trading Nomads | Analyst | News Reporter | Bitcoin Hodler | Support Freedom of Speech!
Timbo925
Sr. Member
****
Offline Offline

Activity: 352
Merit: 250



View Profile
July 20, 2013, 11:03:40 AM
 #170

What values do you run it at?
Always seems to buy low and sell high for me... but it did catch the more major dips so far which is handy

Been running it for a few days, tweaking it ever so slightly and watching the results.

One thing I've noticed is a profit calculation hasn't been shown afaik for me in the time I've been running the bot in simulation mode.

http://imgur.com/S3ik8WH

Any known reason for this I've missed.

That is what it suppose to do. It follows the flow of the market so if the 'flow' changes a lot in a short time you will lose some money.
But once the market moves big in a certain way for a longer time period you will be on the right side.
jago25_98
Hero Member
*****
Offline Offline

Activity: 900
Merit: 1000


Crypto Geek


View Profile WWW
July 20, 2013, 11:31:57 AM
 #171

What I mean is that at a setting of 0.80/-0.80 I find that it tends to get to miss the very small timescale(daily), get it wrong on the short timescale(weekly) but get it right on the medium (monthly) scale.

This is of course very general and it hasn't been tested enough. The short weekly timescale is a shame. For example in the log here I have:

Quote
2013-07-15 20:14:53 (INFO):     ADVICE is to BUY @ 99.914 (0.990)
2013-07-15 20:14:56 (INFO):     attempting to BUY BTC at Mt. Gox
2013-07-15 20:15:29 (INFO):     BUY was succesfull
 2013-07-18 07:10:25 (INFO):    ADVICE is to SELL @ 89.700 (-1.055)
2013-07-18 07:10:27 (INFO):     attempting to SELL BTC at Mt. Gox
2013-07-18 07:10:58 (INFO):     SELL was succesfull
2013-07-19 19:10:25 (INFO):     ADVICE is to BUY @ 94.700 (0.894)
2013-07-19 19:10:26 (INFO):     attempting to BUY BTC at Mt. Gox
2013-07-19 19:10:58 (INFO):     BUY was succesfull


Which of course is the very opposite of what you want right!

Now, come to think of it, I remember why it caught the 70 dip - it was because I manually intervened and then used the bot to buy if anything changes.

I was hoping that I could use the EMA to catch those very large changes and basically create a less speculative more stable level but it doesn't seem to do that and just holding USD would be better at that.

Anyone had any wins with EMA?
Even though it's made losses I somehow how feel safer thinking that something less human is watching some coins for me. I'm not sure if it's too early to say experiment failed.


What values do you run it at?
Always seems to buy low and sell high for me... but it did catch the more major dips so far which is handy

Been running it for a few days, tweaking it ever so slightly and watching the results.

One thing I've noticed is a profit calculation hasn't been shown afaik for me in the time I've been running the bot in simulation mode.

http://imgur.com/S3ik8WH

Any known reason for this I've missed.

That is what it suppose to do. It follows the flow of the market so if the 'flow' changes a lot in a short time you will lose some money.
But once the market moves big in a certain way for a longer time period you will be on the right side.

Bitcoiner since the early days. Crypto YouTube Channel: Trading Nomads | Analyst | News Reporter | Bitcoin Hodler | Support Freedom of Speech!
whydifficult (OP)
Sr. Member
****
Offline Offline

Activity: 287
Merit: 250



View Profile WWW
July 20, 2013, 11:51:48 AM
 #172

Anyone had any wins with EMA?

Well I think a trading bot following a strategy is way better than its human counter part. But finding a good strategy is pretty hard. I would suggest using the backtesting to verify that your current settings would have made profit in the past.

You can also use Gekko to do paper/simulation trading (with a bunch of settings simultaneously for example), this way you know whether a strategy is currently effective. Do note that you are always looking a the success after a while, in which case the success lies in the history and won't guarantee anything anymore for the future.

EMA is a indicator that you can use to ride the trend (buy low - sell high), however because it uses moving averages to verify the trend it is always lagging behind. This in combination that trends can reverse at any time makes it so that you don't always make profit while trying to ride the trend.

To answer your question: I am currently on a 10% profit measured in BTC in a little over one month.

Gekko a nodejs bitcoin trading bot!
Realtime Bitcoin Globe - visualizing all transactions and blocks
Tip jar (BTC): 1KyQdQ9ctjCrGjGRCWSBhPKcj5omy4gv5S
Diabolicus
Member
**
Offline Offline

Activity: 90
Merit: 10


View Profile
July 24, 2013, 06:53:48 AM
 #173

This is a big step towards implementing a system that supports over a 100 different indicators (ta-lib) because it needs to get candles fed.

May I ask how far are you with the ta-lib implementation?
Also, could you make it somewhat similar to the code that cryptotrader.org accepts?
It would be so much easier if one could just simply copy&paste coffescript snippets back and forth.
whydifficult (OP)
Sr. Member
****
Offline Offline

Activity: 287
Merit: 250



View Profile WWW
July 24, 2013, 09:32:53 AM
Last edit: July 24, 2013, 12:37:52 PM by whydifficult
 #174

This is a big step towards implementing a system that supports over a 100 different indicators (ta-lib) because it needs to get candles fed.

May I ask how far are you with the ta-lib implementation?
Also, could you make it somewhat similar to the code that cryptotrader.org accepts?
It would be so much easier if one could just simply copy&paste coffescript snippets back and forth.

I was pretty far. But because of the API changes in both bitcoincharts (BTC-e data) and bitstamp I probably have to change core. I want to have the core stabilised before I'm adding all the advanced stuff.

I was planning to do something similar for a while, I am not a fan of coffeescript myself. I think plain javascript is a lot easier for most people, as it's very similar to a lot of big languages like Java and C. But adding coffeescript ofcourse is a piece of cake since Gekko is a js project, so this will make it in.

I don't think I can make it exactly the same (with all function calls, etc). But I'll see what I can do Smiley

Gekko a nodejs bitcoin trading bot!
Realtime Bitcoin Globe - visualizing all transactions and blocks
Tip jar (BTC): 1KyQdQ9ctjCrGjGRCWSBhPKcj5omy4gv5S
conquerorofbits
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
July 25, 2013, 05:26:09 AM
Last edit: July 25, 2013, 08:41:00 AM by conquerorofbits
 #175

Gekko doesn't show Profit Reports, so I think there is a bug in logger.js:

logger.js, Line 37 ...

Code:
// log advice
Logger.prototype.inform = function(what, price, meta) {
  if(!this.verbose && what !== 'SELL' && !this.config.backtest)
    return;

  if(!this.verbose && what === 'HOLD' && this.config.backtest)
    return;

should be:

Code:
// log advice
Logger.prototype.inform = function(what, price, meta) {
  if(!this.verbose && what !== 'SELL' && !this.config.backtest.enable)
    return;

  if(!this.verbose && what === 'HOLD' && this.config.backtest.enabled)
    return;

Same thing at Line 94 ...
ErebusBat
Hero Member
*****
Offline Offline

Activity: 560
Merit: 500

I am the one who knocks


View Profile
July 26, 2013, 10:09:57 PM
 #176

May I ask how far are you with the ta-lib implementation?
Also, could you make it somewhat similar to the code that cryptotrader.org accepts?
It would be so much easier if one could just simply copy&paste coffescript snippets back and forth.

FYI...  Apparently you can use CoffeeScript pretty easy in node: http://stackoverflow.com/questions/4679782/can-i-use-coffeescript-instead-of-js-for-node-js#4683431

░▒▓█ Coinroll.it - 1% House Edge Dice Game █▓▒░ • Coinroll Thread • *FREE* 100 BTC Raffle

Signup for CEX.io BitFury exchange and get GHS Instantly!  Don't wait for shipping, mine NOW!
ewibit
Legendary
*
Offline Offline

Activity: 2955
Merit: 1049


View Profile
July 29, 2013, 10:24:21 AM
 #177

Code:
realtime-candle-fetcher.js:98
    throw 'Failed to load historical trades from ' + this.watcher.name;
                                                   ^
Failed to load historical trades from bitcoincharts
ErebusBat
Hero Member
*****
Offline Offline

Activity: 560
Merit: 500

I am the one who knocks


View Profile
July 29, 2013, 11:34:16 AM
 #178

Code:
realtime-candle-fetcher.js:98
    throw 'Failed to load historical trades from ' + this.watcher.name;
                                                   ^
Failed to load historical trades from bitcoincharts

I have been getting this all weekend for Bitstamp too. 

░▒▓█ Coinroll.it - 1% House Edge Dice Game █▓▒░ • Coinroll Thread • *FREE* 100 BTC Raffle

Signup for CEX.io BitFury exchange and get GHS Instantly!  Don't wait for shipping, mine NOW!
San1ty
Sr. Member
****
Offline Offline

Activity: 462
Merit: 250


View Profile
July 29, 2013, 01:37:16 PM
 #179

Code:
realtime-candle-fetcher.js:98
    throw 'Failed to load historical trades from ' + this.watcher.name;
                                                   ^
Failed to load historical trades from bitcoincharts

I have been getting this all weekend for Bitstamp too. 

That's normal, Bitstamp fucked up their API without any notice.

Found my posts helpful? Consider buying me a beer :-)!:
BTC - 1San1tyUGhfWRNPYBF4b6Vaurq5SjFYWk NXT - 17063113680221230777
lky_svn
Newbie
*
Offline Offline

Activity: 45
Merit: 0



View Profile
July 30, 2013, 08:05:02 AM
 #180

Hi,

Using MtGox, I get NaN errors when using EUR...
USD seems to be working fine.

Enabled verbose to check what's going on. With USD I get:
Code:
2013-07-30 09:59:29 (DEBUG):    calced EMA properties for new candle:
2013-07-30 09:59:29 (DEBUG):             short ema 101.048
2013-07-30 09:59:29 (DEBUG):             long ema 101.037
2013-07-30 09:59:29 (DEBUG):             diff ema 0.010
2013-07-30 09:59:29 (DEBUG):    fetching new trades for new bucket at Mt. Gox
2013-07-30 09:59:31 (DEBUG):    calculated candle: 0
2013-07-30 09:59:31 (DEBUG):    calced EMA properties for new candle:
2013-07-30 09:59:31 (DEBUG):             short ema 101.038
2013-07-30 09:59:31 (DEBUG):             long ema 101.033
2013-07-30 09:59:31 (DEBUG):             diff ema 0.005
2013-07-30 09:59:31 (DEBUG):    we are currently not in an up or down trend @ 100.981 (0.005)

When changing to EUR, I get something like:
Code:
2013-07-30 10:04:03 (DEBUG):    calculated candle: 1
2013-07-30 10:04:03 (DEBUG):    calced EMA properties for new candle:
2013-07-30 10:04:03 (DEBUG):             short ema NaN
2013-07-30 10:04:03 (DEBUG):             long ema NaN
2013-07-30 10:04:03 (DEBUG):             diff ema NaN
2013-07-30 10:04:03 (DEBUG):    fetching new trades for new bucket at Mt. Gox
2013-07-30 10:04:04 (DEBUG):    calculated candle: 0
2013-07-30 10:04:04 (DEBUG):    calced EMA properties for new candle:
2013-07-30 10:04:04 (DEBUG):             short ema NaN
2013-07-30 10:04:04 (DEBUG):             long ema NaN
2013-07-30 10:04:04 (DEBUG):             diff ema NaN
2013-07-30 10:04:04 (DEBUG):    we are currently not in an up or down trend @ 75.500 (NaN)

This is the config I changed:
Code:
config.normal = {
  enabled: true,
  exchange: 'MtGox', // 'MtGox', 'BTCe' or 'Bitstamp'
  currency: 'EUR',
  asset: 'BTC',
  tradingEnabled: false,
Simply changed the currency in there - and then the error appears.


Anybody had this issue?
Pages: « 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!