<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Forex Software — Express Generator]]></title>
		<link>https://forexsb.com/forum/</link>
		<atom:link href="https://forexsb.com/forum/feed/rss/forum/71/" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent topics at Forex Software.]]></description>
		<lastBuildDate>Sat, 09 Aug 2025 11:24:10 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Error with Data Fetch - Invalid array length]]></title>
			<link>https://forexsb.com/forum/topic/9987/error-with-data-fetch-invalid-array-length/new/posts/</link>
			<description><![CDATA[<p>The express generator has a Darwinx.json. The json only has currencies and commodities. How do I upgrade it to add the crypto for Darwinx-Live as they have ADAUSD, BNBUSD, BTCUSD, DOGEUSD, ETHUSD, SOLUSD, XRPUSD. I tried adding them nanually inside the darwinx.json but when I run download data I get this error</p><p>C:\express-generator&gt;node&nbsp; ./bin/fetch.js&nbsp; --fx-rates true&nbsp; --symbols ADAUSD BNBUSD BTCUSD DOGEUSD ETHUSD SQLUSD XLMUSD XRPUSD&nbsp; &nbsp;--periods M1 M5 M15 M30 H1 H4 D1&nbsp; --max-bars 200000&nbsp; --time-zone 0</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;..:: Express Generator Fetch v2.66 ::..</p><p>RangeError: Invalid array length<br />&nbsp; &nbsp; at parseData (C:\express-generator\bin\lib\data-manager.js:156:42)<br />&nbsp; &nbsp; at C:\express-generator\bin\fetch.js:224:28<br />&nbsp; &nbsp; at IncomingMessage.&lt;anonymous&gt; (C:\express-generator\bin\lib\request.js:94:13)<br />&nbsp; &nbsp; at process.processTicksAndRejections (node:internal/process/task_queues:105:5)</p><p>C:\express-generator&gt;pause<br />Press any key to continue . . .</p>]]></description>
			<author><![CDATA[null@example.com (tobeawinner)]]></author>
			<pubDate>Sat, 09 Aug 2025 11:24:10 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9987/error-with-data-fetch-invalid-array-length/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Subject: Question about Generator Slot Settings and Collection Size Im]]></title>
			<link>https://forexsb.com/forum/topic/9967/subject-question-about-generator-slot-settings-and-collection-size-im/new/posts/</link>
			<description><![CDATA[<p>My concern is whether a smaller collection size, like 100, might limit the generator to only producing strategies with lower slot numbers (e.g., 1-2 entry/exit slots). If I increase the collection size to, say, 1000, will it then have enough runs to include strategies with higher slot numbers (like 3-4 entry slots and 2-3 exit slots)?</p>]]></description>
			<author><![CDATA[null@example.com (ryanaverell)]]></author>
			<pubDate>Sat, 02 Aug 2025 12:11:31 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9967/subject-question-about-generator-slot-settings-and-collection-size-im/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Additional Acceptance Criteria]]></title>
			<link>https://forexsb.com/forum/topic/9956/additional-acceptance-criteria/new/posts/</link>
			<description><![CDATA[<p>Hi Miroslav, there are quite a few acceptance criteria in EA Studio that are not avaliable in expres gen? </p><p>Are you able to add the Maximum average position length to express gen please. I like to use this and it would be ace if it was avaliable in express gen.</p><p>Cheers,</p><p>Sam</p>]]></description>
			<author><![CDATA[null@example.com (sammjacks)]]></author>
			<pubDate>Fri, 20 Jun 2025 01:13:40 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9956/additional-acceptance-criteria/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Optimize Protection]]></title>
			<link>https://forexsb.com/forum/topic/9951/optimize-protection/new/posts/</link>
			<description><![CDATA[<p>Hi Popov,</p><p>What is &quot;optimize_protection&quot; setting for in Express Generator?</p>]]></description>
			<author><![CDATA[null@example.com (yonkuro)]]></author>
			<pubDate>Thu, 12 Jun 2025 09:32:54 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9951/optimize-protection/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[EG vs EA Studio Ascended Difference]]></title>
			<link>https://forexsb.com/forum/topic/9947/eg-vs-ea-studio-ascended-difference/new/posts/</link>
			<description><![CDATA[<p>When I upload 7916 collected strategies in EA Studio using the Validator(see image) with no acceptance criteria selected and no optimization and no rebustness settings selected all 7916 strategies are ascended as shown in the attached image.</p><p><a href="https://ibb.co/NnnqtByj"><span class="postimg"><img src="https://i.ibb.co/G33DnS52/EA-STUDIO-SNIPIT.png" alt="https://i.ibb.co/G33DnS52/EA-STUDIO-SNIPIT.png" /></span></a></p><p>When I run ExpressGenerator Combinestrategies(see code below image) with same 7916 collected strategies only 5812 strategies are ascended (see gen settings file attached).</p><p><a href="https://ibb.co/PzzfvVH3"><span class="postimg"><img src="https://i.ibb.co/yBBbcxjG/EG-SNIPIT.png" alt="https://i.ibb.co/yBBbcxjG/EG-SNIPIT.png" /></span></a></p><p>Here is the Combinestrategies script I use:</p><p>node ./bin/gen.js --settings --server Oanda --symbol EURUSD --period M15 --collection_capacity 300 --input .\collections\ --output collections/combinedcollection.json</p><p>I have also attached the modified gen settings ini file I used below.</p><p>What additional changes do I need to make that will allow all 7916 strategies to be ascended?</p><p>Alan-</p>]]></description>
			<author><![CDATA[null@example.com (Alann)]]></author>
			<pubDate>Sun, 25 May 2025 18:41:27 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9947/eg-vs-ea-studio-ascended-difference/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Error Message]]></title>
			<link>https://forexsb.com/forum/topic/9937/error-message/new/posts/</link>
			<description><![CDATA[<p>I have received an error message when running EG.&nbsp; </p><p>I&#039;m getting it on a computer that I used before with no issues.</p><p>The error message is &quot;getaddrinfo EAI_AGAIN data.forexsb.com&quot;</p><p>I can use the gen functions but not the fetch.&nbsp; </p><p>Not sure how to fix this.</p>]]></description>
			<author><![CDATA[null@example.com (scoast3)]]></author>
			<pubDate>Sun, 27 Apr 2025 22:58:45 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9937/error-message/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Inconsistent results between Express Generator and EA Studio]]></title>
			<link>https://forexsb.com/forum/topic/9929/inconsistent-results-between-express-generator-and-ea-studio/new/posts/</link>
			<description><![CDATA[<p>I found inconsistent results between Express Generator and EA studio, and here is how to reproduce it:</p><p>I have uploaded my EA studio settings as the attachment, and below is the command for Express Generator</p><p>node bin/gen.js --settings bin/gen.settings.ini ^<br />--server Eightcap ^<br />--symbol AUDJPY ^<br />--period M1 ^<br />--use_data_start true ^<br />--data_start &quot;20 Sep 2024 00:00 UTC&quot; ^<br />--use_data_end true ^<br />--data_end &quot;29 Jan 2025 00:00 UTC&quot; ^<br />--output test.json ^<br />--min_count_of_trades 10 ^<br />--min_profit_factor 1.01 ^<br />--session_open 12:30 ^<br />--session_close 21:00 ^<br />--close_at_session_close true ^<br />--close_at_friday_close true ^<br />--trade_direction_mode LongAndShort ^<br />--leverage 200 ^<br />--entry_lots 0.1 ^<br />--opposite_entry_signal Ignore ^<br />--trade_on_sunday false ^<br />--spread 12 ^<br />--commission 0</p><p>Because in the above command, the min_profit_factor is 1.01 so Express Generator should not generate any losing strategies, however, when validating the strategies generated by Express Generator in EA studio, a lot of them results in losses.</p><p>To reproduce the problem, simply run the above command for a minute to generate around 10 strategies and then validate them with EA studio.</p>]]></description>
			<author><![CDATA[null@example.com (shapeare)]]></author>
			<pubDate>Sun, 06 Apr 2025 04:54:38 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9929/inconsistent-results-between-express-generator-and-ea-studio/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Where does the Express Generator start for each run?]]></title>
			<link>https://forexsb.com/forum/topic/9925/where-does-the-express-generator-start-for-each-run/new/posts/</link>
			<description><![CDATA[<p>Hello,</p><p>If I have, let&#039;s say, 10 years worth of history data for a symbol and I run the express generator.&nbsp; </p><p>But for whatever reason I need to stop it before it gets through all 10 years.</p><p>And I run it again with the exact same parameters and same history data, will the Express Generator pick up where it left off or start from the beginning?</p><p>Does the EG start from the beginning of the data set every run, randomize where it starts or pick up from where it left off?</p><p>If it starts from the beginning each time, is there a way to tell where it stopped so that I can put in that date and start from there?</p><p>Thank you</p>]]></description>
			<author><![CDATA[null@example.com (scoast3)]]></author>
			<pubDate>Thu, 20 Mar 2025 12:06:25 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9925/where-does-the-express-generator-start-for-each-run/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Generator Settings Generator]]></title>
			<link>https://forexsb.com/forum/topic/9918/generator-settings-generator/new/posts/</link>
			<description><![CDATA[<p>Hi,</p><p>i have build a small tool where you can create your settings files by click.</p><p>You can Download INI file or Upload Existed Files and make changes.</p><p>Maybe @Popov can put it online on website or whatever . but it works local.</p><p>Its an html file but i dont know how i can upload it here. so i change name to .json </p><p>You have to change .json to .html</p>]]></description>
			<author><![CDATA[null@example.com (Roughey)]]></author>
			<pubDate>Fri, 14 Feb 2025 13:12:06 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9918/generator-settings-generator/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Newbie - Random collection of questions]]></title>
			<link>https://forexsb.com/forum/topic/9913/newbie-random-collection-of-questions/new/posts/</link>
			<description><![CDATA[<p>Hi </p><p>As the subject line says, I have accumulated some random questions as follows</p><br /><p>1. What are these particular metrics? I can&#039;t seem to find a definition<br />min_m1_count_of_trades = 0<br />min_m1_profit&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 0<br />min_m1_profit_factor&nbsp; &nbsp;= 0<br />min_y1_count_of_trades = 0<br />min_y1_profit&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 0<br />min_y1_profit_factor&nbsp; &nbsp;= 0</p><p>2. Why are some entry and exit indicators set to false in the default settings? Don&#039;t we just want to test them all?</p><p>Thanks in advance</p>]]></description>
			<author><![CDATA[null@example.com (begoodall)]]></author>
			<pubDate>Wed, 05 Feb 2025 22:18:31 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9913/newbie-random-collection-of-questions/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Not reading from the customized setting file]]></title>
			<link>https://forexsb.com/forum/topic/9899/not-reading-from-the-customized-setting-file/new/posts/</link>
			<description><![CDATA[<p>Hi Popov,</p><p>I used to have my-setting file customized to my needs, and I use my broker&#039;s data to generate strategies and there is a link inside the script to point to that folder, but after the latest update, when I run the workflow, the engine is reading from the original setting file and not my setting file.</p><p>It was working before normally.</p><br /><div class="codebox"><pre><code>REM Generate Strategies using Exness data files

node .\bin\gen.js  ^
 --settings mysettings-insample.ini         ^
 --server C:\Users\stali\AppData\Roaming\MetaQuotes\Terminal\6C3C6A11D1C3791DD4DBF45421BF8028\MQL5\Files\exness\
 --symbol %symbol%                         ^
 --period %period%                         ^
 --max-data-bars 50000                     ^
 --data-start-percent             0                ^
 --data-end-percent                   25                 ^
 --max-working-minutes           60                  ^
 --collection-capacity            100000        ^
 --correlation_threshold           0.98          ^
 --resolve_correlation             true                  ^
 --resolve_similar_rules           true                  ^
 --max-ascended-strategies       100000        ^
 --max-calculated-strategies     0             ^
 --output-replace                 true           ^
 --show-top                1            ^
 --output          ./collections/Premium-in-Sample-%symbol%-%period% 

TIMEOUT /T 5</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (quantbot)]]></author>
			<pubDate>Sun, 19 Jan 2025 08:13:30 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9899/not-reading-from-the-customized-setting-file/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Cannot create a string longer than 0x1fffffe8 characters]]></title>
			<link>https://forexsb.com/forum/topic/9897/cannot-create-a-string-longer-than-0x1fffffe8-characters/new/posts/</link>
			<description><![CDATA[<p>Hi All</p><p>I&#039;m getting the above error when creating large collections (250k+ strategies) by joining JSON files togther and trying to reload them for validation.</p><p>From a bit Of googling this relates to some node.js limit of 512Mb. This corresponds to the file sizes I am working with &lt;500Mb works, anything above that generates the error.</p><p>I&#039;ve taken to zero-ing out many of the fields (balance, equity and any backtestsstats) to reduce the file size, as I figure these fields would be updated during the validation anyway.</p><p>Is there a better way to deal with this? Is zeroing out the fields actually a bad idea from a strategy validation point of view?</p><p>Thanks.</p>]]></description>
			<author><![CDATA[null@example.com (begoodall)]]></author>
			<pubDate>Thu, 16 Jan 2025 17:55:04 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9897/cannot-create-a-string-longer-than-0x1fffffe8-characters/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Powershell Automation --input not working]]></title>
			<link>https://forexsb.com/forum/topic/9896/powershell-automation-input-not-working/new/posts/</link>
			<description><![CDATA[<p>Hi All</p><p>I&#039;ve recently got into EG and I&#039;m trying to automate as much as possible. I started with DOS cmd, but I am now moving all my programs onto Powershell, so I can then move to Linux, so I can then get a Cloud VPS to run things 24/7. The Powershell on Linux part is to avoid expensive Windows cloud licences, but still remain compatible with my local machine.</p><p>Attached is a validate and generate powershell script. It runs, but it can&#039;t find any existing collection to load - and I know they exist. It ouputs the collection at the end of the run perfectly well. It can&#039;t then read it back in.</p><p>Any ideas? Maybe I&#039;ve gone bug-blind and can&#039;t see something obvious in my code :-/</p><p>Many thanks.</p><p>[I can&#039;t seem to attach the ps1 file, but hopefully the code is readable / will run if someone were to put it in a ps1 file]</p><div class="codebox"><pre><code># Define the parameters for each run
$runs = @(
    @{ Symbol = &quot;AUDJPY&quot;; Period = &quot;M15&quot;; DataStart = &quot;2014-01-01&quot;; DataEnd = &quot;2023-04-01&quot;; RunTimeMinutes = &quot;1&quot; },
    @{ Symbol = &quot;AUDJPY&quot;; Period = &quot;M15&quot;; DataStart = &quot;2014-10-01&quot;; DataEnd = &quot;2023-10-01&quot;; RunTimeMinutes = &quot;1&quot; }
)

# Run each process in parallel
$runs | ForEach-Object -Parallel {
    # Define the function for Node.js process execution
    function Run-NodeProcess {
        param (
            [string]$Symbol,
            [string]$Period,
            [string]$DataStart,
            [string]$DataEnd,
            [string]$RunTimeMinutes,
            [string]$BaseDirectory = &quot;D:/EG&quot;,
            [string]$SettingsFilePath = &quot;$BaseDirectory/genmaster.ini&quot;,
            [string]$ScriptFilePath = &quot;$BaseDirectory/bin/gen.js&quot;
        )

        # Generate input and output filenames using string interpolation
        $inputFileName = &quot;$BaseDirectory/collections/$Period/Coll-IS-$Symbol-$Period-$DataStart&quot;
        $outputFileName = &quot;$BaseDirectory/collections/$Period/Coll-IS-$Symbol-$Period-$DataStart&quot;

        # Ensure the output directory exists
        $outputDir = Split-Path -Path $outputFileName -Parent
        if (-not (Test-Path -Path $outputDir)) {
            New-Item -ItemType Directory -Path $outputDir -Force | Out-Null
        }

        # Debugging: Log paths
        Write-Output &quot;Input File:  $inputFileName&quot;
        Write-Output &quot;Output File: $outputFileName&quot;

        # Start the Node.js process with the provided variables
        Start-Process -FilePath &quot;node&quot; -ArgumentList @(
            &quot;`&quot;$ScriptFilePath`&quot;&quot;,
            &quot;--settings&quot;, &quot;`&quot;$SettingsFilePath`&quot;&quot;,
            &quot;--symbol&quot;, $Symbol,
            &quot;--period&quot;, $Period,
            &quot;--use_data_start&quot;, &quot;true&quot;,
            &quot;--data_start&quot;, $DataStart,
            &quot;--use_data_end&quot;, &quot;true&quot;,
            &quot;--data_end&quot;, $DataEnd,
            &quot;--max_working_minutes&quot;, $RunTimeMinutes,
            &quot;--validate_then_generate&quot;, &quot;true&quot;,
            &quot;--opposite_entry_signal&quot;, &quot;IgnoreOrReverse&quot;,
            &quot;--stop_loss_usage&quot;, &quot;AlwaysUse&quot;,
            &quot;--stop_loss_type&quot;, &quot;Fixed&quot;,
            &quot;--stop_loss_range_min&quot;, &quot;20&quot;,
            &quot;--stop_loss_range_max&quot;, &quot;200&quot;,
            &quot;--take_profit_usage&quot;, &quot;AlwaysUse&quot;,
            &quot;--take_profit_range_min&quot;, &quot;20&quot;,
            &quot;--take_profit_range_max&quot;, &quot;200&quot;,
            &quot;--take_profit_gte_stop_loss&quot;, &quot;true&quot;,
            &quot;--min_count_of_trades&quot;, &quot;100&quot;,
            &quot;--min_profit&quot;, &quot;10&quot;,
            &quot;--min_profit_factor&quot;, &quot;1.2&quot;,
            &quot;--enable_monte_carlo&quot;, &quot;false&quot;,
            &quot;--input&quot;, &quot;`&quot;$inputFileName`&quot;&quot;,
            &quot;--output&quot;, &quot;`&quot;$outputFileName`&quot;&quot;
        ) -WindowStyle Normal -Wait
    }

    # Call the function
    Run-NodeProcess -Symbol $_.Symbol -Period $_.Period -DataStart $_.DataStart -DataEnd $_.DataEnd -RunTimeMinutes $_.RunTimeMinutes
} -ThrottleLimit 4</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (begoodall)]]></author>
			<pubDate>Thu, 16 Jan 2025 17:42:42 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9896/powershell-automation-input-not-working/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Expected property name or '}' in JSON at position]]></title>
			<link>https://forexsb.com/forum/topic/9895/expected-property-name-or-in-json-at-position/new/posts/</link>
			<description><![CDATA[<p>Hello Popov, Thanks for the update. I have a script that I created to fit my needs, and it was working perfectly until this update. Can you please check what the error is?</p><p>Script:</p><p>set symbol=%1<br />set period=%2</p><p>IF &quot;%symbol%&quot; == &quot;&quot; EXIT<br />IF &quot;%period%&quot; == &quot;&quot; EXIT</p><p>TITLE OOS Workflow %symbol% %period%</p><p>REM Fetch forex data</p><p>node .\bin\fetch.js &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ^<br /> --fx-rates&nbsp; &nbsp;true &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ^<br /> --symbol&nbsp; %symbol% &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ^<br /> --period&nbsp; %period% &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ^<br /> --max-data-bars 200000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ^<br /> --time-zone&nbsp; 0<br />...</p><p>Error:</p><p>&quot;&quot;&quot;&quot;Expected property name or &#039;}&#039; in JSON at position 1 (line 1 column 2)&quot;&quot;&quot;&quot;&quot;</p>]]></description>
			<author><![CDATA[null@example.com (quantbot)]]></author>
			<pubDate>Sat, 11 Jan 2025 10:53:22 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9895/expected-property-name-or-in-json-at-position/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Loading collections from any /collections subdirectory]]></title>
			<link>https://forexsb.com/forum/topic/9885/loading-collections-from-any-collections-subdirectory/new/posts/</link>
			<description><![CDATA[<p>Hi again Mr. Popov,</p><p>another quick suggestion for the next EG release regarding collection file handling.</p><p>As I´ve mentioned a while ago, I&#039;ve been patching collection.js to allow loading collections from any /collections subdirectory relative to the working directory. It&#039;s super helpful for organizing strategies across different projects. Here are the exact changes needed:</p><p>1. Add &#039;resolve&#039; to the path imports:</p><div class="codebox"><pre><code>const {join, parse, isAbsolute, resolve} = require(&quot;path&quot;);</code></pre></div><p>2. Modify the loadCollection function to handle paths relative to the current working directory:</p><div class="codebox"><pre><code>function loadCollection(inputPath, inputKeys, dataId, dataEndTime, suppressInputError) {
    if (typeof inputPath === &quot;string&quot; &amp;&amp; inputPath.length &gt; 0) {
        try {
            let collectionPath = replacePlaceholders(inputPath, dataId, dataEndTime);

            // If path is not absolute, prepend the collections directory
            if (!isAbsolute(collectionPath) &amp;&amp; 
                (parse(collectionPath).dir === &quot;&quot; || !collectionPath.includes(&quot;collections&quot;))) {
                collectionPath = join(&quot;.&quot;, &quot;collections&quot;, collectionPath);
            }

            // Resolve the path relative to the current working directory
            collectionPath = resolve(process.cwd(), collectionPath);

            // Check if the path exists and is a directory or file
            if (existsSync(collectionPath)) {
                const stat = statSync(collectionPath);
                if (stat.isDirectory()) {
                    return readCollectionDir(collectionPath, inputKeys);
                } else if (stat.isFile()) {
                    return readCollectionFile(collectionPath, inputKeys);
                }
            }

            // If we reach here, try adding .json extension if missing
            if (!collectionPath.toLowerCase().endsWith(&quot;.json&quot;)) {
                collectionPath += &quot;.json&quot;;
                if (existsSync(collectionPath)) {
                    return readCollectionFile(collectionPath, inputKeys);
                }
            }

            if (!suppressInputError) {
                console.error(`${color.Red}Cannot open input file: ${color.Bright}${collectionPath}${color.Reset}`);
            }
            return [];
        } catch (e) {
            console.error(`${color.Red}${color.Bright}${e.message}${color.Reset}`);
            return [];
        }
    } else if (Array.isArray(inputPath) &amp;&amp; inputPath.length &gt; 0) {
        return inputPath.flatMap(file =&gt; 
            loadCollection(file, inputKeys, dataId, dataEndTime, suppressInputError)
        );
    }

    return [];
}</code></pre></div><p>This replaces the current path resolution logic in loadCollection and makes it much more flexible. The changes maintain backward compatibility while allowing users to organize their collections in subdirectories.</p><p>Would you consider adding this to the next release? Would save me from patching after each update :-)</p><p>Thanks as always!</p>]]></description>
			<author><![CDATA[null@example.com (geektrader)]]></author>
			<pubDate>Fri, 15 Nov 2024 11:57:05 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9885/loading-collections-from-any-collections-subdirectory/new/posts/</guid>
		</item>
	</channel>
</rss>
