diff --git a/web/vue/dist/index.html b/web/vue/dist/index.html
index 151622742..bd6bb2ae1 100644
--- a/web/vue/dist/index.html
+++ b/web/vue/dist/index.html
@@ -1 +1 @@
-
Gekko
\ No newline at end of file
+Gekko
\ No newline at end of file
diff --git a/web/vue/dist/js/app.0c714f34.js.map b/web/vue/dist/js/app.0c714f34.js.map
deleted file mode 100644
index 844f52f40..000000000
--- a/web/vue/dist/js/app.0c714f34.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/gekko/singleGekko.vue?6cec","webpack:///./src/components/global/progressBar.vue?7bcc","webpack:///./src/components/global/paperTradeSummary.vue?13b5","webpack:///src/components/global/paperTradeSummary.vue","webpack:///./src/components/global/paperTradeSummary.vue?a8ef","webpack:///./src/components/global/paperTradeSummary.vue","webpack:///./src/components/global/configbuilder/papertrader.vue?c5cd","webpack:///./src/components/gekko/new.vue?c104","webpack:///./src/components/gekko/new.vue?367c","webpack:///./src/components/gekko/gekkoConfigBuilder.vue?035a","webpack:///./src/components/global/configbuilder/typepicker.vue?df24","webpack:///src/components/global/configbuilder/typepicker.vue","webpack:///./src/components/global/configbuilder/typepicker.vue?cf28","webpack:///./src/components/global/configbuilder/typepicker.vue","webpack:///src/components/gekko/gekkoConfigBuilder.vue","webpack:///./src/components/gekko/gekkoConfigBuilder.vue?8d92","webpack:///./src/components/gekko/gekkoConfigBuilder.vue","webpack:///src/components/gekko/new.vue","webpack:///./src/components/gekko/new.vue?ae9a","webpack:///./src/components/gekko/new.vue","webpack:///./src/components/data/data.vue?4abe","webpack:///./src/tools/marked.js","webpack:///./src/components/global/configbuilder/marketpicker.vue?d701","webpack:///src/components/global/configbuilder/marketpicker.vue","webpack:///./src/components/global/configbuilder/marketpicker.vue?200d","webpack:///./src/components/global/configbuilder/marketpicker.vue","webpack:///./src/components/global/configbuilder/stratpicker.vue?fda9","webpack:///src/components/global/configbuilder/stratpicker.vue","webpack:///./src/components/global/configbuilder/stratpicker.vue?8a34","webpack:///./src/components/global/configbuilder/stratpicker.vue","webpack:///./src/components/global/configbuilder/rangepicker.vue?ce7c","webpack:///./src/components/global/configbuilder/rangecreator.vue?8425","webpack:///src/components/global/configbuilder/rangecreator.vue","webpack:///./src/components/global/configbuilder/rangecreator.vue?3f8d","webpack:///./src/components/global/configbuilder/rangecreator.vue","webpack:///./src/components/data/import/importConfigBuilder.vue?3911","webpack:///./src/components/global/blockSpinner.vue?cca6","webpack:///src/components/global/blockSpinner.vue","webpack:///./src/components/global/blockSpinner.vue?7b17","webpack:///./src/components/global/blockSpinner.vue","webpack:///./src/App.vue?77b6","webpack:///./src/components/layout/header.vue?345a","webpack:///src/components/layout/header.vue","webpack:///./src/components/layout/header.vue?8ecd","webpack:///./src/components/layout/header.vue","webpack:///./src/components/layout/footer.vue?0614","webpack:///src/components/layout/footer.vue","webpack:///./src/components/layout/footer.vue?6aff","webpack:///./src/components/layout/footer.vue","webpack:///./src/components/layout/modal.vue?5ed7","webpack:///src/components/layout/modal.vue","webpack:///./src/components/layout/modal.vue?6e33","webpack:///./src/components/layout/modal.vue","webpack:///src/App.vue","webpack:///./src/App.vue?8f16","webpack:///./src/App.vue","webpack:///./src/store/modules/imports/mutations.js","webpack:///./src/store/modules/gekkos/mutations.js","webpack:///./src/store/modules/notifications/mutations.js","webpack:///./src/store/modules/config/mutations.js","webpack:///./src/store/index.js","webpack:///./src/components/backtester/backtestConfigBuilder.vue?fda9","webpack:///./src/components/backtester/result/chartWrapper.vue?d2a0","webpack:///./src/components/global/configbuilder/rangecreator.vue?c7ad","webpack:///./src/components/layout/modal.vue?a2b4","webpack:///./src/components/backtester/result/chartWrapper.vue?cfc8","webpack:///./src/d3/chart4.js","webpack:///./src/d3/message.js","webpack:///src/components/backtester/result/chartWrapper.vue","webpack:///./src/components/backtester/result/chartWrapper.vue?414d","webpack:///./src/components/backtester/result/chartWrapper.vue","webpack:///./src/main.js","webpack:///./src/components/backtester/result/summary.vue?6f4b","webpack:///./src/components/config/config.vue?9014","webpack:///./src/components/config/apiConfigBuilder.vue?901e","webpack:///./src/components/global/configbuilder/exchangepicker.vue?f5ea","webpack:///src/components/global/configbuilder/exchangepicker.vue","webpack:///./src/components/global/configbuilder/exchangepicker.vue?f140","webpack:///./src/components/global/configbuilder/exchangepicker.vue","webpack:///src/components/config/apiConfigBuilder.vue","webpack:///./src/components/config/apiConfigBuilder.vue?a340","webpack:///./src/components/config/apiConfigBuilder.vue","webpack:///src/components/config/config.vue","webpack:///./src/components/config/config.vue?03e8","webpack:///./src/components/config/config.vue","webpack:///./src/components/gekko/gekkoConfigBuilder.vue?c09b","webpack:///./src/components/global/configbuilder/rangepicker.vue?e445","webpack:///src/components/global/configbuilder/rangepicker.vue","webpack:///./src/components/global/configbuilder/rangepicker.vue?6482","webpack:///./src/components/global/configbuilder/rangepicker.vue","webpack:///./src/App.vue?8b0d","webpack:///./src/components/config/apiConfigBuilder.vue?bb40","webpack:///./src/components/backtester/backtester.vue?06dc","webpack:///./src/components/backtester/backtestConfigBuilder.vue?bafa","webpack:///./src/components/global/configbuilder/datasetpicker.vue?dc86","webpack:///src/components/global/configbuilder/datasetpicker.vue","webpack:///./src/components/global/configbuilder/datasetpicker.vue?adbd","webpack:///./src/components/global/configbuilder/datasetpicker.vue","webpack:///src/components/backtester/backtestConfigBuilder.vue","webpack:///./src/components/backtester/backtestConfigBuilder.vue?6bee","webpack:///./src/components/backtester/backtestConfigBuilder.vue","webpack:///./src/components/backtester/result/result.vue?f19d","webpack:///./src/components/backtester/result/summary.vue?a48b","webpack:///src/components/backtester/result/summary.vue","webpack:///./src/components/backtester/result/summary.vue?2c9f","webpack:///./src/components/backtester/result/summary.vue","webpack:///src/components/backtester/result/result.vue","webpack:///./src/components/backtester/result/result.vue?a333","webpack:///./src/components/backtester/result/result.vue","webpack:///src/components/backtester/backtester.vue","webpack:///./src/components/backtester/backtester.vue?b754","webpack:///./src/components/backtester/backtester.vue","webpack:///../state/reduceState.js","webpack:///./src/components/data/data.vue?5f3a","webpack:///src/components/data/data.vue","webpack:///./src/components/data/data.vue?7897","webpack:///./src/components/data/data.vue","webpack:///./src/components/backtester/result/roundtripTable.vue?cb8d","webpack:///./src/components/gekko/list.vue?dec3","webpack:///./src/components/data/import/single.vue?892b","webpack:///./src/components/global/progressBar.vue?f48f","webpack:///src/components/global/progressBar.vue","webpack:///./src/components/global/progressBar.vue?3819","webpack:///./src/components/global/progressBar.vue","webpack:///src/components/data/import/single.vue","webpack:///./src/components/data/import/single.vue?ea36","webpack:///./src/components/data/import/single.vue","webpack:///./src/store/modules/imports/sync.js","webpack:///./src/store/modules/gekkos/sync.js","webpack:///./src/store/modules/notifications/sync.js","webpack:///./src/store/modules/config/sync.js","webpack:///./src/store/init.js","webpack:///./src/components/global/ws.js","webpack:///./src/components/gekko/list.vue?889e","webpack:///src/components/gekko/list.vue","webpack:///./src/components/gekko/list.vue?1de5","webpack:///./src/components/gekko/list.vue","webpack:///./src/components/data/import/importer.vue?370b","webpack:///./src/components/data/import/importConfigBuilder.vue?d697","webpack:///src/components/data/import/importConfigBuilder.vue","webpack:///./src/components/data/import/importConfigBuilder.vue?4a12","webpack:///./src/components/data/import/importConfigBuilder.vue","webpack:///src/components/data/import/importer.vue","webpack:///./src/components/data/import/importer.vue?5b1c","webpack:///./src/components/data/import/importer.vue","webpack:///./src/components/layout/home.vue?e103","webpack:///src/components/layout/home.vue","webpack:///./src/components/layout/home.vue?334a","webpack:///./src/components/layout/home.vue","webpack:///./src/components/gekko/singleGekko.vue?b47b","webpack:///src/components/gekko/singleGekko.vue","webpack:///./src/components/gekko/singleGekko.vue?71ef","webpack:///./src/components/gekko/singleGekko.vue","webpack:///./src/components/global/configbuilder/datasetpicker.vue?0d02","webpack:///./src/components/global/blockSpinner.vue?69ce","webpack:///./src/components/data/import/single.vue?dfe8","webpack:///./src/tools/api.js","webpack:///./src/components/global/configbuilder/papertrader.vue?4204","webpack:///src/components/global/configbuilder/papertrader.vue","webpack:///./src/components/global/configbuilder/papertrader.vue?fdb2","webpack:///./src/components/global/configbuilder/papertrader.vue","webpack:///./src/components/global/mixins/dataset.js","webpack:///./src/components/global/configbuilder/stratpicker.vue?808f","webpack:///./src/components/global/paperTradeSummary.vue?c6c2","webpack:///./src/components/layout/header.vue?b5b8","webpack:///./src/components/backtester/result/roundtripTable.vue?cd29","webpack:///src/components/backtester/result/roundtripTable.vue","webpack:///./src/components/backtester/result/roundtripTable.vue?35c4","webpack:///./src/components/backtester/result/roundtripTable.vue","webpack:///./src/components/backtester/result/result.vue?65dd","webpack:///./src/components/global/configbuilder/typepicker.vue?09f6","webpack:///./src/tools/ajax.js","webpack:///./src/components/data/import/importer.vue?3808"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","1","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_singleGekko_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_progressBar_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","render","_vm","this","_h","$createElement","_c","_self","staticClass","_v","_s","report","trades","round2","sharpe","round","startBalance","currency","balance","_m","class","profitClass","relativeProfit","staticRenderFns","paperTradeSummaryvue_type_script_lang_js","props","methods","toFixed","computed","global_paperTradeSummaryvue_type_script_lang_js","component","componentNormalizer","__webpack_exports__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_papertrader_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_new_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","on","config","updateConfig","pendingStratrunner","_e","attrs","href","click","$event","preventDefault","start","gekkoConfigBuildervue_type_template_id_6015a1e6_lang_pug_render","only-tradable","isTradebot","market","updateMarketConfig","type","updateType","stratConfig","updateStrat","settings","updatePaperTrader","gekkoConfigBuildervue_type_template_id_6015a1e6_lang_pug_staticRenderFns","typepickervue_type_template_id_4a1aa84c_lang_pug_render","for","_l","directives","rawName","expression","domProps","checked","_q","selectedTypeIndex","change","typepickervue_type_template_id_4a1aa84c_lang_pug_staticRenderFns","typepickervue_type_script_lang_js","created","emitType","types","$emit","watch","configbuilder_typepickervue_type_script_lang_js","typepicker","gekkoConfigBuildervue_type_script_lang_js","_this","ajax","error","response","candleWriter","toml","parse","part","performanceAnalyzer","enabled","range","strat","paperTrader","components","marketPicker","marketpicker","typePicker","stratPicker","stratpicker","papertrader","assign","trader","valid","validConfig","tradingAdvisor","lodash_default","a","isNaN","candleSize","method","isEmpty","mc","emitConfig","pt","gekko_gekkoConfigBuildervue_type_script_lang_js","gekkoConfigBuilder_component","gekkoConfigBuilder","newvue_type_script_lang_js","spinner","blockSpinner","gekkos","$store","state","watchConfig","raw","pick","vue_runtime_esm","util","extend","requiredHistoricalData","stratSettings","historySize","gekkoConfig","startAt","existingMarketWatcher","optimal","moment","utc","startOf","subtract","unix","available","events","initial","candle","Math","max","format","from","find","exchange","existingTradebot","g","logType","availableApiKeys","apiKeys","val","prev","_this2","gekko","latest","startGekko","err","resp","$router","path","concat","id","_this3","str","alert","includes","startWatcher","routeToGekko","console","next","gekko_newvue_type_script_lang_js","new_component","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_data_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","marked","myRenderer","Renderer","link","title","text","external","newWindow","out","test","setOptions","renderer","$$selectedVal","Array","filter","target","options","selected","map","_value","multiple","e","cur","asset","asst","marketpickervue_type_script_lang_js","exchanges","onlyTradable","each","tradable","onlyImportable","importable","markets","assets","currencies","keys","configbuilder_marketpickervue_type_script_lang_js","strategy","input","composing","rawCandleSize","candleSizeUnit","singularCandleSizeUnit","humanizeDuration","rawStratParams","rawStratParamsError","message","stratpickervue_type_script_lang_js","strategies","emptyStrat","stratParams","empty","params","__empty","parseParams","configbuilder_stratpickervue_type_script_lang_js","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_rangepicker_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","to","rangecreatorvue_type_script_lang_js","now","then","clone","fmt","emitRange","fmtTs","mom","emitManualEntry","isValid","scanned","tab","selectedRangeIndex","selectedRange","ranges","configbuilder_rangecreatorvue_type_script_lang_js","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_importConfigBuilder_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","blockSpinnervue_type_script_lang_js","global_blockSpinnervue_type_script_lang_js","headervue_type_template_id_0a62d360_lang_pug_render","headervue_type_template_id_0a62d360_lang_pug_staticRenderFns","headervue_type_script_lang_js","layout_headervue_type_script_lang_js","header","footervue_type_template_id_7782dc11_lang_pug_render","version","ui","footervue_type_template_id_7782dc11_lang_pug_staticRenderFns","gekkoPackage","uiPackage","footervue_type_script_lang_js","layout_footervue_type_script_lang_js","footer_component","footer","modalvue_type_template_id_340a7d17_lang_pug_render","innerHTML","content","modalvue_type_template_id_340a7d17_lang_pug_staticRenderFns","messages","disconnected","modalvue_type_script_lang_js","active","warnings","connected","layout_modalvue_type_script_lang_js","modal_component","modal","Appvue_type_script_lang_js","top","bottom","src_Appvue_type_script_lang_js","App_component","addImport","imp","imports","syncImports","mutations_updateImport","update","index","findIndex","import_id","item","updated","updates","set","reduceState","syncGekkos","live","archivedGekkos","archive","mutations_addGekko","objectSpread","mutations_updateGekko","has","event","mutations_archiveGekko","stopped","omit","mutations_errorGekko","errored","errorMessage","mutations_deleteGekko","setGlobalWarning","warning","mutations_syncApiKeys","mutations_syncExchanges","use","vuex_esm","debug","mutations","merge","mutations_namespaceObject","gekkos_mutations_namespaceObject","notifications_mutations_namespaceObject","config_mutations_namespaceObject","Store","connection","reconnected","strict","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_backtestConfigBuilder_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_chartWrapper_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_rangecreator_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_modal_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","chartWrappervue_type_template_id_12bcb8d8_lang_pug_render","clickable","isClicked","width","height","chart4","_data","_trades","_height","price","date","toDate","action","open","dates","prices","svg","d3","select","attr","innerWidth","margin","right","left","margin2","height2","x","scaleUtc","x2","y","scaleLinear","y2","xAxis","axisBottom","xAxis2","yAxis","axisLeft","ticks","brush","brushX","extent","brushed","zoom","scaleExtent","translateExtent","zoomed","line","line2","append","focus","context","domain","min","datum","circles","selectAll","enter","sourceEvent","selection","invert","scaleY","transform","zoomIdentity","scale","translate","_domain","slicedToArray","minIndex","sortedIndex","maxIndex","rescaleX","move","invertX","draw","MIN_CANDLES","chartWrappervue_type_script_lang_js","setTimeout","beforeDestroy","remove","_","size","candles","html","result_chartWrappervue_type_script_lang_js","vue__WEBPACK_IMPORTED_MODULE_1__","vue_router__WEBPACK_IMPORTED_MODULE_3__","router","base","__dirname","routes","redirect","_components_layout_home_vue__WEBPACK_IMPORTED_MODULE_6__","_components_backtester_backtester_vue__WEBPACK_IMPORTED_MODULE_5__","_components_config_config_vue__WEBPACK_IMPORTED_MODULE_10__","_components_data_data_vue__WEBPACK_IMPORTED_MODULE_7__","_components_data_import_importer_vue__WEBPACK_IMPORTED_MODULE_8__","_components_data_import_single_vue__WEBPACK_IMPORTED_MODULE_9__","_components_gekko_list_vue__WEBPACK_IMPORTED_MODULE_11__","_components_gekko_new_vue__WEBPACK_IMPORTED_MODULE_12__","_components_gekko_singleGekko_vue__WEBPACK_IMPORTED_MODULE_13__","_components_global_ws__WEBPACK_IMPORTED_MODULE_14__","store","_store__WEBPACK_IMPORTED_MODULE_4__","el","h","_App_vue__WEBPACK_IMPORTED_MODULE_2__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_summary_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","apiKeySets","removeApiKey","addApiToggle","openAddApi","apiConfigBuildervue_type_template_id_4a31b09e_lang_pug_render","updateExchange","cred","credentials","$set","upload","apiConfigBuildervue_type_template_id_4a31b09e_lang_pug_staticRenderFns","exchangepickervue_type_template_id_50c29cb0_lang_pug_render","exchangepickervue_type_template_id_50c29cb0_lang_pug_staticRenderFns","exchangepickervue_type_script_lang_js","emitExchange","configbuilder_exchangepickervue_type_script_lang_js","exchangepicker","apiConfigBuildervue_type_script_lang_js","exchangePicker","requires","values","confirm","config_apiConfigBuildervue_type_script_lang_js","apiConfigBuilder_component","apiConfigBuilder","configvue_type_script_lang_js","config_configvue_type_script_lang_js","config_component","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_gekkoConfigBuilder_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","scan","printRange","rangepickervue_type_script_lang_js","diff","duration","humanize","reset","configbuilder_rangepickervue_type_script_lang_js","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_apiConfigBuilder_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","check","backtestState","run","backtestResult","backtestConfigBuildervue_type_template_id_0b74d9a3_lang_pug_render","dataset","updateDataset","backtestConfigBuildervue_type_template_id_0b74d9a3_lang_pug_staticRenderFns","datasetpickervue_type_template_id_689b8a00_lang_pug_render","datasetScanstate","datasets","setIndex","rangeVisible","openRange","customFrom","customTo","datasetpickervue_type_template_id_689b8a00_lang_pug_staticRenderFns","datasetpickervue_type_script_lang_js","mixins","largest","updateCustomRange","emitSet","configbuilder_datasetpickervue_type_script_lang_js","datasetpicker","backtestConfigBuildervue_type_script_lang_js","datasetPicker","backtest","daterange","backtestResultExporter","writeToDisk","stratUpdates","roundtrips","stratCandles","stratCandleProps","sc","backtester_backtestConfigBuildervue_type_script_lang_js","backtestConfigBuilder_component","backtestConfigBuilder","resultvue_type_template_id_72b63acc_lang_pug_render","performanceReport","resultvue_type_template_id_72b63acc_lang_pug_staticRenderFns","summaryvue_type_template_id_5bfc891d_lang_pug_render","startTime","endTime","timespan","startPrice","endPrice","summaryvue_type_template_id_5bfc891d_lang_pug_staticRenderFns","summaryvue_type_script_lang_js","paperTradeSummary","result_summaryvue_type_script_lang_js","summary_component","summary","resultvue_type_script_lang_js","roundtripTable","resultSummary","chart","chartWrapper","result_resultvue_type_script_lang_js","result_component","backtestervue_type_script_lang_js","backtestable","configBuilder","backtester_backtestervue_type_script_lang_js","backtester_component","skipInitialEvents","skipLatestEvents","trackAllEvents","reduce","payload","latestUpdate","Date","[object Object]","intro","unscannableMakets","viewUnscannable","toggleUnscannable","datavue_type_script_lang_js","data_datavue_type_script_lang_js","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_roundtripTable_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_list_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","done","fromEnd","initialized","progress","progressBarvue_type_template_id_2b42ff94_lang_pug_render","style","progressBarvue_type_template_id_2b42ff94_lang_pug_staticRenderFns","progressBarvue_type_script_lang_js","global_progressBarvue_type_script_lang_js","progressBar","singlevue_type_script_lang_js","$route","fromEndMs","current","import_singlevue_type_script_lang_js","single_component","sync_init","commit","sync_sync","bus","$on","imports_sync","gekkos_sync_init","gekkos_sync_sync","gekkos_sync","notifications_sync_init","notifications_sync_sync","ws","notifications_sync","sync_transformMarkets","backendData","exchangesRaw","exchangesTemp","forEach","slug","pair","_pair$pair","exchangeMaxHistoryAge","providesFullHistory","config_sync_init","config_sync_sync","config_sync","store_init","socket","log","info","ws_connect","ReconnectingWebSocket","api","maxReconnectInterval","onopen","onclose","onerror","onmessage","JSON","watchers","status","stratrunners","profit","tradeCompleted","listvue_type_script_lang_js","timer","setInterval","destroyed","clearTimeout","_moment","_x","arguments","toString","b","gekko_listvue_type_script_lang_js","_import","importConfigBuildervue_type_template_id_a8c578c6_lang_pug_render","only-importable","updateRange","importConfigBuildervue_type_template_id_a8c578c6_lang_pug_staticRenderFns","importConfigBuildervue_type_script_lang_js","rangeCreator","rangecreator","importer","import_importConfigBuildervue_type_script_lang_js","importConfigBuilder","importervue_type_script_lang_js","daysApart","import_importervue_type_script_lang_js","importer_component","src","homevue_type_script_lang_js","layout_homevue_type_script_lang_js","isLoading","initialEvents","latestEvents","warmupRemaining","replace","stratName","isArchived","alpha","isStratrunner","watcher","stopGekko","deleteGekko","candleFetch","chartData","singleGekkovue_type_script_lang_js","getCandles","isLive","stratWarmupCompleted","warmupTime","add","stringify","isEqual","hasLeechers","data.events.latest.candle.start","random","res","isArray","_this4","gekko_singleGekkovue_type_script_lang_js","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_datasetpicker_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_blockSpinner_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_single_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","basePath","restPath","wsPath","CONFIG","endpoint","host","port","ssl","toggle","switchToggle","rawPaperTraderParams","rawPaperTraderParamsError","papertradervue_type_script_lang_js","paperTraderParams","reportRoundtrips","configbuilder_papertradervue_type_script_lang_js","mixin","_tools_ajax__WEBPACK_IMPORTED_MODULE_2__","errors","sets","sort","adiff","bdiff","reverse","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_stratpicker_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_paperTradeSummary_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_header_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","rt","entryAt","exitAt","entryBalance","exitBalance","sign","pnl","roundtripTablevue_type_script_lang_js","result_roundtripTablevue_type_script_lang_js","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_result_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_typepicker_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","processResponse","post","superagent__WEBPACK_IMPORTED_MODULE_0___default","_api_js__WEBPACK_IMPORTED_MODULE_2__","superagent_no_cache__WEBPACK_IMPORTED_MODULE_1___default","send","end","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_importer_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default"],"mappings":"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","file":"js/app.0c714f34.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([26,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./singleGekko.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./singleGekko.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./progressBar.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./progressBar.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-row-col-3-6\"},[_c('table',{staticClass:\"p1\"},[_c('tr',[_c('th',[_vm._v(\"amount of trades\")]),_c('td',[_vm._v(_vm._s(_vm.report.trades))])]),_c('tr',[_c('th',[_vm._v(\"sharpe ratio\")]),_c('td',[_vm._v(_vm._s(_vm.round2(_vm.report.sharpe)))])]),_c('tr',[_c('th',[_vm._v(\"start balance\")]),_c('td',[_vm._v(_vm._s(_vm.round(_vm.report.startBalance))+\" \"+_vm._s(_vm.report.currency))])]),_c('tr',[_c('th',[_vm._v(\"final balance\")]),_c('td',[_vm._v(_vm._s(_vm.round(_vm.report.balance))+\" \"+_vm._s(_vm.report.currency))])]),_vm._m(0)]),_c('div',{staticClass:\"big txt--right price\",class:_vm.profitClass},[_vm._v(_vm._s(_vm.round(_vm.report.relativeProfit))+\"%\")])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('th',[_vm._v(\"simulated profit\")])])}]\n\nexport { render, staticRenderFns }","\n.grd-row-col-3-6\n table.p1\n tr\n th amount of trades\n td {{ report.trades }}\n tr\n th sharpe ratio\n td {{ round2(report.sharpe) }}\n tr\n th start balance\n td {{ round(report.startBalance) }} {{ report.currency }}\n tr\n th final balance\n td {{ round(report.balance) }} {{ report.currency }}\n tr\n th simulated profit\n\n .big.txt--right.price(:class='profitClass') {{ round(report.relativeProfit) }}%\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./paperTradeSummary.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./paperTradeSummary.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./paperTradeSummary.vue?vue&type=template&id=637e135e&lang=pug\"\nimport script from \"./paperTradeSummary.vue?vue&type=script&lang=js\"\nexport * from \"./paperTradeSummary.vue?vue&type=script&lang=js\"\nimport style0 from \"./paperTradeSummary.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./papertrader.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./papertrader.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./new.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./new.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain my2\"},[_c('h3',[_vm._v(\"Start a new gekko\")]),_c('gekko-config-builder',{on:{\"config\":_vm.updateConfig}}),_c('div',{staticClass:\"hr\"}),(_vm.config.valid)?_c('div',{staticClass:\"txt--center\"},[(!_vm.pendingStratrunner)?_c('a',{staticClass:\"w100--s my1 btn--primary\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.start($event)}}},[_vm._v(\"Start\")]):_vm._e(),(_vm.pendingStratrunner)?_c('spinner'):_vm._e()],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd contain\"},[_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6 mx1\"},[_c('h3',[_vm._v(\"Market\")]),_c('market-picker',{attrs:{\"only-tradable\":_vm.isTradebot},on:{\"market\":_vm.updateMarketConfig}})],1),_c('div',{staticClass:\"grd-row-col-3-6 mx1\"},[_c('type-picker',{on:{\"type\":_vm.updateType}})],1)]),(_vm.type !== \"market watcher\")?[_c('div',{staticClass:\"hr\"}),_c('strat-picker',{staticClass:\"contain my2\",on:{\"stratConfig\":_vm.updateStrat}}),(_vm.type === \"paper trader\")?_c('div',{staticClass:\"hr\"}):_vm._e(),(_vm.type === \"paper trader\")?_c('paper-trader',{on:{\"settings\":_vm.updatePaperTrader}}):_vm._e()]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',[_vm._v(\"Type\")]),[_c('label',{staticClass:\"wrapper\",attrs:{\"for\":\"type\"}},[_vm._v(\"What do you want to do with gekko?\")]),_c('form',{staticClass:\"radio grd\"},_vm._l((_vm.types),function(type,i){return _c('div',{staticClass:\"grd-row m1\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedTypeIndex),expression:\"selectedTypeIndex\"}],staticClass:\"grd-row-col-1-6\",attrs:{\"type\":\"radio\"},domProps:{\"value\":i,\"checked\":_vm._q(_vm.selectedTypeIndex,i)},on:{\"change\":function($event){_vm.selectedTypeIndex=i}}}),_c('label',{staticClass:\"grd-row-col-5-6\",attrs:{\"for\":i}},[_vm._v(_vm._s(type))])])}))]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\ndiv\n h3 Type\n template\n label(for='type').wrapper What do you want to do with gekko?\n form.radio.grd\n div.grd-row(v-for='(type, i) in types').m1\n input.grd-row-col-1-6(type='radio', :value='i', v-model='selectedTypeIndex')\n label.grd-row-col-5-6(:for='i') {{ type }}\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./typepicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./typepicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./typepicker.vue?vue&type=template&id=4a1aa84c&lang=pug\"\nimport script from \"./typepicker.vue?vue&type=script&lang=js\"\nexport * from \"./typepicker.vue?vue&type=script&lang=js\"\nimport style0 from \"./typepicker.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n.grd.contain\n .grd-row\n .grd-row-col-3-6.mx1\n h3 Market\n market-picker(v-on:market='updateMarketConfig', :only-tradable='isTradebot')\n .grd-row-col-3-6.mx1\n type-picker(v-on:type='updateType')\n template(v-if='type !== \"market watcher\"')\n .hr\n strat-picker.contain.my2(v-on:stratConfig='updateStrat')\n .hr(v-if='type === \"paper trader\"')\n paper-trader(v-on:settings='updatePaperTrader', v-if='type === \"paper trader\"')\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./gekkoConfigBuilder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./gekkoConfigBuilder.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./gekkoConfigBuilder.vue?vue&type=template&id=6015a1e6&lang=pug\"\nimport script from \"./gekkoConfigBuilder.vue?vue&type=script&lang=js\"\nexport * from \"./gekkoConfigBuilder.vue?vue&type=script&lang=js\"\nimport style0 from \"./gekkoConfigBuilder.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n div.contain.my2\n h3 Start a new gekko\n gekko-config-builder(v-on:config='updateConfig')\n .hr\n .txt--center(v-if='config.valid')\n a.w100--s.my1.btn--primary(href='#', v-on:click.prevent='start', v-if=\"!pendingStratrunner\") Start\n spinner(v-if='pendingStratrunner')\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./new.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./new.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./new.vue?vue&type=template&id=da0dc488&lang=pug\"\nimport script from \"./new.vue?vue&type=script&lang=js\"\nexport * from \"./new.vue?vue&type=script&lang=js\"\nimport style0 from \"./new.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./data.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./data.vue?vue&type=style&index=0&lang=css\"","const marked = require('marked');\n\n// add `target='_blank'` to outgoing links\n\n// https://github.com/chjj/marked/pull/451#issuecomment-49976076\n\nvar myRenderer = new marked.Renderer();\nmyRenderer.link = function(href, title, text) {\n var external, newWindow, out;\n external = /^https?:\\/\\/.+$/.test(href);\n newWindow = external || title === 'newWindow';\n out = \"\" + text + \"\";\n};\n\nmarked.setOptions({renderer: myRenderer});\n\nexport default marked;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"mx1\"},[_c('label',{staticClass:\"wrapper\",attrs:{\"for\":\"exchange\"}},[_vm._v(\"Exchange:\")]),_c('div',{staticClass:\"custom-select button\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.exchange),expression:\"exchange\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.exchange=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.exchanges),function(market,e){return _c('option',[_vm._v(_vm._s(e))])}))])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6 mx1\"},[_c('label',{attrs:{\"for\":\"currency\"}},[_vm._v(\"Currency:\")]),_c('div',{staticClass:\"custom-select button\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currency),expression:\"currency\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.currency=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.currencies),function(cur){return _c('option',[_vm._v(_vm._s(cur))])}))])]),_c('div',{staticClass:\"grd-row-col-3-6 mx1\"},[_c('label',{attrs:{\"for\":\"asset\"}},[_vm._v(\"Asset:\")]),_c('div',{staticClass:\"custom-select button\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.asset),expression:\"asset\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.asset=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.assets),function(asst){return _c('option',[_vm._v(_vm._s(asst))])}))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\ndiv\n .mx1\n label(for='exchange').wrapper Exchange:\n .custom-select.button\n select(v-model='exchange')\n option(v-for='(market, e) in exchanges') {{ e }}\n .grd-row\n .grd-row-col-3-6.mx1\n label(for='currency') Currency:\n .custom-select.button\n select(v-model='currency')\n option(v-for='cur in currencies') {{ cur }}\n .grd-row-col-3-6.mx1\n label(for='asset') Asset:\n .custom-select.button\n select(v-model='asset')\n option(v-for='asst in assets') {{ asst }}\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./marketpicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./marketpicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./marketpicker.vue?vue&type=template&id=df4a8b2a&lang=pug\"\nimport script from \"./marketpicker.vue?vue&type=script&lang=js\"\nexport * from \"./marketpicker.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd\"},[_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6 px1\"},[_c('h3',[_vm._v(\"Strategy\")]),_c('div',[_c('label',{staticClass:\"wrapper\",attrs:{\"for\":\"strat\"}},[_vm._v(\"Strategy:\")]),_c('div',{staticClass:\"custom-select button\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.strategy),expression:\"strategy\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.strategy=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.strategies),function(strat){return _c('option',[_vm._v(_vm._s(strat.name))])}))])]),_c('div',[_c('label',{attrs:{\"for\":\"candleSize\"}},[_vm._v(\"Candle Size\")]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.rawCandleSize),expression:\"rawCandleSize\"}],domProps:{\"value\":(_vm.rawCandleSize)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.rawCandleSize=$event.target.value}}})]),_c('div',{staticClass:\"grd-row-col-3-6 align\"},[_c('div',{staticClass:\"custom-select button\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.candleSizeUnit),expression:\"candleSizeUnit\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.candleSizeUnit=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',[_vm._v(\"minutes\")]),_c('option',[_vm._v(\"hours\")]),_c('option',[_vm._v(\"days\")])])])])])]),_c('div',[_c('label',{attrs:{\"for\":\"historySize\"}},[_vm._v(\"Warmup period (in \"+_vm._s(_vm.rawCandleSize)+\" \"+_vm._s(_vm.singularCandleSizeUnit)+\" candles):\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.historySize),expression:\"historySize\"}],domProps:{\"value\":(_vm.historySize)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.historySize=$event.target.value}}}),_c('em',{staticClass:\"label-like\"},[_vm._v(\"(will use \"+_vm._s(_vm.humanizeDuration(_vm.candleSize * _vm.historySize * 1000 * 60))+\" of data as history)\")])])]),_c('div',{staticClass:\"grd-row-col-3-6 px1\"},[_c('div',[_c('h3',[_vm._v(\"Parameters\")]),_c('p',[_vm._v(_vm._s(_vm.strategy)+\" Parameters:\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.rawStratParams),expression:\"rawStratParams\"}],staticClass:\"params\",domProps:{\"value\":(_vm.rawStratParams)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.rawStratParams=$event.target.value}}}),(_vm.rawStratParamsError)?_c('p',{staticClass:\"bg--red p1\"},[_vm._v(_vm._s(_vm.rawStratParamsError.message))]):_vm._e()])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n.grd\n .grd-row\n .grd-row-col-3-6.px1\n h3 Strategy\n div\n label(for='strat').wrapper Strategy:\n .custom-select.button\n select(v-model='strategy')\n option(v-for='strat in strategies') {{ strat.name }}\n div\n label(for='candleSize') Candle Size\n .grd-row\n .grd-row-col-3-6\n input(v-model='rawCandleSize')\n .grd-row-col-3-6.align\n .custom-select.button\n select(v-model='candleSizeUnit')\n option minutes\n option hours\n option days\n div\n label(for='historySize') Warmup period (in {{ rawCandleSize }} {{ singularCandleSizeUnit }} candles):\n input(v-model='historySize')\n em.label-like (will use {{ humanizeDuration(candleSize * historySize * 1000 * 60) }} of data as history)\n .grd-row-col-3-6.px1\n div\n h3 Parameters\n p {{ strategy }} Parameters:\n textarea.params(v-model='rawStratParams')\n p.bg--red.p1(v-if='rawStratParamsError') {{ rawStratParamsError.message }}\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stratpicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stratpicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./stratpicker.vue?vue&type=template&id=1df710ae&lang=pug\"\nimport script from \"./stratpicker.vue?vue&type=script&lang=js\"\nexport * from \"./stratpicker.vue?vue&type=script&lang=js\"\nimport style0 from \"./stratpicker.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rangepicker.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rangepicker.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',[_vm._v(\"Daterange\")]),_c('div',[_c('label',{attrs:{\"for\":\"from\"}},[_vm._v(\"From\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.from),expression:\"from\"}],domProps:{\"value\":(_vm.from)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.from=$event.target.value}}})]),_c('div',[_c('label',{attrs:{\"for\":\"to\"}},[_vm._v(\"To\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.to),expression:\"to\"}],domProps:{\"value\":(_vm.to)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.to=$event.target.value}}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\ndiv\n h3 Daterange\n div\n label(for='from') From\n input(v-model='from')\n div\n label(for='to') To\n input(v-model='to')\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rangecreator.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rangecreator.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./rangecreator.vue?vue&type=template&id=8c51143a&lang=pug\"\nimport script from \"./rangecreator.vue?vue&type=script&lang=js\"\nexport * from \"./rangecreator.vue?vue&type=script&lang=js\"\nimport style0 from \"./rangecreator.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./importConfigBuilder.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./importConfigBuilder.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"spinner\"},[_c('div',{staticClass:\"rect1\"}),_c('div',{staticClass:\"rect2\"}),_c('div',{staticClass:\"rect3\"}),_c('div',{staticClass:\"rect4\"})])}]\n\nexport { render, staticRenderFns }","// http://tobiasahlin.com/spinkit/\n\n\n.spinner\n .rect1\n .rect2\n .rect3\n .rect4\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./blockSpinner.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./blockSpinner.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./blockSpinner.vue?vue&type=template&id=45447ea6&lang=pug\"\nimport script from \"./blockSpinner.vue?vue&type=script&lang=js\"\nexport * from \"./blockSpinner.vue?vue&type=script&lang=js\"\nimport style0 from \"./blockSpinner.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('top'),_c('div',{staticClass:\"fill\"},[_c('router-view',{staticClass:\"view\"})],1),_c('bottom'),_c('modal')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{attrs:{\"id\":\"top\"}}),_vm._m(0),_c('nav',{staticClass:\"bg--light-gray\"},[_c('div',{staticClass:\"menu contain\"},[_c('router-link',{staticClass:\"py1\",attrs:{\"to\":\"/home\"}},[_vm._v(\"Home\")]),_c('router-link',{staticClass:\"py1\",attrs:{\"to\":\"/live-gekkos\"}},[_vm._v(\"Live Gekkos\")]),_c('router-link',{staticClass:\"py1\",attrs:{\"to\":\"/backtest\"}},[_vm._v(\"Backtest\")]),_c('router-link',{staticClass:\"py1\",attrs:{\"to\":\"/data\"}},[_vm._v(\"Local data\")]),_c('router-link',{staticClass:\"py1\",attrs:{\"to\":\"/config\"}},[_vm._v(\"Config\")]),_c('a',{staticClass:\"py1\",attrs:{\"href\":\"https://gekko.wizb.it/docs/introduction/about_gekko.html\",\"target\":\"_blank\"}},[_vm._v(\"Documentation\")])],1)])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{staticClass:\"bg--off-white grd\"},[_c('div',{staticClass:\"contain grd-row\"},[_c('h3',{staticClass:\"py1 px2 col-2\"},[_vm._v(\"Gekko UI\")])])])}]\n\nexport { render, staticRenderFns }","\n div\n #top\n header.bg--off-white.grd\n .contain.grd-row\n h3.py1.px2.col-2 Gekko UI\n nav.bg--light-gray\n .menu.contain\n router-link(to='/home').py1 Home\n router-link(to='/live-gekkos').py1 Live Gekkos\n router-link(to='/backtest').py1 Backtest\n router-link(to='/data').py1 Local data\n router-link(to='/config').py1 Config\n a(href='https://gekko.wizb.it/docs/introduction/about_gekko.html', target='_blank').py1 Documentation\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./header.vue?vue&type=template&id=0a62d360&lang=pug\"\nimport script from \"./header.vue?vue&type=script&lang=js\"\nexport * from \"./header.vue?vue&type=script&lang=js\"\nimport style0 from \"./header.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('footer',{staticClass:\"p2 bg--off-white\"},[_c('div',{staticClass:\"contain\"},[_vm._m(0),_c('p',[_vm._v(\"Using Gekko v\"+_vm._s(_vm.version.gekko)+\" and Gekko UI v\"+_vm._s(_vm.version.ui)+\".\")])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_c('em',[_vm._v(\"Use Gekko at your own risk.\")])])}]\n\nexport { render, staticRenderFns }","\n footer.p2.bg--off-white\n .contain\n p\n em Use Gekko at your own risk.\n p Using Gekko v{{ version.gekko }} and Gekko UI v{{ version.ui }}.\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./footer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./footer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./footer.vue?vue&type=template&id=7782dc11&lang=pug\"\nimport script from \"./footer.vue?vue&type=script&lang=js\"\nexport * from \"./footer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.active)?_c('div',[_c('div',{attrs:{\"id\":\"modal-background\"}}),_c('div',{staticClass:\"modal\",attrs:{\"id\":\"modal\"}},[_c('div',{staticClass:\"modal-guts\",domProps:{\"innerHTML\":_vm._s(_vm.content)}})])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n div(v-if='active')\n #modal-background\n #modal.modal\n .modal-guts(v-html='content')\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./modal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./modal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./modal.vue?vue&type=template&id=340a7d17&lang=pug\"\nimport script from \"./modal.vue?vue&type=script&lang=js\"\nexport * from \"./modal.vue?vue&type=script&lang=js\"\nimport style0 from \"./modal.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n #app\n top\n .fill\n router-view.view\n bottom\n modal\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=29e7b8c2&lang=pug\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\n\nexport const addImport = (state, imp) => {\n state.imports.push(imp);\n return state;\n}\n\nexport const syncImports = (state, imports) => {\n state.imports = imports;\n return state;\n}\n\nexport const updateImport = (state, update) => {\n let index = state.imports.findIndex(i => i.id === update.import_id);\n let item = state.imports[index];\n if(!item)\n return state;\n\n let updated = Vue.util.extend(item, update.updates);\n Vue.set(state.imports, index, updated);\n\n return state;\n}","import Vue from 'vue'\nimport _ from 'lodash';\nconst reduceState = require('../../../../../state/reduceState');\n\nexport const syncGekkos = (state, data) => {\n if(!data) {\n return state;\n }\n\n state.gekkos = data.live;\n state.archivedGekkos = data.archive;\n return state;\n}\n\nexport const addGekko = (state, gekko) => {\n state.gekkos = {\n ...state.gekkos,\n [gekko.id]: gekko\n }\n return state;\n}\n\nexport const updateGekko = (state, update) => {\n if(!update.id || !_.has(state.gekkos, update.id)) {\n return console.error('cannot update unknown gekko..');;\n }\n\n state.gekkos = {\n ...state.gekkos,\n [update.id]: reduceState(state.gekkos[update.id], update.event)\n }\n return state;\n}\n\nexport const archiveGekko = (state, id) => {\n if(!_.has(state.gekkos, id)) {\n return console.error('cannot archive unknown gekko..');\n }\n\n state.archivedGekkos = {\n ...state.archivedGekkos,\n [id]: {\n ...state.gekkos[id],\n stopped: true,\n active: false\n }\n }\n\n state.gekkos = _.omit(state.gekkos, id);\n return state;\n}\n\nexport const errorGekko = (state, data) => {\n if(!_.has(state.gekkos, data.id)) {\n return console.error('cannot error unknown gekko..');\n }\n\n state.gekkos = {\n ...state.gekkos,\n [data.id]: {\n ...state.gekkos[data.id],\n errored: true,\n errorMessage: data.error\n }\n }\n\n return state;\n}\n\nexport const deleteGekko = (state, id) => {\n if(!_.has(state.archivedGekkos, id)) {\n return console.error('cannot delete unknown gekko..');\n }\n\n state.archivedGekkos = _.omit(state.archivedGekkos, id);\n return state;\n}","import Vue from 'vue'\nimport _ from 'lodash'\n\nexport const setGlobalWarning = (state, warning) => {\n state.warnings[warning.key] = warning.value;\n return state;\n}","import Vue from 'vue'\n\nexport const syncApiKeys = (state, apiKeys) => {\n Vue.set(state, 'apiKeys', apiKeys);\n return state;\n}\n\nexport const syncExchanges = (state, exchanges) => {\n Vue.set(state, 'exchanges', exchanges);\n return state;\n}","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport _ from 'lodash'\n\nimport * as importMutations from './modules/imports/mutations'\nimport * as gekkoMutations from './modules/gekkos/mutations'\nimport * as notificationMutations from './modules/notifications/mutations'\nimport * as configMutations from './modules/config/mutations'\n\nVue.use(Vuex);\n\nconst debug = process.env.NODE_ENV !== 'production'\n\nlet mutations = {};\n\n_.merge(mutations, importMutations);\n_.merge(mutations, gekkoMutations);\n_.merge(mutations, notificationMutations);\n_.merge(mutations, configMutations);\n\nexport default new Vuex.Store({\n state: {\n warnings: {\n connected: true, // assume we will connect\n },\n imports: [],\n gekkos: {},\n archivedGekkos: {},\n connection: {\n disconnected: false,\n reconnected: false\n },\n apiKeys: [],\n exchanges: {}\n },\n mutations,\n strict: debug\n})","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./backtestConfigBuilder.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./backtestConfigBuilder.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chartWrapper.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chartWrapper.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rangecreator.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rangecreator.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./modal.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./modal.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{ clickable: !_vm.isClicked },attrs:{\"id\":\"chartWrapper\"}},[_c('div',{staticClass:\"shield\",on:{\"click\":function($event){$event.preventDefault();return _vm.click($event)}}}),_c('svg',{attrs:{\"id\":\"chart\",\"width\":\"960\",\"height\":_vm.height}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import _ from 'lodash';\n// global moment\n\nexport default function(_data, _trades, _height) {\n\n const trades = _trades.map(t => {\n return {\n price: t.price,\n date: moment.utc(t.date).toDate(),\n action: t.action\n }\n });\n\n const data = _data.map(c => {\n return {\n price: c.open,\n date: moment.utc(c.start).toDate()\n }\n });\n\n var dates = data.map(c => +c.date);\n var prices = data.map(c => +c.price)\n\n var svg = d3.select(\"#chart\");\n\n svg.attr(\"width\", window.innerWidth - 20);\n\n var margin = {top: 20, right: 20, bottom: 110, left: 40};\n var height = _height - margin.top - margin.bottom;\n var margin2 = {top: _height - 70, right: 20, bottom: 30, left: 40};\n var width = +svg.attr(\"width\") - margin.left - margin.right;\n var height2 = _height - margin2.top - margin2.bottom;\n\n var x = d3.scaleUtc().range([0, width]),\n x2 = d3.scaleUtc().range([0, width]),\n y = d3.scaleLinear().range([height, 0]),\n y2 = d3.scaleLinear().range([height2, 0]);\n\n var xAxis = d3.axisBottom(x),\n xAxis2 = d3.axisBottom(x2),\n yAxis = d3.axisLeft(y).ticks(_height / 50);\n\n var brush = d3.brushX()\n .extent([[0, 0], [width, height2]])\n .on(\"brush end\", brushed);\n\n var zoom = d3.zoom()\n .scaleExtent([1, 100])\n .translateExtent([[0, 0], [width, height]])\n .extent([[0, 0], [width, height]])\n .on(\"zoom\", zoomed);\n\n var line = d3.line()\n .x(function(d) { return x(d.date); })\n .y(function(d) { return y(d.price); });\n\n var line2 = d3.line()\n .x(function(d) { return x2(d.date); })\n .y(function(d) { return y2(d.price); });\n\n svg.append(\"defs\").append(\"clipPath\")\n .attr(\"id\", \"clip\")\n .append(\"rect\")\n .attr(\"width\", width)\n .attr(\"height\", height);\n\n var focus = svg.append(\"g\")\n .attr(\"class\", \"focus\")\n .attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\");\n\n var context = svg.append(\"g\")\n .attr(\"class\", \"context\")\n .attr(\"transform\", \"translate(\" + margin2.left + \",\" + margin2.top + \")\");\n\n x.domain(d3.extent(data, function(d) { return d.date; }));\n y.domain([\n d3.min(prices) * 0.99,\n d3.max(prices) * 1.01\n ]);\n x2.domain(x.domain());\n y2.domain(y.domain());\n\n focus.append(\"path\")\n .datum(data)\n .attr(\"class\", \"line price\")\n .attr(\"d\", line);\n\n focus.append(\"g\")\n .attr(\"class\", \"axis axis--x\")\n .attr(\"transform\", \"translate(0,\" + height + \")\")\n .call(xAxis);\n\n focus.append(\"g\")\n .attr(\"class\", \"axis axis--y\")\n .call(yAxis);\n\n context.append(\"path\")\n .datum(data)\n .attr(\"class\", \"line\")\n .attr(\"d\", line2);\n\n context.append(\"g\")\n .attr(\"class\", \"axis axis--x\")\n .attr(\"transform\", \"translate(0,\" + height2 + \")\")\n .call(xAxis2);\n\n var circles = svg\n .append('g')\n .attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\")\n .selectAll(\"circle\")\n .data(trades)\n .enter().append(\"circle\")\n .attr('class', function(d) { return d.action })\n .attr(\"cx\", function(d) { return x(d.date); })\n .attr(\"cy\", function(d) { return y(d.price); })\n .attr('r', 5);\n\n var brushCircles = context\n .append('g')\n // .attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\")\n .selectAll(\"circle\")\n .data(trades)\n .enter().append(\"circle\")\n .attr('class', function(d) { return d.action })\n .attr(\"cx\", function(d) { return x2(d.date); })\n .attr(\"cy\", function(d) { return y2(d.price); })\n .attr('r', 3);\n\n\n context.append(\"g\")\n .attr(\"class\", \"brush\")\n .call(brush)\n .call(brush.move, x.range());\n\n svg.append(\"rect\")\n .attr(\"class\", \"zoom\")\n .attr(\"width\", width)\n .attr(\"height\", height)\n .attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\")\n .call(zoom);\n\n function brushed() {\n if (d3.event.sourceEvent && d3.event.sourceEvent.type === \"zoom\") return; // ignore brush-by-zoom\n var s = d3.event.selection || x2.range();\n x.domain(s.map(x2.invert, x2));\n\n scaleY(x.domain());\n\n svg.select(\".axis--y\")\n .call(yAxis);\n\n circles\n .attr(\"cx\", function(d) { return x(d.date); })\n .attr(\"cy\", function(d) { return y(d.price); })\n\n focus.select(\".line\").attr(\"d\", line);\n focus.select(\".axis--x\").call(xAxis);\n svg.select(\".zoom\").call(zoom.transform, d3.zoomIdentity\n .scale(width / (s[1] - s[0]))\n .translate(-s[0], 0));\n }\n\n function scaleY(domain) {\n let [min, max] = domain;\n\n let minIndex = _.sortedIndex(dates, min);\n let maxIndex = _.sortedIndex(dates, max);\n\n let set = prices.slice(minIndex, maxIndex);\n y.domain([\n d3.min(set) * 0.9995,\n d3.max(set) * 1.0005\n ]);\n }\n\n function zoomed() {\n if (d3.event.sourceEvent && d3.event.sourceEvent.type === \"brush\") return; // ignore zoom-by-brush\n var t = d3.event.transform;\n\n scaleY(t.rescaleX(x2).domain()); \n\n svg.select(\".axis--y\")\n .call(yAxis);\n\n x.domain(t.rescaleX(x2).domain());\n focus.select(\".line\").attr(\"d\", line);\n\n circles\n .attr(\"cx\", function(d) { return x(d.date); })\n .attr(\"cy\", function(d) { return y(d.price); })\n\n\n focus.select(\".axis--x\").call(xAxis);\n context.select(\".brush\").call(brush.move, x.range().map(t.invertX, t));\n }\n}","export const draw = function(message) {\n d3.select(\"#chart\").append(\"text\")\n .attr('class', 'message')\n .attr('x', 150)\n .attr('y', 150)\n .text(message);\n}\n\nexport const clear = function() {\n d3.select(\"#chart\").find('text').remove();\n}","\n#chartWrapper(v-bind:class='{ clickable: !isClicked }')\n .shield(v-on:click.prevent='click')\n svg#chart(width='960', :height='height')\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chartWrapper.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chartWrapper.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./chartWrapper.vue?vue&type=template&id=12bcb8d8&lang=pug\"\nimport script from \"./chartWrapper.vue?vue&type=script&lang=js\"\nexport * from \"./chartWrapper.vue?vue&type=script&lang=js\"\nimport style0 from \"./chartWrapper.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport App from './App.vue'\n\nimport VueRouter from 'vue-router'\nVue.use(VueRouter);\n\nimport store from './store'\n\nimport backtester from './components/backtester/backtester.vue'\nimport home from './components/layout/home.vue'\n\nimport data from './components/data/data.vue'\nimport importer from './components/data/import/importer.vue'\nimport singleImport from './components/data/import/single.vue'\nimport config from './components/config/config.vue'\n\nimport gekkoList from './components/gekko/list.vue'\nimport newGekko from './components/gekko/new.vue'\nimport singleGekko from './components/gekko/singleGekko.vue'\nimport { connect as connectWS } from './components/global/ws'\n\nconst router = new VueRouter({\n mode: 'hash',\n base: __dirname,\n routes: [\n { path: '/', redirect: '/home' },\n { path: '/home', component: home },\n { path: '/backtest', component: backtester },\n { path: '/config', component: config },\n { path: '/data', component: data },\n { path: '/data/importer', component: importer },\n { path: '/data/importer/import/:id', component: singleImport },\n { path: '/live-gekkos', component: gekkoList },\n { path: '/live-gekkos/new', component: newGekko },\n { path: '/live-gekkos/:id', component: singleGekko },\n ]\n});\n\n// setup some stuff\nconnectWS();\n\nnew Vue({\n router,\n store,\n el: '#app',\n render: h => h(App)\n})","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./summary.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./summary.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain\"},[_c('h2',[_vm._v(\"Config\")]),_c('div',{staticClass:\"hr\"}),_c('h3',[_vm._v(\"Available API keys\")]),(!_vm.apiKeySets.length)?_c('p',[_c('em',[_vm._v(\"You don't have any API keys yet.\")])]):_vm._e(),_c('ul',_vm._l((_vm.apiKeySets),function(exchange){return _c('li',[_vm._v(_vm._s(exchange)+\" (\"),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.removeApiKey(exchange)}}},[_vm._v(\"remove\")]),_vm._v(\")\")])})),(!_vm.addApiToggle)?_c('a',{staticClass:\"btn--primary\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.openAddApi($event)}}},[_vm._v(\"Add an API key\")]):_vm._e(),(_vm.addApiToggle)?[_c('div',{staticClass:\"hr\"}),_c('apiConfigBuilder')]:_vm._e(),_c('div',{staticClass:\"hr\"})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd contain\"},[_c('h3',[_vm._v(\"Add an API key\")]),_c('p',[_vm._v(\"Make sure that the API key has the permissions to create and cancel orders and view balances.\")]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6 mx1\"},[_c('h3',[_vm._v(\"Exchange\")]),_c('exchange-picker',{attrs:{\"only-tradable\":\"true\"},on:{\"exchange\":_vm.updateExchange}})],1),_c('div',{staticClass:\"grd-row-col-3-6 mx1\"},[_c('h3',[_vm._v(\"Credentials\")]),_vm._l((_vm.requires),function(cred){return [_c('label',[_vm._v(_vm._s(cred))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.credentials[cred]),expression:\"credentials[cred]\"}],domProps:{\"value\":(_vm.credentials[cred])},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.credentials, cred, $event.target.value)}}})]})],2)]),_c('div',{staticClass:\"txt--center\"},[_c('a',{staticClass:\"w100--s my1 btn--primary\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.upload($event)}}},[_vm._v(\"Add\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"mx1\"},[_c('label',{staticClass:\"wrapper\",attrs:{\"for\":\"exchange\"}},[_vm._v(\"Exchange:\")]),_c('div',{staticClass:\"custom-select button\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.exchange),expression:\"exchange\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.exchange=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.exchanges),function(market,e){return _c('option',[_vm._v(_vm._s(e))])}))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\ndiv\n .mx1\n label(for='exchange').wrapper Exchange:\n .custom-select.button\n select(v-model='exchange')\n option(v-for='(market, e) in exchanges') {{ e }}\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./exchangepicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./exchangepicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./exchangepicker.vue?vue&type=template&id=50c29cb0&lang=pug\"\nimport script from \"./exchangepicker.vue?vue&type=script&lang=js\"\nexport * from \"./exchangepicker.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n.grd.contain\n h3 Add an API key\n p Make sure that the API key has the permissions to create and cancel orders and view balances.\n .grd-row\n .grd-row-col-3-6.mx1\n h3 Exchange\n exchange-picker(v-on:exchange='updateExchange', only-tradable='true')\n .grd-row-col-3-6.mx1\n h3 Credentials\n template(v-for='cred in requires')\n label {{ cred }}\n input(v-model='credentials[cred]')\n .txt--center\n a.w100--s.my1.btn--primary(href='#', v-on:click.prevent='upload') Add\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./apiConfigBuilder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./apiConfigBuilder.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./apiConfigBuilder.vue?vue&type=template&id=4a31b09e&lang=pug\"\nimport script from \"./apiConfigBuilder.vue?vue&type=script&lang=js\"\nexport * from \"./apiConfigBuilder.vue?vue&type=script&lang=js\"\nimport style0 from \"./apiConfigBuilder.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\ndiv.contain\n h2 Config\n .hr\n h3 Available API keys\n p(v-if='!apiKeySets.length')\n em You don't have any API keys yet.\n ul\n li(v-for='exchange in apiKeySets') {{ exchange }} (\n a(href='#', v-on:click.prevent='removeApiKey(exchange)') remove\n | )\n a.btn--primary(href='#', v-if='!addApiToggle', v-on:click.prevent='openAddApi') Add an API key\n template(v-if='addApiToggle')\n .hr\n apiConfigBuilder\n .hr\n \n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./config.vue?vue&type=template&id=d21dbde6&lang=pug\"\nimport script from \"./config.vue?vue&type=script&lang=js\"\nexport * from \"./config.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./gekkoConfigBuilder.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./gekkoConfigBuilder.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',[_vm._v(\"Daterange\")]),(_vm.tab === \"scan\")?[(!_vm.scanned)?_c('div',{staticClass:\"txt--center\"},[_c('a',{staticClass:\"w100--s btn--primary scan-btn\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.scan($event)}}},[_vm._v(\"Scan available data\")])]):_vm._e(),(_vm.scanned == \"fetching\")?_c('div',{staticClass:\"txt--center\"},[_c('p',{staticClass:\"scan-btn\"},[_vm._v(\"Scanning..\")])]):_vm._e(),(_vm.scanned == true)?[(_vm.ranges.length === 0)?[_c('p',[_c('strong',[_vm._v(\"Unable to find any local data, do you have local data available for\\\"\"+_vm._s(_vm.config.watch.exchange)+\":\"+_vm._s(_vm.config.watch.currency)+\"/\"+_vm._s(_vm.config.watch.asset)+\"\\\"?\")])])]:[_c('label',{staticClass:\"wrapper\",attrs:{\"for\":\"exchange\"}},[_vm._v(\"Run simulation over:\")]),_c('form',{staticClass:\"radio grd\"},_vm._l((_vm.ranges),function(range,i){return _c('div',{staticClass:\"grd-row m1\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedRangeIndex),expression:\"selectedRangeIndex\"}],staticClass:\"grd-row-col-1-6\",attrs:{\"type\":\"radio\"},domProps:{\"value\":i,\"checked\":_vm._q(_vm.selectedRangeIndex,i)},on:{\"change\":function($event){_vm.selectedRangeIndex=i}}}),_c('label',{staticClass:\"grd-row-col-5-6\",attrs:{\"for\":i}},[_vm._v(_vm._s(_vm.printRange(range)))])])}))],_c('p',[_c('em',[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.scan($event)}}},[_vm._v(\"rescan\")])])])]:_vm._e(),_c('p',{staticClass:\"txt--center\"},[_c('em',[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.tab = \"manual\"}}},[_vm._v(\"Or manually set a daterange\")])])])]:_vm._e(),(_vm.tab === \"manual\")?[_c('div',[_c('label',{attrs:{\"for\":\"from\"}},[_vm._v(\"From:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.from),expression:\"from\"}],domProps:{\"value\":(_vm.from)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.from=$event.target.value}}})]),_c('div',[_c('label',{attrs:{\"for\":\"to\"}},[_vm._v(\"To:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.to),expression:\"to\"}],domProps:{\"value\":(_vm.to)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.to=$event.target.value}}})]),_c('p',{staticClass:\"txt--center\"}),_c('em',[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.tab = \"scan\"}}},[_vm._v(\"Or scan for a daterange\")])])]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\ndiv\n h3 Daterange\n template(v-if='tab === \"scan\"')\n .txt--center(v-if='!scanned')\n a.w100--s.btn--primary.scan-btn(href='#', v-on:click.prevent='scan') Scan available data\n .txt--center(v-if='scanned == \"fetching\"')\n p.scan-btn Scanning..\n template(v-if='scanned == true')\n template(v-if='ranges.length === 0')\n p\n strong Unable to find any local data, do you have local data available for\n | \"{{ config.watch.exchange }}:{{ config.watch.currency }}/{{ config.watch.asset }}\"?\n template(v-else)\n label(for='exchange').wrapper Run simulation over:\n form.radio.grd\n div.grd-row(v-for='(range, i) in ranges').m1\n input.grd-row-col-1-6(type='radio', :value='i', v-model='selectedRangeIndex')\n label.grd-row-col-5-6(:for='i') {{ printRange(range) }}\n p\n em\n a(href='#', v-on:click.prevent='scan') rescan\n p.txt--center\n em\n a(href='#', v-on:click.prevent='tab = \"manual\"') Or manually set a daterange\n template(v-if='tab === \"manual\"')\n div\n label(for='from') From:\n input(v-model='from')\n div\n label(for='to') To:\n input(v-model='to')\n p.txt--center\n em\n a(href='#', v-on:click.prevent='tab = \"scan\"') Or scan for a daterange\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rangepicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rangepicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./rangepicker.vue?vue&type=template&id=5037047f&lang=pug\"\nimport script from \"./rangepicker.vue?vue&type=script&lang=js\"\nexport * from \"./rangepicker.vue?vue&type=script&lang=js\"\nimport style0 from \"./rangepicker.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js!../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js!../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./apiConfigBuilder.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./apiConfigBuilder.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h2',{staticClass:\"contain\"},[_vm._v(\"Backtest\")]),_c('div',{staticClass:\"hr\"}),_c('config-builder',{on:{\"config\":_vm.check}}),(_vm.backtestable)?_c('div',[_c('div',{staticClass:\"txt--center\"},[(_vm.backtestState !== \"fetching\")?_c('a',{staticClass:\"w100--s my1 btn--primary\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.run($event)}}},[_vm._v(\"Backtest\")]):_vm._e(),(_vm.backtestState === \"fetching\")?_c('div',{staticClass:\"scan-btn\"},[_c('p',[_vm._v(\"Running backtest..\")]),_c('spinner')],1):_vm._e()])]):_vm._e(),(_vm.backtestResult && _vm.backtestState === \"fetched\")?_c('result',{attrs:{\"result\":_vm.backtestResult}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('dataset-picker',{staticClass:\"my2 contain\",on:{\"dataset\":_vm.updateDataset}}),_c('div',{staticClass:\"hr\"}),_c('strat-picker',{staticClass:\"my2 contain\",on:{\"stratConfig\":_vm.updateStrat}}),_c('div',{staticClass:\"hr\"}),_c('paper-trader',{staticClass:\"contain\",on:{\"settings\":_vm.updatePaperTrader}}),_c('div',{staticClass:\"hr\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',[_vm._v(\"Select a dataset\")]),(_vm.datasetScanstate === \"idle\")?_c('div',{staticClass:\"txt--center my2\"},[_c('a',{staticClass:\"w100--s btn--primary scan-btn\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.scan($event)}}},[_vm._v(\"Scan available data\")])]):_vm._e(),(_vm.datasetScanstate === \"scanning\")?_c('div',{staticClass:\"txt--center my2\"},[_c('spinner')],1):_vm._e(),(_vm.datasetScanstate === \"scanned\")?_c('div',{staticClass:\"my2\"},[(_vm.datasets.length != 0)?_c('div',[_c('table',{staticClass:\"full\"},[_vm._m(0),_c('tbody',_vm._l((_vm.datasets),function(set,i){return _c('tr',[_c('td',{staticClass:\"radio\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.setIndex),expression:\"setIndex\"}],attrs:{\"type\":\"radio\",\"name\":\"dataset\",\"id\":set.id},domProps:{\"value\":i,\"checked\":_vm._q(_vm.setIndex,i)},on:{\"change\":function($event){_vm.setIndex=i}}})]),_c('td',[_c('label',{attrs:{\"for\":set.id}},[_vm._v(_vm._s(set.exchange))])]),_c('td',[_c('label',{attrs:{\"for\":set.id}},[_vm._v(_vm._s(set.currency))])]),_c('td',[_c('label',{attrs:{\"for\":set.id}},[_vm._v(_vm._s(set.asset))])]),_c('td',[_c('label',{attrs:{\"for\":set.id}},[_vm._v(_vm._s(_vm.fmt(set.from)))])]),_c('td',[_c('label',{attrs:{\"for\":set.id}},[_vm._v(_vm._s(_vm.fmt(set.to)))])]),_c('td',[_c('label',{attrs:{\"for\":set.id}},[_vm._v(_vm._s(_vm.humanizeDuration(set.to.diff(set.from))))])])])}))]),(!_vm.rangeVisible)?_c('a',{staticClass:\"btn--primary\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.openRange($event)}}},[_vm._v(\"Adjust range\")]):_vm._e(),(_vm.rangeVisible)?[_c('div',[_c('label',{attrs:{\"for\":\"customFrom\"}},[_vm._v(\"From:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.customFrom),expression:\"customFrom\"}],domProps:{\"value\":(_vm.customFrom)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.customFrom=$event.target.value}}})]),_c('div',[_c('label',{attrs:{\"for\":\"customTo\"}},[_vm._v(\"To:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.customTo),expression:\"customTo\"}],domProps:{\"value\":(_vm.customTo)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.customTo=$event.target.value}}})])]:_vm._e()],2):_c('em',[_vm._v(\"No Data found \"),_c('a',{attrs:{\"href\":\"#/data/importer\"}},[_vm._v(\"Lets add some\")])])]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th'),_c('th',[_vm._v(\"exchange\")]),_c('th',[_vm._v(\"currency\")]),_c('th',[_vm._v(\"asset\")]),_c('th',[_vm._v(\"from\")]),_c('th',[_vm._v(\"to\")]),_c('th',[_vm._v(\"duration\")])])])}]\n\nexport { render, staticRenderFns }","\ndiv\n h3 Select a dataset\n .txt--center.my2(v-if='datasetScanstate === \"idle\"')\n a.w100--s.btn--primary.scan-btn(href='#', v-on:click.prevent='scan') Scan available data\n .txt--center.my2(v-if='datasetScanstate === \"scanning\"')\n spinner\n .my2(v-if='datasetScanstate === \"scanned\"')\n\n div(v-if='datasets.length != 0')\n table.full\n thead\n tr\n th \n th exchange\n th currency\n th asset\n th from\n th to\n th duration\n tbody\n tr(v-for='(set, i) in datasets')\n td.radio\n input(type='radio', name='dataset', :value='i', v-model='setIndex', v-bind:id='set.id')\n td \n label(v-bind:for='set.id') {{ set.exchange }}\n td \n label(v-bind:for='set.id') {{ set.currency }}\n td\n label(v-bind:for='set.id') {{ set.asset }}\n td \n label(v-bind:for='set.id') {{ fmt(set.from) }}\n td \n label(v-bind:for='set.id') {{ fmt(set.to) }}\n td\n label(v-bind:for='set.id') {{ humanizeDuration(set.to.diff(set.from)) }}\n a.btn--primary(href='#', v-on:click.prevent='openRange', v-if='!rangeVisible') Adjust range\n template(v-if='rangeVisible')\n div\n label(for='customFrom') From:\n input(v-model='customFrom')\n div\n label(for='customTo') To:\n input(v-model='customTo')\n\n em(v-else) No Data found \n a(href='#/data/importer') Lets add some\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./datasetpicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./datasetpicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./datasetpicker.vue?vue&type=template&id=689b8a00&lang=pug\"\nimport script from \"./datasetpicker.vue?vue&type=script&lang=js\"\nexport * from \"./datasetpicker.vue?vue&type=script&lang=js\"\nimport style0 from \"./datasetpicker.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n div\n dataset-picker.my2(v-on:dataset='updateDataset').contain\n .hr\n strat-picker.my2(v-on:stratConfig='updateStrat').contain\n .hr\n paper-trader(v-on:settings='updatePaperTrader').contain\n .hr\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./backtestConfigBuilder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./backtestConfigBuilder.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./backtestConfigBuilder.vue?vue&type=template&id=0b74d9a3&lang=pug\"\nimport script from \"./backtestConfigBuilder.vue?vue&type=script&lang=js\"\nexport * from \"./backtestConfigBuilder.vue?vue&type=script&lang=js\"\nimport style0 from \"./backtestConfigBuilder.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"hr contain\"}),_vm._m(0),_c('result-summary',{attrs:{\"report\":_vm.result.performanceReport}}),_c('div',{staticClass:\"hr contain\"}),_c('chart',{attrs:{\"data\":_vm.candles,\"height\":\"500\"}}),_c('div',{staticClass:\"hr contain\"}),_c('roundtripTable',{attrs:{\"roundtrips\":_vm.result.roundtrips}})],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain\"},[_c('h3',[_vm._v(\"Backtest result\")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain\"},[_c('div',{staticClass:\"grd-row summary\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_c('table',{staticClass:\"p1\"},[_c('tr',[_c('th',[_vm._v(\"start time\")]),_c('td',[_vm._v(_vm._s(_vm.report.startTime))])]),_c('tr',[_c('th',[_vm._v(\"end time\")]),_c('td',[_vm._v(_vm._s(_vm.report.endTime))])]),_c('tr',[_c('th',[_vm._v(\"timespan\")]),_c('td',[_vm._v(_vm._s(_vm.report.timespan))])]),_c('tr',[_c('th',[_vm._v(\"start price\")]),_c('td',[_vm._v(_vm._s(_vm.round(_vm.report.startPrice))+\" \"+_vm._s(_vm.report.currency))])]),_c('tr',[_c('th',[_vm._v(\"end price\")]),_c('td',[_vm._v(_vm._s(_vm.round(_vm.report.endPrice))+\" \"+_vm._s(_vm.report.currency))])]),_c('tr',[_c('th',[_vm._v(\"market\")]),_c('td',[_vm._v(_vm._s(_vm.round(_vm.report.market))+\"%\")])])])]),_c('paperTradeSummary',{attrs:{\"report\":_vm.report}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\ndiv.contain\n\n .grd-row.summary\n .grd-row-col-3-6\n table.p1\n tr\n th start time\n td {{ report.startTime }}\n tr\n th end time\n td {{ report.endTime }}\n tr\n th timespan\n td {{ report.timespan }}\n tr\n th start price\n td {{ round(report.startPrice) }} {{ report.currency }}\n tr\n th end price\n td {{ round(report.endPrice) }} {{ report.currency }}\n tr\n th market\n td {{ round(report.market) }}%\n\n paperTradeSummary(:report='report')\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./summary.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./summary.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./summary.vue?vue&type=template&id=5bfc891d&lang=pug\"\nimport script from \"./summary.vue?vue&type=script&lang=js\"\nexport * from \"./summary.vue?vue&type=script&lang=js\"\nimport style0 from \"./summary.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n div\n .hr.contain\n div.contain\n h3 Backtest result\n result-summary(:report='result.performanceReport')\n .hr.contain\n chart(:data='candles', height='500')\n .hr.contain\n roundtripTable(:roundtrips='result.roundtrips')\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./result.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./result.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./result.vue?vue&type=template&id=72b63acc&lang=pug\"\nimport script from \"./result.vue?vue&type=script&lang=js\"\nexport * from \"./result.vue?vue&type=script&lang=js\"\nimport style0 from \"./result.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n div\n h2.contain Backtest\n .hr\n config-builder(v-on:config='check')\n div(v-if='backtestable')\n .txt--center\n a.w100--s.my1.btn--primary(href='#', v-if='backtestState !== \"fetching\"', v-on:click.prevent='run') Backtest\n div(v-if='backtestState === \"fetching\"').scan-btn\n p Running backtest..\n spinner\n result(v-if='backtestResult && backtestState === \"fetched\"', :result='backtestResult')\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./backtester.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./backtester.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./backtester.vue?vue&type=template&id=da4202e8&lang=pug\"\nimport script from \"./backtester.vue?vue&type=script&lang=js\"\nexport * from \"./backtester.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// Redux/vuex inspired reducer, reduces an event into a gekko state.\n// NOTE: this is used by the backend as well as the frontend.\n\nconst skipInitialEvents = ['marketUpdate'];\nconst skipLatestEvents = ['marketStart', 'stratWarmupCompleted'];\nconst trackAllEvents = ['tradeCompleted', 'advice', 'roundtrip'];\n\nconst reduce = (state, event) => {\n const type = event.type;\n const payload = event.payload;\n\n state = {\n ...state,\n latestUpdate: new Date()\n }\n\n if(trackAllEvents.includes(type)) {\n if(!state.events[type]) {\n state = {\n ...state,\n events: {\n ...state.events,\n [type]: [ payload ]\n }\n }\n } else {\n state = {\n ...state,\n events: {\n ...state.events,\n [type]: [ ...state.events[type], payload ]\n }\n }\n }\n }\n\n if(!state.events.initial[type] && !skipInitialEvents.includes(type)) {\n state = {\n ...state,\n events: {\n ...state.events,\n initial: {\n ...state.events.initial,\n [type]: payload\n }\n }\n }\n }\n\n if(!skipLatestEvents.includes(type)) {\n state = {\n ...state,\n events: {\n ...state.events,\n latest: {\n ...state.events.latest,\n [type]: payload\n }\n }\n }\n }\n\n return state;\n}\n\n// export default reduce;\nmodule.exports = reduce;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain\"},[_c('div',{staticClass:\"text\",domProps:{\"innerHTML\":_vm._s(_vm.intro)}}),_c('div',{staticClass:\"hr\"}),_c('h2',[_vm._v(\"Available datasets\")]),(_vm.datasetScanstate === \"idle\")?_c('div',{staticClass:\"txt--center my2\"},[_c('a',{staticClass:\"w100--s btn--primary scan-btn\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.scan($event)}}},[_vm._v(\"Scan available data\")])]):_vm._e(),(_vm.datasetScanstate === \"scanning\")?_c('div',{staticClass:\"txt--center my2\"},[_c('spinner')],1):_vm._e(),(_vm.datasetScanstate === \"scanned\")?_c('div',{staticClass:\"my2\"},[(_vm.unscannableMakets.length)?_c('div',{staticClass:\"bg--orange p1 warning my1\"},[(!_vm.viewUnscannable)?_c('p',{staticClass:\"clickable\",on:{\"click\":function($event){$event.preventDefault();return _vm.toggleUnscannable($event)}}},[_vm._v(\"Some markets were unscannable, click here for details.\")]):_vm._e(),(_vm.viewUnscannable)?[_c('p',[_vm._v(\"Unable to find datasets in the following markets:\")]),_vm._l((_vm.unscannableMakets),function(market){return _c('div',{staticClass:\"mx2\"},[_vm._v(\"- \"+_vm._s(market.exchange)+\":\"+_vm._s(market.currency)+\":\"+_vm._s(market.asset))])})]:_vm._e()],2):_vm._e(),(_vm.datasets.length)?[_c('table',{staticClass:\"full data\"},[_vm._m(0),_c('tbody',_vm._l((_vm.datasets),function(set){return _c('tr',[_c('td',[_vm._v(_vm._s(set.exchange))]),_c('td',[_vm._v(_vm._s(set.currency))]),_c('td',[_vm._v(_vm._s(set.asset))]),_c('td',[_vm._v(_vm._s(_vm.fmt(set.from)))]),_c('td',[_vm._v(_vm._s(_vm.fmt(set.to)))]),_c('td',[_vm._v(_vm._s(_vm.humanizeDuration(set.to.diff(set.from))))])])}))])]:_vm._e(),(!_vm.datasets.length)?[_c('p',[_vm._v(\"It looks like you don't have any local data yet.\")])]:_vm._e()],2):_vm._e(),_c('div',{staticClass:\"my2\"},[_c('h2',[_vm._v(\"Import more data\")]),_c('p',{staticClass:\"text\"},[_vm._v(\"You can easily import more market data directly from exchanges using the importer.\")]),_c('router-link',{staticClass:\"btn--primary\",attrs:{\"to\":\"/data/importer\"}},[_vm._v(\"Go to the importer!\")])],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"exchange\")]),_c('th',[_vm._v(\"currency\")]),_c('th',[_vm._v(\"asset\")]),_c('th',[_vm._v(\"from\")]),_c('th',[_vm._v(\"to\")]),_c('th',[_vm._v(\"duration\")])])])}]\n\nexport { render, staticRenderFns }","\n .contain\n .text(v-html='intro')\n .hr\n h2 Available datasets\n .txt--center.my2(v-if='datasetScanstate === \"idle\"')\n a.w100--s.btn--primary.scan-btn(href='#', v-on:click.prevent='scan') Scan available data\n .txt--center.my2(v-if='datasetScanstate === \"scanning\"')\n spinner\n .my2(v-if='datasetScanstate === \"scanned\"')\n .bg--orange.p1.warning.my1(v-if='unscannableMakets.length')\n p.clickable(v-if='!viewUnscannable', v-on:click.prevent='toggleUnscannable') Some markets were unscannable, click here for details.\n template(v-if='viewUnscannable')\n p Unable to find datasets in the following markets:\n .mx2(v-for='market in unscannableMakets')\n | - {{ market.exchange }}:{{ market.currency }}:{{ market.asset }}\n template(v-if='datasets.length')\n table.full.data\n thead\n tr\n th exchange\n th currency\n th asset\n th from\n th to\n th duration\n tbody\n tr(v-for='set in datasets')\n td {{ set.exchange }}\n td {{ set.currency }}\n td {{ set.asset }}\n td {{ fmt(set.from) }}\n td {{ fmt(set.to) }}\n td {{ humanizeDuration(set.to.diff(set.from)) }}\n template(v-if='!datasets.length')\n p It looks like you don't have any local data yet.\n .my2\n h2 Import more data\n p.text You can easily import more market data directly from exchanges using the importer.\n router-link.btn--primary(to='/data/importer') Go to the importer!\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./data.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./data.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./data.vue?vue&type=template&id=6009d44c&lang=pug\"\nimport script from \"./data.vue?vue&type=script&lang=js\"\nexport * from \"./data.vue?vue&type=script&lang=js\"\nimport style0 from \"./data.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./roundtripTable.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./roundtripTable.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./list.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./list.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain my2\"},[(_vm.data && !_vm.data.done)?_c('div',[_c('h2',[_vm._v(\"Importing data..\")]),_c('div',{staticClass:\"grd\"},[_c('div',{staticClass:\"grd-row\"},[_vm._m(0),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.data.watch.exchange))])]),_c('div',{staticClass:\"grd-row\"},[_vm._m(1),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.data.watch.currency)+\"/\"+_vm._s(_vm.data.watch.asset))])])]),_c('div',{staticClass:\"grd\"},[_c('div',{staticClass:\"grd-row\"},[_vm._m(2),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.fmt(_vm.from)))])]),_c('div',{staticClass:\"grd-row\"},[_vm._m(3),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.fmt(_vm.to)))])]),(_vm.initialized)?_c('div',{staticClass:\"grd-row\"},[_vm._m(4),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.fmt(_vm.latest)))])]):_vm._e(),(_vm.initialized)?_c('div',{staticClass:\"grd-row\"},[_vm._m(5),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.fromEnd))])]):_vm._e()]),(!_vm.initialized)?_c('spinner'):_vm._e(),(_vm.initialized)?_c('div',{staticClass:\"contain\"},[_c('progressBar',{attrs:{\"progress\":_vm.progress}})],1):_vm._e(),_c('p',[_c('em',[_vm._v(\"(you don't have to wait until the import is done,you can already start \"),_c('router-link',{attrs:{\"to\":\"/backtest\"}},[_vm._v(\"backtesting\")]),_vm._v(\").\")],1)])],1):_vm._e(),(_vm.data && _vm.data.done)?_c('div',{staticClass:\"txt--center\"},[_c('h2',[_vm._v(\"Import done\")]),_c('p',[_vm._v(\" Go and \"),_c('router-link',{attrs:{\"to\":\"/backtest\"}},[_vm._v(\"backtest\")]),_vm._v(\" with your new data!\")],1)]):_vm._e(),(!_vm.data)?_c('div',{staticClass:\"txt--center\"},[_c('h2',[_vm._v(\"ERROR: Unknown import\")]),_c('p',[_c('I',[_vm._v(\"don't know this import..\")])],1)]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-row-col-2-6\"},[_c('strong',[_vm._v(\"Market:\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-row-col-2-6\"},[_c('strong',[_vm._v(\"Currency/Asset:\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-row-col-2-6\"},[_c('strong',[_vm._v(\"From:\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-row-col-2-6\"},[_c('strong',[_vm._v(\"To:\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-row-col-2-6\"},[_c('strong',[_vm._v(\"Imported data until:\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-row-col-2-6\"},[_c('strong',[_vm._v(\"Remaining:\")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.progress)?_c('div',{staticClass:\"progressbarWrapper\"},[_c('p',[_c('strong',[_vm._v(_vm._s(_vm.round(_vm.progress))+\"%\")])]),_c('div',{staticClass:\"progressbar\"},[_c('div',{style:({width: _vm.progress + \"%\"})})])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// http://stackoverflow.com/questions/7190898/progress-bar-with-html-and-css\n\n\n.progressbarWrapper(v-if='progress')\n p {{ round(progress) }}%\n .progressbar\n div(:style='{width: progress + \"%\"}')\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./progressBar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./progressBar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./progressBar.vue?vue&type=template&id=2b42ff94&lang=pug\"\nimport script from \"./progressBar.vue?vue&type=script&lang=js\"\nexport * from \"./progressBar.vue?vue&type=script&lang=js\"\nimport style0 from \"./progressBar.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n div.contain.my2\n div(v-if='data && !data.done')\n h2 Importing data..\n .grd\n .grd-row\n .grd-row-col-2-6 Market:\n .grd-row-col-4-6 {{ data.watch.exchange }}\n .grd-row\n .grd-row-col-2-6 Currency/Asset:\n .grd-row-col-4-6 {{ data.watch.currency }}/{{ data.watch.asset }}\n\n .grd\n .grd-row\n .grd-row-col-2-6 From:\n .grd-row-col-4-6 {{ fmt(from) }}\n .grd-row\n .grd-row-col-2-6 To:\n .grd-row-col-4-6 {{ fmt(to) }}\n .grd-row(v-if='initialized')\n .grd-row-col-2-6 Imported data until:\n .grd-row-col-4-6 {{ fmt(latest) }}\n .grd-row(v-if='initialized')\n .grd-row-col-2-6 Remaining:\n .grd-row-col-4-6 {{ fromEnd }}\n spinner(v-if='!initialized')\n .contain(v-if='initialized')\n progressBar(:progress='progress')\n p \n em (you don't have to wait until the import is done,\n | you can already start \n router-link(to='/backtest') backtesting\n | ).\n div(v-if='data && data.done').txt--center\n h2 Import done\n p \n | Go and \n router-link(to='/backtest') backtest\n | with your new data!\n div(v-if='!data').txt--center\n h2 ERROR: Unknown import\n p \n I don't know this import..\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./single.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./single.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./single.vue?vue&type=template&id=b930fa5e&lang=pug\"\nimport script from \"./single.vue?vue&type=script&lang=js\"\nexport * from \"./single.vue?vue&type=script&lang=js\"\nimport style0 from \"./single.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { get } from '../../../tools/ajax'\nimport store from '../../'\nimport { bus } from '../../../components/global/ws'\n\nconst init = () => {\n get('imports', (err, resp) => {\n store.commit('syncImports', resp);\n });\n}\n\nconst sync = () => {\n bus.$on('import_update', data => {\n store.commit('updateImport', data);\n });\n}\n\nexport default function() {\n init();\n sync();\n}","import { get } from '../../../tools/ajax'\nimport store from '../../'\nimport { bus } from '../../../components/global/ws'\nimport _ from 'lodash'\n\nconst init = () => {\n get('gekkos', (err, resp) => {\n const gekkos = resp;\n store.commit('syncGekkos', gekkos);\n });\n}\n\nconst sync = () => {\n bus.$on('gekko_new', data => store.commit('addGekko', data.state));\n bus.$on('gekko_event', data => store.commit('updateGekko', data));\n bus.$on('gekko_archived', data => store.commit('archiveGekko', data.id));\n bus.$on('gekko_error', data => store.commit('errorGekko', data));\n bus.$on('gekko_deleted', data => store.commit('deleteGekko', data.id));\n\n // unused:\n // bus.$on('gekko_stopped', data => store.commit('x', data.id));\n // bus.$on('gekko_deleted', data => store.commit('x', data.id));\n}\n\nexport default function() {\n init();\n sync();\n}","import store from '../../'\nimport { bus } from '../../../components/global/ws'\n\nconst init = () => {}\n\nconst sync = () => {\n bus.$on('WS_STATUS_CHANGE', ws => {\n return store.commit('setGlobalWarning', {key: 'connected', value: ws.connected});\n });\n}\n\nexport default function() {\n init();\n sync();\n}","import { get } from '../../../tools/ajax'\nimport store from '../../'\nimport { bus } from '../../../components/global/ws'\n\nconst transformMarkets = backendData => {\n if(!backendData) {\n return {};\n }\n\n var exchangesRaw = backendData;\n var exchangesTemp = {};\n\n exchangesRaw.forEach(e => {\n exchangesTemp[e.slug] = exchangesTemp[e.slug] || {markets: {}};\n\n e.markets.forEach( pair => {\n let [ currency, asset ] = pair['pair'];\n exchangesTemp[e.slug].markets[currency] = exchangesTemp[e.slug].markets[currency] || [];\n exchangesTemp[e.slug].markets[currency].push( asset );\n });\n\n if (\"exchangeMaxHistoryAge\" in e) {\n exchangesTemp[e.slug].exchangeMaxHistoryAge = e.exchangeMaxHistoryAge;\n }\n\n exchangesTemp[e.slug].importable = e.providesFullHistory ? true : false;\n exchangesTemp[e.slug].tradable = e.tradable ? true : false;\n exchangesTemp[e.slug].requires = e.requires;\n });\n\n return exchangesTemp;\n}\n\n\nconst init = () => {\n get('apiKeys', (err, resp) => {\n store.commit('syncApiKeys', resp);\n });\n\n get('exchanges', (err, resp) => {\n store.commit('syncExchanges', transformMarkets(resp));\n })\n}\n\nconst sync = () => {\n bus.$on('apiKeys', data => {\n store.commit('syncApiKeys', data.exchanges);\n });\n}\n\nexport default function() {\n init();\n sync();\n}\n","import Vue from 'vue'\nimport Vuex from 'vuex'\n\nimport syncImports from './modules/imports/sync'\nimport syncGekkos from './modules/gekkos/sync'\nimport syncNotifications from './modules/notifications/sync'\nimport syncConfig from './modules/config/sync'\n\nexport default function() {\n syncImports();\n syncGekkos();\n syncNotifications();\n syncConfig();\n}","import _ from 'lodash'\nimport Vue from 'vue'\n\nimport { wsPath } from '../../tools/api'\nimport initializeState from '../../store/init'\n\nvar socket = null;\n\nexport const bus = new Vue();\n\nbus.$on('gekko_update', data => console.log(data))\n\nbus.$on('import_update', data => console.log(data))\nbus.$on('import_error', data => {\n alert('IMPORT ERROR: ' + data.error);\n});\n\nconst info = {\n connected: false\n}\n\nexport const connect = () => {\n socket = new ReconnectingWebSocket(wsPath, null, { maxReconnectInterval: 4000 });\n\n setTimeout(() => {\n // in case we cannot connect\n if(!info.connected) {\n initializeState();\n bus.$emit('WS_STATUS_CHANGE', info);\n }\n }, 500);\n\n socket.onopen = () => {\n if(info.connected)\n return;\n\n info.connected = true;\n bus.$emit('WS_STATUS_CHANGE', info);\n initializeState();\n }\n socket.onclose = () => {\n if(!info.connected)\n return;\n\n info.connected = false;\n bus.$emit('WS_STATUS_CHANGE', info);\n }\n socket.onerror = () => {\n if(!info.connected)\n return;\n\n info.connected = false;\n bus.$emit('WS_STATUS_CHANGE', info);\n }\n socket.onmessage = function(message) {\n const payload = JSON.parse(message.data);\n // console.log('ws message:', payload);\n bus.$emit(payload.type, payload);\n };\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain py2\"},[_c('h3',[_vm._v(\"Market watchers\")]),(!_vm.watchers.length)?_c('div',{staticClass:\"text\"},[_c('p',[_vm._v(\"You don't have any market watchers.\")])]):_vm._e(),(_vm.watchers.length)?_c('table',{staticClass:\"full clickable\"},[_vm._m(0),_c('tbody',_vm._l((_vm.watchers),function(gekko){return _c('tr',{staticClass:\"clickable\",on:{\"click\":function($event){_vm.$router.push({path: (\"/live-gekkos/\" + (gekko.id))})}}},[_c('td',[_vm._v(_vm._s(gekko.config.watch.exchange))]),_c('td',[_vm._v(_vm._s(gekko.config.watch.currency))]),_c('td',[_vm._v(_vm._s(gekko.config.watch.asset))]),_c('td',[_vm._v(_vm._s(_vm.status(gekko)))]),_c('td',[(gekko.events.initial.candle)?[_vm._v(_vm._s(_vm.fmt(gekko.events.initial.candle.start)))]:_vm._e()],2),_c('td',[(gekko.events.latest.candle)?[_vm._v(_vm._s(_vm.fmt(gekko.events.latest.candle.start)))]:_vm._e()],2),_c('td',[(gekko.events.initial.candle && gekko.events.latest.candle)?[_vm._v(_vm._s(_vm.timespan(gekko.events.latest.candle.start, gekko.events.initial.candle.start)))]:_vm._e()],2)])}))]):_vm._e(),_c('h3',[_vm._v(\"Strat runners\")]),(!_vm.stratrunners.length)?_c('div',{staticClass:\"text\"},[_c('p',[_vm._v(\"You don't have any stratrunners.\")])]):_vm._e(),(_vm.stratrunners.length)?_c('table',{staticClass:\"full\"},[_vm._m(1),_c('tbody',_vm._l((_vm.stratrunners),function(gekko){return _c('tr',{staticClass:\"clickable\",on:{\"click\":function($event){_vm.$router.push({path: (\"/live-gekkos/\" + (gekko.id))})}}},[_c('td',[_vm._v(_vm._s(gekko.config.watch.exchange))]),_c('td',[_vm._v(_vm._s(gekko.config.watch.currency))]),_c('td',[_vm._v(_vm._s(gekko.config.watch.asset))]),_c('td',[_vm._v(_vm._s(_vm.status(gekko)))]),_c('td',[(gekko.events.initial.candle && gekko.events.latest.candle)?[_vm._v(_vm._s(_vm.timespan(gekko.events.latest.candle.start, gekko.events.initial.candle.start)))]:_vm._e()],2),_c('td',[_vm._v(_vm._s(gekko.config.tradingAdvisor.method))]),_c('td',[(!_vm.report(gekko))?[_vm._v(\"0\")]:_vm._e(),(_vm.report(gekko))?[_vm._v(_vm._s(_vm.round(_vm.report(gekko).profit))+\" \"+_vm._s(_vm.report(gekko).currency))]:_vm._e()],2),_c('td',[_vm._v(_vm._s(gekko.logType))]),_c('td',[(!gekko.events.tradeCompleted)?[_vm._v(\"0\")]:_vm._e(),(gekko.events.tradeCompleted)?[_vm._v(_vm._s(gekko.events.tradeCompleted.length))]:_vm._e()],2)])}))]):_vm._e(),_c('div',{staticClass:\"hr\"}),_c('h2',[_vm._v(\"Start a new live Gekko\")]),_c('router-link',{staticClass:\"btn--primary\",attrs:{\"to\":\"/live-gekkos/new\"}},[_vm._v(\"Start a new live Gekko!\")])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"exchange\")]),_c('th',[_vm._v(\"currency\")]),_c('th',[_vm._v(\"asset\")]),_c('th',[_vm._v(\"status\")]),_c('th',[_vm._v(\"started at\")]),_c('th',[_vm._v(\"last update\")]),_c('th',[_vm._v(\"duration\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"exchange\")]),_c('th',[_vm._v(\"currency\")]),_c('th',[_vm._v(\"asset\")]),_c('th',[_vm._v(\"status\")]),_c('th',[_vm._v(\"duration\")]),_c('th',[_vm._v(\"strategy\")]),_c('th',[_vm._v(\"PnL\")]),_c('th',[_vm._v(\"type\")]),_c('th',[_vm._v(\"trades\")])])])}]\n\nexport { render, staticRenderFns }","\n .contain.py2\n h3 Market watchers\n .text(v-if='!watchers.length')\n p You don't have any market watchers.\n table.full.clickable(v-if='watchers.length')\n thead\n tr\n th exchange\n th currency\n th asset\n th status\n th started at\n th last update\n th duration\n tbody\n tr.clickable(v-for='gekko in watchers', v-on:click='$router.push({path: `/live-gekkos/${gekko.id}`})')\n td {{ gekko.config.watch.exchange }}\n td {{ gekko.config.watch.currency }}\n td {{ gekko.config.watch.asset }}\n td {{ status(gekko) }}\n td\n template(v-if='gekko.events.initial.candle') {{ fmt(gekko.events.initial.candle.start) }}\n td\n template(v-if='gekko.events.latest.candle') {{ fmt(gekko.events.latest.candle.start) }}\n td\n template(v-if='gekko.events.initial.candle && gekko.events.latest.candle') {{ timespan(gekko.events.latest.candle.start, gekko.events.initial.candle.start) }}\n h3 Strat runners\n .text(v-if='!stratrunners.length')\n p You don't have any stratrunners.\n table.full(v-if='stratrunners.length')\n thead\n tr\n th exchange\n th currency\n th asset\n th status\n th duration\n th strategy\n th PnL\n th type\n th trades\n tbody\n tr.clickable(v-for='gekko in stratrunners', v-on:click='$router.push({path: `/live-gekkos/${gekko.id}`})')\n td {{ gekko.config.watch.exchange }}\n td {{ gekko.config.watch.currency }}\n td {{ gekko.config.watch.asset }}\n td {{ status(gekko) }}\n td\n template(v-if='gekko.events.initial.candle && gekko.events.latest.candle') {{ timespan(gekko.events.latest.candle.start, gekko.events.initial.candle.start) }}\n td {{ gekko.config.tradingAdvisor.method }}\n td\n template(v-if='!report(gekko)') 0\n template(v-if='report(gekko)') {{ round(report(gekko).profit) }} {{ report(gekko).currency }}\n td {{ gekko.logType }}\n td\n template(v-if='!gekko.events.tradeCompleted') 0\n template(v-if='gekko.events.tradeCompleted') {{ gekko.events.tradeCompleted.length }}\n .hr\n h2 Start a new live Gekko\n router-link.btn--primary(to='/live-gekkos/new') Start a new live Gekko!\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./list.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./list.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./list.vue?vue&type=template&id=55dd2514&lang=pug\"\nimport script from \"./list.vue?vue&type=script&lang=js\"\nexport * from \"./list.vue?vue&type=script&lang=js\"\nimport style0 from \"./list.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain my2\"},[_c('div',{staticClass:\"text\",domProps:{\"innerHTML\":_vm._s(_vm.intro)}}),_c('div',{staticClass:\"hr\"}),_c('h3',[_vm._v(\"Currently running imports\")]),(_vm.imports.length === 0)?_c('p',[_vm._v(\"You currently don't have any imports running.\")]):_vm._e(),(_vm.imports.length)?_c('ul',_vm._l((_vm.imports),function(_import){return _c('li',[_c('router-link',{attrs:{\"to\":\"/data/importer/import/\" + _import.id}},[_vm._v(_vm._s(_import.watch.exchange)+\":\"+_vm._s(_import.watch.currency)+\"/\"+_vm._s(_import.watch.asset))])],1)})):_vm._e(),_c('div',{staticClass:\"hr\"}),_c('h3',[_vm._v(\"Start a new import\")]),_c('import-config-builder',{on:{\"config\":_vm.updateConfig}}),_c('div',{staticClass:\"hr\"}),_c('div',{staticClass:\"txt--center\"},[_c('a',{staticClass:\"w100--s my1 btn--primary\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.run($event)}}},[_vm._v(\"Import\")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd contain\"},[_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6 mx1\"},[_c('h3',[_vm._v(\"Market\")]),_c('market-picker',{attrs:{\"only-importable\":\"true\"},on:{\"market\":_vm.updateMarketConfig}})],1),_c('div',{staticClass:\"grd-row-col-3-6 mx1\"},[_c('range-creator',{on:{\"range\":_vm.updateRange}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n.grd.contain\n .grd-row\n .grd-row-col-3-6.mx1\n h3 Market\n market-picker(v-on:market='updateMarketConfig', only-importable='true')\n .grd-row-col-3-6.mx1\n range-creator(v-on:range='updateRange')\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./importConfigBuilder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./importConfigBuilder.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./importConfigBuilder.vue?vue&type=template&id=a8c578c6&lang=pug\"\nimport script from \"./importConfigBuilder.vue?vue&type=script&lang=js\"\nexport * from \"./importConfigBuilder.vue?vue&type=script&lang=js\"\nimport style0 from \"./importConfigBuilder.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n div.contain.my2\n div.text(v-html='intro')\n .hr\n h3 Currently running imports\n p(v-if='imports.length === 0') You currently don't have any imports running.\n ul(v-if='imports.length')\n li(v-for='_import in imports')\n router-link(:to='\"/data/importer/import/\" + _import.id') {{ _import.watch.exchange }}:{{ _import.watch.currency }}/{{ _import.watch.asset }}\n\n .hr\n h3 Start a new import\n import-config-builder(v-on:config='updateConfig')\n .hr\n .txt--center\n a.w100--s.my1.btn--primary(href='#', v-on:click.prevent='run') Import\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./importer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./importer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./importer.vue?vue&type=template&id=3e819299&lang=pug\"\nimport script from \"./importer.vue?vue&type=script&lang=js\"\nexport * from \"./importer.vue?vue&type=script&lang=js\"\nimport style0 from \"./importer.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"contain grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\",domProps:{\"innerHTML\":_vm._s(_vm.left)}}),_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-row-col-3-6 txt--center\"},[_c('img',{attrs:{\"src\":\"/static/gekko.jpg\"}}),_c('p',[_c('em',[_vm._v(\"The most valuable commodity I know of is information.\")])])])}]\n\nexport { render, staticRenderFns }","\n section.contain.grd-row\n .grd-row-col-3-6(v-html='left')\n .grd-row-col-3-6.txt--center\n img(src='/static/gekko.jpg')\n p\n em The most valuable commodity I know of is information.\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./home.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./home.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./home.vue?vue&type=template&id=257724d2&lang=pug\"\nimport script from \"./home.vue?vue&type=script&lang=js\"\nexport * from \"./home.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"my2\"},[(!_vm.data)?_c('div',{staticClass:\"contain\"},[_c('h1',[_vm._v(\"Unknown Gekko instance\")]),_c('p',[_vm._v(\"Gekko doesn't know what gekko this is...\")])]):_vm._e(),(_vm.data)?_c('div',[_c('h2',{staticClass:\"contain\"},[_vm._v(\"Gekko \"+_vm._s(_vm.type))]),(_vm.isArchived)?_c('div',{staticClass:\"contain brdr--mid-gray p1 bg--orange\"},[_vm._v(\"This is an archived Gekko, it is currently not running anymore.\")]):_vm._e(),(_vm.data.errorMessage)?_c('div',{staticClass:\"contain brdr--mid-gray p1 bg--orange\"},[_vm._v(\"This is Gekko crashed with the following error: \"+_vm._s(_vm.data.errorMessage))]):_vm._e(),_c('div',{staticClass:\"grd contain\"},[_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_c('h3',[_vm._v(\"Market\")]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Exchange\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.config.watch.exchange))])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Currency\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.config.watch.currency))])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Asset\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.config.watch.asset))])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Type\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.type))])])]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_c('h3',[_vm._v(\"Runtime\")]),(_vm.isLoading)?_c('spinner'):_vm._e(),(!_vm.isLoading)?[(_vm.initialEvents.candle)?_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-2-6\"},[_vm._v(\"Watching since\")]),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.fmt(_vm.initialEvents.candle.start)))])]):_vm._e(),(_vm.latestEvents.candle)?_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-2-6\"},[_vm._v(\"Received data until\")]),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.fmt(_vm.latestEvents.candle.start)))])]):_vm._e(),(_vm.latestEvents.candle)?_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-2-6\"},[_vm._v(\"Data spanning\")]),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.humanizeDuration(_vm.moment(_vm.latestEvents.candle.start).diff(_vm.moment(_vm.initialEvents.candle.start)))))])]):_vm._e(),(_vm.isStratrunner)?[_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-2-6\"},[_vm._v(\"Amount of trades\")]),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.trades.length))])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-2-6\"},[_vm._v(\"Candle size\")]),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.config.tradingAdvisor.candleSize))])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-2-6\"},[_vm._v(\"History size\")]),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.config.tradingAdvisor.historySize))])])]:_vm._e()]:_vm._e()],2)]),(_vm.warmupRemaining)?_c('div',{staticClass:\"contain brdr--mid-gray p1 bg--orange\"},[_vm._v(\"This stratrunner is still warming up for the next \"),_c('i',[_vm._v(_vm._s(_vm.warmupRemaining.replace(',', ' and ')))]),_vm._v(\", it will not trade until it is warmed up.\")]):_vm._e(),(_vm.isStratrunner)?_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_c('h3',[_vm._v(\"Strategy\")]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Name\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_c('strong',[_vm._v(_vm._s(_vm.stratName))])])]),_vm._v(\"Parameters\"),_c('pre',[_vm._v(_vm._s(_vm.stratParams))])]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_c('h3',[_vm._v(\"Profit report\")]),(!_vm.report)?[_c('p',[(_vm.isArchived)?_c('em',[_vm._v(\"This Gekko never executed a trade..\")]):_vm._e(),(!_vm.isArchived)?_c('em',[_vm._v(\"Waiting for at least one trade..\")]):_vm._e()])]:_vm._e(),(_vm.report)?[_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Start balance\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.round(_vm.report.startBalance)))])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Current balance\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.round(_vm.report.balance)))])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Market\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.round(_vm.report.market / 100 * _vm.report.startPrice))+\" \"+_vm._s(_vm.config.watch.currency)+\" (\"+_vm._s(_vm.round(_vm.report.market))+\" %)\")])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Profit\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.round(_vm.report.profit))+\" \"+_vm._s(_vm.config.watch.currency)+\" (\"+_vm._s(_vm.round(_vm.report.relativeProfit))+\" %)\")])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Alpha\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.round(_vm.report.alpha))+\" \"+_vm._s(_vm.config.watch.currency))])])]:_vm._e()],2)]):_vm._e(),(_vm.isStratrunner && !_vm.watcher && !_vm.isArchived)?_c('p',[_vm._v(\"WARNING: stale gekko, not attached to a watcher, please report \"),_c('a',{attrs:{\"href\":\"https://github.com/askmike/gekko/issues\"}},[_vm._v(\"here\")]),_vm._v(\".\")]):_vm._e(),(!_vm.isArchived)?_c('p',[_c('a',{staticClass:\"w100--s my1 btn--red\",on:{\"click\":_vm.stopGekko}},[_vm._v(\"Stop Gekko\")])]):_vm._e(),(_vm.isArchived)?_c('p',[_c('a',{staticClass:\"w100--s my1 btn--red\",on:{\"click\":_vm.deleteGekko}},[_vm._v(\"Delete Gekko\")])]):_vm._e(),(_vm.isStratrunner && _vm.watcher && !_vm.isArchived)?_c('p',[_c('em',[_vm._v(\"This gekko gets market data from \"),_c('router-link',{attrs:{\"to\":\"/live-gekkos/\" + _vm.watcher.id}},[_vm._v(\"this market watcher\")])],1),_vm._v(\".\")]):_vm._e()]),(!_vm.isLoading)?[_c('h3',{staticClass:\"contain\"},[_vm._v(\"Market graph\")]),(_vm.candleFetch === \"fetching\")?_c('spinner'):_vm._e(),(_vm.candleFetch === \"fetched\")?[_c('chart',{attrs:{\"data\":_vm.chartData,\"height\":300}})]:_vm._e(),(_vm.isStratrunner)?_c('roundtrips',{attrs:{\"roundtrips\":_vm.roundtrips}}):_vm._e()]:_vm._e()],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n div.my2\n .contain(v-if='!data')\n h1 Unknown Gekko instance\n p Gekko doesn't know what gekko this is...\n div(v-if='data')\n h2.contain Gekko {{ type }}\n div(v-if='isArchived', class='contain brdr--mid-gray p1 bg--orange')\n | This is an archived Gekko, it is currently not running anymore.\n div(v-if='data.errorMessage', class='contain brdr--mid-gray p1 bg--orange')\n | This is Gekko crashed with the following error: {{ data.errorMessage }}\n .grd.contain\n .grd-row\n .grd-row-col-3-6\n h3 Market\n .grd-row\n .grd-row-col-3-6 Exchange\n .grd-row-col-3-6 {{ config.watch.exchange }}\n .grd-row\n .grd-row-col-3-6 Currency\n .grd-row-col-3-6 {{ config.watch.currency }}\n .grd-row\n .grd-row-col-3-6 Asset\n .grd-row-col-3-6 {{ config.watch.asset }}\n .grd-row\n .grd-row-col-3-6 Type\n .grd-row-col-3-6 {{ type }}\n .grd-row-col-3-6\n h3 Runtime\n spinner(v-if='isLoading')\n template(v-if='!isLoading')\n .grd-row(v-if='initialEvents.candle')\n .grd-row-col-2-6 Watching since\n .grd-row-col-4-6 {{ fmt(initialEvents.candle.start) }}\n .grd-row(v-if='latestEvents.candle')\n .grd-row-col-2-6 Received data until\n .grd-row-col-4-6 {{ fmt(latestEvents.candle.start) }}\n .grd-row(v-if='latestEvents.candle')\n .grd-row-col-2-6 Data spanning\n .grd-row-col-4-6 {{ humanizeDuration(moment(latestEvents.candle.start).diff(moment(initialEvents.candle.start))) }}\n template(v-if='isStratrunner')\n .grd-row\n .grd-row-col-2-6 Amount of trades\n .grd-row-col-4-6 {{ trades.length }}\n .grd-row\n .grd-row-col-2-6 Candle size\n .grd-row-col-4-6 {{ config.tradingAdvisor.candleSize }}\n .grd-row\n .grd-row-col-2-6 History size\n .grd-row-col-4-6 {{ config.tradingAdvisor.historySize }}\n div(v-if='warmupRemaining', class='contain brdr--mid-gray p1 bg--orange')\n | This stratrunner is still warming up for the next \n i {{ warmupRemaining.replace(',', ' and ') }}\n | , it will not trade until it is warmed up.\n .grd-row(v-if='isStratrunner')\n .grd-row-col-3-6\n h3 Strategy\n .grd-row\n .grd-row-col-3-6 Name\n .grd-row-col-3-6\n strong {{ stratName }}\n | Parameters\n pre {{ stratParams }}\n .grd-row-col-3-6\n h3 Profit report\n template(v-if='!report')\n p\n em(v-if='isArchived') This Gekko never executed a trade..\n em(v-if='!isArchived') Waiting for at least one trade..\n template(v-if='report')\n .grd-row\n .grd-row-col-3-6 Start balance\n .grd-row-col-3-6 {{ round(report.startBalance) }}\n .grd-row\n .grd-row-col-3-6 Current balance\n .grd-row-col-3-6 {{ round(report.balance) }}\n .grd-row\n .grd-row-col-3-6 Market\n .grd-row-col-3-6 {{round(report.market / 100 * report.startPrice)}} {{ config.watch.currency }} ({{ round(report.market) }} %)\n .grd-row\n .grd-row-col-3-6 Profit\n .grd-row-col-3-6 {{ round(report.profit) }} {{ config.watch.currency }} ({{ round(report.relativeProfit) }} %)\n .grd-row\n .grd-row-col-3-6 Alpha\n .grd-row-col-3-6 {{ round(report.alpha) }} {{ config.watch.currency }}\n p(v-if='isStratrunner && !watcher && !isArchived') WARNING: stale gekko, not attached to a watcher, please report \n a(href='https://github.com/askmike/gekko/issues') here\n | .\n p(v-if='!isArchived')\n a(v-on:click='stopGekko', class='w100--s my1 btn--red') Stop Gekko\n p(v-if='isArchived')\n a(v-on:click='deleteGekko', class='w100--s my1 btn--red') Delete Gekko\n p(v-if='isStratrunner && watcher && !isArchived')\n em This gekko gets market data from \n router-link(:to='\"/live-gekkos/\" + watcher.id') this market watcher\n | .\n template(v-if='!isLoading')\n h3.contain Market graph\n spinner(v-if='candleFetch === \"fetching\"')\n template(v-if='candleFetch === \"fetched\"')\n chart(:data='chartData', :height='300')\n roundtrips(v-if='isStratrunner', :roundtrips='roundtrips')\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./singleGekko.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./singleGekko.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./singleGekko.vue?vue&type=template&id=35f5b818&lang=pug\"\nimport script from \"./singleGekko.vue?vue&type=script&lang=js\"\nexport * from \"./singleGekko.vue?vue&type=script&lang=js\"\nimport style0 from \"./singleGekko.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./datasetpicker.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./datasetpicker.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./blockSpinner.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./blockSpinner.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./single.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./single.vue?vue&type=style&index=0&lang=css\"","// global window.CONFIG\n\nconst config = window.CONFIG.ui;\nconst endpoint = `${config.host}${config.port === 80 ? '' : `:${config.port}`}${config.path}`;\n\nlet basePath, restPath, wsPath;\n\n// rest API path\nif(config.ssl) {\n basePath = `https://${endpoint}`;\n} else {\n basePath = `http://${endpoint}`;\n}\n\nrestPath = basePath + 'api/';\n\n// ws API path\nif(config.ssl) {\n wsPath = `wss://${endpoint}api`;\n} else {\n wsPath = `ws://${endpoint}api`;\n}\n\nexport {\n wsPath,\n restPath,\n basePath\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd\"},[_c('div',{staticClass:\"px1\"},[_c('h3',[_vm._v(\"Paper trader\")]),(_vm.toggle === \"closed\")?_c('a',{staticClass:\"btn--primary\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.switchToggle($event)}}},[_vm._v(\"Change paper trader settings\")]):_vm._e(),(_vm.toggle === \"open\")?[_c('p',[_vm._v(\"Settings:\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.rawPaperTraderParams),expression:\"rawPaperTraderParams\"}],staticClass:\"params\",domProps:{\"value\":(_vm.rawPaperTraderParams)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.rawPaperTraderParams=$event.target.value}}}),(_vm.rawPaperTraderParamsError)?_c('p',{staticClass:\"bg--red p1\"},[_vm._v(_vm._s(_vm.rawPaperTraderParamsError.message))]):_vm._e()]:_vm._e()],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n.grd\n .px1\n h3 Paper trader\n a.btn--primary(href='#', v-on:click.prevent='switchToggle', v-if='toggle === \"closed\"') Change paper trader settings\n template(v-if='toggle === \"open\"')\n p Settings:\n textarea.params(v-model='rawPaperTraderParams')\n p.bg--red.p1(v-if='rawPaperTraderParamsError') {{ rawPaperTraderParamsError.message }}\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./papertrader.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./papertrader.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./papertrader.vue?vue&type=template&id=6a733e04&lang=pug\"\nimport script from \"./papertrader.vue?vue&type=script&lang=js\"\nexport * from \"./papertrader.vue?vue&type=script&lang=js\"\nimport style0 from \"./papertrader.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { post } from '../../../tools/ajax'\n\nvar mixin = {\n data: () => {\n return {\n datasets: [],\n datasetScanstate: 'idle',\n unscannableMakets: []\n } \n },\n methods: {\n scan: function() {\n this.datasetScanstate = 'scanning';\n\n post('scansets', {}, (error, response) => {\n this.datasetScanstate = 'scanned';\n\n this.unscannableMakets = response.errors;\n\n let sets = [];\n\n response.datasets.forEach(market => {\n market.ranges.forEach((range, i) => {\n sets.push({\n exchange: market.exchange,\n currency: market.currency,\n asset: market.asset,\n from: moment.unix(range.from).utc(),\n to: moment.unix(range.to).utc(),\n id: market.exchange + market.asset + market.currency + i\n });\n });\n });\n\n // for now, filter out sets smaller than 3 hours..\n sets = sets.filter(set => {\n if(set.to.diff(set.from, 'hours') > 2)\n return true;\n });\n\n sets = sets.sort((a, b) => {\n let adiff = a.to.diff(a.from);\n let bdiff = b.to.diff(b.from);\n\n if(adiff < bdiff)\n return -1;\n\n if(adiff > bdiff)\n return 1;\n\n return 0;\n }).reverse();\n\n this.datasets = sets;\n })\n }\n }\n}\n\nexport default mixin;","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stratpicker.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stratpicker.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./paperTradeSummary.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./paperTradeSummary.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain roundtrips\"},[_c('h2',[_vm._v(\"Roundtrips\")]),(_vm.roundtrips.length)?_c('table',[_c('thead',[_vm._m(0),_vm._l((_vm.roundtrips),function(rt){return _c('tr',[_c('td',[_vm._v(_vm._s(_vm.fmt(rt.entryAt)))]),_c('td',[_vm._v(_vm._s(_vm.fmt(rt.exitAt)))]),_c('td',[_vm._v(_vm._s(_vm.diff(rt.duration)))]),_c('td',[_vm._v(_vm._s(_vm.round(rt.entryBalance)))]),_c('td',[_vm._v(_vm._s(_vm.round(rt.exitBalance)))]),(Math.sign(rt.pnl)===-1)?[_c('td',{staticClass:\"loss\"},[_vm._v(_vm._s(Math.sign(rt.pnl)*rt.pnl.toFixed(2)))]),_c('td',{staticClass:\"loss\"},[_vm._v(_vm._s(rt.profit.toFixed(2))+\"%\")])]:[_c('td',{staticClass:\"profit\"},[_vm._v(_vm._s(rt.pnl.toFixed(2)))]),_c('td',{staticClass:\"profit\"},[_vm._v(_vm._s(rt.profit.toFixed(2))+\"%\")])]],2)})],2)]):_vm._e(),(!_vm.roundtrips.length)?_c('div',[_c('p',[_vm._v(\"Not enough data to display\")])]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('th',[_vm._v(\"Entry at (UTC)\")]),_c('th',[_vm._v(\"Exit at (UTC)\")]),_c('th',[_vm._v(\"Exposure\")]),_c('th',[_vm._v(\"Entry balance\")]),_c('th',[_vm._v(\"Exit balance\")]),_c('th',[_vm._v(\"P&L\")]),_c('th',[_vm._v(\"Profit\")])])}]\n\nexport { render, staticRenderFns }","\n .contain.roundtrips\n h2 Roundtrips\n table(v-if='roundtrips.length')\n thead\n tr\n th Entry at (UTC)\n th Exit at (UTC)\n th Exposure\n th Entry balance\n th Exit balance\n th P&L\n th Profit\n tr(v-for='rt in roundtrips')\n td {{ fmt(rt.entryAt) }}\n td {{ fmt(rt.exitAt) }}\n td {{ diff(rt.duration) }}\n td {{ round(rt.entryBalance) }}\n td {{ round(rt.exitBalance) }}\n template(v-if=\"Math.sign(rt.pnl)===-1\")\n td.loss {{ Math.sign(rt.pnl)*rt.pnl.toFixed(2) }}\n td.loss {{ rt.profit.toFixed(2) }}%\n template(v-else)\n td.profit {{ rt.pnl.toFixed(2) }}\n td.profit {{ rt.profit.toFixed(2) }}%\n div(v-if='!roundtrips.length')\n p Not enough data to display\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./roundtripTable.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./roundtripTable.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./roundtripTable.vue?vue&type=template&id=0448541b&lang=pug\"\nimport script from \"./roundtripTable.vue?vue&type=script&lang=js\"\nexport * from \"./roundtripTable.vue?vue&type=script&lang=js\"\nimport style0 from \"./roundtripTable.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./result.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./result.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./typepicker.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./typepicker.vue?vue&type=style&index=0&lang=css\"","import superagent from 'superagent'\nimport noCache from 'superagent-no-cache'\nimport { restPath } from './api.js'\n\nconst processResponse = next => (err, res) => {\n if(err)\n return next(err);\n\n if(!res.text)\n return next('no data');\n\n let data = JSON.parse(res.text);\n\n next(false, data);\n}\n\nexport const post = (to, data, next) => {\n superagent\n .post(restPath + to)\n .use(noCache)\n .send(data)\n .end(processResponse(next));\n}\n\nexport const get = (to, next) => {\n superagent\n .get(restPath + to)\n .use(noCache)\n .end(processResponse(next));\n}\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./importer.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./importer.vue?vue&type=style&index=0&lang=css\""],"sourceRoot":""}
\ No newline at end of file
diff --git a/web/vue/dist/js/app.0c714f34.js b/web/vue/dist/js/app.ed182ffa.js
similarity index 98%
rename from web/vue/dist/js/app.0c714f34.js
rename to web/vue/dist/js/app.ed182ffa.js
index 8a82459d0..17cccc14a 100644
--- a/web/vue/dist/js/app.0c714f34.js
+++ b/web/vue/dist/js/app.ed182ffa.js
@@ -1,2 +1,2 @@
-(function(t){function e(e){for(var n,s,o=e[0],c=e[1],u=e[2],d=0,f=[];d0?"profit":"loss"}}},s=i,o=(a("tr8z"),a("KHd+")),c=Object(o["a"])(s,n,r,!1,null,null,null);e["a"]=c.exports},"0zrD":function(t,e,a){"use strict";var n=a("jf14"),r=a.n(n);r.a},26:function(t,e,a){t.exports=a("Vtdi")},"2A8w":function(t,e,a){"use strict";var n=a("TDb6"),r=a.n(n);r.a},"2Yda":function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"contain my2"},[a("h3",[t._v("Start a new gekko")]),a("gekko-config-builder",{on:{config:t.updateConfig}}),a("div",{staticClass:"hr"}),t.config.valid?a("div",{staticClass:"txt--center"},[t.pendingStratrunner?t._e():a("a",{staticClass:"w100--s my1 btn--primary",attrs:{href:"#"},on:{click:function(e){return e.preventDefault(),t.start(e)}}},[t._v("Start")]),t.pendingStratrunner?a("spinner"):t._e()],1):t._e()],1)},r=[],i=(a("Z2Ku"),a("L9s1"),a("dRSK"),a("LvDl")),s=a.n(i),o=a("Kw5r"),c=a("wiDz"),u=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd contain"},[a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6 mx1"},[a("h3",[t._v("Market")]),a("market-picker",{attrs:{"only-tradable":t.isTradebot},on:{market:t.updateMarketConfig}})],1),a("div",{staticClass:"grd-row-col-3-6 mx1"},[a("type-picker",{on:{type:t.updateType}})],1)]),"market watcher"!==t.type?[a("div",{staticClass:"hr"}),a("strat-picker",{staticClass:"contain my2",on:{stratConfig:t.updateStrat}}),"paper trader"===t.type?a("div",{staticClass:"hr"}):t._e(),"paper trader"===t.type?a("paper-trader",{on:{settings:t.updatePaperTrader}}):t._e()]:t._e()],2)},l=[],d=(a("91GP"),a("6BxS")),f=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("h3",[t._v("Type")]),[a("label",{staticClass:"wrapper",attrs:{for:"type"}},[t._v("What do you want to do with gekko?")]),a("form",{staticClass:"radio grd"},t._l(t.types,function(e,n){return a("div",{staticClass:"grd-row m1"},[a("input",{directives:[{name:"model",rawName:"v-model",value:t.selectedTypeIndex,expression:"selectedTypeIndex"}],staticClass:"grd-row-col-1-6",attrs:{type:"radio"},domProps:{value:n,checked:t._q(t.selectedTypeIndex,n)},on:{change:function(e){t.selectedTypeIndex=n}}}),a("label",{staticClass:"grd-row-col-5-6",attrs:{for:n}},[t._v(t._s(e))])])}))]],2)},h=[],m={created:function(){this.emitType()},data:function(){return{types:["paper trader","market watcher","tradebot"],selectedTypeIndex:0}},methods:{emitType:function(){this.$emit("type",this.type)}},watch:{type:function(){this.emitType()}},computed:{type:function(){return this.types[this.selectedTypeIndex]}}},v=m,p=(a("wVPO"),a("KHd+")),g=Object(p["a"])(v,f,h,!1,null,null,null),_=g.exports,k=a("6Wkr"),y=a("rloZ"),w={created:function(){var t=this;Object(c["a"])("configPart/candleWriter",function(e,a){t.candleWriter=toml.parse(a.part)}),Object(c["a"])("configPart/performanceAnalyzer",function(e,a){t.performanceAnalyzer=toml.parse(a.part),t.performanceAnalyzer.enabled=!0})},data:function(){return{market:{},range:{},type:"",strat:{},paperTrader:{},candleWriter:{},performanceAnalyzer:{}}},components:{marketPicker:d["a"],typePicker:_,stratPicker:k["a"],paperTrader:y["a"]},computed:{isTradebot:function(){return"tradebot"===this.type},config:function(){var t={};return Object.assign(t,this.market,this.strat,{paperTrader:this.paperTrader},{candleWriter:this.candleWriter},{type:this.type},{performanceAnalyzer:this.performanceAnalyzer}),this.isTradebot&&(delete t.paperTrader,t.trader={enabled:!0}),t.valid=this.validConfig(t),t}},methods:{validConfig:function(t){if("market watcher"===t.type)return!0;if(!t.tradingAdvisor)return!1;if(s.a.isNaN(t.tradingAdvisor.candleSize))return!1;if(0==t.tradingAdvisor.candleSize)return!1;var e=t.tradingAdvisor.method;return!s.a.isEmpty(t[e])},updateMarketConfig:function(t){this.market=t,this.emitConfig()},updateType:function(t){this.type=t,this.emitConfig()},updateStrat:function(t){this.strat=t,this.emitConfig()},updatePaperTrader:function(t){this.paperTrader=t,this.paperTrader.enabled=!0,this.emitConfig()},emitConfig:function(){this.$emit("config",this.config)}}},b=w,C=(a("YEdZ"),Object(p["a"])(b,u,l,!1,null,null,null)),x=C.exports,S=a("MB/c"),T={components:{gekkoConfigBuilder:x,spinner:S["a"]},data:function(){return{pendingStratrunner:!1,config:{}}},computed:{gekkos:function(){return this.$store.state.gekkos},watchConfig:function(){var t=s.a.pick(this.config,"watch","candleWriter"),e=o["a"].util.extend({},t);return e.type="market watcher",e.mode="realtime",e},requiredHistoricalData:function(){if(this.config.tradingAdvisor&&this.config.valid){var t=this.config.tradingAdvisor;return t.candleSize*t.historySize}},gekkoConfig:function(){var t;if(this.existingMarketWatcher){if(this.requiredHistoricalData){var e=moment().utc().startOf("minute").subtract(this.requiredHistoricalData,"minutes").unix(),a=moment.utc(this.existingMarketWatcher.events.initial.candle.start).unix();t=moment.unix(Math.max(e,a)).utc().format()}else t=moment().utc().startOf("minute").format();var n=o["a"].util.extend({market:{type:"leech",from:t},mode:"realtime"},this.config);return n}},existingMarketWatcher:function(){var t=o["a"].util.extend({},this.watchConfig.watch);return s.a.find(this.gekkos,{config:{watch:t}})},exchange:function(){return this.watchConfig.watch.exchange},existingTradebot:function(){var t=this;return s.a.find(this.gekkos,function(e){return"tradebot"===e.logType&&e.config.watch.exchange===t.exchange})},availableApiKeys:function(){return this.$store.state.apiKeys}},watch:{existingMarketWatcher:function(t,e){var a=this;if(this.pendingStratrunner){var n=this.existingMarketWatcher;n.events.latest.candle&&(this.pendingStratrunner=!1,this.startGekko(function(t,e){a.$router.push({path:"/live-gekkos/".concat(e.id)})}))}}},methods:{updateConfig:function(t){this.config=t},start:function(){var t=this;if("tradebot"===this.config.type){if(this.existingTradebot){var e="You already have a tradebot running on this exchange";return e+=", you can only run one tradebot per exchange.",alert(e)}if(!this.availableApiKeys.includes(this.exchange))return alert("Please first configure API keys for this exchange in the config page.")}"market watcher"===this.config.type?this.existingMarketWatcher?(alert("This market is already being watched, redirecting you now..."),this.$router.push({path:"/live-gekkos/".concat(this.existingMarketWatcher.id)})):this.startWatcher(function(e,a){t.$router.push({path:"/live-gekkos/".concat(a.id)})}):this.existingMarketWatcher?this.startGekko(this.routeToGekko):this.startWatcher(function(e,a){t.pendingStratrunner=a.id})},routeToGekko:function(t,e){if(t||e.error)return console.error(t,e.error);this.$router.push({path:"/live-gekkos/".concat(e.id)})},startWatcher:function(t){Object(c["b"])("startGekko",this.watchConfig,t)},startGekko:function(t){Object(c["b"])("startGekko",this.gekkoConfig,t)}}},E=T,P=(a("2A8w"),Object(p["a"])(E,n,r,!1,null,null,null));e["a"]=P.exports},"2rY9":function(t,e,a){"use strict";var n=a("SWS5"),r=a.n(n);r.a},"5/bm":function(t,e,a){},"5shn":function(t,e,a){"use strict";var n=a("DlQD"),r=new n.Renderer;r.link=function(t,e,a){var n,r,i;return n=/^https?:\/\/.+$/.test(t),r=n||"newWindow"===e,i='"+a+""},n.setOptions({renderer:r}),e["a"]=n},"6BxS":function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("div",{staticClass:"mx1"},[a("label",{staticClass:"wrapper",attrs:{for:"exchange"}},[t._v("Exchange:")]),a("div",{staticClass:"custom-select button"},[a("select",{directives:[{name:"model",rawName:"v-model",value:t.exchange,expression:"exchange"}],on:{change:function(e){var a=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){var e="_value"in t?t._value:t.value;return e});t.exchange=e.target.multiple?a:a[0]}}},t._l(t.exchanges,function(e,n){return a("option",[t._v(t._s(n))])}))])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6 mx1"},[a("label",{attrs:{for:"currency"}},[t._v("Currency:")]),a("div",{staticClass:"custom-select button"},[a("select",{directives:[{name:"model",rawName:"v-model",value:t.currency,expression:"currency"}],on:{change:function(e){var a=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){var e="_value"in t?t._value:t.value;return e});t.currency=e.target.multiple?a:a[0]}}},t._l(t.currencies,function(e){return a("option",[t._v(t._s(e))])}))])]),a("div",{staticClass:"grd-row-col-3-6 mx1"},[a("label",{attrs:{for:"asset"}},[t._v("Asset:")]),a("div",{staticClass:"custom-select button"},[a("select",{directives:[{name:"model",rawName:"v-model",value:t.asset,expression:"asset"}],on:{change:function(e){var a=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){var e="_value"in t?t._value:t.value;return e});t.asset=e.target.multiple?a:a[0]}}},t._l(t.assets,function(e){return a("option",[t._v(t._s(e))])}))])])])])},r=[],i=(a("rGqo"),a("yt8O"),a("f3/d"),a("91GP"),a("LvDl")),s=a.n(i),o=(a("YIjs"),a("FhOJ"),a("wiDz"),{props:["onlyTradable","onlyImportable"],data:function(){return{exchange:"poloniex",currency:"USDT",asset:"BTC"}},created:function(){this.emitConfig()},computed:{exchanges:function(){var t=Object.assign({},this.$store.state.exchanges);return!s.a.isEmpty(t)&&(this.onlyTradable&&s.a.each(t,function(e,a){e.tradable||delete t[a]}),this.onlyImportable&&s.a.each(t,function(e,a){e.importable||delete t[a]}),t)},markets:function(){return this.exchanges?this.exchanges[this.exchange]:null},assets:function(){return this.exchanges?this.exchanges[this.exchange].markets[this.currency]:null},currencies:function(){return this.exchanges?s.a.keys(this.exchanges[this.exchange].markets):null},watchConfig:function(){return{watch:{exchange:this.exchange,currency:this.currency,asset:this.asset}}}},watch:{currency:function(){this.emitConfig()},asset:function(){this.emitConfig()},market:function(){this.emitConfig()},exchanges:function(){this.emitConfig()},exchange:function(){this.emitConfig()}},methods:{emitConfig:function(){this.$emit("market",this.watchConfig)}}}),c=o,u=a("KHd+"),l=Object(u["a"])(c,n,r,!1,null,null,null);e["a"]=l.exports},"6Wkr":function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd"},[a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6 px1"},[a("h3",[t._v("Strategy")]),a("div",[a("label",{staticClass:"wrapper",attrs:{for:"strat"}},[t._v("Strategy:")]),a("div",{staticClass:"custom-select button"},[a("select",{directives:[{name:"model",rawName:"v-model",value:t.strategy,expression:"strategy"}],on:{change:function(e){var a=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){var e="_value"in t?t._value:t.value;return e});t.strategy=e.target.multiple?a:a[0]}}},t._l(t.strategies,function(e){return a("option",[t._v(t._s(e.name))])}))])]),a("div",[a("label",{attrs:{for:"candleSize"}},[t._v("Candle Size")]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[a("input",{directives:[{name:"model",rawName:"v-model",value:t.rawCandleSize,expression:"rawCandleSize"}],domProps:{value:t.rawCandleSize},on:{input:function(e){e.target.composing||(t.rawCandleSize=e.target.value)}}})]),a("div",{staticClass:"grd-row-col-3-6 align"},[a("div",{staticClass:"custom-select button"},[a("select",{directives:[{name:"model",rawName:"v-model",value:t.candleSizeUnit,expression:"candleSizeUnit"}],on:{change:function(e){var a=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){var e="_value"in t?t._value:t.value;return e});t.candleSizeUnit=e.target.multiple?a:a[0]}}},[a("option",[t._v("minutes")]),a("option",[t._v("hours")]),a("option",[t._v("days")])])])])])]),a("div",[a("label",{attrs:{for:"historySize"}},[t._v("Warmup period (in "+t._s(t.rawCandleSize)+" "+t._s(t.singularCandleSizeUnit)+" candles):")]),a("input",{directives:[{name:"model",rawName:"v-model",value:t.historySize,expression:"historySize"}],domProps:{value:t.historySize},on:{input:function(e){e.target.composing||(t.historySize=e.target.value)}}}),a("em",{staticClass:"label-like"},[t._v("(will use "+t._s(t.humanizeDuration(t.candleSize*t.historySize*1e3*60))+" of data as history)")])])]),a("div",{staticClass:"grd-row-col-3-6 px1"},[a("div",[a("h3",[t._v("Parameters")]),a("p",[t._v(t._s(t.strategy)+" Parameters:")]),a("textarea",{directives:[{name:"model",rawName:"v-model",value:t.rawStratParams,expression:"rawStratParams"}],staticClass:"params",domProps:{value:t.rawStratParams},on:{input:function(e){e.target.composing||(t.rawStratParams=e.target.value)}}}),t.rawStratParamsError?a("p",{staticClass:"bg--red p1"},[t._v(t._s(t.rawStratParamsError.message))]):t._e()])])])])},r=[],i=(a("dRSK"),a("LvDl")),s=a.n(i),o=a("wiDz"),c={data:function(){return{strategies:[],candleSizeUnit:"hours",rawCandleSize:1,strategy:"MACD",historySize:10,rawStratParams:"",rawStratParamsError:!1,emptyStrat:!1,stratParams:{}}},created:function(){var t=this;Object(o["a"])("strategies",function(e,a){t.strategies=a,s.a.each(t.strategies,function(t){t.empty=""===t.params}),t.rawStratParams=s.a.find(t.strategies,{name:t.strategy}).params,t.emptyStrat=s.a.find(t.strategies,{name:t.strategy}).empty,t.emitConfig()})},watch:{strategy:function(t){t=s.a.find(this.strategies,{name:t}),this.rawStratParams=t.params,this.emptyStrat=t.empty,this.emitConfig()},candleSize:function(){this.emitConfig()},historySize:function(){this.emitConfig()},rawStratParams:function(){this.emitConfig()}},computed:{candleSize:function(){return"minutes"===this.candleSizeUnit?this.rawCandleSize:"hours"===this.candleSizeUnit?60*this.rawCandleSize:"days"===this.candleSizeUnit?60*this.rawCandleSize*24:void 0},singularCandleSizeUnit:function(){return this.candleSizeUnit.slice(0,-1)},config:function(){var t={tradingAdvisor:{enabled:!0,method:this.strategy,candleSize:+this.candleSize,historySize:+this.historySize}};return this.emptyStrat?t[this.strategy]={__empty:!0}:t[this.strategy]=this.stratParams,t}},methods:{humanizeDuration:function(t){return window.humanizeDuration(t)},emitConfig:function(){this.parseParams(),this.$emit("stratConfig",this.config)},parseParams:function(){try{this.stratParams=toml.parse(this.rawStratParams),this.rawStratParamsError=!1}catch(t){this.rawStratParamsError=t,this.stratParams={}}}}},u=c,l=(a("tr8f"),a("KHd+")),d=Object(l["a"])(u,n,r,!1,null,null,null);e["a"]=d.exports},"7LpK":function(t,e,a){},"8KAT":function(t,e,a){},"9RND":function(t){t.exports={name:"gekko",version:"0.6.2",description:"A bitcoin trading bot for auto trading at various exchanges",keywords:["trading","bot","bitcoin","TA","finance"],scripts:{test:"./node_modules/.bin/mocha test/*.js --recursive test -u tdd --reporter spec",start:"node ./gekko --config config.js --ui"},author:"Mike van Rossum ",dependencies:{"@slack/client":"^3.10.0",async:"2.1.2","bitcoin-co-id-update":"0.0.2",bitexthai:"^0.1.0","bitfinex-api-node":"^1.2.0",bitstamp:"^1.0.3",bitx:"^1.5.0","btc-china-fork":"0.0.6","btc-markets":"0.0.10",cexio:"0.0.x","co-fs":"^1.2.0",coingi:"^1.0.7",commander:"^2.13.0",gekko:"0.0.9","gemini-exchange-coffee-api":"2.0.6","humanize-duration":"^3.10.0",koa:"^1.2.0","koa-bodyparser":"^2.2.0","koa-cors":"0.0.16","koa-logger":"^1.3.0","koa-router":"^5.4.0","koa-static":"^2.0.0",lakebtc_nodejs:"0.1.x",lodash:"2.x",moment:"^2.20.1","node-wex":"^1.0.3","node.bittrex.api":"^0.4.3","okcoin-china":"0.0.7",opn:"^4.0.2","promisify-node":"^0.4.0","prompt-lite":"0.1.1",pushbullet:"1.4.3",quadrigacx:"0.0.7",relieve:"^2.1.3",retry:"^0.10.1",semver:"5.4.1",sqlite3:"^3.1.13","stats-lite":"^2.0.4","tiny-promisify":"^0.1.1",toml:"^2.3.0",twitter:"^1.7.1","zaif.jp":"^0.1.4"},devDependencies:{chai:"^4.1.2",mocha:"^5.0.0",proxyquire:"^1.7.10",request:"^2.83.0","request-promise":"^4.2.2",sinon:"^4.2.0"},engines:{node:">=8.11.2"},license:"MIT",repository:{type:"git",url:"https://github.com/askmike/gekko.git"}}},CyGp:function(t,e,a){"use strict";var n=a("jTvs"),r=a.n(n);r.a},EAJ1:function(t,e,a){},EDI0:function(t,e,a){},EfWa:function(t,e,a){},FhOJ:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("h3",[t._v("Daterange")]),a("div",[a("label",{attrs:{for:"from"}},[t._v("From")]),a("input",{directives:[{name:"model",rawName:"v-model",value:t.from,expression:"from"}],domProps:{value:t.from},on:{input:function(e){e.target.composing||(t.from=e.target.value)}}})]),a("div",[a("label",{attrs:{for:"to"}},[t._v("To")]),a("input",{directives:[{name:"model",rawName:"v-model",value:t.to,expression:"to"}],domProps:{value:t.to},on:{input:function(e){e.target.composing||(t.to=e.target.value)}}})])])},r=[],i=(a("LvDl"),a("wiDz"),{data:function(){return{from:"",to:""}},created:function(){var t=moment().startOf("minute"),e=t.clone().subtract(3,"months");this.to=this.fmt(t),this.from=this.fmt(e),this.emitRange()},methods:{fmtTs:function(t){return moment.unix(t).utc()},fmt:function(t){return t.utc().format("YYYY-MM-DD HH:mm")},emitRange:function(){this.$emit("range",{from:this.fmtTs(this.from),to:this.fmtTs(this.to)})},emitManualEntry:function(){if(this.from.length<"4"||this.from.length<"4")return this.$emit("range",{});var t=moment.utc(this.from),e=moment.utc(this.to);t.isValid()&&e.isValid()?this.$emit("range",{from:this.fmt(t),to:this.fmt(e)}):this.$emit("range",{})}},watch:{from:function(){this.emitManualEntry()},to:function(){this.emitManualEntry()},config:function(){this.scanned=!1},tab:function(){this.scanned=!1,this.$emit("range",{})},selectedRangeIndex:function(){var t=this.ranges[this.selectedRangeIndex];t&&this.emitRange(t)}}}),s=i,o=(a("TPp/"),a("KHd+")),c=Object(o["a"])(s,n,r,!1,null,null,null);e["a"]=c.exports},"H+ir":function(t,e,a){"use strict";var n=a("5/bm"),r=a.n(n);r.a},Kd0R:function(t,e,a){},"MB/c":function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement;t._self._c;return t._m(0)},r=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"spinner"},[a("div",{staticClass:"rect1"}),a("div",{staticClass:"rect2"}),a("div",{staticClass:"rect3"}),a("div",{staticClass:"rect4"})])}],i={},s=i,o=(a("q431"),a("KHd+")),c=Object(o["a"])(s,n,r,!1,null,null,null);e["a"]=c.exports},Pf3K:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{attrs:{id:"app"}},[a("top"),a("div",{staticClass:"fill"},[a("router-view",{staticClass:"view"})],1),a("bottom"),a("modal")],1)},r=[],i=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("div",{attrs:{id:"top"}}),t._m(0),a("nav",{staticClass:"bg--light-gray"},[a("div",{staticClass:"menu contain"},[a("router-link",{staticClass:"py1",attrs:{to:"/home"}},[t._v("Home")]),a("router-link",{staticClass:"py1",attrs:{to:"/live-gekkos"}},[t._v("Live Gekkos")]),a("router-link",{staticClass:"py1",attrs:{to:"/backtest"}},[t._v("Backtest")]),a("router-link",{staticClass:"py1",attrs:{to:"/data"}},[t._v("Local data")]),a("router-link",{staticClass:"py1",attrs:{to:"/config"}},[t._v("Config")]),a("a",{staticClass:"py1",attrs:{href:"https://gekko.wizb.it/docs/introduction/about_gekko.html",target:"_blank"}},[t._v("Documentation")])],1)])])},s=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("header",{staticClass:"bg--off-white grd"},[a("div",{staticClass:"contain grd-row"},[a("h3",{staticClass:"py1 px2 col-2"},[t._v("Gekko UI")])])])}],o={},c=o,u=(a("uMTv"),a("KHd+")),l=Object(u["a"])(c,i,s,!1,null,null,null),d=l.exports,f=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("footer",{staticClass:"p2 bg--off-white"},[a("div",{staticClass:"contain"},[t._m(0),a("p",[t._v("Using Gekko v"+t._s(t.version.gekko)+" and Gekko UI v"+t._s(t.version.ui)+".")])])])},h=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("p",[a("em",[t._v("Use Gekko at your own risk.")])])}],m=a("9RND"),v=a("kiQV"),p={data:function(){return{version:{gekko:m.version,ui:v.version}}}},g=p,_=Object(u["a"])(g,f,h,!1,null,null,null),k=_.exports,y=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.active?a("div",[a("div",{attrs:{id:"modal-background"}}),a("div",{staticClass:"modal",attrs:{id:"modal"}},[a("div",{staticClass:"modal-guts",domProps:{innerHTML:t._s(t.content)}})])]):t._e()},w=[],b=a("5shn"),C={disconnected:Object(b["a"])("\n\n## Disconnected\n\nSomething happened to either Gekko or the connection.\nPlease check the terminal where Gekko is running or\nyour network connection.\n\n*This message is shown when the UI is unable to open a websocket connection with the Gekko Server.*\n\n ")},x={computed:{active:function(){return!this.$store.state.warnings.connected},content:function(){return this.$store.state.warnings.connected?"":C.disconnected}}},S=x,T=(a("TfKe"),Object(u["a"])(S,y,w,!1,null,null,null)),E=T.exports,P={name:"app",components:{top:d,bottom:k,modal:E}},A=P,z=(a("ZL7j"),Object(u["a"])(A,n,r,!1,null,null,null));e["a"]=z.exports},Q2AE:function(t,e,a){"use strict";var n={};a.r(n),a.d(n,"addImport",function(){return d}),a.d(n,"syncImports",function(){return f}),a.d(n,"updateImport",function(){return h});var r={};a.r(r),a.d(r,"syncGekkos",function(){return g}),a.d(r,"addGekko",function(){return _}),a.d(r,"updateGekko",function(){return k}),a.d(r,"archiveGekko",function(){return y}),a.d(r,"errorGekko",function(){return w}),a.d(r,"deleteGekko",function(){return b});var i={};a.r(i),a.d(i,"setGlobalWarning",function(){return C});var s={};a.r(s),a.d(s,"syncApiKeys",function(){return x}),a.d(s,"syncExchanges",function(){return S});a("VRzm");var o=a("Kw5r"),c=a("L2JU"),u=a("LvDl"),l=a.n(u),d=(a("INYr"),function(t,e){return t.imports.push(e),t}),f=function(t,e){return t.imports=e,t},h=function(t,e){var a=t.imports.findIndex(function(t){return t.id===e.import_id}),n=t.imports[a];if(!n)return t;var r=o["a"].util.extend(n,e.updates);return o["a"].set(t.imports,a,r),t},m=a("oyJW"),v=a("yT7P"),p=a("c7Wa"),g=function(t,e){return e?(t.gekkos=e.live,t.archivedGekkos=e.archive,t):t},_=function(t,e){return t.gekkos=Object(v["a"])({},t.gekkos,Object(m["a"])({},e.id,e)),t},k=function(t,e){return e.id&&l.a.has(t.gekkos,e.id)?(t.gekkos=Object(v["a"])({},t.gekkos,Object(m["a"])({},e.id,p(t.gekkos[e.id],e.event))),t):console.error("cannot update unknown gekko..")},y=function(t,e){return l.a.has(t.gekkos,e)?(t.archivedGekkos=Object(v["a"])({},t.archivedGekkos,Object(m["a"])({},e,Object(v["a"])({},t.gekkos[e],{stopped:!0,active:!1}))),t.gekkos=l.a.omit(t.gekkos,e),t):console.error("cannot archive unknown gekko..")},w=function(t,e){return l.a.has(t.gekkos,e.id)?(t.gekkos=Object(v["a"])({},t.gekkos,Object(m["a"])({},e.id,Object(v["a"])({},t.gekkos[e.id],{errored:!0,errorMessage:e.error}))),t):console.error("cannot error unknown gekko..")},b=function(t,e){return l.a.has(t.archivedGekkos,e)?(t.archivedGekkos=l.a.omit(t.archivedGekkos,e),t):console.error("cannot delete unknown gekko..")},C=function(t,e){return t.warnings[e.key]=e.value,t},x=function(t,e){return o["a"].set(t,"apiKeys",e),t},S=function(t,e){return o["a"].set(t,"exchanges",e),t};o["a"].use(c["a"]);var T=!1,E={};l.a.merge(E,n),l.a.merge(E,r),l.a.merge(E,i),l.a.merge(E,s);e["a"]=new c["a"].Store({state:{warnings:{connected:!0},imports:[],gekkos:{},archivedGekkos:{},connection:{disconnected:!1,reconnected:!1},apiKeys:[],exchanges:{}},mutations:E,strict:T})},Q6eY:function(t,e,a){"use strict";var n=a("SDwi"),r=a.n(n);r.a},SDwi:function(t,e,a){},SWS5:function(t,e,a){},T0Mt:function(t,e,a){"use strict";var n=a("pd3X"),r=a.n(n);r.a},TDb6:function(t,e,a){},"TPp/":function(t,e,a){"use strict";var n=a("7LpK"),r=a.n(n);r.a},TfKe:function(t,e,a){"use strict";var n=a("ZpQ2"),r=a.n(n);r.a},UeuA:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:{clickable:!t.isClicked},attrs:{id:"chartWrapper"}},[a("div",{staticClass:"shield",on:{click:function(e){return e.preventDefault(),t.click(e)}}}),a("svg",{attrs:{id:"chart",width:"960",height:t.height}})])},r=[],i=a("k5N+"),s=a("LvDl"),o=a.n(s),c=function(t,e,a){var n=e.map(function(t){return{price:t.price,date:moment.utc(t.date).toDate(),action:t.action}}),r=t.map(function(t){return{price:t.open,date:moment.utc(t.start).toDate()}}),s=r.map(function(t){return+t.date}),c=r.map(function(t){return+t.price}),u=d3.select("#chart");u.attr("width",window.innerWidth-20);var l={top:20,right:20,bottom:110,left:40},d=a-l.top-l.bottom,f={top:a-70,right:20,bottom:30,left:40},h=+u.attr("width")-l.left-l.right,m=a-f.top-f.bottom,v=d3.scaleUtc().range([0,h]),p=d3.scaleUtc().range([0,h]),g=d3.scaleLinear().range([d,0]),_=d3.scaleLinear().range([m,0]),k=d3.axisBottom(v),y=d3.axisBottom(p),w=d3.axisLeft(g).ticks(a/50),b=d3.brushX().extent([[0,0],[h,m]]).on("brush end",A),C=d3.zoom().scaleExtent([1,100]).translateExtent([[0,0],[h,d]]).extent([[0,0],[h,d]]).on("zoom",D),x=d3.line().x(function(t){return v(t.date)}).y(function(t){return g(t.price)}),S=d3.line().x(function(t){return p(t.date)}).y(function(t){return _(t.price)});u.append("defs").append("clipPath").attr("id","clip").append("rect").attr("width",h).attr("height",d);var T=u.append("g").attr("class","focus").attr("transform","translate("+l.left+","+l.top+")"),E=u.append("g").attr("class","context").attr("transform","translate("+f.left+","+f.top+")");v.domain(d3.extent(r,function(t){return t.date})),g.domain([.99*d3.min(c),1.01*d3.max(c)]),p.domain(v.domain()),_.domain(g.domain()),T.append("path").datum(r).attr("class","line price").attr("d",x),T.append("g").attr("class","axis axis--x").attr("transform","translate(0,"+d+")").call(k),T.append("g").attr("class","axis axis--y").call(w),E.append("path").datum(r).attr("class","line").attr("d",S),E.append("g").attr("class","axis axis--x").attr("transform","translate(0,"+m+")").call(y);var P=u.append("g").attr("transform","translate("+l.left+","+l.top+")").selectAll("circle").data(n).enter().append("circle").attr("class",function(t){return t.action}).attr("cx",function(t){return v(t.date)}).attr("cy",function(t){return g(t.price)}).attr("r",5);E.append("g").selectAll("circle").data(n).enter().append("circle").attr("class",function(t){return t.action}).attr("cx",function(t){return p(t.date)}).attr("cy",function(t){return _(t.price)}).attr("r",3);function A(){if(!d3.event.sourceEvent||"zoom"!==d3.event.sourceEvent.type){var t=d3.event.selection||p.range();v.domain(t.map(p.invert,p)),z(v.domain()),u.select(".axis--y").call(w),P.attr("cx",function(t){return v(t.date)}).attr("cy",function(t){return g(t.price)}),T.select(".line").attr("d",x),T.select(".axis--x").call(k),u.select(".zoom").call(C.transform,d3.zoomIdentity.scale(h/(t[1]-t[0])).translate(-t[0],0))}}function z(t){var e=Object(i["a"])(t,2),a=e[0],n=e[1],r=o.a.sortedIndex(s,a),u=o.a.sortedIndex(s,n),l=c.slice(r,u);g.domain([.9995*d3.min(l),1.0005*d3.max(l)])}function D(){if(!d3.event.sourceEvent||"brush"!==d3.event.sourceEvent.type){var t=d3.event.transform;z(t.rescaleX(p).domain()),u.select(".axis--y").call(w),v.domain(t.rescaleX(p).domain()),T.select(".line").attr("d",x),P.attr("cx",function(t){return v(t.date)}).attr("cy",function(t){return g(t.price)}),T.select(".axis--x").call(k),E.select(".brush").call(b.move,v.range().map(t.invertX,t))}}E.append("g").attr("class","brush").call(b).call(b.move,v.range()),u.append("rect").attr("class","zoom").attr("width",h).attr("height",d).attr("transform","translate("+l.left+","+l.top+")").call(C)},u=(a("dRSK"),function(t){d3.select("#chart").append("text").attr("class","message").attr("x",150).attr("y",150).text(t)}),l=4,d={props:["data","height"],data:function(){return{isClicked:!1}},watch:{data:function(){this.render()}},created:function(){setTimeout(this.render,100)},beforeDestroy:function(){this.remove()},methods:{click:function(){this.isClicked=!0},render:function(){this.remove(),_.size(this.data.candles)0?"profit":"loss"}}},$=D,j=(a("WlXR"),Object(g["a"])($,P,A,!1,null,null,null)),O=j.exports,M=a("UeuA"),G=a("vf3E"),I={props:["result"],data:function(){return{}},methods:{},components:{roundtripTable:G["a"],resultSummary:O,chart:M["a"]},computed:{candles:function(){return{candles:this.result.stratCandles,trades:this.result.trades}}}},R=I,H=(a("wVP4"),Object(g["a"])(R,T,E,!1,null,null,null)),K=H.exports,Y={data:function(){return{backtestable:!1,backtestState:"idle",backtestResult:!1,config:!1}},methods:{check:function(t){if(this.config=t,!t.valid)return this.backtestable=!1;this.backtestable=!0},run:function(){var t=this;this.backtestState="fetching",Object(f["b"])("backtest",this.config,function(e,a){t.backtestState="fetched",t.backtestResult=a})}},components:{configBuilder:S,result:K,spinner:h["a"]}},W=Y,N=Object(g["a"])(W,n,r,!1,null,null,null);e["a"]=N.exports},c7Wa:function(t,e){const a=["marketUpdate"],n=["marketStart","stratWarmupCompleted"],r=["tradeCompleted","advice","roundtrip"],i=(t,e)=>{const i=e.type,s=e.payload;return t={...t,latestUpdate:new Date},r.includes(i)&&(t=t.events[i]?{...t,events:{...t.events,[i]:[...t.events[i],s]}}:{...t,events:{...t.events,[i]:[s]}}),t.events.initial[i]||a.includes(i)||(t={...t,events:{...t.events,initial:{...t.events.initial,[i]:s}}}),n.includes(i)||(t={...t,events:{...t.events,latest:{...t.events.latest,[i]:s}}}),t};t.exports=i},dHeD:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"contain"},[a("div",{staticClass:"text",domProps:{innerHTML:t._s(t.intro)}}),a("div",{staticClass:"hr"}),a("h2",[t._v("Available datasets")]),"idle"===t.datasetScanstate?a("div",{staticClass:"txt--center my2"},[a("a",{staticClass:"w100--s btn--primary scan-btn",attrs:{href:"#"},on:{click:function(e){return e.preventDefault(),t.scan(e)}}},[t._v("Scan available data")])]):t._e(),"scanning"===t.datasetScanstate?a("div",{staticClass:"txt--center my2"},[a("spinner")],1):t._e(),"scanned"===t.datasetScanstate?a("div",{staticClass:"my2"},[t.unscannableMakets.length?a("div",{staticClass:"bg--orange p1 warning my1"},[t.viewUnscannable?t._e():a("p",{staticClass:"clickable",on:{click:function(e){return e.preventDefault(),t.toggleUnscannable(e)}}},[t._v("Some markets were unscannable, click here for details.")]),t.viewUnscannable?[a("p",[t._v("Unable to find datasets in the following markets:")]),t._l(t.unscannableMakets,function(e){return a("div",{staticClass:"mx2"},[t._v("- "+t._s(e.exchange)+":"+t._s(e.currency)+":"+t._s(e.asset))])})]:t._e()],2):t._e(),t.datasets.length?[a("table",{staticClass:"full data"},[t._m(0),a("tbody",t._l(t.datasets,function(e){return a("tr",[a("td",[t._v(t._s(e.exchange))]),a("td",[t._v(t._s(e.currency))]),a("td",[t._v(t._s(e.asset))]),a("td",[t._v(t._s(t.fmt(e.from)))]),a("td",[t._v(t._s(t.fmt(e.to)))]),a("td",[t._v(t._s(t.humanizeDuration(e.to.diff(e.from))))])])}))])]:t._e(),t.datasets.length?t._e():[a("p",[t._v("It looks like you don't have any local data yet.")])]],2):t._e(),a("div",{staticClass:"my2"},[a("h2",[t._v("Import more data")]),a("p",{staticClass:"text"},[t._v("You can easily import more market data directly from exchanges using the importer.")]),a("router-link",{staticClass:"btn--primary",attrs:{to:"/data/importer"}},[t._v("Go to the importer!")])],1)])},r=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("exchange")]),a("th",[t._v("currency")]),a("th",[t._v("asset")]),a("th",[t._v("from")]),a("th",[t._v("to")]),a("th",[t._v("duration")])])])}],i=(a("VRzm"),a("MB/c")),s=a("5shn"),o=a("spvI"),c=Object(s["a"])("\n\n## Local data\n\nGekko needs local market data in order to backtest strategies. The local\ndata can also be used in a warmup period when running a strategy against a\nlive market.\n\n"),u={mixins:[o["a"]],components:{spinner:i["a"]},data:function(){return{intro:c,viewUnscannable:!1}},methods:{toggleUnscannable:function(){this.viewUnscannable=!0},humanizeDuration:function(t){return window.humanizeDuration(t)},fmt:function(t){return t.format("YYYY-MM-DD HH:mm")}}},l=u,d=(a("2rY9"),a("KHd+")),f=Object(d["a"])(l,n,r,!1,null,null,null);e["a"]=f.exports},dW8q:function(t,e,a){"use strict";var n=a("w3yp"),r=a.n(n);r.a},daul:function(t,e,a){"use strict";var n=a("Kd0R"),r=a.n(n);r.a},g298:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"contain my2"},[t.data&&!t.data.done?a("div",[a("h2",[t._v("Importing data..")]),a("div",{staticClass:"grd"},[a("div",{staticClass:"grd-row"},[t._m(0),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.data.watch.exchange))])]),a("div",{staticClass:"grd-row"},[t._m(1),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.data.watch.currency)+"/"+t._s(t.data.watch.asset))])])]),a("div",{staticClass:"grd"},[a("div",{staticClass:"grd-row"},[t._m(2),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.fmt(t.from)))])]),a("div",{staticClass:"grd-row"},[t._m(3),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.fmt(t.to)))])]),t.initialized?a("div",{staticClass:"grd-row"},[t._m(4),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.fmt(t.latest)))])]):t._e(),t.initialized?a("div",{staticClass:"grd-row"},[t._m(5),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.fromEnd))])]):t._e()]),t.initialized?t._e():a("spinner"),t.initialized?a("div",{staticClass:"contain"},[a("progressBar",{attrs:{progress:t.progress}})],1):t._e(),a("p",[a("em",[t._v("(you don't have to wait until the import is done,you can already start "),a("router-link",{attrs:{to:"/backtest"}},[t._v("backtesting")]),t._v(").")],1)])],1):t._e(),t.data&&t.data.done?a("div",{staticClass:"txt--center"},[a("h2",[t._v("Import done")]),a("p",[t._v(" Go and "),a("router-link",{attrs:{to:"/backtest"}},[t._v("backtest")]),t._v(" with your new data!")],1)]):t._e(),t.data?t._e():a("div",{staticClass:"txt--center"},[a("h2",[t._v("ERROR: Unknown import")]),a("p",[a("I",[t._v("don't know this import..")])],1)])])},r=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd-row-col-2-6"},[a("strong",[t._v("Market:")])])},function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd-row-col-2-6"},[a("strong",[t._v("Currency/Asset:")])])},function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd-row-col-2-6"},[a("strong",[t._v("From:")])])},function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd-row-col-2-6"},[a("strong",[t._v("To:")])])},function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd-row-col-2-6"},[a("strong",[t._v("Imported data until:")])])},function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd-row-col-2-6"},[a("strong",[t._v("Remaining:")])])}],i=(a("dRSK"),a("LvDl")),s=a.n(i),o=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.progress?a("div",{staticClass:"progressbarWrapper"},[a("p",[a("strong",[t._v(t._s(t.round(t.progress))+"%")])]),a("div",{staticClass:"progressbar"},[a("div",{style:{width:t.progress+"%"}})])]):t._e()},c=[],u={props:["progress"],methods:{round:function(t){return(+t).toFixed(2)}}},l=u,d=(a("/vJE"),a("KHd+")),f=Object(d["a"])(l,o,c,!1,null,null,null),h=f.exports,m=a("MB/c"),v={components:{progressBar:h,spinner:m["a"]},computed:{data:function(){return s.a.find(this.$store.state.imports,{id:this.$route.params.id})},initialized:function(){if(this.data&&this.latest.isValid())return!0},latest:function(){if(this.data)return this.mom(this.data.latest)},fromEndMs:function(){if(this.data)return this.to.diff(this.latest)},fromEnd:function(){return this.latest?humanizeDuration(this.fromEndMs):"LOADING"},from:function(){if(this.data)return this.mom(this.data.from)},to:function(){if(this.data)return this.mom(this.data.to)},timespan:function(){if(this.data)return this.to.diff(this.from)},progress:function(){if(this.data){var t=this.timespan-this.fromEndMs;return 100*t/this.timespan}}},methods:{fmt:function(t){return t.format("YYYY-MM-DD HH:mm:ss")},mom:function(t){return moment.utc(t)}}},p=v,g=(a("qDq4"),Object(d["a"])(p,n,r,!1,null,null,null));e["a"]=g.exports},gYof:function(t,e,a){"use strict";a("LvDl");var n=a("Kw5r"),r=a("r0f2"),i=(a("L2JU"),a("wiDz")),s=a("Q2AE"),o=function(){Object(i["a"])("imports",function(t,e){s["a"].commit("syncImports",e)})},c=function(){C.$on("import_update",function(t){s["a"].commit("updateImport",t)})},u=function(){o(),c()},l=function(){Object(i["a"])("gekkos",function(t,e){var a=e;s["a"].commit("syncGekkos",a)})},d=function(){C.$on("gekko_new",function(t){return s["a"].commit("addGekko",t.state)}),C.$on("gekko_event",function(t){return s["a"].commit("updateGekko",t)}),C.$on("gekko_archived",function(t){return s["a"].commit("archiveGekko",t.id)}),C.$on("gekko_error",function(t){return s["a"].commit("errorGekko",t)}),C.$on("gekko_deleted",function(t){return s["a"].commit("deleteGekko",t.id)})},f=function(){l(),d()},h=function(){},m=function(){C.$on("WS_STATUS_CHANGE",function(t){return s["a"].commit("setGlobalWarning",{key:"connected",value:t.connected})})},v=function(){h(),m()},p=a("k5N+"),g=(a("rGqo"),function(t){if(!t)return{};var e=t,a={};return e.forEach(function(t){a[t.slug]=a[t.slug]||{markets:{}},t.markets.forEach(function(e){var n=Object(p["a"])(e["pair"],2),r=n[0],i=n[1];a[t.slug].markets[r]=a[t.slug].markets[r]||[],a[t.slug].markets[r].push(i)}),"exchangeMaxHistoryAge"in t&&(a[t.slug].exchangeMaxHistoryAge=t.exchangeMaxHistoryAge),a[t.slug].importable=!!t.providesFullHistory,a[t.slug].tradable=!!t.tradable,a[t.slug].requires=t.requires}),a}),_=function(){Object(i["a"])("apiKeys",function(t,e){s["a"].commit("syncApiKeys",e)}),Object(i["a"])("exchanges",function(t,e){s["a"].commit("syncExchanges",g(e))})},k=function(){C.$on("apiKeys",function(t){s["a"].commit("syncApiKeys",t.exchanges)})},y=function(){_(),k()},w=function(){u(),f(),v(),y()};a.d(e,"a",function(){return C}),a.d(e,"b",function(){return S});var b=null,C=new n["a"];C.$on("gekko_update",function(t){return console.log(t)}),C.$on("import_update",function(t){return console.log(t)}),C.$on("import_error",function(t){alert("IMPORT ERROR: "+t.error)});var x={connected:!1},S=function(){b=new ReconnectingWebSocket(r["b"],null,{maxReconnectInterval:4e3}),setTimeout(function(){x.connected||(w(),C.$emit("WS_STATUS_CHANGE",x))},500),b.onopen=function(){x.connected||(x.connected=!0,C.$emit("WS_STATUS_CHANGE",x),w())},b.onclose=function(){x.connected&&(x.connected=!1,C.$emit("WS_STATUS_CHANGE",x))},b.onerror=function(){x.connected&&(x.connected=!1,C.$emit("WS_STATUS_CHANGE",x))},b.onmessage=function(t){var e=JSON.parse(t.data);C.$emit(e.type,e)}}},h8ks:function(t,e,a){},hGnM:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"contain py2"},[a("h3",[t._v("Market watchers")]),t.watchers.length?t._e():a("div",{staticClass:"text"},[a("p",[t._v("You don't have any market watchers.")])]),t.watchers.length?a("table",{staticClass:"full clickable"},[t._m(0),a("tbody",t._l(t.watchers,function(e){return a("tr",{staticClass:"clickable",on:{click:function(a){t.$router.push({path:"/live-gekkos/"+e.id})}}},[a("td",[t._v(t._s(e.config.watch.exchange))]),a("td",[t._v(t._s(e.config.watch.currency))]),a("td",[t._v(t._s(e.config.watch.asset))]),a("td",[t._v(t._s(t.status(e)))]),a("td",[e.events.initial.candle?[t._v(t._s(t.fmt(e.events.initial.candle.start)))]:t._e()],2),a("td",[e.events.latest.candle?[t._v(t._s(t.fmt(e.events.latest.candle.start)))]:t._e()],2),a("td",[e.events.initial.candle&&e.events.latest.candle?[t._v(t._s(t.timespan(e.events.latest.candle.start,e.events.initial.candle.start)))]:t._e()],2)])}))]):t._e(),a("h3",[t._v("Strat runners")]),t.stratrunners.length?t._e():a("div",{staticClass:"text"},[a("p",[t._v("You don't have any stratrunners.")])]),t.stratrunners.length?a("table",{staticClass:"full"},[t._m(1),a("tbody",t._l(t.stratrunners,function(e){return a("tr",{staticClass:"clickable",on:{click:function(a){t.$router.push({path:"/live-gekkos/"+e.id})}}},[a("td",[t._v(t._s(e.config.watch.exchange))]),a("td",[t._v(t._s(e.config.watch.currency))]),a("td",[t._v(t._s(e.config.watch.asset))]),a("td",[t._v(t._s(t.status(e)))]),a("td",[e.events.initial.candle&&e.events.latest.candle?[t._v(t._s(t.timespan(e.events.latest.candle.start,e.events.initial.candle.start)))]:t._e()],2),a("td",[t._v(t._s(e.config.tradingAdvisor.method))]),a("td",[t.report(e)?t._e():[t._v("0")],t.report(e)?[t._v(t._s(t.round(t.report(e).profit))+" "+t._s(t.report(e).currency))]:t._e()],2),a("td",[t._v(t._s(e.logType))]),a("td",[e.events.tradeCompleted?t._e():[t._v("0")],e.events.tradeCompleted?[t._v(t._s(e.events.tradeCompleted.length))]:t._e()],2)])}))]):t._e(),a("div",{staticClass:"hr"}),a("h2",[t._v("Start a new live Gekko")]),a("router-link",{staticClass:"btn--primary",attrs:{to:"/live-gekkos/new"}},[t._v("Start a new live Gekko!")])],1)},r=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("exchange")]),a("th",[t._v("currency")]),a("th",[t._v("asset")]),a("th",[t._v("status")]),a("th",[t._v("started at")]),a("th",[t._v("last update")]),a("th",[t._v("duration")])])])},function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("exchange")]),a("th",[t._v("currency")]),a("th",[t._v("asset")]),a("th",[t._v("status")]),a("th",[t._v("duration")]),a("th",[t._v("strategy")]),a("th",[t._v("PnL")]),a("th",[t._v("type")]),a("th",[t._v("trades")])])])}],i=(a("a1Th"),a("rGqo"),a("yt8O"),a("VRzm"),{created:function(){var t=this;this.timer=setInterval(function(){t.now=moment()},1e3)},destroyed:function(){clearTimeout(this.timer)},data:function(){return{timer:!1,now:moment()}},computed:{stratrunners:function(){return _.values(this.$store.state.gekkos).concat(_.values(this.$store.state.archivedGekkos)).filter(function(t){return"papertrader"===t.logType||"tradebot"===t.logType})},watchers:function(){return _.values(this.$store.state.gekkos).concat(_.values(this.$store.state.archivedGekkos)).filter(function(t){return"watcher"===t.logType})}},methods:{humanizeDuration:function(t){return window.humanizeDuration(t)},moment:function(t){function e(e){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}(function(t){return moment.utc(t)}),fmt:function(t){return moment.utc(t).format("YYYY-MM-DD HH:mm")},round:function(t){return(+t).toFixed(3)},timespan:function(t,e){return this.humanizeDuration(this.moment(t).diff(this.moment(e)))},status:function(t){return t.errored?"errored":t.stopped?"stopped":t.active?"running":void console.log("unknown state:",t)},report:function(t){return _.get(t,"events.latest.performanceReport")}}}),s=i,o=(a("daul"),a("KHd+")),c=Object(o["a"])(s,n,r,!1,null,null,null);e["a"]=c.exports},jTvs:function(t,e,a){},jVW9:function(t,e,a){},jf14:function(t,e,a){},jloR:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"contain my2"},[a("div",{staticClass:"text",domProps:{innerHTML:t._s(t.intro)}}),a("div",{staticClass:"hr"}),a("h3",[t._v("Currently running imports")]),0===t.imports.length?a("p",[t._v("You currently don't have any imports running.")]):t._e(),t.imports.length?a("ul",t._l(t.imports,function(e){return a("li",[a("router-link",{attrs:{to:"/data/importer/import/"+e.id}},[t._v(t._s(e.watch.exchange)+":"+t._s(e.watch.currency)+"/"+t._s(e.watch.asset))])],1)})):t._e(),a("div",{staticClass:"hr"}),a("h3",[t._v("Start a new import")]),a("import-config-builder",{on:{config:t.updateConfig}}),a("div",{staticClass:"hr"}),a("div",{staticClass:"txt--center"},[a("a",{staticClass:"w100--s my1 btn--primary",attrs:{href:"#"},on:{click:function(e){return e.preventDefault(),t.run(e)}}},[t._v("Import")])])],1)},r=[],i=a("wiDz"),s=a("MB/c"),o=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd contain"},[a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6 mx1"},[a("h3",[t._v("Market")]),a("market-picker",{attrs:{"only-importable":"true"},on:{market:t.updateMarketConfig}})],1),a("div",{staticClass:"grd-row-col-3-6 mx1"},[a("range-creator",{on:{range:t.updateRange}})],1)])])},c=[],u=(a("91GP"),a("6BxS")),l=a("FhOJ"),d=(a("LvDl"),{data:function(){return{market:{},range:{}}},components:{marketPicker:u["a"],rangeCreator:l["a"]},computed:{config:function(){var t={};return Object.assign(t,this.market,{importer:{daterange:this.range}},{candleWriter:{enabled:!0}}),t}},methods:{updateMarketConfig:function(t){this.market=t,this.emitConfig()},updateRange:function(t){this.range=t,this.emitConfig()},emitConfig:function(){this.$emit("config",this.config)}}}),f=d,h=(a("H+ir"),a("KHd+")),m=Object(h["a"])(f,o,c,!1,null,null,null),v=m.exports,p=a("5shn"),g=Object(p["a"])("\n\n## Import data\n\nThe importer can download historical market data directly from the exchange.\n\n"),_={components:{importConfigBuilder:v,spinner:s["a"]},data:function(){return{intro:g,config:{}}},computed:{imports:function(){return this.$store.state.imports}},methods:{daysApart:function(t){var e=moment(t.to),a=moment(t.from);return e.diff(a,"days")},updateConfig:function(t){this.config=t},run:function(){var t=this,e=this.daysApart(this.config.importer.daterange);if(e<1)return alert("You can only import at least one day of data..");var a=this.$store.state.exchanges[this.config.watch.exchange];if("exchangeMaxHistoryAge"in a&&moment(this.config.importer.daterange.from) 1%","last 2 versions","not ie <= 8"]}},ldlP:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("section",{staticClass:"contain grd-row"},[a("div",{staticClass:"grd-row-col-3-6",domProps:{innerHTML:t._s(t.left)}}),t._m(0)])},r=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd-row-col-3-6 txt--center"},[a("img",{attrs:{src:"/static/gekko.jpg"}}),a("p",[a("em",[t._v("The most valuable commodity I know of is information.")])])])}],i=a("5shn"),s=Object(i["a"])("\n\n## Gekko\n\nGekko is a Bitcoin trading bot and backtesting platform that\nconnects to popular Bitcoin exchanges. It is written in javascript\nand runs on nodejs.\n\n[Find out more](https://gekko.wizb.it/).\n\n*Gekko is 100% open source and free, if you paid for this you have been scammed.*\n\n"),o={data:function(){return{left:s}}},c=o,u=a("KHd+"),l=Object(u["a"])(c,n,r,!1,null,null,null);e["a"]=l.exports},mf2E:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"my2"},[t.data?t._e():a("div",{staticClass:"contain"},[a("h1",[t._v("Unknown Gekko instance")]),a("p",[t._v("Gekko doesn't know what gekko this is...")])]),t.data?a("div",[a("h2",{staticClass:"contain"},[t._v("Gekko "+t._s(t.type))]),t.isArchived?a("div",{staticClass:"contain brdr--mid-gray p1 bg--orange"},[t._v("This is an archived Gekko, it is currently not running anymore.")]):t._e(),t.data.errorMessage?a("div",{staticClass:"contain brdr--mid-gray p1 bg--orange"},[t._v("This is Gekko crashed with the following error: "+t._s(t.data.errorMessage))]):t._e(),a("div",{staticClass:"grd contain"},[a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[a("h3",[t._v("Market")]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Exchange")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.config.watch.exchange))])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Currency")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.config.watch.currency))])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Asset")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.config.watch.asset))])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Type")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.type))])])]),a("div",{staticClass:"grd-row-col-3-6"},[a("h3",[t._v("Runtime")]),t.isLoading?a("spinner"):t._e(),t.isLoading?t._e():[t.initialEvents.candle?a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-2-6"},[t._v("Watching since")]),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.fmt(t.initialEvents.candle.start)))])]):t._e(),t.latestEvents.candle?a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-2-6"},[t._v("Received data until")]),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.fmt(t.latestEvents.candle.start)))])]):t._e(),t.latestEvents.candle?a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-2-6"},[t._v("Data spanning")]),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.humanizeDuration(t.moment(t.latestEvents.candle.start).diff(t.moment(t.initialEvents.candle.start)))))])]):t._e(),t.isStratrunner?[a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-2-6"},[t._v("Amount of trades")]),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.trades.length))])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-2-6"},[t._v("Candle size")]),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.config.tradingAdvisor.candleSize))])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-2-6"},[t._v("History size")]),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.config.tradingAdvisor.historySize))])])]:t._e()]],2)]),t.warmupRemaining?a("div",{staticClass:"contain brdr--mid-gray p1 bg--orange"},[t._v("This stratrunner is still warming up for the next "),a("i",[t._v(t._s(t.warmupRemaining.replace(","," and ")))]),t._v(", it will not trade until it is warmed up.")]):t._e(),t.isStratrunner?a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[a("h3",[t._v("Strategy")]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Name")]),a("div",{staticClass:"grd-row-col-3-6"},[a("strong",[t._v(t._s(t.stratName))])])]),t._v("Parameters"),a("pre",[t._v(t._s(t.stratParams))])]),a("div",{staticClass:"grd-row-col-3-6"},[a("h3",[t._v("Profit report")]),t.report?t._e():[a("p",[t.isArchived?a("em",[t._v("This Gekko never executed a trade..")]):t._e(),t.isArchived?t._e():a("em",[t._v("Waiting for at least one trade..")])])],t.report?[a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Start balance")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.round(t.report.startBalance)))])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Current balance")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.round(t.report.balance)))])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Market")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.round(t.report.market/100*t.report.startPrice))+" "+t._s(t.config.watch.currency)+" ("+t._s(t.round(t.report.market))+" %)")])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Profit")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.round(t.report.profit))+" "+t._s(t.config.watch.currency)+" ("+t._s(t.round(t.report.relativeProfit))+" %)")])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Alpha")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.round(t.report.alpha))+" "+t._s(t.config.watch.currency))])])]:t._e()],2)]):t._e(),!t.isStratrunner||t.watcher||t.isArchived?t._e():a("p",[t._v("WARNING: stale gekko, not attached to a watcher, please report "),a("a",{attrs:{href:"https://github.com/askmike/gekko/issues"}},[t._v("here")]),t._v(".")]),t.isArchived?t._e():a("p",[a("a",{staticClass:"w100--s my1 btn--red",on:{click:t.stopGekko}},[t._v("Stop Gekko")])]),t.isArchived?a("p",[a("a",{staticClass:"w100--s my1 btn--red",on:{click:t.deleteGekko}},[t._v("Delete Gekko")])]):t._e(),t.isStratrunner&&t.watcher&&!t.isArchived?a("p",[a("em",[t._v("This gekko gets market data from "),a("router-link",{attrs:{to:"/live-gekkos/"+t.watcher.id}},[t._v("this market watcher")])],1),t._v(".")]):t._e()]),t.isLoading?t._e():[a("h3",{staticClass:"contain"},[t._v("Market graph")]),"fetching"===t.candleFetch?a("spinner"):t._e(),"fetched"===t.candleFetch?[a("chart",{attrs:{data:t.chartData,height:300}})]:t._e(),t.isStratrunner?a("roundtrips",{attrs:{roundtrips:t.roundtrips}}):t._e()]],2):t._e()])},r=[],i=(a("a1Th"),a("dRSK"),a("Kw5r")),s=a("LvDl"),o=a.n(s),c=a("wiDz"),u=a("MB/c"),l=a("UeuA"),d=a("vf3E"),f=a("0Bu0"),h={created:function(){this.isLoading||this.getCandles()},components:{spinner:u["a"],chart:l["a"],paperTradeSummary:f["a"],roundtrips:d["a"]},data:function(){return{candleFetch:"idle",candles:!1}},computed:{id:function(){return this.$route.params.id},gekkos:function(){return this.$store.state.gekkos},archivedGekkos:function(){return this.$store.state.archivedGekkos},data:function(){return!!this.gekkos&&(o.a.has(this.gekkos,this.id)?this.gekkos[this.id]:!!o.a.has(this.archivedGekkos,this.id)&&this.archivedGekkos[this.id])},config:function(){return o.a.get(this,"data.config")},latestEvents:function(){return o.a.get(this,"data.events.latest")},initialEvents:function(){return o.a.get(this,"data.events.initial")},trades:function(){return o.a.get(this,"data.events.tradeCompleted")||[]},roundtrips:function(){return o.a.get(this,"data.events.roundtrip")||[]},isLive:function(){return o.a.has(this.gekkos,this.id)},type:function(){return this.data.logType},isStratrunner:function(){return"watcher"!==this.type},isArchived:function(){return this.data.stopped},warmupRemaining:function(){if(!this.isStratrunner)return!1;if(this.isArchived)return!1;if(this.initialEvents.stratWarmupCompleted)return!1;if(!this.initialEvents.candle)return!1;var t=o.a.get(this.config,"tradingAdvisor.candleSize")*o.a.get(this.config,"tradingAdvisor.historySize");return humanizeDuration(moment(this.initialEvents.candle.start).add(t,"m").diff(moment()),{largest:2})},chartData:function(){return{candles:this.candles,trades:this.trades}},report:function(){return o.a.get(this.latestEvents,"performanceReport")},stratName:function(){if(this.data)return this.data.config.tradingAdvisor.method},stratParams:function(){if(!this.data)return"Loading...";var t=i["a"].util.extend({},this.data.config[this.stratName]);return delete t.__empty,o.a.isEmpty(t)?"No parameters":JSON.stringify(t,null,4)},isLoading:function(){return!this.data||(!o.a.get(this.data,"events.initial.candle")||!o.a.get(this.data,"events.latest.candle"))},watcher:function(){var t=this;if(!this.isStratrunner)return!1;var e=i["a"].util.extend({},this.data.config.watch);return o.a.find(this.gekkos,function(a){return a.id!==t.id&&o.a.isEqual(e,a.config.watch)})},hasLeechers:function(){var t=this;if(this.isStratrunner)return!1;var e=i["a"].util.extend({},this.data.config.watch);return o.a.find(this.gekkos,function(a){return a.id!==t.id&&o.a.isEqual(e,a.config.watch)})}},watch:{"data.events.latest.candle.start":function(){setTimeout(this.getCandles,o.a.random(100,2e3))}},methods:{round:function(t){return(+t).toFixed(5)},humanizeDuration:function(t,e){return window.humanizeDuration(t,e)},moment:function(t){function e(e){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}(function(t){return moment.utc(t)}),fmt:function(t){return moment.utc(t).format("YYYY-MM-DD HH:mm")},getCandles:function(){var t=this;if(!this.isLoading&&"fetching"!==this.candleFetch){this.candleFetch="fetching";var e=this.data.events.latest.candle.start,a=this.data.events.initial.candle.start,n=1;"watcher"!==this.type&&(n=this.data.config.tradingAdvisor.candleSize);var r={watch:this.data.config.watch,daterange:{to:e,from:a},candleSize:n};setTimeout(function(){Object(c["b"])("getCandles",r,function(e,a){if(t.candleFetch="fetched",!a||a.error||!o.a.isArray(a))return console.log(a);t.candles=a.map(function(t){return t.start=moment.unix(t.start).utc().format(),t})})},o.a.random(150,2500))}},stopGekko:function(){if(this.hasLeechers)return alert("This Gekko is fetching market data for multiple stratrunners, stop these first.");confirm("Are you sure you want to stop this Gekko?")&&Object(c["b"])("stopGekko",{id:this.data.id},function(t,e){console.log("stopped gekko")})},deleteGekko:function(){var t=this;if(!this.isArchived)return alert("This Gekko is still running, stop it first!");confirm("Are you sure you want to delete this Gekko?")&&Object(c["b"])("deleteGekko",{id:this.data.id},function(e,a){t.$router.push({path:"/live-gekkos/"})})}}},m=h,v=(a("/Dpa"),a("KHd+")),p=Object(v["a"])(m,n,r,!1,null,null,null);e["a"]=p.exports},ngcj:function(t,e,a){"use strict";var n=a("EAJ1"),r=a.n(n);r.a},nzng:function(t,e,a){},pd3X:function(t,e,a){},pyMo:function(t,e,a){},q431:function(t,e,a){"use strict";var n=a("ydmZ"),r=a.n(n);r.a},qDq4:function(t,e,a){"use strict";var n=a("nzng"),r=a.n(n);r.a},r0f2:function(t,e,a){"use strict";a.d(e,"b",function(){return i}),a.d(e,"a",function(){return r});var n,r,i,s=window.CONFIG.ui,o="".concat(s.host).concat(80===s.port?"":":".concat(s.port)).concat(s.path);n=s.ssl?"https://".concat(o):"http://".concat(o),r=n+"api/",i=s.ssl?"wss://".concat(o,"api"):"ws://".concat(o,"api")},rloZ:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd"},[a("div",{staticClass:"px1"},[a("h3",[t._v("Paper trader")]),"closed"===t.toggle?a("a",{staticClass:"btn--primary",attrs:{href:"#"},on:{click:function(e){return e.preventDefault(),t.switchToggle(e)}}},[t._v("Change paper trader settings")]):t._e(),"open"===t.toggle?[a("p",[t._v("Settings:")]),a("textarea",{directives:[{name:"model",rawName:"v-model",value:t.rawPaperTraderParams,expression:"rawPaperTraderParams"}],staticClass:"params",domProps:{value:t.rawPaperTraderParams},on:{input:function(e){e.target.composing||(t.rawPaperTraderParams=e.target.value)}}}),t.rawPaperTraderParamsError?a("p",{staticClass:"bg--red p1"},[t._v(t._s(t.rawPaperTraderParamsError.message))]):t._e()]:t._e()],2)])},r=[],i=(a("LvDl"),a("wiDz")),s={created:function(){var t=this;Object(i["a"])("configPart/paperTrader",function(e,a){t.rawPaperTraderParams=a.part})},data:function(){return{rawPaperTraderParams:"",rawPaperTraderParamsError:!1,paperTraderParams:{},toggle:"closed"}},watch:{rawPaperTraderParams:function(){this.emitConfig()}},methods:{switchToggle:function(){"open"===this.toggle?this.toggle="closed":this.toggle="open"},emitConfig:function(){this.parseParams(),this.$emit("settings",this.paperTraderParams)},parseParams:function(){try{this.paperTraderParams=toml.parse(this.rawPaperTraderParams),this.paperTraderParams.reportRoundtrips=!0,this.rawPaperTraderParamsError=!1}catch(t){this.rawPaperTraderParamsError=t,this.paperTraderParams={}}}}},o=s,c=(a("0zrD"),a("KHd+")),u=Object(c["a"])(o,n,r,!1,null,null,null);e["a"]=u.exports},spvI:function(t,e,a){"use strict";a("Vd3H"),a("rGqo");var n=a("wiDz"),r={data:function(){return{datasets:[],datasetScanstate:"idle",unscannableMakets:[]}},methods:{scan:function(){var t=this;this.datasetScanstate="scanning",Object(n["b"])("scansets",{},function(e,a){t.datasetScanstate="scanned",t.unscannableMakets=a.errors;var n=[];a.datasets.forEach(function(t){t.ranges.forEach(function(e,a){n.push({exchange:t.exchange,currency:t.currency,asset:t.asset,from:moment.unix(e.from).utc(),to:moment.unix(e.to).utc(),id:t.exchange+t.asset+t.currency+a})})}),n=n.filter(function(t){if(t.to.diff(t.from,"hours")>2)return!0}),n=n.sort(function(t,e){var a=t.to.diff(t.from),n=e.to.diff(e.from);return an?1:0}).reverse(),t.datasets=n})}}};e["a"]=r},tr8f:function(t,e,a){"use strict";var n=a("h8ks"),r=a.n(n);r.a},tr8z:function(t,e,a){"use strict";var n=a("Ug4+"),r=a.n(n);r.a},uMTv:function(t,e,a){"use strict";var n=a("pyMo"),r=a.n(n);r.a},uXxc:function(t,e,a){},vf3E:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"contain roundtrips"},[a("h2",[t._v("Roundtrips")]),t.roundtrips.length?a("table",[a("thead",[t._m(0),t._l(t.roundtrips,function(e){return a("tr",[a("td",[t._v(t._s(t.fmt(e.entryAt)))]),a("td",[t._v(t._s(t.fmt(e.exitAt)))]),a("td",[t._v(t._s(t.diff(e.duration)))]),a("td",[t._v(t._s(t.round(e.entryBalance)))]),a("td",[t._v(t._s(t.round(e.exitBalance)))]),-1===Math.sign(e.pnl)?[a("td",{staticClass:"loss"},[t._v(t._s(Math.sign(e.pnl)*e.pnl.toFixed(2)))]),a("td",{staticClass:"loss"},[t._v(t._s(e.profit.toFixed(2))+"%")])]:[a("td",{staticClass:"profit"},[t._v(t._s(e.pnl.toFixed(2)))]),a("td",{staticClass:"profit"},[t._v(t._s(e.profit.toFixed(2))+"%")])]],2)})],2)]):t._e(),t.roundtrips.length?t._e():a("div",[a("p",[t._v("Not enough data to display")])])])},r=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("tr",[a("th",[t._v("Entry at (UTC)")]),a("th",[t._v("Exit at (UTC)")]),a("th",[t._v("Exposure")]),a("th",[t._v("Entry balance")]),a("th",[t._v("Exit balance")]),a("th",[t._v("P&L")]),a("th",[t._v("Profit")])])}],i={props:["roundtrips"],data:function(){return{}},methods:{diff:function(t){return moment.duration(t).humanize()},humanizeDuration:function(t){return window.humanizeDuration(t)},fmt:function(t){return moment(t).utc().format("YYYY-MM-DD HH:mm")},round:function(t){return(+t).toFixed(3)}}},s=i,o=(a("dW8q"),a("KHd+")),c=Object(o["a"])(s,n,r,!1,null,null,null);e["a"]=c.exports},vwRV:function(t,e,a){},w3yp:function(t,e,a){},wVP4:function(t,e,a){"use strict";var n=a("vwRV"),r=a.n(n);r.a},wVPO:function(t,e,a){"use strict";var n=a("uXxc"),r=a.n(n);r.a},wiDz:function(t,e,a){"use strict";a.d(e,"b",function(){return u}),a.d(e,"a",function(){return l});var n=a("24Ii"),r=a.n(n),i=a("TrxG"),s=a.n(i),o=a("r0f2"),c=function(t){return function(e,a){if(e)return t(e);if(!a.text)return t("no data");var n=JSON.parse(a.text);t(!1,n)}},u=function(t,e,a){r.a.post(o["a"]+t).use(s.a).send(e).end(c(a))},l=function(t,e){r.a.get(o["a"]+t).use(s.a).end(c(e))}},ydmZ:function(t,e,a){},yomC:function(t,e,a){"use strict";var n=a("EfWa"),r=a.n(n);r.a},yuKf:function(t,e,a){}});
-//# sourceMappingURL=app.0c714f34.js.map
\ No newline at end of file
+(function(t){function e(e){for(var n,s,o=e[0],c=e[1],u=e[2],d=0,f=[];d0?"profit":"loss"}}},s=i,o=(a("tr8z"),a("KHd+")),c=Object(o["a"])(s,n,r,!1,null,null,null);e["a"]=c.exports},"0zrD":function(t,e,a){"use strict";var n=a("jf14"),r=a.n(n);r.a},26:function(t,e,a){t.exports=a("Vtdi")},"2A8w":function(t,e,a){"use strict";var n=a("TDb6"),r=a.n(n);r.a},"2Yda":function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"contain my2"},[a("h3",[t._v("Start a new gekko")]),a("gekko-config-builder",{on:{config:t.updateConfig}}),a("div",{staticClass:"hr"}),t.config.valid?a("div",{staticClass:"txt--center"},[t.pendingStratrunner?t._e():a("a",{staticClass:"w100--s my1 btn--primary",attrs:{href:"#"},on:{click:function(e){return e.preventDefault(),t.start(e)}}},[t._v("Start")]),t.pendingStratrunner?a("spinner"):t._e()],1):t._e()],1)},r=[],i=(a("Z2Ku"),a("L9s1"),a("dRSK"),a("LvDl")),s=a.n(i),o=a("Kw5r"),c=a("wiDz"),u=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd contain"},[a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6 mx1"},[a("h3",[t._v("Market")]),a("market-picker",{attrs:{"only-tradable":t.isTradebot},on:{market:t.updateMarketConfig}})],1),a("div",{staticClass:"grd-row-col-3-6 mx1"},[a("type-picker",{on:{type:t.updateType}})],1)]),"market watcher"!==t.type?[a("div",{staticClass:"hr"}),a("strat-picker",{staticClass:"contain my2",on:{stratConfig:t.updateStrat}}),"paper trader"===t.type?a("div",{staticClass:"hr"}):t._e(),"paper trader"===t.type?a("paper-trader",{on:{settings:t.updatePaperTrader}}):t._e()]:t._e()],2)},l=[],d=(a("91GP"),a("6BxS")),f=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("h3",[t._v("Type")]),[a("label",{staticClass:"wrapper",attrs:{for:"type"}},[t._v("What do you want to do with gekko?")]),a("form",{staticClass:"radio grd"},t._l(t.types,function(e,n){return a("div",{staticClass:"grd-row m1"},[a("input",{directives:[{name:"model",rawName:"v-model",value:t.selectedTypeIndex,expression:"selectedTypeIndex"}],staticClass:"grd-row-col-1-6",attrs:{type:"radio"},domProps:{value:n,checked:t._q(t.selectedTypeIndex,n)},on:{change:function(e){t.selectedTypeIndex=n}}}),a("label",{staticClass:"grd-row-col-5-6",attrs:{for:n}},[t._v(t._s(e))])])}))]],2)},h=[],m={created:function(){this.emitType()},data:function(){return{types:["paper trader","market watcher","tradebot"],selectedTypeIndex:0}},methods:{emitType:function(){this.$emit("type",this.type)}},watch:{type:function(){this.emitType()}},computed:{type:function(){return this.types[this.selectedTypeIndex]}}},v=m,p=(a("wVPO"),a("KHd+")),g=Object(p["a"])(v,f,h,!1,null,null,null),_=g.exports,k=a("6Wkr"),y=a("rloZ"),w={created:function(){var t=this;Object(c["a"])("configPart/candleWriter",function(e,a){t.candleWriter=toml.parse(a.part)}),Object(c["a"])("configPart/performanceAnalyzer",function(e,a){t.performanceAnalyzer=toml.parse(a.part),t.performanceAnalyzer.enabled=!0})},data:function(){return{market:{},range:{},type:"",strat:{},paperTrader:{},candleWriter:{},performanceAnalyzer:{}}},components:{marketPicker:d["a"],typePicker:_,stratPicker:k["a"],paperTrader:y["a"]},computed:{isTradebot:function(){return"tradebot"===this.type},config:function(){var t={};return Object.assign(t,this.market,this.strat,{paperTrader:this.paperTrader},{candleWriter:this.candleWriter},{type:this.type},{performanceAnalyzer:this.performanceAnalyzer}),this.isTradebot&&(delete t.paperTrader,t.trader={enabled:!0}),t.valid=this.validConfig(t),t}},methods:{validConfig:function(t){if("market watcher"===t.type)return!0;if(!t.tradingAdvisor)return!1;if(s.a.isNaN(t.tradingAdvisor.candleSize))return!1;if(0==t.tradingAdvisor.candleSize)return!1;var e=t.tradingAdvisor.method;return!s.a.isEmpty(t[e])},updateMarketConfig:function(t){this.market=t,this.emitConfig()},updateType:function(t){this.type=t,this.emitConfig()},updateStrat:function(t){this.strat=t,this.emitConfig()},updatePaperTrader:function(t){this.paperTrader=t,this.paperTrader.enabled=!0,this.emitConfig()},emitConfig:function(){this.$emit("config",this.config)}}},b=w,C=(a("YEdZ"),Object(p["a"])(b,u,l,!1,null,null,null)),x=C.exports,S=a("MB/c"),T={components:{gekkoConfigBuilder:x,spinner:S["a"]},data:function(){return{pendingStratrunner:!1,config:{}}},computed:{gekkos:function(){return this.$store.state.gekkos},watchConfig:function(){var t=s.a.pick(this.config,"watch","candleWriter"),e=o["a"].util.extend({},t);return e.type="market watcher",e.mode="realtime",e},requiredHistoricalData:function(){if(this.config.tradingAdvisor&&this.config.valid){var t=this.config.tradingAdvisor;return t.candleSize*t.historySize}},gekkoConfig:function(){var t;if(this.existingMarketWatcher){if(this.requiredHistoricalData){var e=moment().utc().startOf("minute").subtract(this.requiredHistoricalData,"minutes").unix(),a=moment.utc(this.existingMarketWatcher.events.initial.candle.start).unix();t=moment.unix(Math.max(e,a)).utc().format()}else t=moment().utc().startOf("minute").format();var n=o["a"].util.extend({market:{type:"leech",from:t},mode:"realtime"},this.config);return n}},existingMarketWatcher:function(){var t=o["a"].util.extend({},this.watchConfig.watch);return s.a.find(this.gekkos,{config:{watch:t}})},exchange:function(){return this.watchConfig.watch.exchange},existingTradebot:function(){var t=this;return s.a.find(this.gekkos,function(e){return"tradebot"===e.logType&&e.config.watch.exchange===t.exchange})},availableApiKeys:function(){return this.$store.state.apiKeys}},watch:{existingMarketWatcher:function(t,e){var a=this;if(this.pendingStratrunner){var n=this.existingMarketWatcher;n.events.latest.candle&&(this.pendingStratrunner=!1,this.startGekko(function(t,e){a.$router.push({path:"/live-gekkos/".concat(e.id)})}))}}},methods:{updateConfig:function(t){this.config=t},start:function(){var t=this;if("tradebot"===this.config.type){if(this.existingTradebot){var e="You already have a tradebot running on this exchange";return e+=", you can only run one tradebot per exchange.",alert(e)}if(!this.availableApiKeys.includes(this.exchange))return alert("Please first configure API keys for this exchange in the config page.")}"market watcher"===this.config.type?this.existingMarketWatcher?(alert("This market is already being watched, redirecting you now..."),this.$router.push({path:"/live-gekkos/".concat(this.existingMarketWatcher.id)})):this.startWatcher(function(e,a){t.$router.push({path:"/live-gekkos/".concat(a.id)})}):this.existingMarketWatcher?this.startGekko(this.routeToGekko):this.startWatcher(function(e,a){t.pendingStratrunner=a.id})},routeToGekko:function(t,e){if(t||e.error)return console.error(t,e.error);this.$router.push({path:"/live-gekkos/".concat(e.id)})},startWatcher:function(t){Object(c["b"])("startGekko",this.watchConfig,t)},startGekko:function(t){Object(c["b"])("startGekko",this.gekkoConfig,t)}}},E=T,P=(a("2A8w"),Object(p["a"])(E,n,r,!1,null,null,null));e["a"]=P.exports},"2rY9":function(t,e,a){"use strict";var n=a("SWS5"),r=a.n(n);r.a},"5/bm":function(t,e,a){},"5shn":function(t,e,a){"use strict";var n=a("DlQD"),r=new n.Renderer;r.link=function(t,e,a){var n,r,i;return n=/^https?:\/\/.+$/.test(t),r=n||"newWindow"===e,i='"+a+""},n.setOptions({renderer:r}),e["a"]=n},"6BxS":function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("div",{staticClass:"mx1"},[a("label",{staticClass:"wrapper",attrs:{for:"exchange"}},[t._v("Exchange:")]),a("div",{staticClass:"custom-select button"},[a("select",{directives:[{name:"model",rawName:"v-model",value:t.exchange,expression:"exchange"}],on:{change:function(e){var a=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){var e="_value"in t?t._value:t.value;return e});t.exchange=e.target.multiple?a:a[0]}}},t._l(t.exchanges,function(e,n){return a("option",[t._v(t._s(n))])}))])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6 mx1"},[a("label",{attrs:{for:"currency"}},[t._v("Currency:")]),a("div",{staticClass:"custom-select button"},[a("select",{directives:[{name:"model",rawName:"v-model",value:t.currency,expression:"currency"}],on:{change:function(e){var a=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){var e="_value"in t?t._value:t.value;return e});t.currency=e.target.multiple?a:a[0]}}},t._l(t.currencies,function(e){return a("option",[t._v(t._s(e))])}))])]),a("div",{staticClass:"grd-row-col-3-6 mx1"},[a("label",{attrs:{for:"asset"}},[t._v("Asset:")]),a("div",{staticClass:"custom-select button"},[a("select",{directives:[{name:"model",rawName:"v-model",value:t.asset,expression:"asset"}],on:{change:function(e){var a=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){var e="_value"in t?t._value:t.value;return e});t.asset=e.target.multiple?a:a[0]}}},t._l(t.assets,function(e){return a("option",[t._v(t._s(e))])}))])])])])},r=[],i=(a("rGqo"),a("yt8O"),a("f3/d"),a("91GP"),a("LvDl")),s=a.n(i),o=(a("YIjs"),a("FhOJ"),a("wiDz"),{props:["onlyTradable","onlyImportable"],data:function(){return{exchange:"poloniex",currency:"USDT",asset:"BTC"}},created:function(){this.emitConfig()},computed:{exchanges:function(){var t=Object.assign({},this.$store.state.exchanges);return!s.a.isEmpty(t)&&(this.onlyTradable&&s.a.each(t,function(e,a){e.tradable||delete t[a]}),this.onlyImportable&&s.a.each(t,function(e,a){e.importable||delete t[a]}),t)},markets:function(){return this.exchanges?this.exchanges[this.exchange]:null},assets:function(){return this.exchanges?this.exchanges[this.exchange].markets[this.currency]:null},currencies:function(){return this.exchanges?s.a.keys(this.exchanges[this.exchange].markets):null},watchConfig:function(){return{watch:{exchange:this.exchange,currency:this.currency,asset:this.asset}}}},watch:{currency:function(){this.emitConfig()},asset:function(){this.emitConfig()},market:function(){this.emitConfig()},exchanges:function(){this.emitConfig()},exchange:function(){this.emitConfig()}},methods:{emitConfig:function(){this.$emit("market",this.watchConfig)}}}),c=o,u=a("KHd+"),l=Object(u["a"])(c,n,r,!1,null,null,null);e["a"]=l.exports},"6Wkr":function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd"},[a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6 px1"},[a("h3",[t._v("Strategy")]),a("div",[a("label",{staticClass:"wrapper",attrs:{for:"strat"}},[t._v("Strategy:")]),a("div",{staticClass:"custom-select button"},[a("select",{directives:[{name:"model",rawName:"v-model",value:t.strategy,expression:"strategy"}],on:{change:function(e){var a=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){var e="_value"in t?t._value:t.value;return e});t.strategy=e.target.multiple?a:a[0]}}},t._l(t.strategies,function(e){return a("option",[t._v(t._s(e.name))])}))])]),a("div",[a("label",{attrs:{for:"candleSize"}},[t._v("Candle Size")]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[a("input",{directives:[{name:"model",rawName:"v-model",value:t.rawCandleSize,expression:"rawCandleSize"}],domProps:{value:t.rawCandleSize},on:{input:function(e){e.target.composing||(t.rawCandleSize=e.target.value)}}})]),a("div",{staticClass:"grd-row-col-3-6 align"},[a("div",{staticClass:"custom-select button"},[a("select",{directives:[{name:"model",rawName:"v-model",value:t.candleSizeUnit,expression:"candleSizeUnit"}],on:{change:function(e){var a=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){var e="_value"in t?t._value:t.value;return e});t.candleSizeUnit=e.target.multiple?a:a[0]}}},[a("option",[t._v("minutes")]),a("option",[t._v("hours")]),a("option",[t._v("days")])])])])])]),a("div",[a("label",{attrs:{for:"historySize"}},[t._v("Warmup period (in "+t._s(t.rawCandleSize)+" "+t._s(t.singularCandleSizeUnit)+" candles):")]),a("input",{directives:[{name:"model",rawName:"v-model",value:t.historySize,expression:"historySize"}],domProps:{value:t.historySize},on:{input:function(e){e.target.composing||(t.historySize=e.target.value)}}}),a("em",{staticClass:"label-like"},[t._v("(will use "+t._s(t.humanizeDuration(t.candleSize*t.historySize*1e3*60))+" of data as history)")])])]),a("div",{staticClass:"grd-row-col-3-6 px1"},[a("div",[a("h3",[t._v("Parameters")]),a("p",[t._v(t._s(t.strategy)+" Parameters:")]),a("textarea",{directives:[{name:"model",rawName:"v-model",value:t.rawStratParams,expression:"rawStratParams"}],staticClass:"params",domProps:{value:t.rawStratParams},on:{input:function(e){e.target.composing||(t.rawStratParams=e.target.value)}}}),t.rawStratParamsError?a("p",{staticClass:"bg--red p1"},[t._v(t._s(t.rawStratParamsError.message))]):t._e()])])])])},r=[],i=(a("dRSK"),a("LvDl")),s=a.n(i),o=a("wiDz"),c={data:function(){return{strategies:[],candleSizeUnit:"hours",rawCandleSize:1,strategy:"MACD",historySize:10,rawStratParams:"",rawStratParamsError:!1,emptyStrat:!1,stratParams:{}}},created:function(){var t=this;Object(o["a"])("strategies",function(e,a){t.strategies=a,s.a.each(t.strategies,function(t){t.empty=""===t.params}),t.rawStratParams=s.a.find(t.strategies,{name:t.strategy}).params,t.emptyStrat=s.a.find(t.strategies,{name:t.strategy}).empty,t.emitConfig()})},watch:{strategy:function(t){t=s.a.find(this.strategies,{name:t}),this.rawStratParams=t.params,this.emptyStrat=t.empty,this.emitConfig()},candleSize:function(){this.emitConfig()},historySize:function(){this.emitConfig()},rawStratParams:function(){this.emitConfig()}},computed:{candleSize:function(){return"minutes"===this.candleSizeUnit?this.rawCandleSize:"hours"===this.candleSizeUnit?60*this.rawCandleSize:"days"===this.candleSizeUnit?60*this.rawCandleSize*24:void 0},singularCandleSizeUnit:function(){return this.candleSizeUnit.slice(0,-1)},config:function(){var t={tradingAdvisor:{enabled:!0,method:this.strategy,candleSize:+this.candleSize,historySize:+this.historySize}};return this.emptyStrat?t[this.strategy]={__empty:!0}:t[this.strategy]=this.stratParams,t}},methods:{humanizeDuration:function(t){return window.humanizeDuration(t)},emitConfig:function(){this.parseParams(),this.$emit("stratConfig",this.config)},parseParams:function(){try{this.stratParams=toml.parse(this.rawStratParams),this.rawStratParamsError=!1}catch(t){this.rawStratParamsError=t,this.stratParams={}}}}},u=c,l=(a("tr8f"),a("KHd+")),d=Object(l["a"])(u,n,r,!1,null,null,null);e["a"]=d.exports},"7LpK":function(t,e,a){},"8KAT":function(t,e,a){},"9RND":function(t){t.exports={name:"gekko",version:"0.6.2",description:"A bitcoin trading bot for auto trading at various exchanges",keywords:["trading","bot","bitcoin","TA","finance"],scripts:{test:"./node_modules/.bin/mocha test/*.js --recursive test -u tdd --reporter spec",start:"node ./gekko --config config.js --ui"},author:"Mike van Rossum ",dependencies:{"@slack/client":"^3.10.0",async:"2.1.2","bitcoin-co-id-update":"0.0.2",bitexthai:"^0.1.0","bitfinex-api-node":"^1.2.0",bitstamp:"^1.0.3",bitx:"^1.5.0","btc-china-fork":"0.0.6","btc-markets":"0.0.10",cexio:"0.0.x","co-fs":"^1.2.0",coingi:"^1.0.7",commander:"^2.13.0",gekko:"0.0.9","gemini-exchange-coffee-api":"2.0.6","humanize-duration":"^3.10.0",koa:"^1.2.0","koa-bodyparser":"^2.2.0","koa-cors":"0.0.16","koa-logger":"^1.3.0","koa-router":"^5.4.0","koa-static":"^2.0.0",lakebtc_nodejs:"0.1.x",lodash:"2.x",moment:"^2.20.1","node-wex":"^1.0.3","node.bittrex.api":"^0.4.3","okcoin-china":"0.0.7",opn:"^4.0.2","promisify-node":"^0.4.0","prompt-lite":"0.1.1",pushbullet:"1.4.3",quadrigacx:"0.0.7",relieve:"^2.1.3",retry:"^0.10.1",semver:"5.4.1",sqlite3:"^3.1.13","stats-lite":"^2.0.4","tiny-promisify":"^0.1.1",toml:"^2.3.0",twitter:"^1.7.1","zaif.jp":"^0.1.4"},devDependencies:{chai:"^4.1.2",mocha:"^5.0.0",proxyquire:"^1.7.10",request:"^2.83.0","request-promise":"^4.2.2",sinon:"^4.2.0"},engines:{node:">=8.11.2"},license:"MIT",repository:{type:"git",url:"https://github.com/askmike/gekko.git"}}},CyGp:function(t,e,a){"use strict";var n=a("jTvs"),r=a.n(n);r.a},EAJ1:function(t,e,a){},EDI0:function(t,e,a){},EfWa:function(t,e,a){},FhOJ:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("h3",[t._v("Daterange")]),a("div",[a("label",{attrs:{for:"from"}},[t._v("From")]),a("input",{directives:[{name:"model",rawName:"v-model",value:t.from,expression:"from"}],domProps:{value:t.from},on:{input:function(e){e.target.composing||(t.from=e.target.value)}}})]),a("div",[a("label",{attrs:{for:"to"}},[t._v("To")]),a("input",{directives:[{name:"model",rawName:"v-model",value:t.to,expression:"to"}],domProps:{value:t.to},on:{input:function(e){e.target.composing||(t.to=e.target.value)}}})])])},r=[],i=(a("LvDl"),a("wiDz"),{data:function(){return{from:"",to:""}},created:function(){var t=moment().startOf("minute"),e=t.clone().subtract(3,"months");this.to=this.fmt(t),this.from=this.fmt(e),this.emitRange()},methods:{fmtTs:function(t){return moment.unix(t).utc()},fmt:function(t){return t.utc().format("YYYY-MM-DD HH:mm")},emitRange:function(){this.$emit("range",{from:this.fmtTs(this.from),to:this.fmtTs(this.to)})},emitManualEntry:function(){if(this.from.length<"4"||this.from.length<"4")return this.$emit("range",{});var t=moment.utc(this.from),e=moment.utc(this.to);t.isValid()&&e.isValid()?this.$emit("range",{from:this.fmt(t),to:this.fmt(e)}):this.$emit("range",{})}},watch:{from:function(){this.emitManualEntry()},to:function(){this.emitManualEntry()},config:function(){this.scanned=!1},tab:function(){this.scanned=!1,this.$emit("range",{})},selectedRangeIndex:function(){var t=this.ranges[this.selectedRangeIndex];t&&this.emitRange(t)}}}),s=i,o=(a("TPp/"),a("KHd+")),c=Object(o["a"])(s,n,r,!1,null,null,null);e["a"]=c.exports},"H+ir":function(t,e,a){"use strict";var n=a("5/bm"),r=a.n(n);r.a},Kd0R:function(t,e,a){},"MB/c":function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement;t._self._c;return t._m(0)},r=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"spinner"},[a("div",{staticClass:"rect1"}),a("div",{staticClass:"rect2"}),a("div",{staticClass:"rect3"}),a("div",{staticClass:"rect4"})])}],i={},s=i,o=(a("q431"),a("KHd+")),c=Object(o["a"])(s,n,r,!1,null,null,null);e["a"]=c.exports},Pf3K:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{attrs:{id:"app"}},[a("top"),a("div",{staticClass:"fill"},[a("router-view",{staticClass:"view"})],1),a("bottom"),a("modal")],1)},r=[],i=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("div",{attrs:{id:"top"}}),t._m(0),a("nav",{staticClass:"bg--light-gray"},[a("div",{staticClass:"menu contain"},[a("router-link",{staticClass:"py1",attrs:{to:"/home"}},[t._v("Home")]),a("router-link",{staticClass:"py1",attrs:{to:"/live-gekkos"}},[t._v("Live Gekkos")]),a("router-link",{staticClass:"py1",attrs:{to:"/backtest"}},[t._v("Backtest")]),a("router-link",{staticClass:"py1",attrs:{to:"/data"}},[t._v("Local data")]),a("router-link",{staticClass:"py1",attrs:{to:"/config"}},[t._v("Config")]),a("a",{staticClass:"py1",attrs:{href:"https://gekko.wizb.it/docs/introduction/about_gekko.html",target:"_blank"}},[t._v("Documentation")])],1)])])},s=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("header",{staticClass:"bg--off-white grd"},[a("div",{staticClass:"contain grd-row"},[a("h3",{staticClass:"py1 px2 col-2"},[t._v("Gekko UI")])])])}],o={},c=o,u=(a("uMTv"),a("KHd+")),l=Object(u["a"])(c,i,s,!1,null,null,null),d=l.exports,f=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("footer",{staticClass:"p2 bg--off-white"},[a("div",{staticClass:"contain"},[t._m(0),a("p",[t._v("Using Gekko v"+t._s(t.version.gekko)+" and Gekko UI v"+t._s(t.version.ui)+".")])])])},h=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("p",[a("em",[t._v("Use Gekko at your own risk.")])])}],m=a("9RND"),v=a("kiQV"),p={data:function(){return{version:{gekko:m.version,ui:v.version}}}},g=p,_=Object(u["a"])(g,f,h,!1,null,null,null),k=_.exports,y=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.active?a("div",[a("div",{attrs:{id:"modal-background"}}),a("div",{staticClass:"modal",attrs:{id:"modal"}},[a("div",{staticClass:"modal-guts",domProps:{innerHTML:t._s(t.content)}})])]):t._e()},w=[],b=a("5shn"),C={disconnected:Object(b["a"])("\n\n## Disconnected\n\nSomething happened to either Gekko or the connection.\nPlease check the terminal where Gekko is running or\nyour network connection.\n\n*This message is shown when the UI is unable to open a websocket connection with the Gekko Server.*\n\n ")},x={computed:{active:function(){return!this.$store.state.warnings.connected},content:function(){return this.$store.state.warnings.connected?"":C.disconnected}}},S=x,T=(a("TfKe"),Object(u["a"])(S,y,w,!1,null,null,null)),E=T.exports,P={name:"app",components:{top:d,bottom:k,modal:E}},A=P,z=(a("ZL7j"),Object(u["a"])(A,n,r,!1,null,null,null));e["a"]=z.exports},Q2AE:function(t,e,a){"use strict";var n={};a.r(n),a.d(n,"addImport",function(){return d}),a.d(n,"syncImports",function(){return f}),a.d(n,"updateImport",function(){return h});var r={};a.r(r),a.d(r,"syncGekkos",function(){return g}),a.d(r,"addGekko",function(){return _}),a.d(r,"updateGekko",function(){return k}),a.d(r,"archiveGekko",function(){return y}),a.d(r,"errorGekko",function(){return w}),a.d(r,"deleteGekko",function(){return b});var i={};a.r(i),a.d(i,"setGlobalWarning",function(){return C});var s={};a.r(s),a.d(s,"syncApiKeys",function(){return x}),a.d(s,"syncExchanges",function(){return S});a("VRzm");var o=a("Kw5r"),c=a("L2JU"),u=a("LvDl"),l=a.n(u),d=(a("INYr"),function(t,e){return t.imports.push(e),t}),f=function(t,e){return t.imports=e,t},h=function(t,e){var a=t.imports.findIndex(function(t){return t.id===e.import_id}),n=t.imports[a];if(!n)return t;var r=o["a"].util.extend(n,e.updates);return o["a"].set(t.imports,a,r),t},m=a("oyJW"),v=a("yT7P"),p=a("c7Wa"),g=function(t,e){return e?(t.gekkos=e.live,t.archivedGekkos=e.archive,t):t},_=function(t,e){return t.gekkos=Object(v["a"])({},t.gekkos,Object(m["a"])({},e.id,e)),t},k=function(t,e){return e.id&&l.a.has(t.gekkos,e.id)?(t.gekkos=Object(v["a"])({},t.gekkos,Object(m["a"])({},e.id,p(t.gekkos[e.id],e.event))),t):console.error("cannot update unknown gekko..")},y=function(t,e){return l.a.has(t.gekkos,e)?(t.archivedGekkos=Object(v["a"])({},t.archivedGekkos,Object(m["a"])({},e,Object(v["a"])({},t.gekkos[e],{stopped:!0,active:!1}))),t.gekkos=l.a.omit(t.gekkos,e),t):console.error("cannot archive unknown gekko..")},w=function(t,e){return l.a.has(t.gekkos,e.id)?(t.gekkos=Object(v["a"])({},t.gekkos,Object(m["a"])({},e.id,Object(v["a"])({},t.gekkos[e.id],{errored:!0,errorMessage:e.error}))),t):console.error("cannot error unknown gekko..")},b=function(t,e){return l.a.has(t.archivedGekkos,e)?(t.archivedGekkos=l.a.omit(t.archivedGekkos,e),t):console.error("cannot delete unknown gekko..")},C=function(t,e){return t.warnings[e.key]=e.value,t},x=function(t,e){return o["a"].set(t,"apiKeys",e),t},S=function(t,e){return o["a"].set(t,"exchanges",e),t};o["a"].use(c["a"]);var T=!1,E={};l.a.merge(E,n),l.a.merge(E,r),l.a.merge(E,i),l.a.merge(E,s);e["a"]=new c["a"].Store({state:{warnings:{connected:!0},imports:[],gekkos:{},archivedGekkos:{},connection:{disconnected:!1,reconnected:!1},apiKeys:[],exchanges:{}},mutations:E,strict:T})},Q6eY:function(t,e,a){"use strict";var n=a("SDwi"),r=a.n(n);r.a},SDwi:function(t,e,a){},SWS5:function(t,e,a){},T0Mt:function(t,e,a){"use strict";var n=a("pd3X"),r=a.n(n);r.a},TDb6:function(t,e,a){},"TPp/":function(t,e,a){"use strict";var n=a("7LpK"),r=a.n(n);r.a},TfKe:function(t,e,a){"use strict";var n=a("ZpQ2"),r=a.n(n);r.a},UeuA:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:{clickable:!t.isClicked},attrs:{id:"chartWrapper"}},[a("div",{staticClass:"shield",on:{click:function(e){return e.preventDefault(),t.click(e)}}}),a("svg",{attrs:{id:"chart",width:"960",height:t.height}})])},r=[],i=a("k5N+"),s=a("LvDl"),o=a.n(s),c=function(t,e,a){var n=e.map(function(t){return{price:t.price,date:moment.utc(t.date).toDate(),action:t.action}}),r=t.map(function(t){return{price:t.open,date:moment.utc(t.start).toDate()}}),s=r.map(function(t){return+t.date}),c=r.map(function(t){return+t.price}),u=d3.select("#chart");u.attr("width",window.innerWidth-20);var l={top:20,right:20,bottom:110,left:40},d=a-l.top-l.bottom,f={top:a-70,right:20,bottom:30,left:40},h=+u.attr("width")-l.left-l.right,m=a-f.top-f.bottom,v=d3.scaleUtc().range([0,h]),p=d3.scaleUtc().range([0,h]),g=d3.scaleLinear().range([d,0]),_=d3.scaleLinear().range([m,0]),k=d3.axisBottom(v),y=d3.axisBottom(p),w=d3.axisLeft(g).ticks(a/50),b=d3.brushX().extent([[0,0],[h,m]]).on("brush end",A),C=d3.zoom().scaleExtent([1,100]).translateExtent([[0,0],[h,d]]).extent([[0,0],[h,d]]).on("zoom",D),x=d3.line().x(function(t){return v(t.date)}).y(function(t){return g(t.price)}),S=d3.line().x(function(t){return p(t.date)}).y(function(t){return _(t.price)});u.append("defs").append("clipPath").attr("id","clip").append("rect").attr("width",h).attr("height",d);var T=u.append("g").attr("class","focus").attr("transform","translate("+l.left+","+l.top+")"),E=u.append("g").attr("class","context").attr("transform","translate("+f.left+","+f.top+")");v.domain(d3.extent(r,function(t){return t.date})),g.domain([.99*d3.min(c),1.01*d3.max(c)]),p.domain(v.domain()),_.domain(g.domain()),T.append("path").datum(r).attr("class","line price").attr("d",x),T.append("g").attr("class","axis axis--x").attr("transform","translate(0,"+d+")").call(k),T.append("g").attr("class","axis axis--y").call(w),E.append("path").datum(r).attr("class","line").attr("d",S),E.append("g").attr("class","axis axis--x").attr("transform","translate(0,"+m+")").call(y);var P=u.append("g").attr("transform","translate("+l.left+","+l.top+")").selectAll("circle").data(n).enter().append("circle").attr("class",function(t){return t.action}).attr("cx",function(t){return v(t.date)}).attr("cy",function(t){return g(t.price)}).attr("r",5);E.append("g").selectAll("circle").data(n).enter().append("circle").attr("class",function(t){return t.action}).attr("cx",function(t){return p(t.date)}).attr("cy",function(t){return _(t.price)}).attr("r",3);function A(){if(!d3.event.sourceEvent||"zoom"!==d3.event.sourceEvent.type){var t=d3.event.selection||p.range();v.domain(t.map(p.invert,p)),z(v.domain()),u.select(".axis--y").call(w),P.attr("cx",function(t){return v(t.date)}).attr("cy",function(t){return g(t.price)}),T.select(".line").attr("d",x),T.select(".axis--x").call(k),u.select(".zoom").call(C.transform,d3.zoomIdentity.scale(h/(t[1]-t[0])).translate(-t[0],0))}}function z(t){var e=Object(i["a"])(t,2),a=e[0],n=e[1],r=o.a.sortedIndex(s,a),u=o.a.sortedIndex(s,n),l=c.slice(r,u);g.domain([.9995*d3.min(l),1.0005*d3.max(l)])}function D(){if(!d3.event.sourceEvent||"brush"!==d3.event.sourceEvent.type){var t=d3.event.transform;z(t.rescaleX(p).domain()),u.select(".axis--y").call(w),v.domain(t.rescaleX(p).domain()),T.select(".line").attr("d",x),P.attr("cx",function(t){return v(t.date)}).attr("cy",function(t){return g(t.price)}),T.select(".axis--x").call(k),E.select(".brush").call(b.move,v.range().map(t.invertX,t))}}E.append("g").attr("class","brush").call(b).call(b.move,v.range()),u.append("rect").attr("class","zoom").attr("width",h).attr("height",d).attr("transform","translate("+l.left+","+l.top+")").call(C)},u=(a("dRSK"),function(t){d3.select("#chart").append("text").attr("class","message").attr("x",150).attr("y",150).text(t)}),l=4,d={props:["data","height"],data:function(){return{isClicked:!1}},watch:{data:function(){this.render()}},created:function(){setTimeout(this.render,100)},beforeDestroy:function(){this.remove()},methods:{click:function(){this.isClicked=!0},render:function(){this.remove(),_.size(this.data.candles)0?"profit":"loss"}}},$=D,j=(a("WlXR"),Object(g["a"])($,P,A,!1,null,null,null)),O=j.exports,M=a("UeuA"),G=a("vf3E"),I={props:["result"],data:function(){return{}},methods:{},components:{roundtripTable:G["a"],resultSummary:O,chart:M["a"]},computed:{candles:function(){return{candles:this.result.stratCandles,trades:this.result.trades}}}},R=I,H=(a("wVP4"),Object(g["a"])(R,T,E,!1,null,null,null)),K=H.exports,Y={data:function(){return{backtestable:!1,backtestState:"idle",backtestResult:!1,config:!1}},methods:{check:function(t){if(this.config=t,!t.valid)return this.backtestable=!1;this.backtestable=!0},run:function(){var t=this;this.backtestState="fetching",Object(f["b"])("backtest",this.config,function(e,a){t.backtestState="fetched",t.backtestResult=a})}},components:{configBuilder:S,result:K,spinner:h["a"]}},W=Y,N=Object(g["a"])(W,n,r,!1,null,null,null);e["a"]=N.exports},c7Wa:function(t,e){const a=["marketUpdate"],n=["marketStart","stratWarmupCompleted"],r=["tradeCompleted","advice","roundtrip"],i=(t,e)=>{const i=e.type,s=e.payload;return t={...t,latestUpdate:new Date},r.includes(i)&&(t=t.events[i]?{...t,events:{...t.events,[i]:[...t.events[i],s]}}:{...t,events:{...t.events,[i]:[s]}}),t.events.initial[i]||a.includes(i)||(t={...t,events:{...t.events,initial:{...t.events.initial,[i]:s}}}),n.includes(i)||(t={...t,events:{...t.events,latest:{...t.events.latest,[i]:s}}}),t};t.exports=i},dHeD:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"contain"},[a("div",{staticClass:"text",domProps:{innerHTML:t._s(t.intro)}}),a("div",{staticClass:"hr"}),a("h2",[t._v("Available datasets")]),"idle"===t.datasetScanstate?a("div",{staticClass:"txt--center my2"},[a("a",{staticClass:"w100--s btn--primary scan-btn",attrs:{href:"#"},on:{click:function(e){return e.preventDefault(),t.scan(e)}}},[t._v("Scan available data")])]):t._e(),"scanning"===t.datasetScanstate?a("div",{staticClass:"txt--center my2"},[a("spinner")],1):t._e(),"scanned"===t.datasetScanstate?a("div",{staticClass:"my2"},[t.unscannableMakets.length?a("div",{staticClass:"bg--orange p1 warning my1"},[t.viewUnscannable?t._e():a("p",{staticClass:"clickable",on:{click:function(e){return e.preventDefault(),t.toggleUnscannable(e)}}},[t._v("Some markets were unscannable, click here for details.")]),t.viewUnscannable?[a("p",[t._v("Unable to find datasets in the following markets:")]),t._l(t.unscannableMakets,function(e){return a("div",{staticClass:"mx2"},[t._v("- "+t._s(e.exchange)+":"+t._s(e.currency)+":"+t._s(e.asset))])})]:t._e()],2):t._e(),t.datasets.length?[a("table",{staticClass:"full data"},[t._m(0),a("tbody",t._l(t.datasets,function(e){return a("tr",[a("td",[t._v(t._s(e.exchange))]),a("td",[t._v(t._s(e.currency))]),a("td",[t._v(t._s(e.asset))]),a("td",[t._v(t._s(t.fmt(e.from)))]),a("td",[t._v(t._s(t.fmt(e.to)))]),a("td",[t._v(t._s(t.humanizeDuration(e.to.diff(e.from))))])])}))])]:t._e(),t.datasets.length?t._e():[a("p",[t._v("It looks like you don't have any local data yet.")])]],2):t._e(),a("div",{staticClass:"my2"},[a("h2",[t._v("Import more data")]),a("p",{staticClass:"text"},[t._v("You can easily import more market data directly from exchanges using the importer.")]),a("router-link",{staticClass:"btn--primary",attrs:{to:"/data/importer"}},[t._v("Go to the importer!")])],1)])},r=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("exchange")]),a("th",[t._v("currency")]),a("th",[t._v("asset")]),a("th",[t._v("from")]),a("th",[t._v("to")]),a("th",[t._v("duration")])])])}],i=(a("VRzm"),a("MB/c")),s=a("5shn"),o=a("spvI"),c=Object(s["a"])("\n\n## Local data\n\nGekko needs local market data in order to backtest strategies. The local\ndata can also be used in a warmup period when running a strategy against a\nlive market.\n\n"),u={mixins:[o["a"]],components:{spinner:i["a"]},data:function(){return{intro:c,viewUnscannable:!1}},methods:{toggleUnscannable:function(){this.viewUnscannable=!0},humanizeDuration:function(t){return window.humanizeDuration(t)},fmt:function(t){return t.format("YYYY-MM-DD HH:mm")}}},l=u,d=(a("2rY9"),a("KHd+")),f=Object(d["a"])(l,n,r,!1,null,null,null);e["a"]=f.exports},dW8q:function(t,e,a){"use strict";var n=a("w3yp"),r=a.n(n);r.a},daul:function(t,e,a){"use strict";var n=a("Kd0R"),r=a.n(n);r.a},g298:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"contain my2"},[t.data&&!t.data.done?a("div",[a("h2",[t._v("Importing data..")]),a("div",{staticClass:"grd"},[a("div",{staticClass:"grd-row"},[t._m(0),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.data.watch.exchange))])]),a("div",{staticClass:"grd-row"},[t._m(1),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.data.watch.currency)+"/"+t._s(t.data.watch.asset))])])]),a("div",{staticClass:"grd"},[a("div",{staticClass:"grd-row"},[t._m(2),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.fmt(t.from)))])]),a("div",{staticClass:"grd-row"},[t._m(3),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.fmt(t.to)))])]),t.initialized?a("div",{staticClass:"grd-row"},[t._m(4),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.fmt(t.latest)))])]):t._e(),t.initialized?a("div",{staticClass:"grd-row"},[t._m(5),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.fromEnd))])]):t._e()]),t.initialized?t._e():a("spinner"),t.initialized?a("div",{staticClass:"contain"},[a("progressBar",{attrs:{progress:t.progress}})],1):t._e(),a("p",[a("em",[t._v("(you don't have to wait until the import is done,you can already start "),a("router-link",{attrs:{to:"/backtest"}},[t._v("backtesting")]),t._v(").")],1)])],1):t._e(),t.data&&t.data.done?a("div",{staticClass:"txt--center"},[a("h2",[t._v("Import done")]),a("p",[t._v(" Go and "),a("router-link",{attrs:{to:"/backtest"}},[t._v("backtest")]),t._v(" with your new data!")],1)]):t._e(),t.data?t._e():a("div",{staticClass:"txt--center"},[a("h2",[t._v("ERROR: Unknown import")]),a("p",[a("I",[t._v("don't know this import..")])],1)])])},r=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd-row-col-2-6"},[a("strong",[t._v("Market:")])])},function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd-row-col-2-6"},[a("strong",[t._v("Currency/Asset:")])])},function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd-row-col-2-6"},[a("strong",[t._v("From:")])])},function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd-row-col-2-6"},[a("strong",[t._v("To:")])])},function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd-row-col-2-6"},[a("strong",[t._v("Imported data until:")])])},function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd-row-col-2-6"},[a("strong",[t._v("Remaining:")])])}],i=(a("dRSK"),a("LvDl")),s=a.n(i),o=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.progress?a("div",{staticClass:"progressbarWrapper"},[a("p",[a("strong",[t._v(t._s(t.round(t.progress))+"%")])]),a("div",{staticClass:"progressbar"},[a("div",{style:{width:t.progress+"%"}})])]):t._e()},c=[],u={props:["progress"],methods:{round:function(t){return(+t).toFixed(2)}}},l=u,d=(a("/vJE"),a("KHd+")),f=Object(d["a"])(l,o,c,!1,null,null,null),h=f.exports,m=a("MB/c"),v={components:{progressBar:h,spinner:m["a"]},computed:{data:function(){return s.a.find(this.$store.state.imports,{id:this.$route.params.id})},initialized:function(){if(this.data&&this.latest.isValid())return!0},latest:function(){if(this.data)return this.mom(this.data.latest)},fromEndMs:function(){if(this.data)return this.to.diff(this.latest)},fromEnd:function(){return this.latest?humanizeDuration(this.fromEndMs):"LOADING"},from:function(){if(this.data)return this.mom(this.data.from)},to:function(){if(this.data)return this.mom(this.data.to)},timespan:function(){if(this.data)return this.to.diff(this.from)},progress:function(){if(this.data){var t=this.timespan-this.fromEndMs;return 100*t/this.timespan}}},methods:{fmt:function(t){return t.format("YYYY-MM-DD HH:mm:ss")},mom:function(t){return moment.utc(t)}}},p=v,g=(a("qDq4"),Object(d["a"])(p,n,r,!1,null,null,null));e["a"]=g.exports},gYof:function(t,e,a){"use strict";a("LvDl");var n=a("Kw5r"),r=a("r0f2"),i=(a("L2JU"),a("wiDz")),s=a("Q2AE"),o=function(){Object(i["a"])("imports",function(t,e){s["a"].commit("syncImports",e)})},c=function(){C.$on("import_update",function(t){s["a"].commit("updateImport",t)})},u=function(){o(),c()},l=function(){Object(i["a"])("gekkos",function(t,e){var a=e;s["a"].commit("syncGekkos",a)})},d=function(){C.$on("gekko_new",function(t){return s["a"].commit("addGekko",t.state)}),C.$on("gekko_event",function(t){return s["a"].commit("updateGekko",t)}),C.$on("gekko_archived",function(t){return s["a"].commit("archiveGekko",t.id)}),C.$on("gekko_error",function(t){return s["a"].commit("errorGekko",t)}),C.$on("gekko_deleted",function(t){return s["a"].commit("deleteGekko",t.id)})},f=function(){l(),d()},h=function(){},m=function(){C.$on("WS_STATUS_CHANGE",function(t){return s["a"].commit("setGlobalWarning",{key:"connected",value:t.connected})})},v=function(){h(),m()},p=a("k5N+"),g=(a("rGqo"),function(t){if(!t)return{};var e=t,a={};return e.forEach(function(t){a[t.slug]=a[t.slug]||{markets:{}},t.markets.forEach(function(e){var n=Object(p["a"])(e["pair"],2),r=n[0],i=n[1];a[t.slug].markets[r]=a[t.slug].markets[r]||[],a[t.slug].markets[r].push(i)}),"exchangeMaxHistoryAge"in t&&(a[t.slug].exchangeMaxHistoryAge=t.exchangeMaxHistoryAge),a[t.slug].importable=!!t.providesFullHistory,a[t.slug].tradable=!!t.tradable,a[t.slug].requires=t.requires}),a}),_=function(){Object(i["a"])("apiKeys",function(t,e){s["a"].commit("syncApiKeys",e)}),Object(i["a"])("exchanges",function(t,e){s["a"].commit("syncExchanges",g(e))})},k=function(){C.$on("apiKeys",function(t){s["a"].commit("syncApiKeys",t.exchanges)})},y=function(){_(),k()},w=function(){u(),f(),v(),y()};a.d(e,"a",function(){return C}),a.d(e,"b",function(){return S});var b=null,C=new n["a"];C.$on("gekko_update",function(t){return console.log(t)}),C.$on("import_update",function(t){return console.log(t)}),C.$on("import_error",function(t){alert("IMPORT ERROR: "+t.error)});var x={connected:!1},S=function(){b=new ReconnectingWebSocket(r["b"],null,{maxReconnectInterval:4e3}),setTimeout(function(){x.connected||(w(),C.$emit("WS_STATUS_CHANGE",x))},500),b.onopen=function(){x.connected||(x.connected=!0,C.$emit("WS_STATUS_CHANGE",x),w())},b.onclose=function(){x.connected&&(x.connected=!1,C.$emit("WS_STATUS_CHANGE",x))},b.onerror=function(){x.connected&&(x.connected=!1,C.$emit("WS_STATUS_CHANGE",x))},b.onmessage=function(t){var e=JSON.parse(t.data);C.$emit(e.type,e)}}},h8ks:function(t,e,a){},hGnM:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"contain py2"},[a("h3",[t._v("Market watchers")]),t.watchers.length?t._e():a("div",{staticClass:"text"},[a("p",[t._v("You don't have any market watchers.")])]),t.watchers.length?a("table",{staticClass:"full clickable"},[t._m(0),a("tbody",t._l(t.watchers,function(e){return a("tr",{staticClass:"clickable",on:{click:function(a){t.$router.push({path:"/live-gekkos/"+e.id})}}},[a("td",[t._v(t._s(e.config.watch.exchange))]),a("td",[t._v(t._s(e.config.watch.currency))]),a("td",[t._v(t._s(e.config.watch.asset))]),a("td",[t._v(t._s(t.status(e)))]),a("td",[e.events.initial.candle?[t._v(t._s(t.fmt(e.events.initial.candle.start)))]:t._e()],2),a("td",[e.events.latest.candle?[t._v(t._s(t.fmt(e.events.latest.candle.start)))]:t._e()],2),a("td",[e.events.initial.candle&&e.events.latest.candle?[t._v(t._s(t.timespan(e.events.latest.candle.start,e.events.initial.candle.start)))]:t._e()],2)])}))]):t._e(),a("h3",[t._v("Strat runners")]),t.stratrunners.length?t._e():a("div",{staticClass:"text"},[a("p",[t._v("You don't have any stratrunners.")])]),t.stratrunners.length?a("table",{staticClass:"full"},[t._m(1),a("tbody",t._l(t.stratrunners,function(e){return a("tr",{staticClass:"clickable",on:{click:function(a){t.$router.push({path:"/live-gekkos/"+e.id})}}},[a("td",[t._v(t._s(e.config.watch.exchange))]),a("td",[t._v(t._s(e.config.watch.currency))]),a("td",[t._v(t._s(e.config.watch.asset))]),a("td",[t._v(t._s(t.status(e)))]),a("td",[e.events.initial.candle&&e.events.latest.candle?[t._v(t._s(t.timespan(e.events.latest.candle.start,e.events.initial.candle.start)))]:t._e()],2),a("td",[t._v(t._s(e.config.tradingAdvisor.method))]),a("td",[t.report(e)?t._e():[t._v("0")],t.report(e)?[t._v(t._s(t.round(t.report(e).profit))+" "+t._s(t.report(e).currency))]:t._e()],2),a("td",[t._v(t._s(e.logType))]),a("td",[e.events.tradeCompleted?t._e():[t._v("0")],e.events.tradeCompleted?[t._v(t._s(e.events.tradeCompleted.length))]:t._e()],2)])}))]):t._e(),a("div",{staticClass:"hr"}),a("h2",[t._v("Start a new live Gekko")]),a("router-link",{staticClass:"btn--primary",attrs:{to:"/live-gekkos/new"}},[t._v("Start a new live Gekko!")])],1)},r=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("exchange")]),a("th",[t._v("currency")]),a("th",[t._v("asset")]),a("th",[t._v("status")]),a("th",[t._v("started at")]),a("th",[t._v("last update")]),a("th",[t._v("duration")])])])},function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("exchange")]),a("th",[t._v("currency")]),a("th",[t._v("asset")]),a("th",[t._v("status")]),a("th",[t._v("duration")]),a("th",[t._v("strategy")]),a("th",[t._v("PnL")]),a("th",[t._v("type")]),a("th",[t._v("trades")])])])}],i=(a("a1Th"),a("rGqo"),a("yt8O"),a("VRzm"),{created:function(){var t=this;this.timer=setInterval(function(){t.now=moment()},1e3)},destroyed:function(){clearTimeout(this.timer)},data:function(){return{timer:!1,now:moment()}},computed:{stratrunners:function(){return _.values(this.$store.state.gekkos).concat(_.values(this.$store.state.archivedGekkos)).filter(function(t){return"papertrader"===t.logType||"tradebot"===t.logType})},watchers:function(){return _.values(this.$store.state.gekkos).concat(_.values(this.$store.state.archivedGekkos)).filter(function(t){return"watcher"===t.logType})}},methods:{humanizeDuration:function(t){return window.humanizeDuration(t)},moment:function(t){function e(e){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}(function(t){return moment.utc(t)}),fmt:function(t){return moment.utc(t).format("YYYY-MM-DD HH:mm")},round:function(t){return(+t).toFixed(3)},timespan:function(t,e){return this.humanizeDuration(this.moment(t).diff(this.moment(e)))},status:function(t){return t.errored?"errored":t.stopped?"stopped":t.active?"running":void console.log("unknown state:",t)},report:function(t){return _.get(t,"events.latest.performanceReport")}}}),s=i,o=(a("daul"),a("KHd+")),c=Object(o["a"])(s,n,r,!1,null,null,null);e["a"]=c.exports},jTvs:function(t,e,a){},jVW9:function(t,e,a){},jf14:function(t,e,a){},jloR:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"contain my2"},[a("div",{staticClass:"text",domProps:{innerHTML:t._s(t.intro)}}),a("div",{staticClass:"hr"}),a("h3",[t._v("Currently running imports")]),0===t.imports.length?a("p",[t._v("You currently don't have any imports running.")]):t._e(),t.imports.length?a("ul",t._l(t.imports,function(e){return a("li",[a("router-link",{attrs:{to:"/data/importer/import/"+e.id}},[t._v(t._s(e.watch.exchange)+":"+t._s(e.watch.currency)+"/"+t._s(e.watch.asset))])],1)})):t._e(),a("div",{staticClass:"hr"}),a("h3",[t._v("Start a new import")]),a("import-config-builder",{on:{config:t.updateConfig}}),a("div",{staticClass:"hr"}),a("div",{staticClass:"txt--center"},[a("a",{staticClass:"w100--s my1 btn--primary",attrs:{href:"#"},on:{click:function(e){return e.preventDefault(),t.run(e)}}},[t._v("Import")])])],1)},r=[],i=a("wiDz"),s=a("MB/c"),o=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd contain"},[a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6 mx1"},[a("h3",[t._v("Market")]),a("market-picker",{attrs:{"only-importable":"true"},on:{market:t.updateMarketConfig}})],1),a("div",{staticClass:"grd-row-col-3-6 mx1"},[a("range-creator",{on:{range:t.updateRange}})],1)])])},c=[],u=(a("91GP"),a("6BxS")),l=a("FhOJ"),d=(a("LvDl"),{data:function(){return{market:{},range:{}}},components:{marketPicker:u["a"],rangeCreator:l["a"]},computed:{config:function(){var t={};return Object.assign(t,this.market,{importer:{daterange:this.range}},{candleWriter:{enabled:!0}}),t}},methods:{updateMarketConfig:function(t){this.market=t,this.emitConfig()},updateRange:function(t){this.range=t,this.emitConfig()},emitConfig:function(){this.$emit("config",this.config)}}}),f=d,h=(a("H+ir"),a("KHd+")),m=Object(h["a"])(f,o,c,!1,null,null,null),v=m.exports,p=a("5shn"),g=Object(p["a"])("\n\n## Import data\n\nThe importer can download historical market data directly from the exchange.\n\n"),_={components:{importConfigBuilder:v,spinner:s["a"]},data:function(){return{intro:g,config:{}}},computed:{imports:function(){return this.$store.state.imports}},methods:{daysApart:function(t){var e=moment(t.to),a=moment(t.from);return e.diff(a,"days")},updateConfig:function(t){this.config=t},run:function(){var t=this,e=this.daysApart(this.config.importer.daterange);if(e<1)return alert("You can only import at least one day of data..");var a=this.$store.state.exchanges[this.config.watch.exchange];if("exchangeMaxHistoryAge"in a&&moment(this.config.importer.daterange.from) 1%","last 2 versions","not ie <= 8"]}},ldlP:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("section",{staticClass:"contain grd-row"},[a("div",{staticClass:"grd-row-col-3-6",domProps:{innerHTML:t._s(t.left)}}),t._m(0)])},r=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd-row-col-3-6 txt--center"},[a("img",{attrs:{src:"/static/gekko.jpg"}}),a("p",[a("em",[t._v("The most valuable commodity I know of is information.")])])])}],i=a("5shn"),s=Object(i["a"])("\n\n## Gekko\n\nGekko is a Bitcoin trading bot and backtesting platform that\nconnects to popular Bitcoin exchanges. It is written in javascript\nand runs on nodejs.\n\n[Find out more](https://gekko.wizb.it/).\n\n*Gekko is 100% open source and free, if you paid for this you have been scammed.*\n\n"),o={data:function(){return{left:s}}},c=o,u=a("KHd+"),l=Object(u["a"])(c,n,r,!1,null,null,null);e["a"]=l.exports},mf2E:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"my2"},[t.data?t._e():a("div",{staticClass:"contain"},[a("h1",[t._v("Unknown Gekko instance")]),a("p",[t._v("Gekko doesn't know what gekko this is...")])]),t.data?a("div",[a("h2",{staticClass:"contain"},[t._v("Gekko "+t._s(t.type))]),t.isArchived?a("div",{staticClass:"contain brdr--mid-gray p1 bg--orange"},[t._v("This is an archived Gekko, it is currently not running anymore.")]):t._e(),t.data.errorMessage?a("div",{staticClass:"contain brdr--mid-gray p1 bg--orange"},[t._v("This is Gekko crashed with the following error: "+t._s(t.data.errorMessage))]):t._e(),a("div",{staticClass:"grd contain"},[a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[a("h3",[t._v("Market")]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Exchange")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.config.watch.exchange))])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Currency")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.config.watch.currency))])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Asset")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.config.watch.asset))])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Type")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.type))])])]),a("div",{staticClass:"grd-row-col-3-6"},[a("h3",[t._v("Runtime")]),t.isLoading?a("spinner"):t._e(),t.isLoading?t._e():[t.initialEvents.candle?a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-2-6"},[t._v("Watching since")]),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.fmt(t.initialEvents.candle.start)))])]):t._e(),t.latestEvents.candle?a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-2-6"},[t._v("Received data until")]),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.fmt(t.latestEvents.candle.start)))])]):t._e(),t.latestEvents.candle?a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-2-6"},[t._v("Data spanning")]),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.humanizeDuration(t.moment(t.latestEvents.candle.start).diff(t.moment(t.initialEvents.candle.start)))))])]):t._e(),t.isStratrunner?[a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-2-6"},[t._v("Amount of trades")]),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.trades.length))])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-2-6"},[t._v("Candle size")]),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.config.tradingAdvisor.candleSize))])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-2-6"},[t._v("History size")]),a("div",{staticClass:"grd-row-col-4-6"},[t._v(t._s(t.config.tradingAdvisor.historySize))])])]:t._e()]],2)]),t.warmupRemaining?a("div",{staticClass:"contain brdr--mid-gray p1 bg--orange"},[t._v("This stratrunner is still warming up for the next "),a("i",[t._v(t._s(t.warmupRemaining.replace(","," and ")))]),t._v(", it will not trade until it is warmed up.")]):t._e(),t.isStratrunner?a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[a("h3",[t._v("Strategy")]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Name")]),a("div",{staticClass:"grd-row-col-3-6"},[a("strong",[t._v(t._s(t.stratName))])])]),t._v("Parameters"),a("pre",[t._v(t._s(t.stratParams))])]),a("div",{staticClass:"grd-row-col-3-6"},[a("h3",[t._v("Profit report")]),t.report?t._e():[a("p",[t.isArchived?a("em",[t._v("This Gekko never executed a trade..")]):t._e(),t.isArchived?t._e():a("em",[t._v("Waiting for at least one trade..")])])],t.report?[a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Start balance")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.round(t.report.startBalance)))])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Current balance")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.round(t.report.balance)))])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Market")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.round(t.report.market/100*t.report.startPrice))+" "+t._s(t.config.watch.currency)+" ("+t._s(t.round(t.report.market))+" %)")])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Profit")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.round(t.report.profit))+" "+t._s(t.config.watch.currency)+" ("+t._s(t.round(t.report.relativeProfit))+" %)")])]),a("div",{staticClass:"grd-row"},[a("div",{staticClass:"grd-row-col-3-6"},[t._v("Alpha")]),a("div",{staticClass:"grd-row-col-3-6"},[t._v(t._s(t.round(t.report.alpha))+" "+t._s(t.config.watch.currency))])])]:t._e()],2)]):t._e(),!t.isStratrunner||t.watcher||t.isArchived?t._e():a("p",[t._v("WARNING: stale gekko, not attached to a watcher, please report "),a("a",{attrs:{href:"https://github.com/askmike/gekko/issues"}},[t._v("here")]),t._v(".")]),t.isArchived?t._e():a("p",[a("a",{staticClass:"w100--s my1 btn--red",on:{click:t.stopGekko}},[t._v("Stop Gekko")])]),t.isArchived?a("p",[a("a",{staticClass:"w100--s my1 btn--red",on:{click:t.deleteGekko}},[t._v("Delete Gekko")])]):t._e(),t.isStratrunner&&t.watcher&&!t.isArchived?a("p",[a("em",[t._v("This gekko gets market data from "),a("router-link",{attrs:{to:"/live-gekkos/"+t.watcher.id}},[t._v("this market watcher")])],1),t._v(".")]):t._e()]),t.isLoading?t._e():[a("h3",{staticClass:"contain"},[t._v("Market graph")]),"fetching"===t.candleFetch?a("spinner"):t._e(),"fetched"===t.candleFetch?[a("chart",{attrs:{data:t.chartData,height:300}})]:t._e(),t.isStratrunner?a("roundtrips",{attrs:{roundtrips:t.roundtrips}}):t._e()]],2):t._e()])},r=[],i=(a("a1Th"),a("dRSK"),a("Kw5r")),s=a("LvDl"),o=a.n(s),c=a("wiDz"),u=a("MB/c"),l=a("UeuA"),d=a("vf3E"),f=a("0Bu0"),h={created:function(){this.isLoading||this.getCandles()},components:{spinner:u["a"],chart:l["a"],paperTradeSummary:f["a"],roundtrips:d["a"]},data:function(){return{candleFetch:"idle",candles:!1}},computed:{id:function(){return this.$route.params.id},gekkos:function(){return this.$store.state.gekkos},archivedGekkos:function(){return this.$store.state.archivedGekkos},data:function(){return!!this.gekkos&&(o.a.has(this.gekkos,this.id)?this.gekkos[this.id]:!!o.a.has(this.archivedGekkos,this.id)&&this.archivedGekkos[this.id])},config:function(){return o.a.get(this,"data.config")},latestEvents:function(){return o.a.get(this,"data.events.latest")},initialEvents:function(){return o.a.get(this,"data.events.initial")},trades:function(){return o.a.get(this,"data.events.tradeCompleted")||[]},roundtrips:function(){return o.a.get(this,"data.events.roundtrip")||[]},isLive:function(){return o.a.has(this.gekkos,this.id)},type:function(){return this.data.logType},isStratrunner:function(){return"watcher"!==this.type},isArchived:function(){return this.data.stopped},warmupRemaining:function(){if(!this.isStratrunner)return!1;if(this.isArchived)return!1;if(this.initialEvents.stratWarmupCompleted)return!1;if(!this.initialEvents.candle)return!1;var t=o.a.get(this.config,"tradingAdvisor.candleSize")*o.a.get(this.config,"tradingAdvisor.historySize");return humanizeDuration(moment(this.initialEvents.candle.start).add(t,"m").diff(moment()),{largest:2})},chartData:function(){return{candles:this.candles,trades:this.trades}},report:function(){return o.a.get(this.latestEvents,"performanceReport")},stratName:function(){if(this.data)return this.data.config.tradingAdvisor.method},stratParams:function(){if(!this.data)return"Loading...";var t=i["a"].util.extend({},this.data.config[this.stratName]);return delete t.__empty,o.a.isEmpty(t)?"No parameters":JSON.stringify(t,null,4)},isLoading:function(){return!this.data||(!o.a.get(this.data,"events.initial.candle")||!o.a.get(this.data,"events.latest.candle"))},watcher:function(){var t=this;if(!this.isStratrunner)return!1;var e=i["a"].util.extend({},this.data.config.watch);return o.a.find(this.gekkos,function(a){return a.id!==t.id&&o.a.isEqual(e,a.config.watch)})},hasLeechers:function(){var t=this;if(this.isStratrunner)return!1;var e=i["a"].util.extend({},this.data.config.watch);return o.a.find(this.gekkos,function(a){return a.id!==t.id&&o.a.isEqual(e,a.config.watch)})}},watch:{"data.events.latest.candle.start":function(){setTimeout(this.getCandles,o.a.random(100,2e3))}},methods:{round:function(t){return(+t).toFixed(5)},humanizeDuration:function(t,e){return window.humanizeDuration(t,e)},moment:function(t){function e(e){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}(function(t){return moment.utc(t)}),fmt:function(t){return moment.utc(t).format("YYYY-MM-DD HH:mm")},getCandles:function(){var t=this;if(!this.isLoading&&"fetching"!==this.candleFetch){this.candleFetch="fetching";var e=this.data.events.latest.candle.start,a=this.data.events.initial.candle.start,n=1;"watcher"!==this.type&&(n=this.data.config.tradingAdvisor.candleSize);var r={watch:this.data.config.watch,daterange:{to:e,from:a},candleSize:n};setTimeout(function(){Object(c["b"])("getCandles",r,function(e,a){if(t.candleFetch="fetched",!a||a.error||!o.a.isArray(a))return console.log(a);t.candles=a.map(function(t){return t.start=moment.unix(t.start).utc().format(),t})})},o.a.random(150,2500))}},stopGekko:function(){if(this.hasLeechers)return alert("This Gekko is fetching market data for multiple stratrunners, stop these first.");confirm("Are you sure you want to stop this Gekko?")&&Object(c["b"])("stopGekko",{id:this.data.id},function(t,e){console.log("stopped gekko")})},deleteGekko:function(){var t=this;if(!this.isArchived)return alert("This Gekko is still running, stop it first!");confirm("Are you sure you want to delete this Gekko?")&&Object(c["b"])("deleteGekko",{id:this.data.id},function(e,a){t.$router.push({path:"/live-gekkos/"})})}}},m=h,v=(a("/Dpa"),a("KHd+")),p=Object(v["a"])(m,n,r,!1,null,null,null);e["a"]=p.exports},ngcj:function(t,e,a){"use strict";var n=a("EAJ1"),r=a.n(n);r.a},nzng:function(t,e,a){},pd3X:function(t,e,a){},pyMo:function(t,e,a){},q431:function(t,e,a){"use strict";var n=a("ydmZ"),r=a.n(n);r.a},qDq4:function(t,e,a){"use strict";var n=a("nzng"),r=a.n(n);r.a},r0f2:function(t,e,a){"use strict";a.d(e,"b",function(){return i}),a.d(e,"a",function(){return r});var n,r,i,s=window.CONFIG.ui,o="".concat(s.host).concat(80===s.port?"":":".concat(s.port)).concat(s.path);n=s.ssl?"https://".concat(o):"http://".concat(o),r=n+"api/",i=s.ssl?"wss://".concat(o,"api"):"ws://".concat(o,"api")},rloZ:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"grd"},[a("div",{staticClass:"px1"},[a("h3",[t._v("Paper trader")]),"closed"===t.toggle?a("a",{staticClass:"btn--primary",attrs:{href:"#"},on:{click:function(e){return e.preventDefault(),t.switchToggle(e)}}},[t._v("Change paper trader settings")]):t._e(),"open"===t.toggle?[a("p",[t._v("Settings:")]),a("textarea",{directives:[{name:"model",rawName:"v-model",value:t.rawPaperTraderParams,expression:"rawPaperTraderParams"}],staticClass:"params",domProps:{value:t.rawPaperTraderParams},on:{input:function(e){e.target.composing||(t.rawPaperTraderParams=e.target.value)}}}),t.rawPaperTraderParamsError?a("p",{staticClass:"bg--red p1"},[t._v(t._s(t.rawPaperTraderParamsError.message))]):t._e()]:t._e()],2)])},r=[],i=(a("LvDl"),a("wiDz")),s={created:function(){var t=this;Object(i["a"])("configPart/paperTrader",function(e,a){t.rawPaperTraderParams=a.part})},data:function(){return{rawPaperTraderParams:"",rawPaperTraderParamsError:!1,paperTraderParams:{},toggle:"closed"}},watch:{rawPaperTraderParams:function(){this.emitConfig()}},methods:{switchToggle:function(){"open"===this.toggle?this.toggle="closed":this.toggle="open"},emitConfig:function(){this.parseParams(),this.$emit("settings",this.paperTraderParams)},parseParams:function(){try{this.paperTraderParams=toml.parse(this.rawPaperTraderParams),this.paperTraderParams.reportRoundtrips=!0,this.rawPaperTraderParamsError=!1}catch(t){this.rawPaperTraderParamsError=t,this.paperTraderParams={}}}}},o=s,c=(a("0zrD"),a("KHd+")),u=Object(c["a"])(o,n,r,!1,null,null,null);e["a"]=u.exports},spvI:function(t,e,a){"use strict";a("Vd3H"),a("rGqo");var n=a("wiDz"),r={data:function(){return{datasets:[],datasetScanstate:"idle",unscannableMakets:[]}},methods:{scan:function(){var t=this;this.datasetScanstate="scanning",Object(n["b"])("scansets",{},function(e,a){t.datasetScanstate="scanned",t.unscannableMakets=a.errors;var n=[];a.datasets.forEach(function(t){t.ranges.forEach(function(e,a){n.push({exchange:t.exchange,currency:t.currency,asset:t.asset,from:moment.unix(e.from).utc(),to:moment.unix(e.to).utc(),id:t.exchange+t.asset+t.currency+a})})}),n=n.filter(function(t){if(t.to.diff(t.from,"hours")>2)return!0}),n=n.sort(function(t,e){var a=t.to.diff(t.from),n=e.to.diff(e.from);return an?1:0}).reverse(),t.datasets=n})}}};e["a"]=r},tr8f:function(t,e,a){"use strict";var n=a("h8ks"),r=a.n(n);r.a},tr8z:function(t,e,a){"use strict";var n=a("Ug4+"),r=a.n(n);r.a},uMTv:function(t,e,a){"use strict";var n=a("pyMo"),r=a.n(n);r.a},uXxc:function(t,e,a){},vf3E:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"contain roundtrips"},[a("h2",[t._v("Roundtrips")]),t.roundtrips.length?a("table",[a("thead",[t._m(0),t._l(t.roundtrips,function(e){return a("tr",[a("td",[t._v(t._s(t.fmt(e.entryAt)))]),a("td",[t._v(t._s(t.fmt(e.exitAt)))]),a("td",[t._v(t._s(t.diff(e.duration)))]),a("td",[t._v(t._s(t.round(e.entryBalance)))]),a("td",[t._v(t._s(t.round(e.exitBalance)))]),-1===Math.sign(e.pnl)?[a("td",{staticClass:"loss"},[t._v(t._s(Math.sign(e.pnl)*e.pnl.toFixed(2)))]),a("td",{staticClass:"loss"},[t._v(t._s(e.profit.toFixed(2))+"%")])]:[a("td",{staticClass:"profit"},[t._v(t._s(e.pnl.toFixed(2)))]),a("td",{staticClass:"profit"},[t._v(t._s(e.profit.toFixed(2))+"%")])]],2)})],2)]):t._e(),t.roundtrips.length?t._e():a("div",[a("p",[t._v("Not enough data to display")])])])},r=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("tr",[a("th",[t._v("Entry at (UTC)")]),a("th",[t._v("Exit at (UTC)")]),a("th",[t._v("Exposure")]),a("th",[t._v("Entry balance")]),a("th",[t._v("Exit balance")]),a("th",[t._v("P&L")]),a("th",[t._v("Profit")])])}],i=(a("VRzm"),{props:["roundtrips"],data:function(){return{}},methods:{diff:function(t){return moment.duration(t).humanize()},humanizeDuration:function(t){return window.humanizeDuration(t)},fmt:function(t){return moment.unix(t).utc().format("YYYY-MM-DD HH:mm")},round:function(t){return(+t).toFixed(3)}}}),s=i,o=(a("dW8q"),a("KHd+")),c=Object(o["a"])(s,n,r,!1,null,null,null);e["a"]=c.exports},vwRV:function(t,e,a){},w3yp:function(t,e,a){},wVP4:function(t,e,a){"use strict";var n=a("vwRV"),r=a.n(n);r.a},wVPO:function(t,e,a){"use strict";var n=a("uXxc"),r=a.n(n);r.a},wiDz:function(t,e,a){"use strict";a.d(e,"b",function(){return u}),a.d(e,"a",function(){return l});var n=a("24Ii"),r=a.n(n),i=a("TrxG"),s=a.n(i),o=a("r0f2"),c=function(t){return function(e,a){if(e)return t(e);if(!a.text)return t("no data");var n=JSON.parse(a.text);t(!1,n)}},u=function(t,e,a){r.a.post(o["a"]+t).use(s.a).send(e).end(c(a))},l=function(t,e){r.a.get(o["a"]+t).use(s.a).end(c(e))}},ydmZ:function(t,e,a){},yomC:function(t,e,a){"use strict";var n=a("EfWa"),r=a.n(n);r.a},yuKf:function(t,e,a){}});
+//# sourceMappingURL=app.ed182ffa.js.map
\ No newline at end of file
diff --git a/web/vue/dist/js/app.ed182ffa.js.map b/web/vue/dist/js/app.ed182ffa.js.map
new file mode 100644
index 000000000..1c29343b8
--- /dev/null
+++ b/web/vue/dist/js/app.ed182ffa.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/gekko/singleGekko.vue?6cec","webpack:///./src/components/global/progressBar.vue?7bcc","webpack:///./src/components/global/paperTradeSummary.vue?13b5","webpack:///src/components/global/paperTradeSummary.vue","webpack:///./src/components/global/paperTradeSummary.vue?a8ef","webpack:///./src/components/global/paperTradeSummary.vue","webpack:///./src/components/global/configbuilder/papertrader.vue?c5cd","webpack:///./src/components/gekko/new.vue?c104","webpack:///./src/components/gekko/new.vue?367c","webpack:///./src/components/gekko/gekkoConfigBuilder.vue?035a","webpack:///./src/components/global/configbuilder/typepicker.vue?df24","webpack:///src/components/global/configbuilder/typepicker.vue","webpack:///./src/components/global/configbuilder/typepicker.vue?cf28","webpack:///./src/components/global/configbuilder/typepicker.vue","webpack:///src/components/gekko/gekkoConfigBuilder.vue","webpack:///./src/components/gekko/gekkoConfigBuilder.vue?8d92","webpack:///./src/components/gekko/gekkoConfigBuilder.vue","webpack:///src/components/gekko/new.vue","webpack:///./src/components/gekko/new.vue?ae9a","webpack:///./src/components/gekko/new.vue","webpack:///./src/components/data/data.vue?4abe","webpack:///./src/tools/marked.js","webpack:///./src/components/global/configbuilder/marketpicker.vue?d701","webpack:///src/components/global/configbuilder/marketpicker.vue","webpack:///./src/components/global/configbuilder/marketpicker.vue?200d","webpack:///./src/components/global/configbuilder/marketpicker.vue","webpack:///./src/components/global/configbuilder/stratpicker.vue?fda9","webpack:///src/components/global/configbuilder/stratpicker.vue","webpack:///./src/components/global/configbuilder/stratpicker.vue?8a34","webpack:///./src/components/global/configbuilder/stratpicker.vue","webpack:///./src/components/global/configbuilder/rangepicker.vue?ce7c","webpack:///./src/components/global/configbuilder/rangecreator.vue?8425","webpack:///src/components/global/configbuilder/rangecreator.vue","webpack:///./src/components/global/configbuilder/rangecreator.vue?3f8d","webpack:///./src/components/global/configbuilder/rangecreator.vue","webpack:///./src/components/data/import/importConfigBuilder.vue?3911","webpack:///./src/components/global/blockSpinner.vue?cca6","webpack:///src/components/global/blockSpinner.vue","webpack:///./src/components/global/blockSpinner.vue?7b17","webpack:///./src/components/global/blockSpinner.vue","webpack:///./src/App.vue?77b6","webpack:///./src/components/layout/header.vue?345a","webpack:///src/components/layout/header.vue","webpack:///./src/components/layout/header.vue?8ecd","webpack:///./src/components/layout/header.vue","webpack:///./src/components/layout/footer.vue?0614","webpack:///src/components/layout/footer.vue","webpack:///./src/components/layout/footer.vue?6aff","webpack:///./src/components/layout/footer.vue","webpack:///./src/components/layout/modal.vue?5ed7","webpack:///src/components/layout/modal.vue","webpack:///./src/components/layout/modal.vue?6e33","webpack:///./src/components/layout/modal.vue","webpack:///src/App.vue","webpack:///./src/App.vue?8f16","webpack:///./src/App.vue","webpack:///./src/store/modules/imports/mutations.js","webpack:///./src/store/modules/gekkos/mutations.js","webpack:///./src/store/modules/notifications/mutations.js","webpack:///./src/store/modules/config/mutations.js","webpack:///./src/store/index.js","webpack:///./src/components/backtester/backtestConfigBuilder.vue?fda9","webpack:///./src/components/backtester/result/chartWrapper.vue?d2a0","webpack:///./src/components/global/configbuilder/rangecreator.vue?c7ad","webpack:///./src/components/layout/modal.vue?a2b4","webpack:///./src/components/backtester/result/chartWrapper.vue?cfc8","webpack:///./src/d3/chart4.js","webpack:///./src/d3/message.js","webpack:///src/components/backtester/result/chartWrapper.vue","webpack:///./src/components/backtester/result/chartWrapper.vue?414d","webpack:///./src/components/backtester/result/chartWrapper.vue","webpack:///./src/main.js","webpack:///./src/components/backtester/result/summary.vue?6f4b","webpack:///./src/components/config/config.vue?9014","webpack:///./src/components/config/apiConfigBuilder.vue?901e","webpack:///./src/components/global/configbuilder/exchangepicker.vue?f5ea","webpack:///src/components/global/configbuilder/exchangepicker.vue","webpack:///./src/components/global/configbuilder/exchangepicker.vue?f140","webpack:///./src/components/global/configbuilder/exchangepicker.vue","webpack:///src/components/config/apiConfigBuilder.vue","webpack:///./src/components/config/apiConfigBuilder.vue?a340","webpack:///./src/components/config/apiConfigBuilder.vue","webpack:///src/components/config/config.vue","webpack:///./src/components/config/config.vue?03e8","webpack:///./src/components/config/config.vue","webpack:///./src/components/gekko/gekkoConfigBuilder.vue?c09b","webpack:///./src/components/global/configbuilder/rangepicker.vue?e445","webpack:///src/components/global/configbuilder/rangepicker.vue","webpack:///./src/components/global/configbuilder/rangepicker.vue?6482","webpack:///./src/components/global/configbuilder/rangepicker.vue","webpack:///./src/App.vue?8b0d","webpack:///./src/components/config/apiConfigBuilder.vue?bb40","webpack:///./src/components/backtester/backtester.vue?06dc","webpack:///./src/components/backtester/backtestConfigBuilder.vue?bafa","webpack:///./src/components/global/configbuilder/datasetpicker.vue?dc86","webpack:///src/components/global/configbuilder/datasetpicker.vue","webpack:///./src/components/global/configbuilder/datasetpicker.vue?adbd","webpack:///./src/components/global/configbuilder/datasetpicker.vue","webpack:///src/components/backtester/backtestConfigBuilder.vue","webpack:///./src/components/backtester/backtestConfigBuilder.vue?6bee","webpack:///./src/components/backtester/backtestConfigBuilder.vue","webpack:///./src/components/backtester/result/result.vue?f19d","webpack:///./src/components/backtester/result/summary.vue?a48b","webpack:///src/components/backtester/result/summary.vue","webpack:///./src/components/backtester/result/summary.vue?2c9f","webpack:///./src/components/backtester/result/summary.vue","webpack:///src/components/backtester/result/result.vue","webpack:///./src/components/backtester/result/result.vue?a333","webpack:///./src/components/backtester/result/result.vue","webpack:///src/components/backtester/backtester.vue","webpack:///./src/components/backtester/backtester.vue?b754","webpack:///./src/components/backtester/backtester.vue","webpack:///../state/reduceState.js","webpack:///./src/components/data/data.vue?5f3a","webpack:///src/components/data/data.vue","webpack:///./src/components/data/data.vue?7897","webpack:///./src/components/data/data.vue","webpack:///./src/components/backtester/result/roundtripTable.vue?cb8d","webpack:///./src/components/gekko/list.vue?dec3","webpack:///./src/components/data/import/single.vue?892b","webpack:///./src/components/global/progressBar.vue?f48f","webpack:///src/components/global/progressBar.vue","webpack:///./src/components/global/progressBar.vue?3819","webpack:///./src/components/global/progressBar.vue","webpack:///src/components/data/import/single.vue","webpack:///./src/components/data/import/single.vue?ea36","webpack:///./src/components/data/import/single.vue","webpack:///./src/store/modules/imports/sync.js","webpack:///./src/store/modules/gekkos/sync.js","webpack:///./src/store/modules/notifications/sync.js","webpack:///./src/store/modules/config/sync.js","webpack:///./src/store/init.js","webpack:///./src/components/global/ws.js","webpack:///./src/components/gekko/list.vue?889e","webpack:///src/components/gekko/list.vue","webpack:///./src/components/gekko/list.vue?1de5","webpack:///./src/components/gekko/list.vue","webpack:///./src/components/data/import/importer.vue?370b","webpack:///./src/components/data/import/importConfigBuilder.vue?d697","webpack:///src/components/data/import/importConfigBuilder.vue","webpack:///./src/components/data/import/importConfigBuilder.vue?4a12","webpack:///./src/components/data/import/importConfigBuilder.vue","webpack:///src/components/data/import/importer.vue","webpack:///./src/components/data/import/importer.vue?5b1c","webpack:///./src/components/data/import/importer.vue","webpack:///./src/components/layout/home.vue?e103","webpack:///src/components/layout/home.vue","webpack:///./src/components/layout/home.vue?334a","webpack:///./src/components/layout/home.vue","webpack:///./src/components/gekko/singleGekko.vue?b47b","webpack:///src/components/gekko/singleGekko.vue","webpack:///./src/components/gekko/singleGekko.vue?71ef","webpack:///./src/components/gekko/singleGekko.vue","webpack:///./src/components/global/configbuilder/datasetpicker.vue?0d02","webpack:///./src/components/global/blockSpinner.vue?69ce","webpack:///./src/components/data/import/single.vue?dfe8","webpack:///./src/tools/api.js","webpack:///./src/components/global/configbuilder/papertrader.vue?4204","webpack:///src/components/global/configbuilder/papertrader.vue","webpack:///./src/components/global/configbuilder/papertrader.vue?fdb2","webpack:///./src/components/global/configbuilder/papertrader.vue","webpack:///./src/components/global/mixins/dataset.js","webpack:///./src/components/global/configbuilder/stratpicker.vue?808f","webpack:///./src/components/global/paperTradeSummary.vue?c6c2","webpack:///./src/components/layout/header.vue?b5b8","webpack:///./src/components/backtester/result/roundtripTable.vue?bd31","webpack:///src/components/backtester/result/roundtripTable.vue","webpack:///./src/components/backtester/result/roundtripTable.vue?35c4","webpack:///./src/components/backtester/result/roundtripTable.vue","webpack:///./src/components/backtester/result/result.vue?65dd","webpack:///./src/components/global/configbuilder/typepicker.vue?09f6","webpack:///./src/tools/ajax.js","webpack:///./src/components/data/import/importer.vue?3808"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","1","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_singleGekko_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_progressBar_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","render","_vm","this","_h","$createElement","_c","_self","staticClass","_v","_s","report","trades","round2","sharpe","round","startBalance","currency","balance","_m","class","profitClass","relativeProfit","staticRenderFns","paperTradeSummaryvue_type_script_lang_js","props","methods","toFixed","computed","global_paperTradeSummaryvue_type_script_lang_js","component","componentNormalizer","__webpack_exports__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_papertrader_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_new_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","on","config","updateConfig","pendingStratrunner","_e","attrs","href","click","$event","preventDefault","start","gekkoConfigBuildervue_type_template_id_6015a1e6_lang_pug_render","only-tradable","isTradebot","market","updateMarketConfig","type","updateType","stratConfig","updateStrat","settings","updatePaperTrader","gekkoConfigBuildervue_type_template_id_6015a1e6_lang_pug_staticRenderFns","typepickervue_type_template_id_4a1aa84c_lang_pug_render","for","_l","directives","rawName","expression","domProps","checked","_q","selectedTypeIndex","change","typepickervue_type_template_id_4a1aa84c_lang_pug_staticRenderFns","typepickervue_type_script_lang_js","created","emitType","types","$emit","watch","configbuilder_typepickervue_type_script_lang_js","typepicker","gekkoConfigBuildervue_type_script_lang_js","_this","ajax","error","response","candleWriter","toml","parse","part","performanceAnalyzer","enabled","range","strat","paperTrader","components","marketPicker","marketpicker","typePicker","stratPicker","stratpicker","papertrader","assign","trader","valid","validConfig","tradingAdvisor","lodash_default","a","isNaN","candleSize","method","isEmpty","mc","emitConfig","pt","gekko_gekkoConfigBuildervue_type_script_lang_js","gekkoConfigBuilder_component","gekkoConfigBuilder","newvue_type_script_lang_js","spinner","blockSpinner","gekkos","$store","state","watchConfig","raw","pick","vue_runtime_esm","util","extend","requiredHistoricalData","stratSettings","historySize","gekkoConfig","startAt","existingMarketWatcher","optimal","moment","utc","startOf","subtract","unix","available","events","initial","candle","Math","max","format","from","find","exchange","existingTradebot","g","logType","availableApiKeys","apiKeys","val","prev","_this2","gekko","latest","startGekko","err","resp","$router","path","concat","id","_this3","str","alert","includes","startWatcher","routeToGekko","console","next","gekko_newvue_type_script_lang_js","new_component","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_data_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","marked","myRenderer","Renderer","link","title","text","external","newWindow","out","test","setOptions","renderer","$$selectedVal","Array","filter","target","options","selected","map","_value","multiple","e","cur","asset","asst","marketpickervue_type_script_lang_js","exchanges","onlyTradable","each","tradable","onlyImportable","importable","markets","assets","currencies","keys","configbuilder_marketpickervue_type_script_lang_js","strategy","input","composing","rawCandleSize","candleSizeUnit","singularCandleSizeUnit","humanizeDuration","rawStratParams","rawStratParamsError","message","stratpickervue_type_script_lang_js","strategies","emptyStrat","stratParams","empty","params","__empty","parseParams","configbuilder_stratpickervue_type_script_lang_js","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_rangepicker_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","to","rangecreatorvue_type_script_lang_js","now","then","clone","fmt","emitRange","fmtTs","mom","emitManualEntry","isValid","scanned","tab","selectedRangeIndex","selectedRange","ranges","configbuilder_rangecreatorvue_type_script_lang_js","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_importConfigBuilder_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","blockSpinnervue_type_script_lang_js","global_blockSpinnervue_type_script_lang_js","headervue_type_template_id_0a62d360_lang_pug_render","headervue_type_template_id_0a62d360_lang_pug_staticRenderFns","headervue_type_script_lang_js","layout_headervue_type_script_lang_js","header","footervue_type_template_id_7782dc11_lang_pug_render","version","ui","footervue_type_template_id_7782dc11_lang_pug_staticRenderFns","gekkoPackage","uiPackage","footervue_type_script_lang_js","layout_footervue_type_script_lang_js","footer_component","footer","modalvue_type_template_id_340a7d17_lang_pug_render","innerHTML","content","modalvue_type_template_id_340a7d17_lang_pug_staticRenderFns","messages","disconnected","modalvue_type_script_lang_js","active","warnings","connected","layout_modalvue_type_script_lang_js","modal_component","modal","Appvue_type_script_lang_js","top","bottom","src_Appvue_type_script_lang_js","App_component","addImport","imp","imports","syncImports","mutations_updateImport","update","index","findIndex","import_id","item","updated","updates","set","reduceState","syncGekkos","live","archivedGekkos","archive","mutations_addGekko","objectSpread","mutations_updateGekko","has","event","mutations_archiveGekko","stopped","omit","mutations_errorGekko","errored","errorMessage","mutations_deleteGekko","setGlobalWarning","warning","mutations_syncApiKeys","mutations_syncExchanges","use","vuex_esm","debug","mutations","merge","mutations_namespaceObject","gekkos_mutations_namespaceObject","notifications_mutations_namespaceObject","config_mutations_namespaceObject","Store","connection","reconnected","strict","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_backtestConfigBuilder_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_chartWrapper_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_rangecreator_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_modal_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","chartWrappervue_type_template_id_12bcb8d8_lang_pug_render","clickable","isClicked","width","height","chart4","_data","_trades","_height","price","date","toDate","action","open","dates","prices","svg","d3","select","attr","innerWidth","margin","right","left","margin2","height2","x","scaleUtc","x2","y","scaleLinear","y2","xAxis","axisBottom","xAxis2","yAxis","axisLeft","ticks","brush","brushX","extent","brushed","zoom","scaleExtent","translateExtent","zoomed","line","line2","append","focus","context","domain","min","datum","circles","selectAll","enter","sourceEvent","selection","invert","scaleY","transform","zoomIdentity","scale","translate","_domain","slicedToArray","minIndex","sortedIndex","maxIndex","rescaleX","move","invertX","draw","MIN_CANDLES","chartWrappervue_type_script_lang_js","setTimeout","beforeDestroy","remove","_","size","candles","html","result_chartWrappervue_type_script_lang_js","vue__WEBPACK_IMPORTED_MODULE_1__","vue_router__WEBPACK_IMPORTED_MODULE_3__","router","base","__dirname","routes","redirect","_components_layout_home_vue__WEBPACK_IMPORTED_MODULE_6__","_components_backtester_backtester_vue__WEBPACK_IMPORTED_MODULE_5__","_components_config_config_vue__WEBPACK_IMPORTED_MODULE_10__","_components_data_data_vue__WEBPACK_IMPORTED_MODULE_7__","_components_data_import_importer_vue__WEBPACK_IMPORTED_MODULE_8__","_components_data_import_single_vue__WEBPACK_IMPORTED_MODULE_9__","_components_gekko_list_vue__WEBPACK_IMPORTED_MODULE_11__","_components_gekko_new_vue__WEBPACK_IMPORTED_MODULE_12__","_components_gekko_singleGekko_vue__WEBPACK_IMPORTED_MODULE_13__","_components_global_ws__WEBPACK_IMPORTED_MODULE_14__","store","_store__WEBPACK_IMPORTED_MODULE_4__","el","h","_App_vue__WEBPACK_IMPORTED_MODULE_2__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_summary_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","apiKeySets","removeApiKey","addApiToggle","openAddApi","apiConfigBuildervue_type_template_id_4a31b09e_lang_pug_render","updateExchange","cred","credentials","$set","upload","apiConfigBuildervue_type_template_id_4a31b09e_lang_pug_staticRenderFns","exchangepickervue_type_template_id_50c29cb0_lang_pug_render","exchangepickervue_type_template_id_50c29cb0_lang_pug_staticRenderFns","exchangepickervue_type_script_lang_js","emitExchange","configbuilder_exchangepickervue_type_script_lang_js","exchangepicker","apiConfigBuildervue_type_script_lang_js","exchangePicker","requires","values","confirm","config_apiConfigBuildervue_type_script_lang_js","apiConfigBuilder_component","apiConfigBuilder","configvue_type_script_lang_js","config_configvue_type_script_lang_js","config_component","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_gekkoConfigBuilder_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","scan","printRange","rangepickervue_type_script_lang_js","diff","duration","humanize","reset","configbuilder_rangepickervue_type_script_lang_js","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_apiConfigBuilder_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","check","backtestState","run","backtestResult","backtestConfigBuildervue_type_template_id_0b74d9a3_lang_pug_render","dataset","updateDataset","backtestConfigBuildervue_type_template_id_0b74d9a3_lang_pug_staticRenderFns","datasetpickervue_type_template_id_689b8a00_lang_pug_render","datasetScanstate","datasets","setIndex","rangeVisible","openRange","customFrom","customTo","datasetpickervue_type_template_id_689b8a00_lang_pug_staticRenderFns","datasetpickervue_type_script_lang_js","mixins","largest","updateCustomRange","emitSet","configbuilder_datasetpickervue_type_script_lang_js","datasetpicker","backtestConfigBuildervue_type_script_lang_js","datasetPicker","backtest","daterange","backtestResultExporter","writeToDisk","stratUpdates","roundtrips","stratCandles","stratCandleProps","sc","backtester_backtestConfigBuildervue_type_script_lang_js","backtestConfigBuilder_component","backtestConfigBuilder","resultvue_type_template_id_72b63acc_lang_pug_render","performanceReport","resultvue_type_template_id_72b63acc_lang_pug_staticRenderFns","summaryvue_type_template_id_5bfc891d_lang_pug_render","startTime","endTime","timespan","startPrice","endPrice","summaryvue_type_template_id_5bfc891d_lang_pug_staticRenderFns","summaryvue_type_script_lang_js","paperTradeSummary","result_summaryvue_type_script_lang_js","summary_component","summary","resultvue_type_script_lang_js","roundtripTable","resultSummary","chart","chartWrapper","result_resultvue_type_script_lang_js","result_component","backtestervue_type_script_lang_js","backtestable","configBuilder","backtester_backtestervue_type_script_lang_js","backtester_component","skipInitialEvents","skipLatestEvents","trackAllEvents","reduce","payload","latestUpdate","Date","[object Object]","intro","unscannableMakets","viewUnscannable","toggleUnscannable","datavue_type_script_lang_js","data_datavue_type_script_lang_js","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_roundtripTable_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_list_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","done","fromEnd","initialized","progress","progressBarvue_type_template_id_2b42ff94_lang_pug_render","style","progressBarvue_type_template_id_2b42ff94_lang_pug_staticRenderFns","progressBarvue_type_script_lang_js","global_progressBarvue_type_script_lang_js","progressBar","singlevue_type_script_lang_js","$route","fromEndMs","current","import_singlevue_type_script_lang_js","single_component","sync_init","commit","sync_sync","bus","$on","imports_sync","gekkos_sync_init","gekkos_sync_sync","gekkos_sync","notifications_sync_init","notifications_sync_sync","ws","notifications_sync","sync_transformMarkets","backendData","exchangesRaw","exchangesTemp","forEach","slug","pair","_pair$pair","exchangeMaxHistoryAge","providesFullHistory","config_sync_init","config_sync_sync","config_sync","store_init","socket","log","info","ws_connect","ReconnectingWebSocket","api","maxReconnectInterval","onopen","onclose","onerror","onmessage","JSON","watchers","status","stratrunners","profit","tradeCompleted","listvue_type_script_lang_js","timer","setInterval","destroyed","clearTimeout","_moment","_x","arguments","toString","b","gekko_listvue_type_script_lang_js","_import","importConfigBuildervue_type_template_id_a8c578c6_lang_pug_render","only-importable","updateRange","importConfigBuildervue_type_template_id_a8c578c6_lang_pug_staticRenderFns","importConfigBuildervue_type_script_lang_js","rangeCreator","rangecreator","importer","import_importConfigBuildervue_type_script_lang_js","importConfigBuilder","importervue_type_script_lang_js","daysApart","import_importervue_type_script_lang_js","importer_component","src","homevue_type_script_lang_js","layout_homevue_type_script_lang_js","isLoading","initialEvents","latestEvents","warmupRemaining","replace","stratName","isArchived","alpha","isStratrunner","watcher","stopGekko","deleteGekko","candleFetch","chartData","singleGekkovue_type_script_lang_js","getCandles","isLive","stratWarmupCompleted","warmupTime","add","stringify","isEqual","hasLeechers","data.events.latest.candle.start","random","res","isArray","_this4","gekko_singleGekkovue_type_script_lang_js","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_datasetpicker_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_blockSpinner_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_single_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","basePath","restPath","wsPath","CONFIG","endpoint","host","port","ssl","toggle","switchToggle","rawPaperTraderParams","rawPaperTraderParamsError","papertradervue_type_script_lang_js","paperTraderParams","reportRoundtrips","configbuilder_papertradervue_type_script_lang_js","mixin","_tools_ajax__WEBPACK_IMPORTED_MODULE_2__","errors","sets","sort","adiff","bdiff","reverse","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_stratpicker_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_paperTradeSummary_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_header_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","rt","entryAt","exitAt","entryBalance","exitBalance","sign","pnl","roundtripTablevue_type_script_lang_js","result_roundtripTablevue_type_script_lang_js","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_result_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_typepicker_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default","processResponse","post","superagent__WEBPACK_IMPORTED_MODULE_0___default","_api_js__WEBPACK_IMPORTED_MODULE_2__","superagent_no_cache__WEBPACK_IMPORTED_MODULE_1___default","send","end","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_importer_vue_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default"],"mappings":"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","file":"js/app.ed182ffa.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([26,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./singleGekko.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./singleGekko.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./progressBar.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./progressBar.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-row-col-3-6\"},[_c('table',{staticClass:\"p1\"},[_c('tr',[_c('th',[_vm._v(\"amount of trades\")]),_c('td',[_vm._v(_vm._s(_vm.report.trades))])]),_c('tr',[_c('th',[_vm._v(\"sharpe ratio\")]),_c('td',[_vm._v(_vm._s(_vm.round2(_vm.report.sharpe)))])]),_c('tr',[_c('th',[_vm._v(\"start balance\")]),_c('td',[_vm._v(_vm._s(_vm.round(_vm.report.startBalance))+\" \"+_vm._s(_vm.report.currency))])]),_c('tr',[_c('th',[_vm._v(\"final balance\")]),_c('td',[_vm._v(_vm._s(_vm.round(_vm.report.balance))+\" \"+_vm._s(_vm.report.currency))])]),_vm._m(0)]),_c('div',{staticClass:\"big txt--right price\",class:_vm.profitClass},[_vm._v(_vm._s(_vm.round(_vm.report.relativeProfit))+\"%\")])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('th',[_vm._v(\"simulated profit\")])])}]\n\nexport { render, staticRenderFns }","\n.grd-row-col-3-6\n table.p1\n tr\n th amount of trades\n td {{ report.trades }}\n tr\n th sharpe ratio\n td {{ round2(report.sharpe) }}\n tr\n th start balance\n td {{ round(report.startBalance) }} {{ report.currency }}\n tr\n th final balance\n td {{ round(report.balance) }} {{ report.currency }}\n tr\n th simulated profit\n\n .big.txt--right.price(:class='profitClass') {{ round(report.relativeProfit) }}%\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./paperTradeSummary.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./paperTradeSummary.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./paperTradeSummary.vue?vue&type=template&id=637e135e&lang=pug\"\nimport script from \"./paperTradeSummary.vue?vue&type=script&lang=js\"\nexport * from \"./paperTradeSummary.vue?vue&type=script&lang=js\"\nimport style0 from \"./paperTradeSummary.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./papertrader.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./papertrader.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./new.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./new.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain my2\"},[_c('h3',[_vm._v(\"Start a new gekko\")]),_c('gekko-config-builder',{on:{\"config\":_vm.updateConfig}}),_c('div',{staticClass:\"hr\"}),(_vm.config.valid)?_c('div',{staticClass:\"txt--center\"},[(!_vm.pendingStratrunner)?_c('a',{staticClass:\"w100--s my1 btn--primary\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.start($event)}}},[_vm._v(\"Start\")]):_vm._e(),(_vm.pendingStratrunner)?_c('spinner'):_vm._e()],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd contain\"},[_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6 mx1\"},[_c('h3',[_vm._v(\"Market\")]),_c('market-picker',{attrs:{\"only-tradable\":_vm.isTradebot},on:{\"market\":_vm.updateMarketConfig}})],1),_c('div',{staticClass:\"grd-row-col-3-6 mx1\"},[_c('type-picker',{on:{\"type\":_vm.updateType}})],1)]),(_vm.type !== \"market watcher\")?[_c('div',{staticClass:\"hr\"}),_c('strat-picker',{staticClass:\"contain my2\",on:{\"stratConfig\":_vm.updateStrat}}),(_vm.type === \"paper trader\")?_c('div',{staticClass:\"hr\"}):_vm._e(),(_vm.type === \"paper trader\")?_c('paper-trader',{on:{\"settings\":_vm.updatePaperTrader}}):_vm._e()]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',[_vm._v(\"Type\")]),[_c('label',{staticClass:\"wrapper\",attrs:{\"for\":\"type\"}},[_vm._v(\"What do you want to do with gekko?\")]),_c('form',{staticClass:\"radio grd\"},_vm._l((_vm.types),function(type,i){return _c('div',{staticClass:\"grd-row m1\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedTypeIndex),expression:\"selectedTypeIndex\"}],staticClass:\"grd-row-col-1-6\",attrs:{\"type\":\"radio\"},domProps:{\"value\":i,\"checked\":_vm._q(_vm.selectedTypeIndex,i)},on:{\"change\":function($event){_vm.selectedTypeIndex=i}}}),_c('label',{staticClass:\"grd-row-col-5-6\",attrs:{\"for\":i}},[_vm._v(_vm._s(type))])])}))]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\ndiv\n h3 Type\n template\n label(for='type').wrapper What do you want to do with gekko?\n form.radio.grd\n div.grd-row(v-for='(type, i) in types').m1\n input.grd-row-col-1-6(type='radio', :value='i', v-model='selectedTypeIndex')\n label.grd-row-col-5-6(:for='i') {{ type }}\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./typepicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./typepicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./typepicker.vue?vue&type=template&id=4a1aa84c&lang=pug\"\nimport script from \"./typepicker.vue?vue&type=script&lang=js\"\nexport * from \"./typepicker.vue?vue&type=script&lang=js\"\nimport style0 from \"./typepicker.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n.grd.contain\n .grd-row\n .grd-row-col-3-6.mx1\n h3 Market\n market-picker(v-on:market='updateMarketConfig', :only-tradable='isTradebot')\n .grd-row-col-3-6.mx1\n type-picker(v-on:type='updateType')\n template(v-if='type !== \"market watcher\"')\n .hr\n strat-picker.contain.my2(v-on:stratConfig='updateStrat')\n .hr(v-if='type === \"paper trader\"')\n paper-trader(v-on:settings='updatePaperTrader', v-if='type === \"paper trader\"')\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./gekkoConfigBuilder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./gekkoConfigBuilder.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./gekkoConfigBuilder.vue?vue&type=template&id=6015a1e6&lang=pug\"\nimport script from \"./gekkoConfigBuilder.vue?vue&type=script&lang=js\"\nexport * from \"./gekkoConfigBuilder.vue?vue&type=script&lang=js\"\nimport style0 from \"./gekkoConfigBuilder.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n div.contain.my2\n h3 Start a new gekko\n gekko-config-builder(v-on:config='updateConfig')\n .hr\n .txt--center(v-if='config.valid')\n a.w100--s.my1.btn--primary(href='#', v-on:click.prevent='start', v-if=\"!pendingStratrunner\") Start\n spinner(v-if='pendingStratrunner')\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./new.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./new.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./new.vue?vue&type=template&id=da0dc488&lang=pug\"\nimport script from \"./new.vue?vue&type=script&lang=js\"\nexport * from \"./new.vue?vue&type=script&lang=js\"\nimport style0 from \"./new.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./data.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./data.vue?vue&type=style&index=0&lang=css\"","const marked = require('marked');\n\n// add `target='_blank'` to outgoing links\n\n// https://github.com/chjj/marked/pull/451#issuecomment-49976076\n\nvar myRenderer = new marked.Renderer();\nmyRenderer.link = function(href, title, text) {\n var external, newWindow, out;\n external = /^https?:\\/\\/.+$/.test(href);\n newWindow = external || title === 'newWindow';\n out = \"\" + text + \"\";\n};\n\nmarked.setOptions({renderer: myRenderer});\n\nexport default marked;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"mx1\"},[_c('label',{staticClass:\"wrapper\",attrs:{\"for\":\"exchange\"}},[_vm._v(\"Exchange:\")]),_c('div',{staticClass:\"custom-select button\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.exchange),expression:\"exchange\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.exchange=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.exchanges),function(market,e){return _c('option',[_vm._v(_vm._s(e))])}))])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6 mx1\"},[_c('label',{attrs:{\"for\":\"currency\"}},[_vm._v(\"Currency:\")]),_c('div',{staticClass:\"custom-select button\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currency),expression:\"currency\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.currency=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.currencies),function(cur){return _c('option',[_vm._v(_vm._s(cur))])}))])]),_c('div',{staticClass:\"grd-row-col-3-6 mx1\"},[_c('label',{attrs:{\"for\":\"asset\"}},[_vm._v(\"Asset:\")]),_c('div',{staticClass:\"custom-select button\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.asset),expression:\"asset\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.asset=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.assets),function(asst){return _c('option',[_vm._v(_vm._s(asst))])}))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\ndiv\n .mx1\n label(for='exchange').wrapper Exchange:\n .custom-select.button\n select(v-model='exchange')\n option(v-for='(market, e) in exchanges') {{ e }}\n .grd-row\n .grd-row-col-3-6.mx1\n label(for='currency') Currency:\n .custom-select.button\n select(v-model='currency')\n option(v-for='cur in currencies') {{ cur }}\n .grd-row-col-3-6.mx1\n label(for='asset') Asset:\n .custom-select.button\n select(v-model='asset')\n option(v-for='asst in assets') {{ asst }}\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./marketpicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./marketpicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./marketpicker.vue?vue&type=template&id=df4a8b2a&lang=pug\"\nimport script from \"./marketpicker.vue?vue&type=script&lang=js\"\nexport * from \"./marketpicker.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd\"},[_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6 px1\"},[_c('h3',[_vm._v(\"Strategy\")]),_c('div',[_c('label',{staticClass:\"wrapper\",attrs:{\"for\":\"strat\"}},[_vm._v(\"Strategy:\")]),_c('div',{staticClass:\"custom-select button\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.strategy),expression:\"strategy\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.strategy=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.strategies),function(strat){return _c('option',[_vm._v(_vm._s(strat.name))])}))])]),_c('div',[_c('label',{attrs:{\"for\":\"candleSize\"}},[_vm._v(\"Candle Size\")]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.rawCandleSize),expression:\"rawCandleSize\"}],domProps:{\"value\":(_vm.rawCandleSize)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.rawCandleSize=$event.target.value}}})]),_c('div',{staticClass:\"grd-row-col-3-6 align\"},[_c('div',{staticClass:\"custom-select button\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.candleSizeUnit),expression:\"candleSizeUnit\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.candleSizeUnit=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',[_vm._v(\"minutes\")]),_c('option',[_vm._v(\"hours\")]),_c('option',[_vm._v(\"days\")])])])])])]),_c('div',[_c('label',{attrs:{\"for\":\"historySize\"}},[_vm._v(\"Warmup period (in \"+_vm._s(_vm.rawCandleSize)+\" \"+_vm._s(_vm.singularCandleSizeUnit)+\" candles):\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.historySize),expression:\"historySize\"}],domProps:{\"value\":(_vm.historySize)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.historySize=$event.target.value}}}),_c('em',{staticClass:\"label-like\"},[_vm._v(\"(will use \"+_vm._s(_vm.humanizeDuration(_vm.candleSize * _vm.historySize * 1000 * 60))+\" of data as history)\")])])]),_c('div',{staticClass:\"grd-row-col-3-6 px1\"},[_c('div',[_c('h3',[_vm._v(\"Parameters\")]),_c('p',[_vm._v(_vm._s(_vm.strategy)+\" Parameters:\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.rawStratParams),expression:\"rawStratParams\"}],staticClass:\"params\",domProps:{\"value\":(_vm.rawStratParams)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.rawStratParams=$event.target.value}}}),(_vm.rawStratParamsError)?_c('p',{staticClass:\"bg--red p1\"},[_vm._v(_vm._s(_vm.rawStratParamsError.message))]):_vm._e()])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n.grd\n .grd-row\n .grd-row-col-3-6.px1\n h3 Strategy\n div\n label(for='strat').wrapper Strategy:\n .custom-select.button\n select(v-model='strategy')\n option(v-for='strat in strategies') {{ strat.name }}\n div\n label(for='candleSize') Candle Size\n .grd-row\n .grd-row-col-3-6\n input(v-model='rawCandleSize')\n .grd-row-col-3-6.align\n .custom-select.button\n select(v-model='candleSizeUnit')\n option minutes\n option hours\n option days\n div\n label(for='historySize') Warmup period (in {{ rawCandleSize }} {{ singularCandleSizeUnit }} candles):\n input(v-model='historySize')\n em.label-like (will use {{ humanizeDuration(candleSize * historySize * 1000 * 60) }} of data as history)\n .grd-row-col-3-6.px1\n div\n h3 Parameters\n p {{ strategy }} Parameters:\n textarea.params(v-model='rawStratParams')\n p.bg--red.p1(v-if='rawStratParamsError') {{ rawStratParamsError.message }}\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stratpicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stratpicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./stratpicker.vue?vue&type=template&id=1df710ae&lang=pug\"\nimport script from \"./stratpicker.vue?vue&type=script&lang=js\"\nexport * from \"./stratpicker.vue?vue&type=script&lang=js\"\nimport style0 from \"./stratpicker.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rangepicker.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rangepicker.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',[_vm._v(\"Daterange\")]),_c('div',[_c('label',{attrs:{\"for\":\"from\"}},[_vm._v(\"From\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.from),expression:\"from\"}],domProps:{\"value\":(_vm.from)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.from=$event.target.value}}})]),_c('div',[_c('label',{attrs:{\"for\":\"to\"}},[_vm._v(\"To\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.to),expression:\"to\"}],domProps:{\"value\":(_vm.to)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.to=$event.target.value}}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\ndiv\n h3 Daterange\n div\n label(for='from') From\n input(v-model='from')\n div\n label(for='to') To\n input(v-model='to')\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rangecreator.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rangecreator.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./rangecreator.vue?vue&type=template&id=8c51143a&lang=pug\"\nimport script from \"./rangecreator.vue?vue&type=script&lang=js\"\nexport * from \"./rangecreator.vue?vue&type=script&lang=js\"\nimport style0 from \"./rangecreator.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./importConfigBuilder.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./importConfigBuilder.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"spinner\"},[_c('div',{staticClass:\"rect1\"}),_c('div',{staticClass:\"rect2\"}),_c('div',{staticClass:\"rect3\"}),_c('div',{staticClass:\"rect4\"})])}]\n\nexport { render, staticRenderFns }","// http://tobiasahlin.com/spinkit/\n\n\n.spinner\n .rect1\n .rect2\n .rect3\n .rect4\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./blockSpinner.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./blockSpinner.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./blockSpinner.vue?vue&type=template&id=45447ea6&lang=pug\"\nimport script from \"./blockSpinner.vue?vue&type=script&lang=js\"\nexport * from \"./blockSpinner.vue?vue&type=script&lang=js\"\nimport style0 from \"./blockSpinner.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('top'),_c('div',{staticClass:\"fill\"},[_c('router-view',{staticClass:\"view\"})],1),_c('bottom'),_c('modal')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{attrs:{\"id\":\"top\"}}),_vm._m(0),_c('nav',{staticClass:\"bg--light-gray\"},[_c('div',{staticClass:\"menu contain\"},[_c('router-link',{staticClass:\"py1\",attrs:{\"to\":\"/home\"}},[_vm._v(\"Home\")]),_c('router-link',{staticClass:\"py1\",attrs:{\"to\":\"/live-gekkos\"}},[_vm._v(\"Live Gekkos\")]),_c('router-link',{staticClass:\"py1\",attrs:{\"to\":\"/backtest\"}},[_vm._v(\"Backtest\")]),_c('router-link',{staticClass:\"py1\",attrs:{\"to\":\"/data\"}},[_vm._v(\"Local data\")]),_c('router-link',{staticClass:\"py1\",attrs:{\"to\":\"/config\"}},[_vm._v(\"Config\")]),_c('a',{staticClass:\"py1\",attrs:{\"href\":\"https://gekko.wizb.it/docs/introduction/about_gekko.html\",\"target\":\"_blank\"}},[_vm._v(\"Documentation\")])],1)])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{staticClass:\"bg--off-white grd\"},[_c('div',{staticClass:\"contain grd-row\"},[_c('h3',{staticClass:\"py1 px2 col-2\"},[_vm._v(\"Gekko UI\")])])])}]\n\nexport { render, staticRenderFns }","\n div\n #top\n header.bg--off-white.grd\n .contain.grd-row\n h3.py1.px2.col-2 Gekko UI\n nav.bg--light-gray\n .menu.contain\n router-link(to='/home').py1 Home\n router-link(to='/live-gekkos').py1 Live Gekkos\n router-link(to='/backtest').py1 Backtest\n router-link(to='/data').py1 Local data\n router-link(to='/config').py1 Config\n a(href='https://gekko.wizb.it/docs/introduction/about_gekko.html', target='_blank').py1 Documentation\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./header.vue?vue&type=template&id=0a62d360&lang=pug\"\nimport script from \"./header.vue?vue&type=script&lang=js\"\nexport * from \"./header.vue?vue&type=script&lang=js\"\nimport style0 from \"./header.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('footer',{staticClass:\"p2 bg--off-white\"},[_c('div',{staticClass:\"contain\"},[_vm._m(0),_c('p',[_vm._v(\"Using Gekko v\"+_vm._s(_vm.version.gekko)+\" and Gekko UI v\"+_vm._s(_vm.version.ui)+\".\")])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_c('em',[_vm._v(\"Use Gekko at your own risk.\")])])}]\n\nexport { render, staticRenderFns }","\n footer.p2.bg--off-white\n .contain\n p\n em Use Gekko at your own risk.\n p Using Gekko v{{ version.gekko }} and Gekko UI v{{ version.ui }}.\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./footer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./footer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./footer.vue?vue&type=template&id=7782dc11&lang=pug\"\nimport script from \"./footer.vue?vue&type=script&lang=js\"\nexport * from \"./footer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.active)?_c('div',[_c('div',{attrs:{\"id\":\"modal-background\"}}),_c('div',{staticClass:\"modal\",attrs:{\"id\":\"modal\"}},[_c('div',{staticClass:\"modal-guts\",domProps:{\"innerHTML\":_vm._s(_vm.content)}})])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n div(v-if='active')\n #modal-background\n #modal.modal\n .modal-guts(v-html='content')\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./modal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./modal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./modal.vue?vue&type=template&id=340a7d17&lang=pug\"\nimport script from \"./modal.vue?vue&type=script&lang=js\"\nexport * from \"./modal.vue?vue&type=script&lang=js\"\nimport style0 from \"./modal.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n #app\n top\n .fill\n router-view.view\n bottom\n modal\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=29e7b8c2&lang=pug\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\n\nexport const addImport = (state, imp) => {\n state.imports.push(imp);\n return state;\n}\n\nexport const syncImports = (state, imports) => {\n state.imports = imports;\n return state;\n}\n\nexport const updateImport = (state, update) => {\n let index = state.imports.findIndex(i => i.id === update.import_id);\n let item = state.imports[index];\n if(!item)\n return state;\n\n let updated = Vue.util.extend(item, update.updates);\n Vue.set(state.imports, index, updated);\n\n return state;\n}","import Vue from 'vue'\nimport _ from 'lodash';\nconst reduceState = require('../../../../../state/reduceState');\n\nexport const syncGekkos = (state, data) => {\n if(!data) {\n return state;\n }\n\n state.gekkos = data.live;\n state.archivedGekkos = data.archive;\n return state;\n}\n\nexport const addGekko = (state, gekko) => {\n state.gekkos = {\n ...state.gekkos,\n [gekko.id]: gekko\n }\n return state;\n}\n\nexport const updateGekko = (state, update) => {\n if(!update.id || !_.has(state.gekkos, update.id)) {\n return console.error('cannot update unknown gekko..');;\n }\n\n state.gekkos = {\n ...state.gekkos,\n [update.id]: reduceState(state.gekkos[update.id], update.event)\n }\n return state;\n}\n\nexport const archiveGekko = (state, id) => {\n if(!_.has(state.gekkos, id)) {\n return console.error('cannot archive unknown gekko..');\n }\n\n state.archivedGekkos = {\n ...state.archivedGekkos,\n [id]: {\n ...state.gekkos[id],\n stopped: true,\n active: false\n }\n }\n\n state.gekkos = _.omit(state.gekkos, id);\n return state;\n}\n\nexport const errorGekko = (state, data) => {\n if(!_.has(state.gekkos, data.id)) {\n return console.error('cannot error unknown gekko..');\n }\n\n state.gekkos = {\n ...state.gekkos,\n [data.id]: {\n ...state.gekkos[data.id],\n errored: true,\n errorMessage: data.error\n }\n }\n\n return state;\n}\n\nexport const deleteGekko = (state, id) => {\n if(!_.has(state.archivedGekkos, id)) {\n return console.error('cannot delete unknown gekko..');\n }\n\n state.archivedGekkos = _.omit(state.archivedGekkos, id);\n return state;\n}","import Vue from 'vue'\nimport _ from 'lodash'\n\nexport const setGlobalWarning = (state, warning) => {\n state.warnings[warning.key] = warning.value;\n return state;\n}","import Vue from 'vue'\n\nexport const syncApiKeys = (state, apiKeys) => {\n Vue.set(state, 'apiKeys', apiKeys);\n return state;\n}\n\nexport const syncExchanges = (state, exchanges) => {\n Vue.set(state, 'exchanges', exchanges);\n return state;\n}","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport _ from 'lodash'\n\nimport * as importMutations from './modules/imports/mutations'\nimport * as gekkoMutations from './modules/gekkos/mutations'\nimport * as notificationMutations from './modules/notifications/mutations'\nimport * as configMutations from './modules/config/mutations'\n\nVue.use(Vuex);\n\nconst debug = process.env.NODE_ENV !== 'production'\n\nlet mutations = {};\n\n_.merge(mutations, importMutations);\n_.merge(mutations, gekkoMutations);\n_.merge(mutations, notificationMutations);\n_.merge(mutations, configMutations);\n\nexport default new Vuex.Store({\n state: {\n warnings: {\n connected: true, // assume we will connect\n },\n imports: [],\n gekkos: {},\n archivedGekkos: {},\n connection: {\n disconnected: false,\n reconnected: false\n },\n apiKeys: [],\n exchanges: {}\n },\n mutations,\n strict: debug\n})","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./backtestConfigBuilder.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./backtestConfigBuilder.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chartWrapper.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chartWrapper.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rangecreator.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rangecreator.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./modal.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./modal.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{ clickable: !_vm.isClicked },attrs:{\"id\":\"chartWrapper\"}},[_c('div',{staticClass:\"shield\",on:{\"click\":function($event){$event.preventDefault();return _vm.click($event)}}}),_c('svg',{attrs:{\"id\":\"chart\",\"width\":\"960\",\"height\":_vm.height}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import _ from 'lodash';\n// global moment\n\nexport default function(_data, _trades, _height) {\n\n const trades = _trades.map(t => {\n return {\n price: t.price,\n date: moment.utc(t.date).toDate(),\n action: t.action\n }\n });\n\n const data = _data.map(c => {\n return {\n price: c.open,\n date: moment.utc(c.start).toDate()\n }\n });\n\n var dates = data.map(c => +c.date);\n var prices = data.map(c => +c.price)\n\n var svg = d3.select(\"#chart\");\n\n svg.attr(\"width\", window.innerWidth - 20);\n\n var margin = {top: 20, right: 20, bottom: 110, left: 40};\n var height = _height - margin.top - margin.bottom;\n var margin2 = {top: _height - 70, right: 20, bottom: 30, left: 40};\n var width = +svg.attr(\"width\") - margin.left - margin.right;\n var height2 = _height - margin2.top - margin2.bottom;\n\n var x = d3.scaleUtc().range([0, width]),\n x2 = d3.scaleUtc().range([0, width]),\n y = d3.scaleLinear().range([height, 0]),\n y2 = d3.scaleLinear().range([height2, 0]);\n\n var xAxis = d3.axisBottom(x),\n xAxis2 = d3.axisBottom(x2),\n yAxis = d3.axisLeft(y).ticks(_height / 50);\n\n var brush = d3.brushX()\n .extent([[0, 0], [width, height2]])\n .on(\"brush end\", brushed);\n\n var zoom = d3.zoom()\n .scaleExtent([1, 100])\n .translateExtent([[0, 0], [width, height]])\n .extent([[0, 0], [width, height]])\n .on(\"zoom\", zoomed);\n\n var line = d3.line()\n .x(function(d) { return x(d.date); })\n .y(function(d) { return y(d.price); });\n\n var line2 = d3.line()\n .x(function(d) { return x2(d.date); })\n .y(function(d) { return y2(d.price); });\n\n svg.append(\"defs\").append(\"clipPath\")\n .attr(\"id\", \"clip\")\n .append(\"rect\")\n .attr(\"width\", width)\n .attr(\"height\", height);\n\n var focus = svg.append(\"g\")\n .attr(\"class\", \"focus\")\n .attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\");\n\n var context = svg.append(\"g\")\n .attr(\"class\", \"context\")\n .attr(\"transform\", \"translate(\" + margin2.left + \",\" + margin2.top + \")\");\n\n x.domain(d3.extent(data, function(d) { return d.date; }));\n y.domain([\n d3.min(prices) * 0.99,\n d3.max(prices) * 1.01\n ]);\n x2.domain(x.domain());\n y2.domain(y.domain());\n\n focus.append(\"path\")\n .datum(data)\n .attr(\"class\", \"line price\")\n .attr(\"d\", line);\n\n focus.append(\"g\")\n .attr(\"class\", \"axis axis--x\")\n .attr(\"transform\", \"translate(0,\" + height + \")\")\n .call(xAxis);\n\n focus.append(\"g\")\n .attr(\"class\", \"axis axis--y\")\n .call(yAxis);\n\n context.append(\"path\")\n .datum(data)\n .attr(\"class\", \"line\")\n .attr(\"d\", line2);\n\n context.append(\"g\")\n .attr(\"class\", \"axis axis--x\")\n .attr(\"transform\", \"translate(0,\" + height2 + \")\")\n .call(xAxis2);\n\n var circles = svg\n .append('g')\n .attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\")\n .selectAll(\"circle\")\n .data(trades)\n .enter().append(\"circle\")\n .attr('class', function(d) { return d.action })\n .attr(\"cx\", function(d) { return x(d.date); })\n .attr(\"cy\", function(d) { return y(d.price); })\n .attr('r', 5);\n\n var brushCircles = context\n .append('g')\n // .attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\")\n .selectAll(\"circle\")\n .data(trades)\n .enter().append(\"circle\")\n .attr('class', function(d) { return d.action })\n .attr(\"cx\", function(d) { return x2(d.date); })\n .attr(\"cy\", function(d) { return y2(d.price); })\n .attr('r', 3);\n\n\n context.append(\"g\")\n .attr(\"class\", \"brush\")\n .call(brush)\n .call(brush.move, x.range());\n\n svg.append(\"rect\")\n .attr(\"class\", \"zoom\")\n .attr(\"width\", width)\n .attr(\"height\", height)\n .attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\")\n .call(zoom);\n\n function brushed() {\n if (d3.event.sourceEvent && d3.event.sourceEvent.type === \"zoom\") return; // ignore brush-by-zoom\n var s = d3.event.selection || x2.range();\n x.domain(s.map(x2.invert, x2));\n\n scaleY(x.domain());\n\n svg.select(\".axis--y\")\n .call(yAxis);\n\n circles\n .attr(\"cx\", function(d) { return x(d.date); })\n .attr(\"cy\", function(d) { return y(d.price); })\n\n focus.select(\".line\").attr(\"d\", line);\n focus.select(\".axis--x\").call(xAxis);\n svg.select(\".zoom\").call(zoom.transform, d3.zoomIdentity\n .scale(width / (s[1] - s[0]))\n .translate(-s[0], 0));\n }\n\n function scaleY(domain) {\n let [min, max] = domain;\n\n let minIndex = _.sortedIndex(dates, min);\n let maxIndex = _.sortedIndex(dates, max);\n\n let set = prices.slice(minIndex, maxIndex);\n y.domain([\n d3.min(set) * 0.9995,\n d3.max(set) * 1.0005\n ]);\n }\n\n function zoomed() {\n if (d3.event.sourceEvent && d3.event.sourceEvent.type === \"brush\") return; // ignore zoom-by-brush\n var t = d3.event.transform;\n\n scaleY(t.rescaleX(x2).domain()); \n\n svg.select(\".axis--y\")\n .call(yAxis);\n\n x.domain(t.rescaleX(x2).domain());\n focus.select(\".line\").attr(\"d\", line);\n\n circles\n .attr(\"cx\", function(d) { return x(d.date); })\n .attr(\"cy\", function(d) { return y(d.price); })\n\n\n focus.select(\".axis--x\").call(xAxis);\n context.select(\".brush\").call(brush.move, x.range().map(t.invertX, t));\n }\n}","export const draw = function(message) {\n d3.select(\"#chart\").append(\"text\")\n .attr('class', 'message')\n .attr('x', 150)\n .attr('y', 150)\n .text(message);\n}\n\nexport const clear = function() {\n d3.select(\"#chart\").find('text').remove();\n}","\n#chartWrapper(v-bind:class='{ clickable: !isClicked }')\n .shield(v-on:click.prevent='click')\n svg#chart(width='960', :height='height')\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chartWrapper.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chartWrapper.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./chartWrapper.vue?vue&type=template&id=12bcb8d8&lang=pug\"\nimport script from \"./chartWrapper.vue?vue&type=script&lang=js\"\nexport * from \"./chartWrapper.vue?vue&type=script&lang=js\"\nimport style0 from \"./chartWrapper.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport App from './App.vue'\n\nimport VueRouter from 'vue-router'\nVue.use(VueRouter);\n\nimport store from './store'\n\nimport backtester from './components/backtester/backtester.vue'\nimport home from './components/layout/home.vue'\n\nimport data from './components/data/data.vue'\nimport importer from './components/data/import/importer.vue'\nimport singleImport from './components/data/import/single.vue'\nimport config from './components/config/config.vue'\n\nimport gekkoList from './components/gekko/list.vue'\nimport newGekko from './components/gekko/new.vue'\nimport singleGekko from './components/gekko/singleGekko.vue'\nimport { connect as connectWS } from './components/global/ws'\n\nconst router = new VueRouter({\n mode: 'hash',\n base: __dirname,\n routes: [\n { path: '/', redirect: '/home' },\n { path: '/home', component: home },\n { path: '/backtest', component: backtester },\n { path: '/config', component: config },\n { path: '/data', component: data },\n { path: '/data/importer', component: importer },\n { path: '/data/importer/import/:id', component: singleImport },\n { path: '/live-gekkos', component: gekkoList },\n { path: '/live-gekkos/new', component: newGekko },\n { path: '/live-gekkos/:id', component: singleGekko },\n ]\n});\n\n// setup some stuff\nconnectWS();\n\nnew Vue({\n router,\n store,\n el: '#app',\n render: h => h(App)\n})","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./summary.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./summary.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain\"},[_c('h2',[_vm._v(\"Config\")]),_c('div',{staticClass:\"hr\"}),_c('h3',[_vm._v(\"Available API keys\")]),(!_vm.apiKeySets.length)?_c('p',[_c('em',[_vm._v(\"You don't have any API keys yet.\")])]):_vm._e(),_c('ul',_vm._l((_vm.apiKeySets),function(exchange){return _c('li',[_vm._v(_vm._s(exchange)+\" (\"),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.removeApiKey(exchange)}}},[_vm._v(\"remove\")]),_vm._v(\")\")])})),(!_vm.addApiToggle)?_c('a',{staticClass:\"btn--primary\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.openAddApi($event)}}},[_vm._v(\"Add an API key\")]):_vm._e(),(_vm.addApiToggle)?[_c('div',{staticClass:\"hr\"}),_c('apiConfigBuilder')]:_vm._e(),_c('div',{staticClass:\"hr\"})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd contain\"},[_c('h3',[_vm._v(\"Add an API key\")]),_c('p',[_vm._v(\"Make sure that the API key has the permissions to create and cancel orders and view balances.\")]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6 mx1\"},[_c('h3',[_vm._v(\"Exchange\")]),_c('exchange-picker',{attrs:{\"only-tradable\":\"true\"},on:{\"exchange\":_vm.updateExchange}})],1),_c('div',{staticClass:\"grd-row-col-3-6 mx1\"},[_c('h3',[_vm._v(\"Credentials\")]),_vm._l((_vm.requires),function(cred){return [_c('label',[_vm._v(_vm._s(cred))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.credentials[cred]),expression:\"credentials[cred]\"}],domProps:{\"value\":(_vm.credentials[cred])},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.credentials, cred, $event.target.value)}}})]})],2)]),_c('div',{staticClass:\"txt--center\"},[_c('a',{staticClass:\"w100--s my1 btn--primary\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.upload($event)}}},[_vm._v(\"Add\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"mx1\"},[_c('label',{staticClass:\"wrapper\",attrs:{\"for\":\"exchange\"}},[_vm._v(\"Exchange:\")]),_c('div',{staticClass:\"custom-select button\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.exchange),expression:\"exchange\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.exchange=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.exchanges),function(market,e){return _c('option',[_vm._v(_vm._s(e))])}))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\ndiv\n .mx1\n label(for='exchange').wrapper Exchange:\n .custom-select.button\n select(v-model='exchange')\n option(v-for='(market, e) in exchanges') {{ e }}\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./exchangepicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./exchangepicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./exchangepicker.vue?vue&type=template&id=50c29cb0&lang=pug\"\nimport script from \"./exchangepicker.vue?vue&type=script&lang=js\"\nexport * from \"./exchangepicker.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n.grd.contain\n h3 Add an API key\n p Make sure that the API key has the permissions to create and cancel orders and view balances.\n .grd-row\n .grd-row-col-3-6.mx1\n h3 Exchange\n exchange-picker(v-on:exchange='updateExchange', only-tradable='true')\n .grd-row-col-3-6.mx1\n h3 Credentials\n template(v-for='cred in requires')\n label {{ cred }}\n input(v-model='credentials[cred]')\n .txt--center\n a.w100--s.my1.btn--primary(href='#', v-on:click.prevent='upload') Add\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./apiConfigBuilder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./apiConfigBuilder.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./apiConfigBuilder.vue?vue&type=template&id=4a31b09e&lang=pug\"\nimport script from \"./apiConfigBuilder.vue?vue&type=script&lang=js\"\nexport * from \"./apiConfigBuilder.vue?vue&type=script&lang=js\"\nimport style0 from \"./apiConfigBuilder.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\ndiv.contain\n h2 Config\n .hr\n h3 Available API keys\n p(v-if='!apiKeySets.length')\n em You don't have any API keys yet.\n ul\n li(v-for='exchange in apiKeySets') {{ exchange }} (\n a(href='#', v-on:click.prevent='removeApiKey(exchange)') remove\n | )\n a.btn--primary(href='#', v-if='!addApiToggle', v-on:click.prevent='openAddApi') Add an API key\n template(v-if='addApiToggle')\n .hr\n apiConfigBuilder\n .hr\n \n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./config.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./config.vue?vue&type=template&id=d21dbde6&lang=pug\"\nimport script from \"./config.vue?vue&type=script&lang=js\"\nexport * from \"./config.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./gekkoConfigBuilder.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./gekkoConfigBuilder.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',[_vm._v(\"Daterange\")]),(_vm.tab === \"scan\")?[(!_vm.scanned)?_c('div',{staticClass:\"txt--center\"},[_c('a',{staticClass:\"w100--s btn--primary scan-btn\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.scan($event)}}},[_vm._v(\"Scan available data\")])]):_vm._e(),(_vm.scanned == \"fetching\")?_c('div',{staticClass:\"txt--center\"},[_c('p',{staticClass:\"scan-btn\"},[_vm._v(\"Scanning..\")])]):_vm._e(),(_vm.scanned == true)?[(_vm.ranges.length === 0)?[_c('p',[_c('strong',[_vm._v(\"Unable to find any local data, do you have local data available for\\\"\"+_vm._s(_vm.config.watch.exchange)+\":\"+_vm._s(_vm.config.watch.currency)+\"/\"+_vm._s(_vm.config.watch.asset)+\"\\\"?\")])])]:[_c('label',{staticClass:\"wrapper\",attrs:{\"for\":\"exchange\"}},[_vm._v(\"Run simulation over:\")]),_c('form',{staticClass:\"radio grd\"},_vm._l((_vm.ranges),function(range,i){return _c('div',{staticClass:\"grd-row m1\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedRangeIndex),expression:\"selectedRangeIndex\"}],staticClass:\"grd-row-col-1-6\",attrs:{\"type\":\"radio\"},domProps:{\"value\":i,\"checked\":_vm._q(_vm.selectedRangeIndex,i)},on:{\"change\":function($event){_vm.selectedRangeIndex=i}}}),_c('label',{staticClass:\"grd-row-col-5-6\",attrs:{\"for\":i}},[_vm._v(_vm._s(_vm.printRange(range)))])])}))],_c('p',[_c('em',[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.scan($event)}}},[_vm._v(\"rescan\")])])])]:_vm._e(),_c('p',{staticClass:\"txt--center\"},[_c('em',[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.tab = \"manual\"}}},[_vm._v(\"Or manually set a daterange\")])])])]:_vm._e(),(_vm.tab === \"manual\")?[_c('div',[_c('label',{attrs:{\"for\":\"from\"}},[_vm._v(\"From:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.from),expression:\"from\"}],domProps:{\"value\":(_vm.from)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.from=$event.target.value}}})]),_c('div',[_c('label',{attrs:{\"for\":\"to\"}},[_vm._v(\"To:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.to),expression:\"to\"}],domProps:{\"value\":(_vm.to)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.to=$event.target.value}}})]),_c('p',{staticClass:\"txt--center\"}),_c('em',[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.tab = \"scan\"}}},[_vm._v(\"Or scan for a daterange\")])])]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\ndiv\n h3 Daterange\n template(v-if='tab === \"scan\"')\n .txt--center(v-if='!scanned')\n a.w100--s.btn--primary.scan-btn(href='#', v-on:click.prevent='scan') Scan available data\n .txt--center(v-if='scanned == \"fetching\"')\n p.scan-btn Scanning..\n template(v-if='scanned == true')\n template(v-if='ranges.length === 0')\n p\n strong Unable to find any local data, do you have local data available for\n | \"{{ config.watch.exchange }}:{{ config.watch.currency }}/{{ config.watch.asset }}\"?\n template(v-else)\n label(for='exchange').wrapper Run simulation over:\n form.radio.grd\n div.grd-row(v-for='(range, i) in ranges').m1\n input.grd-row-col-1-6(type='radio', :value='i', v-model='selectedRangeIndex')\n label.grd-row-col-5-6(:for='i') {{ printRange(range) }}\n p\n em\n a(href='#', v-on:click.prevent='scan') rescan\n p.txt--center\n em\n a(href='#', v-on:click.prevent='tab = \"manual\"') Or manually set a daterange\n template(v-if='tab === \"manual\"')\n div\n label(for='from') From:\n input(v-model='from')\n div\n label(for='to') To:\n input(v-model='to')\n p.txt--center\n em\n a(href='#', v-on:click.prevent='tab = \"scan\"') Or scan for a daterange\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rangepicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rangepicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./rangepicker.vue?vue&type=template&id=5037047f&lang=pug\"\nimport script from \"./rangepicker.vue?vue&type=script&lang=js\"\nexport * from \"./rangepicker.vue?vue&type=script&lang=js\"\nimport style0 from \"./rangepicker.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js!../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js!../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./apiConfigBuilder.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./apiConfigBuilder.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h2',{staticClass:\"contain\"},[_vm._v(\"Backtest\")]),_c('div',{staticClass:\"hr\"}),_c('config-builder',{on:{\"config\":_vm.check}}),(_vm.backtestable)?_c('div',[_c('div',{staticClass:\"txt--center\"},[(_vm.backtestState !== \"fetching\")?_c('a',{staticClass:\"w100--s my1 btn--primary\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.run($event)}}},[_vm._v(\"Backtest\")]):_vm._e(),(_vm.backtestState === \"fetching\")?_c('div',{staticClass:\"scan-btn\"},[_c('p',[_vm._v(\"Running backtest..\")]),_c('spinner')],1):_vm._e()])]):_vm._e(),(_vm.backtestResult && _vm.backtestState === \"fetched\")?_c('result',{attrs:{\"result\":_vm.backtestResult}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('dataset-picker',{staticClass:\"my2 contain\",on:{\"dataset\":_vm.updateDataset}}),_c('div',{staticClass:\"hr\"}),_c('strat-picker',{staticClass:\"my2 contain\",on:{\"stratConfig\":_vm.updateStrat}}),_c('div',{staticClass:\"hr\"}),_c('paper-trader',{staticClass:\"contain\",on:{\"settings\":_vm.updatePaperTrader}}),_c('div',{staticClass:\"hr\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',[_vm._v(\"Select a dataset\")]),(_vm.datasetScanstate === \"idle\")?_c('div',{staticClass:\"txt--center my2\"},[_c('a',{staticClass:\"w100--s btn--primary scan-btn\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.scan($event)}}},[_vm._v(\"Scan available data\")])]):_vm._e(),(_vm.datasetScanstate === \"scanning\")?_c('div',{staticClass:\"txt--center my2\"},[_c('spinner')],1):_vm._e(),(_vm.datasetScanstate === \"scanned\")?_c('div',{staticClass:\"my2\"},[(_vm.datasets.length != 0)?_c('div',[_c('table',{staticClass:\"full\"},[_vm._m(0),_c('tbody',_vm._l((_vm.datasets),function(set,i){return _c('tr',[_c('td',{staticClass:\"radio\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.setIndex),expression:\"setIndex\"}],attrs:{\"type\":\"radio\",\"name\":\"dataset\",\"id\":set.id},domProps:{\"value\":i,\"checked\":_vm._q(_vm.setIndex,i)},on:{\"change\":function($event){_vm.setIndex=i}}})]),_c('td',[_c('label',{attrs:{\"for\":set.id}},[_vm._v(_vm._s(set.exchange))])]),_c('td',[_c('label',{attrs:{\"for\":set.id}},[_vm._v(_vm._s(set.currency))])]),_c('td',[_c('label',{attrs:{\"for\":set.id}},[_vm._v(_vm._s(set.asset))])]),_c('td',[_c('label',{attrs:{\"for\":set.id}},[_vm._v(_vm._s(_vm.fmt(set.from)))])]),_c('td',[_c('label',{attrs:{\"for\":set.id}},[_vm._v(_vm._s(_vm.fmt(set.to)))])]),_c('td',[_c('label',{attrs:{\"for\":set.id}},[_vm._v(_vm._s(_vm.humanizeDuration(set.to.diff(set.from))))])])])}))]),(!_vm.rangeVisible)?_c('a',{staticClass:\"btn--primary\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.openRange($event)}}},[_vm._v(\"Adjust range\")]):_vm._e(),(_vm.rangeVisible)?[_c('div',[_c('label',{attrs:{\"for\":\"customFrom\"}},[_vm._v(\"From:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.customFrom),expression:\"customFrom\"}],domProps:{\"value\":(_vm.customFrom)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.customFrom=$event.target.value}}})]),_c('div',[_c('label',{attrs:{\"for\":\"customTo\"}},[_vm._v(\"To:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.customTo),expression:\"customTo\"}],domProps:{\"value\":(_vm.customTo)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.customTo=$event.target.value}}})])]:_vm._e()],2):_c('em',[_vm._v(\"No Data found \"),_c('a',{attrs:{\"href\":\"#/data/importer\"}},[_vm._v(\"Lets add some\")])])]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th'),_c('th',[_vm._v(\"exchange\")]),_c('th',[_vm._v(\"currency\")]),_c('th',[_vm._v(\"asset\")]),_c('th',[_vm._v(\"from\")]),_c('th',[_vm._v(\"to\")]),_c('th',[_vm._v(\"duration\")])])])}]\n\nexport { render, staticRenderFns }","\ndiv\n h3 Select a dataset\n .txt--center.my2(v-if='datasetScanstate === \"idle\"')\n a.w100--s.btn--primary.scan-btn(href='#', v-on:click.prevent='scan') Scan available data\n .txt--center.my2(v-if='datasetScanstate === \"scanning\"')\n spinner\n .my2(v-if='datasetScanstate === \"scanned\"')\n\n div(v-if='datasets.length != 0')\n table.full\n thead\n tr\n th \n th exchange\n th currency\n th asset\n th from\n th to\n th duration\n tbody\n tr(v-for='(set, i) in datasets')\n td.radio\n input(type='radio', name='dataset', :value='i', v-model='setIndex', v-bind:id='set.id')\n td \n label(v-bind:for='set.id') {{ set.exchange }}\n td \n label(v-bind:for='set.id') {{ set.currency }}\n td\n label(v-bind:for='set.id') {{ set.asset }}\n td \n label(v-bind:for='set.id') {{ fmt(set.from) }}\n td \n label(v-bind:for='set.id') {{ fmt(set.to) }}\n td\n label(v-bind:for='set.id') {{ humanizeDuration(set.to.diff(set.from)) }}\n a.btn--primary(href='#', v-on:click.prevent='openRange', v-if='!rangeVisible') Adjust range\n template(v-if='rangeVisible')\n div\n label(for='customFrom') From:\n input(v-model='customFrom')\n div\n label(for='customTo') To:\n input(v-model='customTo')\n\n em(v-else) No Data found \n a(href='#/data/importer') Lets add some\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./datasetpicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./datasetpicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./datasetpicker.vue?vue&type=template&id=689b8a00&lang=pug\"\nimport script from \"./datasetpicker.vue?vue&type=script&lang=js\"\nexport * from \"./datasetpicker.vue?vue&type=script&lang=js\"\nimport style0 from \"./datasetpicker.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n div\n dataset-picker.my2(v-on:dataset='updateDataset').contain\n .hr\n strat-picker.my2(v-on:stratConfig='updateStrat').contain\n .hr\n paper-trader(v-on:settings='updatePaperTrader').contain\n .hr\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./backtestConfigBuilder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./backtestConfigBuilder.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./backtestConfigBuilder.vue?vue&type=template&id=0b74d9a3&lang=pug\"\nimport script from \"./backtestConfigBuilder.vue?vue&type=script&lang=js\"\nexport * from \"./backtestConfigBuilder.vue?vue&type=script&lang=js\"\nimport style0 from \"./backtestConfigBuilder.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"hr contain\"}),_vm._m(0),_c('result-summary',{attrs:{\"report\":_vm.result.performanceReport}}),_c('div',{staticClass:\"hr contain\"}),_c('chart',{attrs:{\"data\":_vm.candles,\"height\":\"500\"}}),_c('div',{staticClass:\"hr contain\"}),_c('roundtripTable',{attrs:{\"roundtrips\":_vm.result.roundtrips}})],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain\"},[_c('h3',[_vm._v(\"Backtest result\")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain\"},[_c('div',{staticClass:\"grd-row summary\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_c('table',{staticClass:\"p1\"},[_c('tr',[_c('th',[_vm._v(\"start time\")]),_c('td',[_vm._v(_vm._s(_vm.report.startTime))])]),_c('tr',[_c('th',[_vm._v(\"end time\")]),_c('td',[_vm._v(_vm._s(_vm.report.endTime))])]),_c('tr',[_c('th',[_vm._v(\"timespan\")]),_c('td',[_vm._v(_vm._s(_vm.report.timespan))])]),_c('tr',[_c('th',[_vm._v(\"start price\")]),_c('td',[_vm._v(_vm._s(_vm.round(_vm.report.startPrice))+\" \"+_vm._s(_vm.report.currency))])]),_c('tr',[_c('th',[_vm._v(\"end price\")]),_c('td',[_vm._v(_vm._s(_vm.round(_vm.report.endPrice))+\" \"+_vm._s(_vm.report.currency))])]),_c('tr',[_c('th',[_vm._v(\"market\")]),_c('td',[_vm._v(_vm._s(_vm.round(_vm.report.market))+\"%\")])])])]),_c('paperTradeSummary',{attrs:{\"report\":_vm.report}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\ndiv.contain\n\n .grd-row.summary\n .grd-row-col-3-6\n table.p1\n tr\n th start time\n td {{ report.startTime }}\n tr\n th end time\n td {{ report.endTime }}\n tr\n th timespan\n td {{ report.timespan }}\n tr\n th start price\n td {{ round(report.startPrice) }} {{ report.currency }}\n tr\n th end price\n td {{ round(report.endPrice) }} {{ report.currency }}\n tr\n th market\n td {{ round(report.market) }}%\n\n paperTradeSummary(:report='report')\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./summary.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./summary.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./summary.vue?vue&type=template&id=5bfc891d&lang=pug\"\nimport script from \"./summary.vue?vue&type=script&lang=js\"\nexport * from \"./summary.vue?vue&type=script&lang=js\"\nimport style0 from \"./summary.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n div\n .hr.contain\n div.contain\n h3 Backtest result\n result-summary(:report='result.performanceReport')\n .hr.contain\n chart(:data='candles', height='500')\n .hr.contain\n roundtripTable(:roundtrips='result.roundtrips')\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./result.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./result.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./result.vue?vue&type=template&id=72b63acc&lang=pug\"\nimport script from \"./result.vue?vue&type=script&lang=js\"\nexport * from \"./result.vue?vue&type=script&lang=js\"\nimport style0 from \"./result.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n div\n h2.contain Backtest\n .hr\n config-builder(v-on:config='check')\n div(v-if='backtestable')\n .txt--center\n a.w100--s.my1.btn--primary(href='#', v-if='backtestState !== \"fetching\"', v-on:click.prevent='run') Backtest\n div(v-if='backtestState === \"fetching\"').scan-btn\n p Running backtest..\n spinner\n result(v-if='backtestResult && backtestState === \"fetched\"', :result='backtestResult')\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./backtester.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./backtester.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./backtester.vue?vue&type=template&id=da4202e8&lang=pug\"\nimport script from \"./backtester.vue?vue&type=script&lang=js\"\nexport * from \"./backtester.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// Redux/vuex inspired reducer, reduces an event into a gekko state.\n// NOTE: this is used by the backend as well as the frontend.\n\nconst skipInitialEvents = ['marketUpdate'];\nconst skipLatestEvents = ['marketStart', 'stratWarmupCompleted'];\nconst trackAllEvents = ['tradeCompleted', 'advice', 'roundtrip'];\n\nconst reduce = (state, event) => {\n const type = event.type;\n const payload = event.payload;\n\n state = {\n ...state,\n latestUpdate: new Date()\n }\n\n if(trackAllEvents.includes(type)) {\n if(!state.events[type]) {\n state = {\n ...state,\n events: {\n ...state.events,\n [type]: [ payload ]\n }\n }\n } else {\n state = {\n ...state,\n events: {\n ...state.events,\n [type]: [ ...state.events[type], payload ]\n }\n }\n }\n }\n\n if(!state.events.initial[type] && !skipInitialEvents.includes(type)) {\n state = {\n ...state,\n events: {\n ...state.events,\n initial: {\n ...state.events.initial,\n [type]: payload\n }\n }\n }\n }\n\n if(!skipLatestEvents.includes(type)) {\n state = {\n ...state,\n events: {\n ...state.events,\n latest: {\n ...state.events.latest,\n [type]: payload\n }\n }\n }\n }\n\n return state;\n}\n\n// export default reduce;\nmodule.exports = reduce;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain\"},[_c('div',{staticClass:\"text\",domProps:{\"innerHTML\":_vm._s(_vm.intro)}}),_c('div',{staticClass:\"hr\"}),_c('h2',[_vm._v(\"Available datasets\")]),(_vm.datasetScanstate === \"idle\")?_c('div',{staticClass:\"txt--center my2\"},[_c('a',{staticClass:\"w100--s btn--primary scan-btn\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.scan($event)}}},[_vm._v(\"Scan available data\")])]):_vm._e(),(_vm.datasetScanstate === \"scanning\")?_c('div',{staticClass:\"txt--center my2\"},[_c('spinner')],1):_vm._e(),(_vm.datasetScanstate === \"scanned\")?_c('div',{staticClass:\"my2\"},[(_vm.unscannableMakets.length)?_c('div',{staticClass:\"bg--orange p1 warning my1\"},[(!_vm.viewUnscannable)?_c('p',{staticClass:\"clickable\",on:{\"click\":function($event){$event.preventDefault();return _vm.toggleUnscannable($event)}}},[_vm._v(\"Some markets were unscannable, click here for details.\")]):_vm._e(),(_vm.viewUnscannable)?[_c('p',[_vm._v(\"Unable to find datasets in the following markets:\")]),_vm._l((_vm.unscannableMakets),function(market){return _c('div',{staticClass:\"mx2\"},[_vm._v(\"- \"+_vm._s(market.exchange)+\":\"+_vm._s(market.currency)+\":\"+_vm._s(market.asset))])})]:_vm._e()],2):_vm._e(),(_vm.datasets.length)?[_c('table',{staticClass:\"full data\"},[_vm._m(0),_c('tbody',_vm._l((_vm.datasets),function(set){return _c('tr',[_c('td',[_vm._v(_vm._s(set.exchange))]),_c('td',[_vm._v(_vm._s(set.currency))]),_c('td',[_vm._v(_vm._s(set.asset))]),_c('td',[_vm._v(_vm._s(_vm.fmt(set.from)))]),_c('td',[_vm._v(_vm._s(_vm.fmt(set.to)))]),_c('td',[_vm._v(_vm._s(_vm.humanizeDuration(set.to.diff(set.from))))])])}))])]:_vm._e(),(!_vm.datasets.length)?[_c('p',[_vm._v(\"It looks like you don't have any local data yet.\")])]:_vm._e()],2):_vm._e(),_c('div',{staticClass:\"my2\"},[_c('h2',[_vm._v(\"Import more data\")]),_c('p',{staticClass:\"text\"},[_vm._v(\"You can easily import more market data directly from exchanges using the importer.\")]),_c('router-link',{staticClass:\"btn--primary\",attrs:{\"to\":\"/data/importer\"}},[_vm._v(\"Go to the importer!\")])],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"exchange\")]),_c('th',[_vm._v(\"currency\")]),_c('th',[_vm._v(\"asset\")]),_c('th',[_vm._v(\"from\")]),_c('th',[_vm._v(\"to\")]),_c('th',[_vm._v(\"duration\")])])])}]\n\nexport { render, staticRenderFns }","\n .contain\n .text(v-html='intro')\n .hr\n h2 Available datasets\n .txt--center.my2(v-if='datasetScanstate === \"idle\"')\n a.w100--s.btn--primary.scan-btn(href='#', v-on:click.prevent='scan') Scan available data\n .txt--center.my2(v-if='datasetScanstate === \"scanning\"')\n spinner\n .my2(v-if='datasetScanstate === \"scanned\"')\n .bg--orange.p1.warning.my1(v-if='unscannableMakets.length')\n p.clickable(v-if='!viewUnscannable', v-on:click.prevent='toggleUnscannable') Some markets were unscannable, click here for details.\n template(v-if='viewUnscannable')\n p Unable to find datasets in the following markets:\n .mx2(v-for='market in unscannableMakets')\n | - {{ market.exchange }}:{{ market.currency }}:{{ market.asset }}\n template(v-if='datasets.length')\n table.full.data\n thead\n tr\n th exchange\n th currency\n th asset\n th from\n th to\n th duration\n tbody\n tr(v-for='set in datasets')\n td {{ set.exchange }}\n td {{ set.currency }}\n td {{ set.asset }}\n td {{ fmt(set.from) }}\n td {{ fmt(set.to) }}\n td {{ humanizeDuration(set.to.diff(set.from)) }}\n template(v-if='!datasets.length')\n p It looks like you don't have any local data yet.\n .my2\n h2 Import more data\n p.text You can easily import more market data directly from exchanges using the importer.\n router-link.btn--primary(to='/data/importer') Go to the importer!\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./data.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./data.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./data.vue?vue&type=template&id=6009d44c&lang=pug\"\nimport script from \"./data.vue?vue&type=script&lang=js\"\nexport * from \"./data.vue?vue&type=script&lang=js\"\nimport style0 from \"./data.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./roundtripTable.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./roundtripTable.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./list.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./list.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain my2\"},[(_vm.data && !_vm.data.done)?_c('div',[_c('h2',[_vm._v(\"Importing data..\")]),_c('div',{staticClass:\"grd\"},[_c('div',{staticClass:\"grd-row\"},[_vm._m(0),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.data.watch.exchange))])]),_c('div',{staticClass:\"grd-row\"},[_vm._m(1),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.data.watch.currency)+\"/\"+_vm._s(_vm.data.watch.asset))])])]),_c('div',{staticClass:\"grd\"},[_c('div',{staticClass:\"grd-row\"},[_vm._m(2),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.fmt(_vm.from)))])]),_c('div',{staticClass:\"grd-row\"},[_vm._m(3),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.fmt(_vm.to)))])]),(_vm.initialized)?_c('div',{staticClass:\"grd-row\"},[_vm._m(4),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.fmt(_vm.latest)))])]):_vm._e(),(_vm.initialized)?_c('div',{staticClass:\"grd-row\"},[_vm._m(5),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.fromEnd))])]):_vm._e()]),(!_vm.initialized)?_c('spinner'):_vm._e(),(_vm.initialized)?_c('div',{staticClass:\"contain\"},[_c('progressBar',{attrs:{\"progress\":_vm.progress}})],1):_vm._e(),_c('p',[_c('em',[_vm._v(\"(you don't have to wait until the import is done,you can already start \"),_c('router-link',{attrs:{\"to\":\"/backtest\"}},[_vm._v(\"backtesting\")]),_vm._v(\").\")],1)])],1):_vm._e(),(_vm.data && _vm.data.done)?_c('div',{staticClass:\"txt--center\"},[_c('h2',[_vm._v(\"Import done\")]),_c('p',[_vm._v(\" Go and \"),_c('router-link',{attrs:{\"to\":\"/backtest\"}},[_vm._v(\"backtest\")]),_vm._v(\" with your new data!\")],1)]):_vm._e(),(!_vm.data)?_c('div',{staticClass:\"txt--center\"},[_c('h2',[_vm._v(\"ERROR: Unknown import\")]),_c('p',[_c('I',[_vm._v(\"don't know this import..\")])],1)]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-row-col-2-6\"},[_c('strong',[_vm._v(\"Market:\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-row-col-2-6\"},[_c('strong',[_vm._v(\"Currency/Asset:\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-row-col-2-6\"},[_c('strong',[_vm._v(\"From:\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-row-col-2-6\"},[_c('strong',[_vm._v(\"To:\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-row-col-2-6\"},[_c('strong',[_vm._v(\"Imported data until:\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-row-col-2-6\"},[_c('strong',[_vm._v(\"Remaining:\")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.progress)?_c('div',{staticClass:\"progressbarWrapper\"},[_c('p',[_c('strong',[_vm._v(_vm._s(_vm.round(_vm.progress))+\"%\")])]),_c('div',{staticClass:\"progressbar\"},[_c('div',{style:({width: _vm.progress + \"%\"})})])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// http://stackoverflow.com/questions/7190898/progress-bar-with-html-and-css\n\n\n.progressbarWrapper(v-if='progress')\n p {{ round(progress) }}%\n .progressbar\n div(:style='{width: progress + \"%\"}')\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./progressBar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./progressBar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./progressBar.vue?vue&type=template&id=2b42ff94&lang=pug\"\nimport script from \"./progressBar.vue?vue&type=script&lang=js\"\nexport * from \"./progressBar.vue?vue&type=script&lang=js\"\nimport style0 from \"./progressBar.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n div.contain.my2\n div(v-if='data && !data.done')\n h2 Importing data..\n .grd\n .grd-row\n .grd-row-col-2-6 Market:\n .grd-row-col-4-6 {{ data.watch.exchange }}\n .grd-row\n .grd-row-col-2-6 Currency/Asset:\n .grd-row-col-4-6 {{ data.watch.currency }}/{{ data.watch.asset }}\n\n .grd\n .grd-row\n .grd-row-col-2-6 From:\n .grd-row-col-4-6 {{ fmt(from) }}\n .grd-row\n .grd-row-col-2-6 To:\n .grd-row-col-4-6 {{ fmt(to) }}\n .grd-row(v-if='initialized')\n .grd-row-col-2-6 Imported data until:\n .grd-row-col-4-6 {{ fmt(latest) }}\n .grd-row(v-if='initialized')\n .grd-row-col-2-6 Remaining:\n .grd-row-col-4-6 {{ fromEnd }}\n spinner(v-if='!initialized')\n .contain(v-if='initialized')\n progressBar(:progress='progress')\n p \n em (you don't have to wait until the import is done,\n | you can already start \n router-link(to='/backtest') backtesting\n | ).\n div(v-if='data && data.done').txt--center\n h2 Import done\n p \n | Go and \n router-link(to='/backtest') backtest\n | with your new data!\n div(v-if='!data').txt--center\n h2 ERROR: Unknown import\n p \n I don't know this import..\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./single.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./single.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./single.vue?vue&type=template&id=b930fa5e&lang=pug\"\nimport script from \"./single.vue?vue&type=script&lang=js\"\nexport * from \"./single.vue?vue&type=script&lang=js\"\nimport style0 from \"./single.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { get } from '../../../tools/ajax'\nimport store from '../../'\nimport { bus } from '../../../components/global/ws'\n\nconst init = () => {\n get('imports', (err, resp) => {\n store.commit('syncImports', resp);\n });\n}\n\nconst sync = () => {\n bus.$on('import_update', data => {\n store.commit('updateImport', data);\n });\n}\n\nexport default function() {\n init();\n sync();\n}","import { get } from '../../../tools/ajax'\nimport store from '../../'\nimport { bus } from '../../../components/global/ws'\nimport _ from 'lodash'\n\nconst init = () => {\n get('gekkos', (err, resp) => {\n const gekkos = resp;\n store.commit('syncGekkos', gekkos);\n });\n}\n\nconst sync = () => {\n bus.$on('gekko_new', data => store.commit('addGekko', data.state));\n bus.$on('gekko_event', data => store.commit('updateGekko', data));\n bus.$on('gekko_archived', data => store.commit('archiveGekko', data.id));\n bus.$on('gekko_error', data => store.commit('errorGekko', data));\n bus.$on('gekko_deleted', data => store.commit('deleteGekko', data.id));\n\n // unused:\n // bus.$on('gekko_stopped', data => store.commit('x', data.id));\n // bus.$on('gekko_deleted', data => store.commit('x', data.id));\n}\n\nexport default function() {\n init();\n sync();\n}","import store from '../../'\nimport { bus } from '../../../components/global/ws'\n\nconst init = () => {}\n\nconst sync = () => {\n bus.$on('WS_STATUS_CHANGE', ws => {\n return store.commit('setGlobalWarning', {key: 'connected', value: ws.connected});\n });\n}\n\nexport default function() {\n init();\n sync();\n}","import { get } from '../../../tools/ajax'\nimport store from '../../'\nimport { bus } from '../../../components/global/ws'\n\nconst transformMarkets = backendData => {\n if(!backendData) {\n return {};\n }\n\n var exchangesRaw = backendData;\n var exchangesTemp = {};\n\n exchangesRaw.forEach(e => {\n exchangesTemp[e.slug] = exchangesTemp[e.slug] || {markets: {}};\n\n e.markets.forEach( pair => {\n let [ currency, asset ] = pair['pair'];\n exchangesTemp[e.slug].markets[currency] = exchangesTemp[e.slug].markets[currency] || [];\n exchangesTemp[e.slug].markets[currency].push( asset );\n });\n\n if (\"exchangeMaxHistoryAge\" in e) {\n exchangesTemp[e.slug].exchangeMaxHistoryAge = e.exchangeMaxHistoryAge;\n }\n\n exchangesTemp[e.slug].importable = e.providesFullHistory ? true : false;\n exchangesTemp[e.slug].tradable = e.tradable ? true : false;\n exchangesTemp[e.slug].requires = e.requires;\n });\n\n return exchangesTemp;\n}\n\n\nconst init = () => {\n get('apiKeys', (err, resp) => {\n store.commit('syncApiKeys', resp);\n });\n\n get('exchanges', (err, resp) => {\n store.commit('syncExchanges', transformMarkets(resp));\n })\n}\n\nconst sync = () => {\n bus.$on('apiKeys', data => {\n store.commit('syncApiKeys', data.exchanges);\n });\n}\n\nexport default function() {\n init();\n sync();\n}\n","import Vue from 'vue'\nimport Vuex from 'vuex'\n\nimport syncImports from './modules/imports/sync'\nimport syncGekkos from './modules/gekkos/sync'\nimport syncNotifications from './modules/notifications/sync'\nimport syncConfig from './modules/config/sync'\n\nexport default function() {\n syncImports();\n syncGekkos();\n syncNotifications();\n syncConfig();\n}","import _ from 'lodash'\nimport Vue from 'vue'\n\nimport { wsPath } from '../../tools/api'\nimport initializeState from '../../store/init'\n\nvar socket = null;\n\nexport const bus = new Vue();\n\nbus.$on('gekko_update', data => console.log(data))\n\nbus.$on('import_update', data => console.log(data))\nbus.$on('import_error', data => {\n alert('IMPORT ERROR: ' + data.error);\n});\n\nconst info = {\n connected: false\n}\n\nexport const connect = () => {\n socket = new ReconnectingWebSocket(wsPath, null, { maxReconnectInterval: 4000 });\n\n setTimeout(() => {\n // in case we cannot connect\n if(!info.connected) {\n initializeState();\n bus.$emit('WS_STATUS_CHANGE', info);\n }\n }, 500);\n\n socket.onopen = () => {\n if(info.connected)\n return;\n\n info.connected = true;\n bus.$emit('WS_STATUS_CHANGE', info);\n initializeState();\n }\n socket.onclose = () => {\n if(!info.connected)\n return;\n\n info.connected = false;\n bus.$emit('WS_STATUS_CHANGE', info);\n }\n socket.onerror = () => {\n if(!info.connected)\n return;\n\n info.connected = false;\n bus.$emit('WS_STATUS_CHANGE', info);\n }\n socket.onmessage = function(message) {\n const payload = JSON.parse(message.data);\n // console.log('ws message:', payload);\n bus.$emit(payload.type, payload);\n };\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain py2\"},[_c('h3',[_vm._v(\"Market watchers\")]),(!_vm.watchers.length)?_c('div',{staticClass:\"text\"},[_c('p',[_vm._v(\"You don't have any market watchers.\")])]):_vm._e(),(_vm.watchers.length)?_c('table',{staticClass:\"full clickable\"},[_vm._m(0),_c('tbody',_vm._l((_vm.watchers),function(gekko){return _c('tr',{staticClass:\"clickable\",on:{\"click\":function($event){_vm.$router.push({path: (\"/live-gekkos/\" + (gekko.id))})}}},[_c('td',[_vm._v(_vm._s(gekko.config.watch.exchange))]),_c('td',[_vm._v(_vm._s(gekko.config.watch.currency))]),_c('td',[_vm._v(_vm._s(gekko.config.watch.asset))]),_c('td',[_vm._v(_vm._s(_vm.status(gekko)))]),_c('td',[(gekko.events.initial.candle)?[_vm._v(_vm._s(_vm.fmt(gekko.events.initial.candle.start)))]:_vm._e()],2),_c('td',[(gekko.events.latest.candle)?[_vm._v(_vm._s(_vm.fmt(gekko.events.latest.candle.start)))]:_vm._e()],2),_c('td',[(gekko.events.initial.candle && gekko.events.latest.candle)?[_vm._v(_vm._s(_vm.timespan(gekko.events.latest.candle.start, gekko.events.initial.candle.start)))]:_vm._e()],2)])}))]):_vm._e(),_c('h3',[_vm._v(\"Strat runners\")]),(!_vm.stratrunners.length)?_c('div',{staticClass:\"text\"},[_c('p',[_vm._v(\"You don't have any stratrunners.\")])]):_vm._e(),(_vm.stratrunners.length)?_c('table',{staticClass:\"full\"},[_vm._m(1),_c('tbody',_vm._l((_vm.stratrunners),function(gekko){return _c('tr',{staticClass:\"clickable\",on:{\"click\":function($event){_vm.$router.push({path: (\"/live-gekkos/\" + (gekko.id))})}}},[_c('td',[_vm._v(_vm._s(gekko.config.watch.exchange))]),_c('td',[_vm._v(_vm._s(gekko.config.watch.currency))]),_c('td',[_vm._v(_vm._s(gekko.config.watch.asset))]),_c('td',[_vm._v(_vm._s(_vm.status(gekko)))]),_c('td',[(gekko.events.initial.candle && gekko.events.latest.candle)?[_vm._v(_vm._s(_vm.timespan(gekko.events.latest.candle.start, gekko.events.initial.candle.start)))]:_vm._e()],2),_c('td',[_vm._v(_vm._s(gekko.config.tradingAdvisor.method))]),_c('td',[(!_vm.report(gekko))?[_vm._v(\"0\")]:_vm._e(),(_vm.report(gekko))?[_vm._v(_vm._s(_vm.round(_vm.report(gekko).profit))+\" \"+_vm._s(_vm.report(gekko).currency))]:_vm._e()],2),_c('td',[_vm._v(_vm._s(gekko.logType))]),_c('td',[(!gekko.events.tradeCompleted)?[_vm._v(\"0\")]:_vm._e(),(gekko.events.tradeCompleted)?[_vm._v(_vm._s(gekko.events.tradeCompleted.length))]:_vm._e()],2)])}))]):_vm._e(),_c('div',{staticClass:\"hr\"}),_c('h2',[_vm._v(\"Start a new live Gekko\")]),_c('router-link',{staticClass:\"btn--primary\",attrs:{\"to\":\"/live-gekkos/new\"}},[_vm._v(\"Start a new live Gekko!\")])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"exchange\")]),_c('th',[_vm._v(\"currency\")]),_c('th',[_vm._v(\"asset\")]),_c('th',[_vm._v(\"status\")]),_c('th',[_vm._v(\"started at\")]),_c('th',[_vm._v(\"last update\")]),_c('th',[_vm._v(\"duration\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"exchange\")]),_c('th',[_vm._v(\"currency\")]),_c('th',[_vm._v(\"asset\")]),_c('th',[_vm._v(\"status\")]),_c('th',[_vm._v(\"duration\")]),_c('th',[_vm._v(\"strategy\")]),_c('th',[_vm._v(\"PnL\")]),_c('th',[_vm._v(\"type\")]),_c('th',[_vm._v(\"trades\")])])])}]\n\nexport { render, staticRenderFns }","\n .contain.py2\n h3 Market watchers\n .text(v-if='!watchers.length')\n p You don't have any market watchers.\n table.full.clickable(v-if='watchers.length')\n thead\n tr\n th exchange\n th currency\n th asset\n th status\n th started at\n th last update\n th duration\n tbody\n tr.clickable(v-for='gekko in watchers', v-on:click='$router.push({path: `/live-gekkos/${gekko.id}`})')\n td {{ gekko.config.watch.exchange }}\n td {{ gekko.config.watch.currency }}\n td {{ gekko.config.watch.asset }}\n td {{ status(gekko) }}\n td\n template(v-if='gekko.events.initial.candle') {{ fmt(gekko.events.initial.candle.start) }}\n td\n template(v-if='gekko.events.latest.candle') {{ fmt(gekko.events.latest.candle.start) }}\n td\n template(v-if='gekko.events.initial.candle && gekko.events.latest.candle') {{ timespan(gekko.events.latest.candle.start, gekko.events.initial.candle.start) }}\n h3 Strat runners\n .text(v-if='!stratrunners.length')\n p You don't have any stratrunners.\n table.full(v-if='stratrunners.length')\n thead\n tr\n th exchange\n th currency\n th asset\n th status\n th duration\n th strategy\n th PnL\n th type\n th trades\n tbody\n tr.clickable(v-for='gekko in stratrunners', v-on:click='$router.push({path: `/live-gekkos/${gekko.id}`})')\n td {{ gekko.config.watch.exchange }}\n td {{ gekko.config.watch.currency }}\n td {{ gekko.config.watch.asset }}\n td {{ status(gekko) }}\n td\n template(v-if='gekko.events.initial.candle && gekko.events.latest.candle') {{ timespan(gekko.events.latest.candle.start, gekko.events.initial.candle.start) }}\n td {{ gekko.config.tradingAdvisor.method }}\n td\n template(v-if='!report(gekko)') 0\n template(v-if='report(gekko)') {{ round(report(gekko).profit) }} {{ report(gekko).currency }}\n td {{ gekko.logType }}\n td\n template(v-if='!gekko.events.tradeCompleted') 0\n template(v-if='gekko.events.tradeCompleted') {{ gekko.events.tradeCompleted.length }}\n .hr\n h2 Start a new live Gekko\n router-link.btn--primary(to='/live-gekkos/new') Start a new live Gekko!\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./list.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./list.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./list.vue?vue&type=template&id=55dd2514&lang=pug\"\nimport script from \"./list.vue?vue&type=script&lang=js\"\nexport * from \"./list.vue?vue&type=script&lang=js\"\nimport style0 from \"./list.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain my2\"},[_c('div',{staticClass:\"text\",domProps:{\"innerHTML\":_vm._s(_vm.intro)}}),_c('div',{staticClass:\"hr\"}),_c('h3',[_vm._v(\"Currently running imports\")]),(_vm.imports.length === 0)?_c('p',[_vm._v(\"You currently don't have any imports running.\")]):_vm._e(),(_vm.imports.length)?_c('ul',_vm._l((_vm.imports),function(_import){return _c('li',[_c('router-link',{attrs:{\"to\":\"/data/importer/import/\" + _import.id}},[_vm._v(_vm._s(_import.watch.exchange)+\":\"+_vm._s(_import.watch.currency)+\"/\"+_vm._s(_import.watch.asset))])],1)})):_vm._e(),_c('div',{staticClass:\"hr\"}),_c('h3',[_vm._v(\"Start a new import\")]),_c('import-config-builder',{on:{\"config\":_vm.updateConfig}}),_c('div',{staticClass:\"hr\"}),_c('div',{staticClass:\"txt--center\"},[_c('a',{staticClass:\"w100--s my1 btn--primary\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.run($event)}}},[_vm._v(\"Import\")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd contain\"},[_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6 mx1\"},[_c('h3',[_vm._v(\"Market\")]),_c('market-picker',{attrs:{\"only-importable\":\"true\"},on:{\"market\":_vm.updateMarketConfig}})],1),_c('div',{staticClass:\"grd-row-col-3-6 mx1\"},[_c('range-creator',{on:{\"range\":_vm.updateRange}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n.grd.contain\n .grd-row\n .grd-row-col-3-6.mx1\n h3 Market\n market-picker(v-on:market='updateMarketConfig', only-importable='true')\n .grd-row-col-3-6.mx1\n range-creator(v-on:range='updateRange')\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./importConfigBuilder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./importConfigBuilder.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./importConfigBuilder.vue?vue&type=template&id=a8c578c6&lang=pug\"\nimport script from \"./importConfigBuilder.vue?vue&type=script&lang=js\"\nexport * from \"./importConfigBuilder.vue?vue&type=script&lang=js\"\nimport style0 from \"./importConfigBuilder.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n div.contain.my2\n div.text(v-html='intro')\n .hr\n h3 Currently running imports\n p(v-if='imports.length === 0') You currently don't have any imports running.\n ul(v-if='imports.length')\n li(v-for='_import in imports')\n router-link(:to='\"/data/importer/import/\" + _import.id') {{ _import.watch.exchange }}:{{ _import.watch.currency }}/{{ _import.watch.asset }}\n\n .hr\n h3 Start a new import\n import-config-builder(v-on:config='updateConfig')\n .hr\n .txt--center\n a.w100--s.my1.btn--primary(href='#', v-on:click.prevent='run') Import\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./importer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./importer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./importer.vue?vue&type=template&id=3e819299&lang=pug\"\nimport script from \"./importer.vue?vue&type=script&lang=js\"\nexport * from \"./importer.vue?vue&type=script&lang=js\"\nimport style0 from \"./importer.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"contain grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\",domProps:{\"innerHTML\":_vm._s(_vm.left)}}),_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-row-col-3-6 txt--center\"},[_c('img',{attrs:{\"src\":\"/static/gekko.jpg\"}}),_c('p',[_c('em',[_vm._v(\"The most valuable commodity I know of is information.\")])])])}]\n\nexport { render, staticRenderFns }","\n section.contain.grd-row\n .grd-row-col-3-6(v-html='left')\n .grd-row-col-3-6.txt--center\n img(src='/static/gekko.jpg')\n p\n em The most valuable commodity I know of is information.\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./home.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./home.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./home.vue?vue&type=template&id=257724d2&lang=pug\"\nimport script from \"./home.vue?vue&type=script&lang=js\"\nexport * from \"./home.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"my2\"},[(!_vm.data)?_c('div',{staticClass:\"contain\"},[_c('h1',[_vm._v(\"Unknown Gekko instance\")]),_c('p',[_vm._v(\"Gekko doesn't know what gekko this is...\")])]):_vm._e(),(_vm.data)?_c('div',[_c('h2',{staticClass:\"contain\"},[_vm._v(\"Gekko \"+_vm._s(_vm.type))]),(_vm.isArchived)?_c('div',{staticClass:\"contain brdr--mid-gray p1 bg--orange\"},[_vm._v(\"This is an archived Gekko, it is currently not running anymore.\")]):_vm._e(),(_vm.data.errorMessage)?_c('div',{staticClass:\"contain brdr--mid-gray p1 bg--orange\"},[_vm._v(\"This is Gekko crashed with the following error: \"+_vm._s(_vm.data.errorMessage))]):_vm._e(),_c('div',{staticClass:\"grd contain\"},[_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_c('h3',[_vm._v(\"Market\")]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Exchange\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.config.watch.exchange))])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Currency\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.config.watch.currency))])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Asset\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.config.watch.asset))])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Type\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.type))])])]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_c('h3',[_vm._v(\"Runtime\")]),(_vm.isLoading)?_c('spinner'):_vm._e(),(!_vm.isLoading)?[(_vm.initialEvents.candle)?_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-2-6\"},[_vm._v(\"Watching since\")]),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.fmt(_vm.initialEvents.candle.start)))])]):_vm._e(),(_vm.latestEvents.candle)?_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-2-6\"},[_vm._v(\"Received data until\")]),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.fmt(_vm.latestEvents.candle.start)))])]):_vm._e(),(_vm.latestEvents.candle)?_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-2-6\"},[_vm._v(\"Data spanning\")]),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.humanizeDuration(_vm.moment(_vm.latestEvents.candle.start).diff(_vm.moment(_vm.initialEvents.candle.start)))))])]):_vm._e(),(_vm.isStratrunner)?[_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-2-6\"},[_vm._v(\"Amount of trades\")]),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.trades.length))])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-2-6\"},[_vm._v(\"Candle size\")]),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.config.tradingAdvisor.candleSize))])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-2-6\"},[_vm._v(\"History size\")]),_c('div',{staticClass:\"grd-row-col-4-6\"},[_vm._v(_vm._s(_vm.config.tradingAdvisor.historySize))])])]:_vm._e()]:_vm._e()],2)]),(_vm.warmupRemaining)?_c('div',{staticClass:\"contain brdr--mid-gray p1 bg--orange\"},[_vm._v(\"This stratrunner is still warming up for the next \"),_c('i',[_vm._v(_vm._s(_vm.warmupRemaining.replace(',', ' and ')))]),_vm._v(\", it will not trade until it is warmed up.\")]):_vm._e(),(_vm.isStratrunner)?_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_c('h3',[_vm._v(\"Strategy\")]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Name\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_c('strong',[_vm._v(_vm._s(_vm.stratName))])])]),_vm._v(\"Parameters\"),_c('pre',[_vm._v(_vm._s(_vm.stratParams))])]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_c('h3',[_vm._v(\"Profit report\")]),(!_vm.report)?[_c('p',[(_vm.isArchived)?_c('em',[_vm._v(\"This Gekko never executed a trade..\")]):_vm._e(),(!_vm.isArchived)?_c('em',[_vm._v(\"Waiting for at least one trade..\")]):_vm._e()])]:_vm._e(),(_vm.report)?[_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Start balance\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.round(_vm.report.startBalance)))])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Current balance\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.round(_vm.report.balance)))])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Market\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.round(_vm.report.market / 100 * _vm.report.startPrice))+\" \"+_vm._s(_vm.config.watch.currency)+\" (\"+_vm._s(_vm.round(_vm.report.market))+\" %)\")])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Profit\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.round(_vm.report.profit))+\" \"+_vm._s(_vm.config.watch.currency)+\" (\"+_vm._s(_vm.round(_vm.report.relativeProfit))+\" %)\")])]),_c('div',{staticClass:\"grd-row\"},[_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(\"Alpha\")]),_c('div',{staticClass:\"grd-row-col-3-6\"},[_vm._v(_vm._s(_vm.round(_vm.report.alpha))+\" \"+_vm._s(_vm.config.watch.currency))])])]:_vm._e()],2)]):_vm._e(),(_vm.isStratrunner && !_vm.watcher && !_vm.isArchived)?_c('p',[_vm._v(\"WARNING: stale gekko, not attached to a watcher, please report \"),_c('a',{attrs:{\"href\":\"https://github.com/askmike/gekko/issues\"}},[_vm._v(\"here\")]),_vm._v(\".\")]):_vm._e(),(!_vm.isArchived)?_c('p',[_c('a',{staticClass:\"w100--s my1 btn--red\",on:{\"click\":_vm.stopGekko}},[_vm._v(\"Stop Gekko\")])]):_vm._e(),(_vm.isArchived)?_c('p',[_c('a',{staticClass:\"w100--s my1 btn--red\",on:{\"click\":_vm.deleteGekko}},[_vm._v(\"Delete Gekko\")])]):_vm._e(),(_vm.isStratrunner && _vm.watcher && !_vm.isArchived)?_c('p',[_c('em',[_vm._v(\"This gekko gets market data from \"),_c('router-link',{attrs:{\"to\":\"/live-gekkos/\" + _vm.watcher.id}},[_vm._v(\"this market watcher\")])],1),_vm._v(\".\")]):_vm._e()]),(!_vm.isLoading)?[_c('h3',{staticClass:\"contain\"},[_vm._v(\"Market graph\")]),(_vm.candleFetch === \"fetching\")?_c('spinner'):_vm._e(),(_vm.candleFetch === \"fetched\")?[_c('chart',{attrs:{\"data\":_vm.chartData,\"height\":300}})]:_vm._e(),(_vm.isStratrunner)?_c('roundtrips',{attrs:{\"roundtrips\":_vm.roundtrips}}):_vm._e()]:_vm._e()],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n div.my2\n .contain(v-if='!data')\n h1 Unknown Gekko instance\n p Gekko doesn't know what gekko this is...\n div(v-if='data')\n h2.contain Gekko {{ type }}\n div(v-if='isArchived', class='contain brdr--mid-gray p1 bg--orange')\n | This is an archived Gekko, it is currently not running anymore.\n div(v-if='data.errorMessage', class='contain brdr--mid-gray p1 bg--orange')\n | This is Gekko crashed with the following error: {{ data.errorMessage }}\n .grd.contain\n .grd-row\n .grd-row-col-3-6\n h3 Market\n .grd-row\n .grd-row-col-3-6 Exchange\n .grd-row-col-3-6 {{ config.watch.exchange }}\n .grd-row\n .grd-row-col-3-6 Currency\n .grd-row-col-3-6 {{ config.watch.currency }}\n .grd-row\n .grd-row-col-3-6 Asset\n .grd-row-col-3-6 {{ config.watch.asset }}\n .grd-row\n .grd-row-col-3-6 Type\n .grd-row-col-3-6 {{ type }}\n .grd-row-col-3-6\n h3 Runtime\n spinner(v-if='isLoading')\n template(v-if='!isLoading')\n .grd-row(v-if='initialEvents.candle')\n .grd-row-col-2-6 Watching since\n .grd-row-col-4-6 {{ fmt(initialEvents.candle.start) }}\n .grd-row(v-if='latestEvents.candle')\n .grd-row-col-2-6 Received data until\n .grd-row-col-4-6 {{ fmt(latestEvents.candle.start) }}\n .grd-row(v-if='latestEvents.candle')\n .grd-row-col-2-6 Data spanning\n .grd-row-col-4-6 {{ humanizeDuration(moment(latestEvents.candle.start).diff(moment(initialEvents.candle.start))) }}\n template(v-if='isStratrunner')\n .grd-row\n .grd-row-col-2-6 Amount of trades\n .grd-row-col-4-6 {{ trades.length }}\n .grd-row\n .grd-row-col-2-6 Candle size\n .grd-row-col-4-6 {{ config.tradingAdvisor.candleSize }}\n .grd-row\n .grd-row-col-2-6 History size\n .grd-row-col-4-6 {{ config.tradingAdvisor.historySize }}\n div(v-if='warmupRemaining', class='contain brdr--mid-gray p1 bg--orange')\n | This stratrunner is still warming up for the next \n i {{ warmupRemaining.replace(',', ' and ') }}\n | , it will not trade until it is warmed up.\n .grd-row(v-if='isStratrunner')\n .grd-row-col-3-6\n h3 Strategy\n .grd-row\n .grd-row-col-3-6 Name\n .grd-row-col-3-6\n strong {{ stratName }}\n | Parameters\n pre {{ stratParams }}\n .grd-row-col-3-6\n h3 Profit report\n template(v-if='!report')\n p\n em(v-if='isArchived') This Gekko never executed a trade..\n em(v-if='!isArchived') Waiting for at least one trade..\n template(v-if='report')\n .grd-row\n .grd-row-col-3-6 Start balance\n .grd-row-col-3-6 {{ round(report.startBalance) }}\n .grd-row\n .grd-row-col-3-6 Current balance\n .grd-row-col-3-6 {{ round(report.balance) }}\n .grd-row\n .grd-row-col-3-6 Market\n .grd-row-col-3-6 {{round(report.market / 100 * report.startPrice)}} {{ config.watch.currency }} ({{ round(report.market) }} %)\n .grd-row\n .grd-row-col-3-6 Profit\n .grd-row-col-3-6 {{ round(report.profit) }} {{ config.watch.currency }} ({{ round(report.relativeProfit) }} %)\n .grd-row\n .grd-row-col-3-6 Alpha\n .grd-row-col-3-6 {{ round(report.alpha) }} {{ config.watch.currency }}\n p(v-if='isStratrunner && !watcher && !isArchived') WARNING: stale gekko, not attached to a watcher, please report \n a(href='https://github.com/askmike/gekko/issues') here\n | .\n p(v-if='!isArchived')\n a(v-on:click='stopGekko', class='w100--s my1 btn--red') Stop Gekko\n p(v-if='isArchived')\n a(v-on:click='deleteGekko', class='w100--s my1 btn--red') Delete Gekko\n p(v-if='isStratrunner && watcher && !isArchived')\n em This gekko gets market data from \n router-link(:to='\"/live-gekkos/\" + watcher.id') this market watcher\n | .\n template(v-if='!isLoading')\n h3.contain Market graph\n spinner(v-if='candleFetch === \"fetching\"')\n template(v-if='candleFetch === \"fetched\"')\n chart(:data='chartData', :height='300')\n roundtrips(v-if='isStratrunner', :roundtrips='roundtrips')\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./singleGekko.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./singleGekko.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./singleGekko.vue?vue&type=template&id=35f5b818&lang=pug\"\nimport script from \"./singleGekko.vue?vue&type=script&lang=js\"\nexport * from \"./singleGekko.vue?vue&type=script&lang=js\"\nimport style0 from \"./singleGekko.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./datasetpicker.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./datasetpicker.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./blockSpinner.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./blockSpinner.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./single.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./single.vue?vue&type=style&index=0&lang=css\"","// global window.CONFIG\n\nconst config = window.CONFIG.ui;\nconst endpoint = `${config.host}${config.port === 80 ? '' : `:${config.port}`}${config.path}`;\n\nlet basePath, restPath, wsPath;\n\n// rest API path\nif(config.ssl) {\n basePath = `https://${endpoint}`;\n} else {\n basePath = `http://${endpoint}`;\n}\n\nrestPath = basePath + 'api/';\n\n// ws API path\nif(config.ssl) {\n wsPath = `wss://${endpoint}api`;\n} else {\n wsPath = `ws://${endpoint}api`;\n}\n\nexport {\n wsPath,\n restPath,\n basePath\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd\"},[_c('div',{staticClass:\"px1\"},[_c('h3',[_vm._v(\"Paper trader\")]),(_vm.toggle === \"closed\")?_c('a',{staticClass:\"btn--primary\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.switchToggle($event)}}},[_vm._v(\"Change paper trader settings\")]):_vm._e(),(_vm.toggle === \"open\")?[_c('p',[_vm._v(\"Settings:\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.rawPaperTraderParams),expression:\"rawPaperTraderParams\"}],staticClass:\"params\",domProps:{\"value\":(_vm.rawPaperTraderParams)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.rawPaperTraderParams=$event.target.value}}}),(_vm.rawPaperTraderParamsError)?_c('p',{staticClass:\"bg--red p1\"},[_vm._v(_vm._s(_vm.rawPaperTraderParamsError.message))]):_vm._e()]:_vm._e()],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n.grd\n .px1\n h3 Paper trader\n a.btn--primary(href='#', v-on:click.prevent='switchToggle', v-if='toggle === \"closed\"') Change paper trader settings\n template(v-if='toggle === \"open\"')\n p Settings:\n textarea.params(v-model='rawPaperTraderParams')\n p.bg--red.p1(v-if='rawPaperTraderParamsError') {{ rawPaperTraderParamsError.message }}\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./papertrader.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./papertrader.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./papertrader.vue?vue&type=template&id=6a733e04&lang=pug\"\nimport script from \"./papertrader.vue?vue&type=script&lang=js\"\nexport * from \"./papertrader.vue?vue&type=script&lang=js\"\nimport style0 from \"./papertrader.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { post } from '../../../tools/ajax'\n\nvar mixin = {\n data: () => {\n return {\n datasets: [],\n datasetScanstate: 'idle',\n unscannableMakets: []\n } \n },\n methods: {\n scan: function() {\n this.datasetScanstate = 'scanning';\n\n post('scansets', {}, (error, response) => {\n this.datasetScanstate = 'scanned';\n\n this.unscannableMakets = response.errors;\n\n let sets = [];\n\n response.datasets.forEach(market => {\n market.ranges.forEach((range, i) => {\n sets.push({\n exchange: market.exchange,\n currency: market.currency,\n asset: market.asset,\n from: moment.unix(range.from).utc(),\n to: moment.unix(range.to).utc(),\n id: market.exchange + market.asset + market.currency + i\n });\n });\n });\n\n // for now, filter out sets smaller than 3 hours..\n sets = sets.filter(set => {\n if(set.to.diff(set.from, 'hours') > 2)\n return true;\n });\n\n sets = sets.sort((a, b) => {\n let adiff = a.to.diff(a.from);\n let bdiff = b.to.diff(b.from);\n\n if(adiff < bdiff)\n return -1;\n\n if(adiff > bdiff)\n return 1;\n\n return 0;\n }).reverse();\n\n this.datasets = sets;\n })\n }\n }\n}\n\nexport default mixin;","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stratpicker.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stratpicker.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./paperTradeSummary.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./paperTradeSummary.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header.vue?vue&type=style&index=0&lang=css\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contain roundtrips\"},[_c('h2',[_vm._v(\"Roundtrips\")]),(_vm.roundtrips.length)?_c('table',[_c('thead',[_vm._m(0),_vm._l((_vm.roundtrips),function(rt){return _c('tr',[_c('td',[_vm._v(_vm._s(_vm.fmt(rt.entryAt)))]),_c('td',[_vm._v(_vm._s(_vm.fmt(rt.exitAt)))]),_c('td',[_vm._v(_vm._s(_vm.diff(rt.duration)))]),_c('td',[_vm._v(_vm._s(_vm.round(rt.entryBalance)))]),_c('td',[_vm._v(_vm._s(_vm.round(rt.exitBalance)))]),(Math.sign(rt.pnl)===-1)?[_c('td',{staticClass:\"loss\"},[_vm._v(_vm._s(Math.sign(rt.pnl)*rt.pnl.toFixed(2)))]),_c('td',{staticClass:\"loss\"},[_vm._v(_vm._s(rt.profit.toFixed(2))+\"%\")])]:[_c('td',{staticClass:\"profit\"},[_vm._v(_vm._s(rt.pnl.toFixed(2)))]),_c('td',{staticClass:\"profit\"},[_vm._v(_vm._s(rt.profit.toFixed(2))+\"%\")])]],2)})],2)]):_vm._e(),(!_vm.roundtrips.length)?_c('div',[_c('p',[_vm._v(\"Not enough data to display\")])]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('th',[_vm._v(\"Entry at (UTC)\")]),_c('th',[_vm._v(\"Exit at (UTC)\")]),_c('th',[_vm._v(\"Exposure\")]),_c('th',[_vm._v(\"Entry balance\")]),_c('th',[_vm._v(\"Exit balance\")]),_c('th',[_vm._v(\"P&L\")]),_c('th',[_vm._v(\"Profit\")])])}]\n\nexport { render, staticRenderFns }","\n .contain.roundtrips\n h2 Roundtrips\n table(v-if='roundtrips.length')\n thead\n tr\n th Entry at (UTC)\n th Exit at (UTC)\n th Exposure\n th Entry balance\n th Exit balance\n th P&L\n th Profit\n tr(v-for='rt in roundtrips')\n td {{ fmt(rt.entryAt) }}\n td {{ fmt(rt.exitAt) }}\n td {{ diff(rt.duration) }}\n td {{ round(rt.entryBalance) }}\n td {{ round(rt.exitBalance) }}\n template(v-if=\"Math.sign(rt.pnl)===-1\")\n td.loss {{ Math.sign(rt.pnl)*rt.pnl.toFixed(2) }}\n td.loss {{ rt.profit.toFixed(2) }}%\n template(v-else)\n td.profit {{ rt.pnl.toFixed(2) }}\n td.profit {{ rt.profit.toFixed(2) }}%\n div(v-if='!roundtrips.length')\n p Not enough data to display\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./roundtripTable.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./roundtripTable.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./roundtripTable.vue?vue&type=template&id=2cb9226e&lang=pug\"\nimport script from \"./roundtripTable.vue?vue&type=script&lang=js\"\nexport * from \"./roundtripTable.vue?vue&type=script&lang=js\"\nimport style0 from \"./roundtripTable.vue?vue&type=style&index=0&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./result.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./result.vue?vue&type=style&index=0&lang=css\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./typepicker.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./typepicker.vue?vue&type=style&index=0&lang=css\"","import superagent from 'superagent'\nimport noCache from 'superagent-no-cache'\nimport { restPath } from './api.js'\n\nconst processResponse = next => (err, res) => {\n if(err)\n return next(err);\n\n if(!res.text)\n return next('no data');\n\n let data = JSON.parse(res.text);\n\n next(false, data);\n}\n\nexport const post = (to, data, next) => {\n superagent\n .post(restPath + to)\n .use(noCache)\n .send(data)\n .end(processResponse(next));\n}\n\nexport const get = (to, next) => {\n superagent\n .get(restPath + to)\n .use(noCache)\n .end(processResponse(next));\n}\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./importer.vue?vue&type=style&index=0&lang=css\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./importer.vue?vue&type=style&index=0&lang=css\""],"sourceRoot":""}
\ No newline at end of file
diff --git a/web/vue/src/components/backtester/result/roundtripTable.vue b/web/vue/src/components/backtester/result/roundtripTable.vue
index 81268d5a3..ece286adb 100644
--- a/web/vue/src/components/backtester/result/roundtripTable.vue
+++ b/web/vue/src/components/backtester/result/roundtripTable.vue
@@ -36,7 +36,7 @@ export default {
methods: {
diff: n => moment.duration(n).humanize(),
humanizeDuration: (n) => window.humanizeDuration(n),
- fmt: mom => moment(mom).utc().format('YYYY-MM-DD HH:mm'),
+ fmt: mom => moment.unix(mom).utc().format('YYYY-MM-DD HH:mm'),
round: n => (+n).toFixed(3),
},
}