askmike/gekko

Gekko 0.1.0

askmike opened this issue · 14 comments

TODO before we can merge the localDB branch into Master (Gekko 0.1.0)

(We only merge stable stuff into master).

  • Fix remaining bugs in the datastore (#106).
  • Finalize actor API
  • Add test cases for all vital parts of core
    • Trade fetcher
    • candle store
    • candle calculator
  • Add test cases for all trading methods and indicators:
    • EMA
    • DEMA
    • MACD
    • PPO
  • Verify that all tests are even valid
  • Add a trader actor (hook up to portfolioManager)

In order to speed up 0.1.0 development I am removing some things from the todo and shifting them to 0.1.1.

Gekko 0.1.1

  • make the Trade fetcher able to handle exchanges that do provide historical data (either since or tid).
  • Move filestore from neDB to our own.
  • make the Trade fetcher able to handle exchanges that do provide historical data (either since or tid).
  • Add basic backtesting capabilities.
tino commented

Will the localDB store be written in such a way that it will be easy to implement a different storage backend? I am currently storing some bitcoin data in TempoDB [https://tempo-db.com], which is quite suitable for this task. If so I could write a backend for it.

Great point! My first priority is to get everything on 0.1.0 done, which includes a not so good candle store (that means at 0.1.0 it won't yet):

TODO:

This script does three things:

  • calculate 1m candles and add empty ones.
  • calculate what candle should go / come from what daily database.
  • communicates with the datastore (nedb) about inserts / gets.

These should live in 3 seperate modules.

(The third one is what we need to be swappable).

After that I definitely want to clean it up and modularize it. Gekko has an event system now which it uses to glue everything together. As soon as I refactor the big candleManager into three separate modules I'll use the event system for that as well. This makes the following possible:

  • Easily swap in and out different file stores, database interfaces, mongo, sql, etc. can all be extremely simple and small and just responsible for storing / retrieving candles.
  • Use a datastore outside the nodejs runtime (using the redis beacon for example).
  • Use a single datastore and glue them to a batch of different gekkos that act (trade, email, etc) based on different algos, while all being fed the same market data.
  • Opens up the possibility for hosting datastores (eg. I watch all markets and you can subscribe to a market feed).

It may take a while before I get around to it, if you are feeling adventurous you can sift to the current candleManager yourself.

tino commented

Oké cool! I'll keep watching. When I've got time I'll try to chime in.

Wrote a trader actor: #147

I don't know if this is expected at this point or not, but profitSimulator is not reporting anything (tested with MtGox and cexio), I tried setting verbose to both true and false, and verified all settings were correct / mirrored latest config.js version. No worries if this simply hasn't been plugged back in yet, just wanted to make sure it was known if it was supposed to be working.

tvb commented

@streetlogics no profitSimulator output for me as well. @askmike any idea?

[edit] After letting it run for hours I finally received a profit notification, although the profit is negative 😄

2014-01-16 17:05:09 (DEBUG): we are currently in a downtrend @ 824.75800000 (-0.05731)
2014-01-16 17:05:09 (INFO): (PROFIT REPORT) original simulated balance: 930.000000 USD
2014-01-16 17:05:09 (INFO): (PROFIT REPORT) current simulated balance: 917.991263 USD
2014-01-16 17:05:09 (INFO): (PROFIT REPORT) simulated profit: -12.008737 USD (-1.291262%)

@streetlogics & @tristanvanbokkem Let's move the profit simulator problems to its own issue guys: #162

I just added real trading as a plugin. Checkout the docs for how to set it up.

This means we are moving towards releasing the localDB branch under a 0.1.0 stable release. Besides testing creating buy/sell orders on each exchange I am also running a gekko on each exchange I with a real trader attached. If it doesn't crash soon I'll release 0.1.0.

It's all done (from your list) .... ;-)

yes, but it's not stable. I first want to fix #171 and #172, though I think that will be everything!

Is the charting that you showed a screenshot of a while back added to the current release yet or any idea when such additions would be made ?

No, it's not planned for this one nor the next one yet unfortunately.

0.1.0 is out - I will be removing the localDB branch shortly!