The Multi-Market shows some signs of life.
Here, I generate 100 strategies.
Generator command:
express-generator> node ./bin/gen.js `
--server Premium `
--symbol EURUSD `
--period M15 `
--output Coll_[SERVER]_[SYMBOL]_[PERIOD].json
Generator output:
..:: Express Generator v2.69 ::..
Market : Premium Data EURUSD M15
From : 2022-02-11 20:15, To: 2026-02-17 12:00, Bars: 100000
Spread : 10, Swap long: -21.08, Swap short: 13.08, Commission: 6 USD
Account: 10000 USD, Leverage: 100, Entry: 0.01 lots
10358 ┤ ╭╮ ╭────╮╭─ Net profit 353.77 USD
10328 ┤ ╭╯╰─╮╭─╯ ╰╯ Profit per day 0.24 USD
10298 ┤ ╭──╯ ╰╯ Profit factor 1.34
10269 ┤ ╭──╮ ╭────╯ Max drawdown 77.19 USD
10239 ┤ ╭╯ ╰──╯ Max drawdown 0.75 %
10209 ┤ ╭╯ Return/drawdown 4.58
10179 ┤ ╭╯ Win / loss 0.70
10149 ┤ ╭─╯ Max stagnation 414 days
10119 ┤ ╭╯ Max stagnation 28.29 %
10090 ┤ ╭╯ R - squared 64.48
10060 ┤ ╭╯ Max cons losses 4
10030 ┤╭─╯ Count of trades 509
10000 ┼╯ Avrg pos length 171 bars
- Ascended: 343, Calculated: 17606, Time: 03:00 of 03:00, Coll: 100
Collection exported: collections/Coll_Premium_Data_EURUSD_M15.json
Then I run the new Multi-Market tool. The count of tests is determined by the combinations of servers, symbols, and periods. (18 in this example).
express-generator> node ./bin/mm.js `
--server Premium --symbol EURUSD --period M15 `
--input Coll_[SERVER]_[SYMBOL]_[PERIOD].json `
--count-of-tests 20 `
--test-servers MetaQuotes Premium `
--test-periods M5 M15 M30 `
--test-symbols EURUSD GBPUSD AUDUSD
It fetches historical data:
..:: Express Generator Multi Market v2.69 ::..
Fetched: MetaQuotes AUDUSD M5, From: 2024-10-11 01:25, To: 2026-02-17 12:30, Bars: 100000
Fetched: MetaQuotes EURUSD M5, From: 2024-10-10 22:45, To: 2026-02-17 12:30, Bars: 100000
Fetched: MetaQuotes GBPUSD M5, From: 2024-10-11 01:35, To: 2026-02-17 12:30, Bars: 100000
Fetched: MetaQuotes AUDUSD M15, From: 2022-02-08 04:45, To: 2026-02-17 12:30, Bars: 100000
Fetched: MetaQuotes EURUSD M15, From: 2022-02-08 04:00, To: 2026-02-17 12:30, Bars: 100000
Fetched: MetaQuotes GBPUSD M15, From: 2022-02-08 05:15, To: 2026-02-17 12:30, Bars: 100000
Fetched: MetaQuotes AUDUSD M30, From: 2018-01-30 08:30, To: 2026-02-17 12:30, Bars: 100000
Fetched: MetaQuotes EURUSD M30, From: 2018-01-30 07:00, To: 2026-02-17 12:30, Bars: 100000
Fetched: MetaQuotes GBPUSD M30, From: 2018-01-30 09:00, To: 2026-02-17 12:30, Bars: 100000
Fetched: Premium Data AUDUSD M5, From: 2024-10-14 17:30, To: 2026-02-17 12:00, Bars: 100000
Fetched: Premium Data EURUSD M5, From: 2024-10-14 20:25, To: 2026-02-17 12:00, Bars: 100000
Fetched: Premium Data GBPUSD M5, From: 2024-10-14 09:30, To: 2026-02-17 12:00, Bars: 100000
Fetched: Premium Data AUDUSD M15, From: 2022-02-11 18:30, To: 2026-02-17 12:00, Bars: 100000
Fetched: Premium Data EURUSD M15, From: 2022-02-11 20:15, To: 2026-02-17 12:00, Bars: 100000
Fetched: Premium Data GBPUSD M15, From: 2022-02-11 08:30, To: 2026-02-17 12:00, Bars: 100000
Fetched: Premium Data AUDUSD M30, From: 2018-02-08 07:00, To: 2026-02-17 12:00, Bars: 100000
Fetched: Premium Data EURUSD M30, From: 2018-02-08 10:30, To: 2026-02-17 12:00, Bars: 100000
Fetched: Premium Data GBPUSD M30, From: 2018-02-07 21:00, To: 2026-02-17 12:00, Bars: 100000
Then it calculates the input collection against each market. It shows progress and stats for each calculations.
...
Market : Premium Data GBPUSD M5
From : 2024-10-14 09:30, To: 2026-02-17 12:00, Bars: 100000
Spread : 10, Swap long: -9.96, Swap short: -0.28, Commission: 6 USD
Account: 10000 USD, Leverage: 100, Entry: 0.01 lots
- Passed: 7, Calculated: 100 of 100
Market : Premium Data AUDUSD M15
From : 2022-02-11 18:30, To: 2026-02-17 12:00, Bars: 100000
Spread : 10, Swap long: -11.18, Swap short: 2.52, Commission: 6 USD
Account: 10000 USD, Leverage: 100, Entry: 0.01 lots
- Passed: 14, Calculated: 100 of 100
Market : Premium Data EURUSD M15
From : 2022-02-11 20:15, To: 2026-02-17 12:00, Bars: 100000
Spread : 10, Swap long: -21.08, Swap short: 13.08, Commission: 6 USD
Account: 10000 USD, Leverage: 100, Entry: 0.01 lots
- Passed: 100, Calculated: 100 of 100
Market : Premium Data GBPUSD M15
From : 2022-02-11 08:30, To: 2026-02-17 12:00, Bars: 100000
Spread : 10, Swap long: -9.96, Swap short: -0.28, Commission: 6 USD
Account: 10000 USD, Leverage: 100, Entry: 0.01 lots
- Passed: 19, Calculated: 100 of 100
...
The Multi-Market application shows stats when it finishes.
Multi-Market validator ready!
9 of 100 strategies passed 1 of 18 tests
23 of 100 strategies passed 2 of 18 tests
20 of 100 strategies passed 3 of 18 tests
12 of 100 strategies passed 4 of 18 tests
16 of 100 strategies passed 5 of 18 tests
6 of 100 strategies passed 6 of 18 tests
6 of 100 strategies passed 7 of 18 tests
3 of 100 strategies passed 8 of 18 tests
4 of 100 strategies passed 10 of 18 tests
1 of 100 strategies passed 12 of 18 tests
ToDo:
- make it possible to select the test symbols automatically
- make it export the output collection
- inspect the code for issues and best practices
- test for proper work on my workflow
- prepare a release version and publish