Zenbot: backtester.js: let rawParams = jsonRegexp.exec(output2)[1]; throws TypeError: Cannot read property '1' of null

Created on 23 Jan 2018  路  2Comments  路  Source: DeviaVir/zenbot

  • Have I written custom code (as opposed to using zenbot vanilla):
    Vanilla
  • OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
    Ubuntu 16.04 on EC2 C5 on 72 CPUs
  • Zenbot version:
    unstable 6673d233af3fc41b7ff6022aad4abefb6eec9e7f
  • NodeJS version:
    8.9.4
  • Python version:
    2.7.12
  • Exact command to reproduce:
    ./scripts/auto_backtester/backtester.js gdax.BTC-GBP --days=10 --currency_capital=100

Describe the problem

backtester.js crashes with

/home/ubuntu/zenbot2/scripts/auto_backtester/backtester.js:109
  let rawParams     = jsonRegexp.exec(output2)[1];
                                              ^

TypeError: Cannot read property '1' of null
    at processOutput (/home/ubuntu/zenbot2/scripts/auto_backtester/backtester.js:109:47)
    at shell.exec (/home/ubuntu/zenbot2/scripts/auto_backtester/backtester.js:94:14)
    at /home/ubuntu/zenbot2/node_modules/shelljs/src/exec.js:110:9
    at ChildProcess.exithandler (child_process.js:267:7)
    at emitTwo (events.js:126:13)
    at ChildProcess.emit (events.js:214:7)
    at maybeClose (internal/child_process.js:925:16)
    at Socket.stream.socket.on (internal/child_process.js:346:11)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
  • Might be related to #996
  • No matter if I limit the number of concurrent simulations to something like 10, it always crashes at the second batch, but not it's not always the first run of the second batch to crash

Source code / logs

```
--==Zenbot 4.04 Backtester v0.2==--
Tue, 23 Jan 2018 18:12:29 GMT

Backtesting [176] iterations for strategy trend_ema...

[ 1/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=20 --oversold_rsi_periods=15 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 2/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=21 --oversold_rsi_periods=15 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 3/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=22 --oversold_rsi_periods=15 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 4/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=23 --oversold_rsi_periods=15 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 5/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=24 --oversold_rsi_periods=15 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 6/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=25 --oversold_rsi_periods=15 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 7/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=26 --oversold_rsi_periods=15 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 8/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=27 --oversold_rsi_periods=15 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 9/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=28 --oversold_rsi_periods=15 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 10/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=29 --oversold_rsi_periods=15 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 11/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=30 --oversold_rsi_periods=15 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 12/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=31 --oversold_rsi_periods=15 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 13/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=32 --oversold_rsi_periods=15 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 14/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=33 --oversold_rsi_periods=15 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 15/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=34 --oversold_rsi_periods=15 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 16/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=35 --oversold_rsi_periods=15 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 17/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=20 --oversold_rsi_periods=16 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 18/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=21 --oversold_rsi_periods=16 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 19/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=22 --oversold_rsi_periods=16 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 20/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=23 --oversold_rsi_periods=16 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 21/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=24 --oversold_rsi_periods=16 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 22/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=25 --oversold_rsi_periods=16 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 23/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=26 --oversold_rsi_periods=16 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 24/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=27 --oversold_rsi_periods=16 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 25/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=28 --oversold_rsi_periods=16 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 26/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=29 --oversold_rsi_periods=16 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 27/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=30 --oversold_rsi_periods=16 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 28/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=31 --oversold_rsi_periods=16 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 29/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=32 --oversold_rsi_periods=16 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 30/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=33 --oversold_rsi_periods=16 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 31/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=34 --oversold_rsi_periods=16 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 32/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=35 --oversold_rsi_periods=16 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 33/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=20 --oversold_rsi_periods=17 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 34/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=21 --oversold_rsi_periods=17 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 35/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=22 --oversold_rsi_periods=17 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 36/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=23 --oversold_rsi_periods=17 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 37/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=24 --oversold_rsi_periods=17 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 38/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=25 --oversold_rsi_periods=17 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 39/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=26 --oversold_rsi_periods=17 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 40/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=27 --oversold_rsi_periods=17 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 41/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=28 --oversold_rsi_periods=17 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 42/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=29 --oversold_rsi_periods=17 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 43/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=30 --oversold_rsi_periods=17 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 44/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=31 --oversold_rsi_periods=17 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 45/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=32 --oversold_rsi_periods=17 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 46/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=33 --oversold_rsi_periods=17 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 47/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=34 --oversold_rsi_periods=17 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 48/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=35 --oversold_rsi_periods=17 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 49/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=20 --oversold_rsi_periods=18 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 50/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=21 --oversold_rsi_periods=18 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 51/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=22 --oversold_rsi_periods=18 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 52/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=23 --oversold_rsi_periods=18 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 53/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=24 --oversold_rsi_periods=18 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 54/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=25 --oversold_rsi_periods=18 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 55/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=26 --oversold_rsi_periods=18 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 56/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=27 --oversold_rsi_periods=18 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 57/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=28 --oversold_rsi_periods=18 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 58/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=29 --oversold_rsi_periods=18 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 59/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=30 --oversold_rsi_periods=18 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 60/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=31 --oversold_rsi_periods=18 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 61/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=32 --oversold_rsi_periods=18 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 62/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=33 --oversold_rsi_periods=18 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 63/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=34 --oversold_rsi_periods=18 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 64/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=35 --oversold_rsi_periods=18 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 65/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=20 --oversold_rsi_periods=19 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 66/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=21 --oversold_rsi_periods=19 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 67/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=22 --oversold_rsi_periods=19 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 68/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=23 --oversold_rsi_periods=19 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 69/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=24 --oversold_rsi_periods=19 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 70/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=25 --oversold_rsi_periods=19 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 71/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=26 --oversold_rsi_periods=19 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 72/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=27 --oversold_rsi_periods=19 --neutral_rate=0.1 --period_length=2m --min_periods=52
[ 73/176 ] ./zenbot.sh sim gdax.BTC-GBP --days=10 --currency_capital=100 --trend_ema=20 --oversold_rsi=28 --oversold_rsi_periods=19 --neutral_rate=0.1 --period_length=2m --min_periods=52
/home/ubuntu/zenbot2/scripts/auto_backtester/backtester.js:109
let rawParams = jsonRegexp.exec(output2)[1];
^

TypeError: Cannot read property '1' of null
at processOutput (/home/ubuntu/zenbot2/scripts/auto_backtester/backtester.js:109:47)
at shell.exec (/home/ubuntu/zenbot2/scripts/auto_backtester/backtester.js:94:14)
at /home/ubuntu/zenbot2/node_modules/shelljs/src/exec.js:110:9
at ChildProcess.exithandler (child_process.js:267:7)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at maybeClose (internal/child_process.js:925:16)
at Socket.stream.socket.on (internal/child_process.js:346:11)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
````

bug

Most helpful comment

@micheledicosmo, The fix for this been merged into the unstable branch.

All 2 comments

This is related to #1199

The fix will be in #1206
I have implemented the fix in genetic_backtester first. I will also be implementing it into auto_backtester

@micheledicosmo, The fix for this been merged into the unstable branch.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

0DTE picture 0DTE  路  3Comments

MCrypto picture MCrypto  路  5Comments

bbusche picture bbusche  路  5Comments

tabbek picture tabbek  路  3Comments

njannink picture njannink  路  4Comments