nick-dolan / gekko-batcher

Batch backtest tool for Gekko.
MIT License
36 stars 15 forks source link

MaxListenersExceededWarning when running bruteforce #6

Closed WilbertNL closed 5 years ago

WilbertNL commented 5 years ago

Hi,

When running bruteforce, I receive this message during the console output:

Complete: RSI_BULL_BEAR USDT/BTC 5/1000 Binance
Started: RSI_BULL_BEAR USDT/BTC 5/1000 Binance
(node:22519) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 201 unhandledRejection listeners added. Use emitter.setMaxListeners() to increase limit
Complete: RSI_BULL_BEAR USDT/BTC 5/1000 Binance
Started: RSI_BULL_BEAR USDT/BTC 5/1000 Binance
Complete: RSI_BULL_BEAR USDT/BTC 5/1000 Binance

The bruteforce backtest does seem to continue to run properly.

Batcher's config.js:

const config = {};

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//                          GENERAL SETTINGS
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

config.gekkoPath = '../gekko/';

config.apiUrl = "http://localhost:3000";

config.parallelQueries = 3;

config.candleSizes = [5];

config.historySizes = [1000];

// Format: [exchange, currency, asset]
config.tradingPairs = [
    ["binance", "usdt", "btc"],
];

config.daterange = {
    from: '2018-11-18T00:00:00Z',
    to: '2019-01-08T00:00:00Z'
};

// Initial balance, fees and slippage/spread
config.paperTrader = {
    simulationBalance: {
        currency: 1,
        asset: 1
    },
    feeMaker: 0.05,
    feeTaker: 0.05,
    feeUsing: 'maker',
    slippage: 0.05,
}

// Where to get method's settings.
// The first has high priority. Then second, if there's no settings in first place and so on.

// batcher – strategy settings below here
// gekko – gekko's config.js
// toml.js – gekko's toml files
config.configPriorityLocations = ['batcher', 'gekko', 'gekko-toml'];

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//                          BACKTEST BATCHER
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

config.methods = ['RSI_BULL_BEAR_ADX'];

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//                          BRUTEFORCE SEARCHER
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

config.method = 'RSI_BULL_BEAR';

// Shuffle generated combinations of method's configs
config.shuffle = true;

// Generate all possible combinations of set of settings with given ranges
// Format for range: 'start:step:end'
config.ranges = {
    SMA_long: '300:200:700',
    SMA_short: '30:20:70',
    BULL_RSI: '10:5:20',
    BULL_RSI_high: '70:10:90',
    BULL_RSI_low: '50:10:70',
    BEAR_RSI: '10:5:20',
    BEAR_RSI_high: '30:20:70',
    BEAR_RSI_low: '10:10:30'
};

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//                          STRATEGY SETTINGS
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

config.RSI_BULL_BEAR = {
    SMA_long: '300:200:700',
    SMA_short: '30:20:70',
    BULL_RSI: '10:5:20',
    BULL_RSI_high: '70:10:90',
    BULL_RSI_low: '50:10:70',
    BEAR_RSI: '10:5:20',
    BEAR_RSI_high: '30:20:70',
    BEAR_RSI_low: '10:10:30'
};

module.exports = config;

Please let me know if you need any more feedback.

nick-dolan commented 5 years ago

@WilbertNL I increased MaxListeners (de1e0ef). Besides, I plan to cover the code with tests to avoid a number of issues like this.