gitextract_1c3mqyr_/ ├── .dockerignore ├── .editorconfig ├── .github/ │ ├── ISSUE_TEMPLATE.md │ ├── PULL_REQUEST_TEMPLATE.md │ └── stale.yml ├── .gitignore ├── .prettierrc ├── .travis.yml ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── README.md ├── appveyor.yml ├── config/ │ ├── adapters/ │ │ ├── mongodb.toml │ │ ├── postgresql.toml │ │ └── sqlite.toml │ ├── backtest.toml │ ├── general.toml │ ├── plugins/ │ │ ├── candleWriter.toml │ │ ├── paperTrader.toml │ │ ├── performanceAnalyzer.toml │ │ ├── pushbullet.toml │ │ ├── trader.toml │ │ └── tradingAdvisor.toml │ └── strategies/ │ ├── CCI.toml │ ├── DEMA.toml │ ├── MACD.toml │ ├── PPO.toml │ ├── RSI.toml │ ├── StochRSI.toml │ ├── TMA.toml │ ├── TSI.toml │ ├── UO.toml │ ├── custom.toml │ ├── talib-macd.toml │ ├── tulip-adx.toml │ ├── tulip-macd.toml │ ├── tulip-multi-strat.toml │ └── varPPO.toml ├── core/ │ ├── budfox/ │ │ ├── budfox.js │ │ ├── candleCreator.js │ │ ├── candleManager.js │ │ ├── heart.js │ │ ├── marketDataProvider.js │ │ ├── marketFetcher.js │ │ └── tradeBatcher.js │ ├── candleBatcher.js │ ├── emitter.js │ ├── gekkoStream.js │ ├── log.js │ ├── markets/ │ │ ├── backtest.js │ │ ├── importer.js │ │ ├── leech.js │ │ └── realtime.js │ ├── pipeline.js │ ├── pluginUtil.js │ ├── prepareDateRange.js │ ├── stats.js │ ├── talib.js │ ├── tools/ │ │ ├── candleLoader.js │ │ ├── configBuilder.js │ │ ├── dataStitcher.js │ │ └── dateRangeScanner.js │ ├── tulind.js │ ├── util.js │ └── workers/ │ ├── datasetScan/ │ │ └── parent.js │ ├── dateRangeScan/ │ │ ├── child.js │ │ └── parent.js │ ├── loadCandles/ │ │ ├── child.js │ │ └── parent.js │ └── pipeline/ │ ├── child.js │ ├── messageHandlers/ │ │ ├── backtestHandler.js │ │ ├── importerHandler.js │ │ └── realtimeHandler.js │ └── parent.js ├── docker-compose.yml ├── docker-entrypoint.sh ├── docs/ │ ├── commandline/ │ │ ├── Importing.md │ │ ├── about_the_commandline.md │ │ ├── backtesting.md │ │ ├── plugins.md │ │ └── tradebot.md │ ├── extending/ │ │ ├── add_a_plugin.md │ │ ├── add_an_exchange.md │ │ └── other_software.md │ ├── features/ │ │ ├── backtesting.md │ │ ├── importing.md │ │ ├── paper_trading.md │ │ └── trading_bot.md │ ├── gekko-broker/ │ │ ├── introduction.md │ │ ├── sticky_order.md │ │ └── wrapper_api.md │ ├── installation/ │ │ ├── configuring_gekko_on_a_server.md │ │ ├── installing_gekko.md │ │ ├── installing_gekko_on_raspberry_pi_2_or_3.md │ │ ├── installing_gekko_on_windows.md │ │ ├── installing_gekko_on_windows_with_bash_on_windows_10.md │ │ ├── installing_gekko_using_docker.md │ │ └── updating_gekko.md │ ├── internals/ │ │ ├── architecture.md │ │ ├── budfox.md │ │ ├── events.md │ │ ├── gekko_ui.md │ │ ├── plugins.md │ │ └── server_api.md │ ├── introduction/ │ │ ├── about_gekko.md │ │ ├── getting_help.md │ │ ├── roadmap.md │ │ ├── scope.md │ │ ├── supported_exchanges.md │ │ └── supporting_the_project.md │ └── strategies/ │ ├── creating_a_strategy.md │ ├── gekko_indicators.md │ ├── introduction.md │ ├── talib_indicators.md │ └── tulip_indicators.md ├── exchange/ │ ├── .npmignore │ ├── README.md │ ├── dependencyCheck.js │ ├── exchangeChecker.js │ ├── exchangeErrors.js │ ├── exchangeUtils.js │ ├── gekkoBroker.js │ ├── orders/ │ │ ├── index.js │ │ ├── limit.js │ │ ├── order.js │ │ ├── states.js │ │ └── sticky.js │ ├── package.json │ ├── portfolioManager.js │ ├── trigger.js │ ├── triggers/ │ │ ├── index.js │ │ └── trailingStop.js │ ├── util/ │ │ └── genMarketFiles/ │ │ ├── update-binance.js │ │ ├── update-bitfinex.js │ │ ├── update-coinbase.js │ │ ├── update-coinfalcon.js │ │ └── update-kraken.js │ └── wrappers/ │ ├── DEBUG_exchange-simulator.js │ ├── binance-markets.json │ ├── binance.js │ ├── bitcoin-co-id.js.old │ ├── bitfinex-markets.json │ ├── bitfinex.js │ ├── bitfinex_v2.js.prep │ ├── bitstamp.js.old │ ├── bittrex.js │ ├── btc-markets.js.old │ ├── btcc.js.old │ ├── bx.in.th.js.old │ ├── cexio.js.old │ ├── coinbase-markets.json │ ├── coinfalcon-markets.json │ ├── coinfalcon.js │ ├── coingi.js │ ├── exmo-markets.json │ ├── exmo.js │ ├── gdax.js │ ├── gemini.js.old │ ├── kraken-markets.json │ ├── kraken.js │ ├── lakebtc.js │ ├── luno.js │ ├── mexbt.js.old │ ├── mtgox.js.old │ ├── okcoin.js.old │ ├── poloniex-markets.json │ ├── poloniex.js │ ├── quadriga-markets.json │ ├── quadriga.js.old │ ├── therocktrading-markets.json │ ├── therocktrading.js │ ├── wex.nz.js.old │ └── zaif.jp.js.old ├── gekko.js ├── importers/ │ └── exchanges/ │ ├── binance.js │ ├── bitfinex.js │ ├── btcc.js │ ├── coinfalcon.js │ ├── gdax.js │ ├── kraken.js │ ├── luno.js │ ├── poloniex.js │ └── therocktrading.js ├── logs/ │ └── .gitignore ├── package.json ├── plugins/ │ ├── adviceLogger.js │ ├── backtestResultExporter.js │ ├── blotter.js │ ├── campfire.js │ ├── candleUploader.js │ ├── childToParent.js │ ├── eventLogger.js │ ├── ifttt.js │ ├── ircbot.js │ ├── kodi.js │ ├── mailer.js │ ├── mongodb/ │ │ ├── handle.js │ │ ├── reader.js │ │ ├── scanner.js │ │ ├── util.js │ │ └── writer.js │ ├── paperTrader/ │ │ └── paperTrader.js │ ├── performanceAnalyzer/ │ │ ├── logger.js │ │ └── performanceAnalyzer.js │ ├── postgresql/ │ │ ├── handle.js │ │ ├── reader.js │ │ ├── scanner.js │ │ ├── util.js │ │ └── writer.js │ ├── pushbullet.js │ ├── pushover.js │ ├── redisBeacon.js │ ├── slack.js │ ├── sqlite/ │ │ ├── handle.js │ │ ├── reader.js │ │ ├── scanner.js │ │ ├── util.js │ │ └── writer.js │ ├── telegrambot.js │ ├── trader/ │ │ └── trader.js │ ├── tradingAdvisor/ │ │ ├── asyncIndicatorRunner.js │ │ ├── baseTradingMethod.js │ │ └── tradingAdvisor.js │ ├── twitter.js │ ├── webserver.js │ └── xmppbot.js ├── plugins.js ├── sample-config.js ├── strategies/ │ ├── CCI.js │ ├── DEBUG_single-advice.js │ ├── DEBUG_toggle-advice.js │ ├── DEMA.js │ ├── MACD.js │ ├── PPO.js │ ├── RSI.js │ ├── StochRSI.js │ ├── TMA.js │ ├── TSI.js │ ├── UO.js │ ├── custom.js │ ├── indicators/ │ │ ├── CCI.js │ │ ├── DEMA.js │ │ ├── EMA.js │ │ ├── LRC.js │ │ ├── MACD.js │ │ ├── PPO.js │ │ ├── RSI.js │ │ ├── SMA.js │ │ ├── SMMA.js │ │ ├── TSI.js │ │ └── UO.js │ ├── noop.js │ ├── talib-macd.js │ ├── tulip-adx.js │ ├── tulip-macd.js │ ├── tulip-multi-strat.js │ └── varPPO.js ├── subscriptions.js ├── test/ │ ├── _prepare.js │ ├── candleBatcher.js │ ├── exchanges/ │ │ ├── bitstamp.js │ │ └── data/ │ │ └── bitstamp_trades.json │ ├── indicators/ │ │ ├── cci.js │ │ ├── dema.js │ │ ├── ema.js │ │ ├── macd.js │ │ ├── ppo.js │ │ ├── rsi.js │ │ ├── sma.js │ │ └── smma.js │ ├── marketFetcher.js │ ├── plugins/ │ │ └── portfolioManager.js │ ├── test-config.json │ ├── tradeBatcher.js │ └── triggers/ │ └── trailingStop.js └── web/ ├── apiKeyManager.js ├── baseUIconfig.js ├── isWindows.js ├── routes/ │ ├── apiKeys.js │ ├── backtest.js │ ├── baseConfig.js │ ├── configPart.js │ ├── deleteGekko.js │ ├── exchanges.js │ ├── getCandles.js │ ├── import.js │ ├── info.js │ ├── list.js │ ├── scanDatasets.js │ ├── scanDateRange.js │ ├── startGekko.js │ ├── stopGekko.js │ └── strategies.js ├── server.js ├── state/ │ ├── cache.js │ ├── gekkoManager.js │ ├── listManager.js │ ├── logger.js │ └── reduceState.js └── vue/ ├── babel.config.js ├── dist/ │ ├── UIconfig.js │ ├── app.5e99ecf7.js │ ├── app.730569ff.css │ ├── chunk-vendors.b9a11975.js │ ├── index.html │ └── vendor/ │ ├── d3.js │ ├── humanize-duration.js │ ├── moment.js │ └── toml.js ├── package.json ├── public/ │ ├── UIconfig.js │ ├── index.html │ └── vendor/ │ ├── d3.js │ ├── humanize-duration.js │ ├── moment.js │ └── toml.js ├── src/ │ ├── App.vue │ ├── components/ │ │ ├── backtester/ │ │ │ ├── backtestConfigBuilder.vue │ │ │ ├── backtester.vue │ │ │ └── result/ │ │ │ ├── chartWrapper.vue │ │ │ ├── result.vue │ │ │ ├── roundtripTable.vue │ │ │ └── summary.vue │ │ ├── config/ │ │ │ ├── apiConfigBuilder.vue │ │ │ └── config.vue │ │ ├── data/ │ │ │ ├── data.vue │ │ │ └── import/ │ │ │ ├── importConfigBuilder.vue │ │ │ ├── importer.vue │ │ │ └── single.vue │ │ ├── gekko/ │ │ │ ├── gekkoConfigBuilder.vue │ │ │ ├── list.vue │ │ │ ├── new.vue │ │ │ ├── singleGekko.vue │ │ │ └── singleWatcher.vue │ │ ├── global/ │ │ │ ├── blockSpinner.vue │ │ │ ├── configbuilder/ │ │ │ │ ├── datasetpicker.vue │ │ │ │ ├── exchangepicker.vue │ │ │ │ ├── marketpicker.vue │ │ │ │ ├── papertrader.vue │ │ │ │ ├── rangecreator.vue │ │ │ │ ├── rangepicker.vue │ │ │ │ ├── stratpicker.vue │ │ │ │ └── typepicker.vue │ │ │ ├── mixins/ │ │ │ │ └── dataset.js │ │ │ ├── paperTradeSummary.vue │ │ │ ├── progressBar.vue │ │ │ └── ws.js │ │ └── layout/ │ │ ├── footer.vue │ │ ├── header.vue │ │ ├── home.vue │ │ └── modal.vue │ ├── d3/ │ │ ├── chart3.js │ │ ├── chart4.js │ │ └── message.js │ ├── main.js │ ├── store/ │ │ ├── index.js │ │ ├── init.js │ │ └── modules/ │ │ ├── config/ │ │ │ ├── mutations.js │ │ │ └── sync.js │ │ ├── gekkos/ │ │ │ ├── mutations.js │ │ │ └── sync.js │ │ ├── imports/ │ │ │ ├── mutations.js │ │ │ └── sync.js │ │ ├── messages/ │ │ │ └── mutations.js │ │ └── notifications/ │ │ ├── mutations.js │ │ └── sync.js │ └── tools/ │ ├── ajax.js │ ├── api.js │ └── marked.js └── vue.config.js