[SHARE] GAB - Gekko Automated Backtests
(11-16-2018, 02:48 AM)gekko2yuno Wrote:
(04-14-2018, 08:12 PM)gekko2yuno Wrote:
(04-14-2018, 04:46 PM)tommiehansen Wrote: Major update

MySQL (InnoDB) is now an option that can be used instead of SQLite and code has been re-written to use this, if set, wherever possible.

Why? Because if running massive runs with 10+ threads etc SQLite simply is too prone to errors (and corruption) and isn't a great choice for say 30-100 000+  runs, something that is quite feasible when running 10+ threads and date ranges that span just 3-4 months.

So this became somewhat of a problem and has been solved by letting the user choose MySQL as the database.
Requires the user to set this up in its user.config.php (see new sample.config.php).

Using MySQL is also now the recommended way to run Gabby if you aren't just testing things out.

---

This also introduces a breaking change -- the naming scheme for the database names (SQLite as well) has changed.
This mean that any old runs/database you have for SQLite will now not show up at all since GAB will not recognize these as valid databases (or it will error out).

To solve this use the included tool Compatibility Fix. Currently this will rename your SQLite databases to the new naming scheme automatically.
You'll find it under <your install directory>/tools e.g. localhost:80/gab/tools

to update do:
git pull

or to install the new version to an entirely different dir create a new one and do:
git pull https://github.com/tommiehansen/gab.git

The database name is not required in     Example for mysql: '127.0.0.1:3306,TommieHansenIsTheBest,MySuperPassword' ?
I am getting error:

MySQL db connection test
FAIL Could not connect to MySQL database, error message:
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: No address associated with hostname

This more have to do with your settings for your database server (and PHP) so you should Google/look into such a problem.
  Reply
(11-16-2018, 04:07 PM)tommiehansen Wrote:
(11-16-2018, 02:48 AM)gekko2yuno Wrote:
(04-14-2018, 08:12 PM)gekko2yuno Wrote:
(04-14-2018, 04:46 PM)tommiehansen Wrote: Major update

MySQL (InnoDB) is now an option that can be used instead of SQLite and code has been re-written to use this, if set, wherever possible.

Why? Because if running massive runs with 10+ threads etc SQLite simply is too prone to errors (and corruption) and isn't a great choice for say 30-100 000+  runs, something that is quite feasible when running 10+ threads and date ranges that span just 3-4 months.

So this became somewhat of a problem and has been solved by letting the user choose MySQL as the database.
Requires the user to set this up in its user.config.php (see new sample.config.php).

Using MySQL is also now the recommended way to run Gabby if you aren't just testing things out.

---

This also introduces a breaking change -- the naming scheme for the database names (SQLite as well) has changed.
This mean that any old runs/database you have for SQLite will now not show up at all since GAB will not recognize these as valid databases (or it will error out).

To solve this use the included tool Compatibility Fix. Currently this will rename your SQLite databases to the new naming scheme automatically.
You'll find it under <your install directory>/tools e.g. localhost:80/gab/tools

to update do:
git pull

or to install the new version to an entirely different dir create a new one and do:
git pull https://github.com/tommiehansen/gab.git

The database name is not required in     Example for mysql: '127.0.0.1:3306,TommieHansenIsTheBest,MySuperPassword' ?
I am getting error:

MySQL db connection test
FAIL Could not connect to MySQL database, error message:
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: No address associated with hostname

This more have to do with your settings for your database server (and PHP) so you should Google/look into such a problem.

I did but there was no definite solution for it that I understand. Can I have a single database with all the pairs in it itself?
  Reply
(11-16-2018, 09:37 PM)gekko2yuno Wrote:
(11-16-2018, 04:07 PM)tommiehansen Wrote:
(11-16-2018, 02:48 AM)gekko2yuno Wrote:
(04-14-2018, 08:12 PM)gekko2yuno Wrote:
(04-14-2018, 04:46 PM)tommiehansen Wrote: Major update

MySQL (InnoDB) is now an option that can be used instead of SQLite and code has been re-written to use this, if set, wherever possible.

Why? Because if running massive runs with 10+ threads etc SQLite simply is too prone to errors (and corruption) and isn't a great choice for say 30-100 000+  runs, something that is quite feasible when running 10+ threads and date ranges that span just 3-4 months.

So this became somewhat of a problem and has been solved by letting the user choose MySQL as the database.
Requires the user to set this up in its user.config.php (see new sample.config.php).

Using MySQL is also now the recommended way to run Gabby if you aren't just testing things out.

---

This also introduces a breaking change -- the naming scheme for the database names (SQLite as well) has changed.
This mean that any old runs/database you have for SQLite will now not show up at all since GAB will not recognize these as valid databases (or it will error out).

To solve this use the included tool Compatibility Fix. Currently this will rename your SQLite databases to the new naming scheme automatically.
You'll find it under <your install directory>/tools e.g. localhost:80/gab/tools

to update do:
git pull

or to install the new version to an entirely different dir create a new one and do:
git pull https://github.com/tommiehansen/gab.git

The database name is not required in     Example for mysql: '127.0.0.1:3306,TommieHansenIsTheBest,MySuperPassword' ?
I am getting error:

MySQL db connection test
FAIL Could not connect to MySQL database, error message:
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: No address associated with hostname

This more have to do with your settings for your database server (and PHP) so you should Google/look into such a problem.

I did but there was no definite solution for  it that I understand. Can I have a single database with all the pairs in it itself?


Try going to /gab/tools and use the Sanity Check to check your system. It was made to check that everything works.
If it does you should get an 'OK' like on this screenshot:

.png   Skärmklipp.PNG (Size: 44.51 KB / Downloads: 22)

Else you'll get errors and you'll have to fix those errors.
  Reply
(11-17-2018, 10:09 AM)tommiehansen Wrote:
(11-16-2018, 09:37 PM)gekko2yuno Wrote:
(11-16-2018, 04:07 PM)tommiehansen Wrote:
(11-16-2018, 02:48 AM)gekko2yuno Wrote:
(04-14-2018, 08:12 PM)gekko2yuno Wrote: The database name is not required in     Example for mysql: '127.0.0.1:3306,TommieHansenIsTheBest,MySuperPassword' ?
I am getting error:

MySQL db connection test
FAIL Could not connect to MySQL database, error message:
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: No address associated with hostname

This more have to do with your settings for your database server (and PHP) so you should Google/look into such a problem.

I did but there was no definite solution for  it that I understand. Can I have a single database with all the pairs in it itself?


Try going to /gab/tools and use the Sanity Check to check your system. It was made to check that everything works.
If it does you should get an 'OK' like on this screenshot:


Else you'll get errors and you'll have to fix those errors.
This error message is from Sanity check. Huh
If you can give how do you create user and what privileges you grant to user.
  Reply
(11-17-2018, 08:11 PM)gekko2yuno Wrote:
(11-17-2018, 10:09 AM)tommiehansen Wrote:
(11-16-2018, 09:37 PM)gekko2yuno Wrote:
(11-16-2018, 04:07 PM)tommiehansen Wrote:
(11-16-2018, 02:48 AM)gekko2yuno Wrote: I am getting error:

MySQL db connection test
FAIL Could not connect to MySQL database, error message:
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: No address associated with hostname

This more have to do with your settings for your database server (and PHP) so you should Google/look into such a problem.

I did but there was no definite solution for  it that I understand. Can I have a single database with all the pairs in it itself?


Try going to /gab/tools and use the Sanity Check to check your system. It was made to check that everything works.
If it does you should get an 'OK' like on this screenshot:


Else you'll get errors and you'll have to fix those errors.
This error message is from Sanity check. Huh
If you can give how do you create user and what privileges you grant to user.

Sorry, i simply do not have time to give you server administration support.
Try googling for the error, take it from there. Smile
  Reply
Thanks for the hint tommie! Will downgrade Gekko then Wink
  Reply
hi!
I installed XAMPP with PHP version 7.1+ and wanted to use GA to select parameters, but  i get an error after 120 seconds:
16:00:59 Runner.php ERROR: Running config via curl_post() did not return data.
url: http://localhost:3000/api/backtest | curl status: 0 - No data
I changed the timeout in the file functions.php, but it did not help.
in php.ini installed max_execution_time = 0, but it did not help

environment:
os x: high sierra
Gekko v0.6.7 and Gekko UI v0.2.3.

Prompt, please, in what there can be a problem?
  Reply
@tommiehansen Gab is running, but sometimes I get:
Notice:  Undefined property: stdClass::$performanceReport in /var/www/html/gab/system/runner.php on line 305
Notice:  Trying to get property 'market' of non-object in /var/www/html/gab/system/runner.php on line 306
Notice:  Trying to get property 'relativeProfit' of non-object in /var/www/html/gab/system/runner.php on line 307
-> Bad! Performed 0% worse then market

Some calculation works great. What condition could cause the error?
Regards
Christoph


Attached Files
.jpg   screen.jpg (Size: 249.08 KB / Downloads: 9)
  Reply
(03-21-2018, 12:01 PM)tommiehansen Wrote: GAB
Gekko Automated Backtets

*** THIS IS BETA ***
If something does not work, it simply does not work since time hasn't existed yet to get it working.

Updated 14 april 2018 with MySQL as new option.

---

Why

I needed a way to run backtests for Gekko in a 'brute-force' manor automated and with multi-threading.
I also needed a way to compare all these runs and get extra data such as win percent etc.

-

Prerequisites (required)

1. Gekko installed and working
2. Webserver + PHP (preferrably 7.1+) with cURL and PDO SQLite or PDO MySQL/MariaDB
3. A user with write access

If you do not understand any of this it will be very hard to run this tool.
You can try googling for things such as install apache php 7.2.

-

How-to

0. Copy+Paste system/user.config.sample.php and rename the new file to user.config.php
1. Open user.config.php and make sure the $server variable is pointing at your Gekko install e.g. http://localhost:3000
2. Go to your-localhost/gab/ and see if it works.
3. Run something..
4. After you got some runs click 'View runs' in the menu and check results

--

Multi-server mode
If you're a nerd you can also use multi-server mode by specifying an array of servers instead of just one in your user.config.php like this:

$server = [
  'http://localhost:3000',
  'http://my-other-server:3000',
  'http://my-third-server:3000',
];

If your Gekko-files are not in sync on all these servers it will fail miserably though.
Setting an array will randomly use one of the servers to run a strategy.

In this case it's 3 so setting threads to e.g. 6 will usually mean 2 threads will run on each of these servers.
Do note that e.g. Chrome has a max concurrent connections @ 6 so in order to increase max-threads (and have it actually run in paralell) you would need to either force higher max concurrent connections or randomize/create subdomains for post.php (and remove any CORS restrictions).

-

Dynamic parameters
GAB uses dynamic parameters, these work for all strategy paramers. Example, RSI BULL/BEAR:


Code:
# SMA
SMA_long = 100:1000,100
SMA_short = 10:90,10

# BULL
BULL_RSI = 5:20,5
BULL_RSI_high = 70:90,5
BULL_RSI_low = 40:60,5

# BEAR
BEAR_RSI = 5:20,5
BEAR_RSI_high = 40:60,5
BEAR_RSI_low = 10:30,5


The format is <FROM>:<TO>,<STEPPING>.
This means that e.g. 10:20,5 will generate the range: 10,15,20
The params are inclusive meaning that odd stepping e.g. 5:15,10 will become 5,10,15 - the first and last of range is always kept.

-

Screens

Runner (select.php): https://i.imgur.com/kcXXMdW.png
Results (view.php): https://i.imgur.com/CPhvDEl.png

-

Donate

People keeps asking about this so i'll just leave it here for future reference:

BTC: 15cZUi7VvmCQJLbPXYYWChHF3JpsBaYDtH
ETH: 0xe03c5eb9DF93360e3Bcfcd13012B7DeebbED6923

-

Download

Go to: https://github.com/tommiehansen/gab/
or just clone: https://github.com/tommiehansen/gab.git
Hi,I just start gekko, I installed gekko on my windows 10 with Doker, I have a web hosting server account, can I copy files to my domain hosting account  or I have to install a personal server on my computer?  can both ways work fine? thank you.
  Reply
My site isn't loading well, I get a big block of code at the top - partial below. any thoughts on which service isnt running right to show me this?

dirs->system . 'functions.php'; require_once $conf->dirs->system . 'class.gab.php'; $page = 'run'; $page_title = 'Run strategy'; require $conf->dirs->views . 'header.php'; # new instance $gab = new \GAB\core($conf); # get exchanges and pairs $datasets = $gab->get_datasets(); # force UTC timezone (else curl errors) date_default_timezone_set('UTC'); ?>
  Reply


Forum Jump:


Users browsing this thread: