xFFFFF / Gekko-BacktestTool

Batch backtest, import and strategy params optimalization for Gekko Trading Bot. With one command you will run any number of backtests.
MIT License
231 stars 85 forks source link

DBD::CSV::st execute failed #22

Closed crypto49er closed 6 years ago

crypto49er commented 6 years ago

I'm running Gekko-BacktestTool in Windows with Strawberry Perl and I'm getting this error message after 4 minutes of backtesting.

DBD::CSV::st execute failed: Execution ERROR: Missing first row due to EIF - CR char inside unquoted, not part of EOL at C:/Strawberry/perl/vendor/lib/DBI/DBD/SqlEngine.pm line 1480. called from backtest.pl at 1486.

at C:/Strawberry/perl/vendor/lib/DBI/DBD/SqlEngine.pm line 1271. [for Statement "SELECT currency, asset, strategy, profit_, profit_market, profitday, trades_day, best_win, worst_loss, avg_HODLmin, avg_price, overall_trades_day, volume_day FROM tmp\tmp_datayzmnf.csv"] at backtest.pl line 148, line 1. DBD::CSV::st execute failed: Execution ERROR: Missing first row due to EIF - CR char inside unquoted, not part of EOL at C:/Strawberry/perl/vendor/lib/DBI/DBD/SqlEngine.pm line 1480. called from backtest.pl at 1486.

at C:/Strawberry/perl/vendor/lib/DBI/DBD/SqlEngine.pm line 1271. [for Statement "SELECT currency, asset, strategy, profit_, profit_market, profitday, trades_day, best_win, worst_loss, avg_HODLmin, avg_price, overall_trades_day, volume_day FROM tmp\tmp_datayzmnf.csv"] at backtest.pl line 148, line 1. Can't use an undefined value as a HASH reference at backtest.pl line 674. 2018-05-18 11:49:09 (WARN): TALIB indicators could not be loaded, they will be unavailable. 2018-05-18 11:49:09 (WARN): TULIP indicators could not be loaded, they will be unavailable. USD:ETH RSI_BULL_BEAR_ADX 9|14|76|16|21|52|19 13.55% -24.37 2.37 52.86% 4.87% -5.05% 382 59 00:03

I can consistently replicate this issue. I googled and found this stackoverflow saying there's probably invalid characters being output but I'm not quite sure how to identify which character is causing this issue. I don't think it has anything to do with the TALIB and TULIP warning as the strategy I'm testing doesn't use those indicators.

Here is the backtest-config file.

backtest-config.zip

xFFFFF commented 6 years ago

I know about this issue. I must start my Windows in VirtualBox - I dont like it :P

Problem can be in new line (\r\n), I dont know why or in (%, -, /) or/and in spaces in column names. If You want You can try play with these values in lines:

my $vars = {
    'currency' => 'currency',
    'asset' => 'asset',
    'exchange' => 'exchange',
    'strategy' => 'strategy',
    'profit' => 'profit[%]',
.....................
    'overall_trades' => 'overall trades',
    'overall_trades_day' => 'overall trades/day',
    'strategy_settings' => 'strategy settings',
    'note' => 'note'

Earlier tables with Tops working fine?

xFFFFF commented 6 years ago

Ok. I found. All you need to do is replace all \r\n with \n in backtest.pl file. I will correct it in the code and recompile the binaries.

Did you find a way to display ASCII art with welcome? On Windows fonts it looks poor :(

BTW Can I link Your youtube movie about BT? Thanks for record it :) Its really nice :)