Gekko 0.6 released
#1
[EDIT]
0.6 is OUT! Get the release here
[/EDIT]


Gekko 0.6.0 is a major upgrade of the Gekko project, you can find some background information here.

The release of 0.6.0 is now finally ready for testing! Note that this release only includes:

- rewritten core & event logic.
- rewritten core plugins such as baseStrategy, performanceAnalyzer, paperTrader and (live) trader.
- Addition of the Gekko Broker library for live order execution.

LIMITATIONS:

- It does not support all exchanges previously supported by Gekko, see here for a list: https://github.com/askmike/gekko/blob/de....md#status


To test the 0.6 pre release:

- Update Gekko to the latest release.
- Make sure you run a new Node version (minimum is updated from 6.0 to 8.11.2)
- Besides the usual installation, please also install Gekko Broker dependencies, see here: https://github.com/askmike/gekko/blob/pr...pendencies

If you find any issue with the new release please open an issue on github (or open a new thread on the forum).
  Reply
#2
Hi Mike, great news ;-D

Right now I have bigger trouble with v0.5, imports are written fine to DB but candles from the watcher not, this happens on kraken exchange and the same on another exchange I am just implementing (hitbtc). processCandle is even not fired from writer.js postgresql.

Since I am just starting to deep dive into the code, to you think v0.6 is stable enough to start from this branch from scratch or wouldn't you live trade with v0.6?

Best wishes Mark
  Reply
#3
The live trader in 0.6 is definitely a lot more stable (note it only supports some exchanges, see edited post above).

Quote:Right now I have bigger trouble with v0.5, imports are written fine to DB but candles from the watcher not

Someone else reported this as well, are you running via UI or commandline?
  Reply
#4
Nice! Will definitely be testing this tomorrow!

I just read through the read me for sticky orders (https://github.com/askmike/gekko/blob/ge...y_order.md). Does it support limiting the currency / asset the bot use for trading? It sounds like it does, although I could be misreading the read me.

Thanks for continuing developing and improving on Gekko!
  Reply
#5
Quote:Does it support limiting the currency / asset the bot use for trading?

In the current version you will have to specify what market (so for example BTC/USD) on one exchange you want to trade, and it will only trade on that market. If you use Gekko this will automatically passed by Gekko based on what market you are watching.

In future versions of Gekko Broker I want to extend it so it can easily trade on different markets to do more complex things such as order routing and splitting up orders over different markets.

EDIT: after rereading I think you mean limiting the amount, right? That will be very easy to add once it runs stable, and it's on the top of the list of extensions. However it's not there right now.
  Reply
#6
(06-25-2018, 03:41 AM)askmike Wrote: The live  trader in 0.6 is definitely a lot more stable (note it only supports some exchanges, see edited post above).

Quote:Right now I have bigger trouble with v0.5, imports are written fine to DB but candles from the watcher not

Someone else reported this as well, are you running via UI or commandline?

Ok, I am using CLI and just give 0.6 a go. The new config options look promising, e.g. config.eventLogger , config.backtestResultExplorer and the Leech mode. Right now after first start it is claiming not to find  '../core/util'. Maybe any file commit missing?

Gekko encountered an error and can't continue

Error:

Cannot find module '../core/util'



And this is the stacktrace:

Cannot find module '../core/util'
Trace: Cannot find module '../core/util'
at Object.die (/git/gekko06/core/util.js:101:17)
at Stitcher.verifyExchange (/git/gekko06/core/tools/dataStitcher.js:27:10)
at Stitcher.prepareHistoricalData (/git/gekko06/core/tools/dataStitcher.js:39:8)
at new Actor (/git/gekko06/plugins/tradingAdvisor/tradingAdvisor.js:34:14)
at load (/git/gekko06/core/pluginUtil.js:99:22)
at /git/gekko06/node_modules/async/dist/async.js:1156:9
at replenish (/git/gekko06/node_modules/async/dist/async.js:1030:17)
at iterateeCallback (/git/gekko06/node_modules/async/dist/async.js:1015:17)
at /git/gekko06/node_modules/async/dist/async.js:988:16
at /git/gekko06/node_modules/async/dist/async.js:1158:13
at /git/gekko06/core/pluginUtil.js:100:9
at /git/gekko06/core/util.js:73:38
at Timeout._onTimeout (/git/gekko06/node_modules/lodash/dist/lodash.js:5496:43)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)
  Reply
#7
(06-25-2018, 09:24 AM)mark.sch Wrote:
(06-25-2018, 03:41 AM)askmike Wrote: The live  trader in 0.6 is definitely a lot more stable (note it only supports some exchanges, see edited post above).

Quote:Right now I have bigger trouble with v0.5, imports are written fine to DB but candles from the watcher not

Someone else reported this as well, are you running via UI or commandline?

Ok, I am using CLI and just give 0.6 a go. The new config options look promising, e.g. config.eventLogger , config.backtestResultExplorer and the Leech mode. Right now after first start it is claiming not to find  '../core/util'. Maybe any file commit missing?

Gekko encountered an error and can't continue

Error:

Cannot find module '../core/util'



And this is the stacktrace:

Cannot find module '../core/util'
Trace: Cannot find module '../core/util'
   at Object.die (/git/gekko06/core/util.js:101:17)
   at Stitcher.verifyExchange (/git/gekko06/core/tools/dataStitcher.js:27:10)
   at Stitcher.prepareHistoricalData (/git/gekko06/core/tools/dataStitcher.js:39:8)
   at new Actor (/git/gekko06/plugins/tradingAdvisor/tradingAdvisor.js:34:14)
   at load (/git/gekko06/core/pluginUtil.js:99:22)
   at /git/gekko06/node_modules/async/dist/async.js:1156:9
   at replenish (/git/gekko06/node_modules/async/dist/async.js:1030:17)
   at iterateeCallback (/git/gekko06/node_modules/async/dist/async.js:1015:17)
   at /git/gekko06/node_modules/async/dist/async.js:988:16
   at /git/gekko06/node_modules/async/dist/async.js:1158:13
   at /git/gekko06/core/pluginUtil.js:100:9
   at /git/gekko06/core/util.js:73:38
   at Timeout._onTimeout (/git/gekko06/node_modules/lodash/dist/lodash.js:5496:43)
   at ontimeout (timers.js:498:11)
   at tryOnTimeout (timers.js:323:5)
   at Timer.listOnTimeout (timers.js:290:5)

Error comes from exchange/wrappers/kraken.js , the include path is wrong

const util = require('../core/util');
const Errors = require('../core/error');
const log = require('../core/log');

But quick fix will not help, next error is, that core/error is missing in 0.6, probably this whole kraken.js wrapper does not match 0.6?

According to Gecko Broker docu, kraken seems not to be supported anymore, even kraken files are in the directory. I tried Binance now and got a conflicting loadash version:

/git/gekko06/exchange/exchangeChecker.js:32
if(!_.includes(exchange.currencies, conf.currency))
^

TypeError: _.includes is not a function
at Checker.cantMonitor (/git/gekko06/exchange/exchangeChecker.js:32:9)
at Checker.bound [as cantMonitor] (/git/gekko06/node_modules/lodash/dist/lodash.js:729:21)
at Stitcher.verifyExchange (/git/gekko06/core/tools/dataStitcher.js:33:31)
at Stitcher.prepareHistoricalData (/git/gekko06/core/tools/dataStitcher.js:39:8)
at new Actor (/git/gekko06/plugins/tradingAdvisor/tradingAdvisor.js:34:14)
at load (/git/gekko06/core/pluginUtil.js:98:22)
at /git/gekko06/node_modules/async/dist/async.js:1156:9
at replenish (/git/gekko06/node_modules/async/dist/async.js:1030:17)
at iterateeCallback (/git/gekko06/node_modules/async/dist/async.js:1015:17)
at /git/gekko06/node_modules/async/dist/async.js:988:16


root@Flex2:/git/gekko06# npm ls lodash
gekko@0.5.14 /git/gekko06
├─┬ @slack/client@3.13.0
│ └── lodash@4.17.4
├─┬ async@2.1.2
│ └── lodash@4.17.4
├─┬ bitexthai@0.1.0
│ └── lodash@4.17.4
├─┬ bitfinex-api-node@1.2.0
│ └── lodash@4.17.4
├─┬ btc-china-fork@0.0.6
│ └─┬ cheerio@0.19.0
│ └── lodash@3.10.1
├── lodash@2.4.2
└─┬ request-promise@4.2.2
└─┬ request-promise-core@1.1.1
└── lodash@4.17.4

I updated last 2.4.2 dependency to 4.x also and switched _.contains into _.includes inside core/pluginUtil.js. First lodash error is gone but new one is popping up in postgres:

2018-06-25 12:54:16 (INFO): Setting up Gekko in realtime mode
2018-06-25 12:54:16 (INFO):
2018-06-25 12:54:16 (INFO): Setting up:
2018-06-25 12:54:16 (INFO): Candle writer
2018-06-25 12:54:16 (INFO): Store candles in a database
/git/gekko06/plugins/postgresql/writer.js:36
this.db.query(q,next);
^

TypeError: Cannot read property 'query' of undefined
at /git/gekko06/plugins/postgresql/writer.js:36:13
at arrayEach (/git/gekko06/node_modules/lodash/lodash.js:516:11)
at Function.forEach (/git/gekko06/node_modules/lodash/lodash.js:9342:14)
at Store.upsertTables (/git/gekko06/plugins/postgresql/writer.js:35:5)
at new Store (/git/gekko06/plugins/postgresql/writer.js:12:8)
at load (/git/gekko06/core/pluginUtil.js:98:22)
at /git/gekko06/node_modules/async/dist/async.js:1156:9
at replenish (/git/gekko06/node_modules/async/dist/async.js:1030:17)
at /git/gekko06/node_modules/async/dist/async.js:1034:9
at _asyncMap (/git/gekko06/node_modules/async/dist/async.js:1154:5)
  Reply
#8
Quote:Error comes from exchange/wrappers/kraken.js

Ah yes! I was unsure why I was unable to reproduce. 0.6 uses Gekko Broker which has a few breaking changes with the old exchange interface. These changes are:

- Wrappers are now nested different (your error)
- cancelOrder now requires a second parameter to be passed (that indicates whether the order was filled before it was canceled), see here.
- checkOrder now expects an object with a few properties to be returned, see here
- Error handling has gotten a lot more complex, with an updated error interface between a retry system (provided by Gekko) and the exchange wrapper. Read more here.

I am in the process of updating all exchanges, but I haven't gotten around to it yet. See this list for currently supported exchanges. I will commit an error explaining this asap.
  Reply
#9
Hi Mike,
Thanks for all your amazing work!

I've installed the 0.6 pre-release and am trying to test it out; when I load a strategy that is working on an older version, and try to run it from the cli on the 0.6, I'm getting "Error: Cannot find module 'binance' " The full error is here: http://termbin.com/0ijb

Is this to be expected? Will strategies written for the older version need to be modified to work on the newer?

Very excited about the new capabilities and about gekko broker. Smile

EDIT:
It looks to me like it is looking in the wrong place for the binance module; "'/home/henry/gekko/core/../exchanges/binance'" -- the three dots look out of place there in the middle of the path.
  Reply
#10
@mark.sch I've summarized everything in a doc file, see here: https://github.com/askmike/gekko/blob/pr...per_api.md

@Henry151 I fixed this ~40 minutes ago, see here: https://github.com/askmike/gekko/commit/...d45fcbbcbe are you running the latest commit on that branch?
  Reply


Forum Jump:


Users browsing this thread: