BacktestTool - batch backtest, import and strategy parameters optimalization
#11
FANTASTIC!!!! awesome work will get this running tomorrow great work
  Reply
#12
@xFFFFF are there any limitation on the brute force testing? I want to test the Bull Bear RSI ADX strat but there is 17 lines will the tool manage parameters on all lines or will i need to break it down?
  Reply
#13
Help:

I'm getting this error:
"Error: SQLITE_BUSY: database is locked
NEO-USDT Backtest is failed.
The storable module was unable to store the child's data structure to the temp file "/tmp/sPwsHc6Og7/Parallel-ForkManager-521-522.txt": can't create /tmp/sPwsHc6Og7/Parallel-ForkManager-521-522.txt: No such file or directory at Parallel/ForkManager.pm line 84.
NEO-USDT Backtest is failed.
The storable module was unable to store the child's data structure to the temp file "/tmp/sPwsHc6Og7/Parallel-ForkManager-521-525.txt": can't create /tmp/sPwsHc6Og7/Parallel-ForkManager-521-525.txt: No such file or directory at Parallel/ForkManager.pm line 84.
events.js:183
throw er; // Unhandled 'error' event
"
  Reply
#14
As for the limits - as I wrote on Discord: there is no limit on the number of combinations. However, when you set too large ranges in TOML, it takes more time to generate combinations. I managed to run BacktestTool with 1,600,000 possible settings for the strategy, however, the process took 2 to 4 minutes. During this time, new information is not displayed on the screen - this will be corrected in the next versions. Remember, however, that your hardware (memory) can be a limit.

Above error:
For me, the error with sqlite busy did not appear even once, but I do not use UI, import candles on my VPS, and then download the SQLite file to my local. Although I ran BacktestTool with 7 threads. Anyway, in the future (if I have enough will) I will also support postgreSQL and mongoDB support. For now, however, I have to implement other things.

In summary: I guess that when running BacktestTool you also use Gekko UI or import mode in Gekko CLI on the same database?

Finally, small teaser of the next version

[Image: YR1KRN7.png]
My projects [Strategies] [Datasets]
  Reply
#15
Ah i see, the imported files i have are from Gekko itself which on my VPS are running in the background, this maybe why its calling back as busy. is there a way form me to change the import file location for the backtest tool so i do not need to stop my bots to run the back test?

Would this work?

Current:
config.adapter = 'sqlite';
config.sqlite = {
path: 'plugins/sqlite',
dataDirectory: 'history',
version: 0.1,
dependencies: []

Suggested:
config.adapter = 'sqlite';
config.sqlite = {
path: 'plugins/sqlite',
dataDirectory: 'Newfile',
version: 0.1,
dependencies: []

Lines from backtest.pl lines 396 to 401
  Reply
#16
Yes. You can change dataDirectory or version values and use different DB to backtest and import. I will bring this settings to BacktestTool config file. I dont tried in CLI but binance1_0.1.db and binance2_0.1.db should work too with using binance1:USDT:BTC and binance2:USDT:BTC in BacktestTool.
My projects [Strategies] [Datasets]
  Reply
#17
(05-01-2018, 11:43 AM)xFFFFF Wrote: Yes. You can change dataDirectory or version values and use different DB to backtest and import. I will bring this settings to BacktestTool config file. I dont tried in CLI but binance1_0.1.db and binance2_0.1.db should work too with using binance1:USDT:BTC and binance2:USDT:BTC  in BacktestTool.

Thanks, i setup a new gekko folder to run back tests and have corrected the busy error however i now have this one (sorry)

Code:
[2018-05-01 12:43:19] Creating TOP DATASET table...
DBD::CSV::st execute failed: No such column 'DISTINCT currency' at DBI/DBD/SqlEngine.pm line 1271.
[for Statement "SELECT DISTINCT currency, asset, dataset_from, to FROM tmp/aj6.06626571593385.csv"] at script/backtest.pl line 220.
DBD::CSV::st fetchrow_array failed: Attempt to fetch row without a preceding execute () call or from a non-SELECT statement [for Statement "SELECT DISTINCT currency, asset, dataset_from, to FROM tmp/aj6.06626571593385.csv"] at script/backtest.pl line 221.
DBD::CSV::st execute failed: No such column 'DISTINCT strategy' at DBI/DBD/SqlEngine.pm line 1271.
[for Statement "SELECT DISTINCT strategy, strategy_settings FROM tmp/aj6.06626571593385.csv"] at script/backtest.pl line 281.
DBD::CSV::st fetchrow_array failed: Attempt to fetch row without a preceding execute () call or from a non-SELECT statement [for Statement "SELECT DISTINCT strategy, strategy_settings FROM tmp/aj6.06626571593385.csv"] at script/backtest.pl line 283.

and
Code:
Can't locate Time/Elapsed/Lang/EN.pm in @INC (you may need to install the Time::Elapsed::Lang::EN module) (@INC contains: /tmp/par-726f6f74/cache-02c00da046ed7f4b5156c5fd26df7f4bd69c9e93/inc/lib /tmp/par-726f6f74/cache-02c00da046ed7f4b5156c5fd26df7f4bd69c9e93/inc CODE(0x1d7ebc8) CODE(0x1d7edc0)) at Time/Elapsed.pm line 206.

Also i only run in CLI never open the UI
  Reply
#18
You have not installed dependencies. Use the cpan command from README or use binaries
My projects [Strategies] [Datasets]
  Reply
#19
i'll have to clean it out as i installed the dependencies and using the binaries. I guess i messed up somewhere.
  Reply
#20
Try cpan install Time::Elapsed::Lang::EN
My projects [Strategies] [Datasets]
  Reply


Forum Jump:


Users browsing this thread: