<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Forex Software — Developers Forum]]></title>
		<link>https://forexsb.com/forum/</link>
		<atom:link href="https://forexsb.com/forum/feed/rss/forum/38/" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent topics at Forex Software.]]></description>
		<lastBuildDate>Fri, 04 Sep 2026 08:26:35 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Strategy Builder Professional - Development]]></title>
			<link>https://forexsb.com/forum/topic/10105/strategy-builder-professional-development/new/posts/</link>
			<description><![CDATA[<p>Hello Traders,</p><p>I&#039;m very happy that can finally share some screenshots of my work.<br />I&#039;m developing a new backtesting application which will succeed FSB and EA Studio.</p><p>It is <strong>Strategy Builder Professional</strong></p><p>It will be like EA Studio on steroids with the capability of FSB Pro.</p><p>The Builder part of the program - Editor, Optimizer, monte Carlo, Multi-market, Report, plus Data Hirizon, Data Import, Data Export, plus Collection will be <strong>free for everyone</strong>. It will include free backtesting and export of unlimited number of Expert Advisors.</p><p>A &quot;Professional&quot; license will be needed for the high-tech parts like Generator, Automated workflow, Portfolio, and some position scaling features like Martingale, Adding / Reducing, Grid...</p><br /><p>I&#039;m already working on Strategy Builder Professional for two years. Especially the last 20 days I worked 20 hours per day and achieved amassing results.</p><br /><br /><p><strong>SBP = EA Studio</strong></p><p><a href="https://image-holder.forexsb.com/store/sbp-equal-to-eas.png"><span class="postimg"><img src="https://image-holder.forexsb.com/store/sbp-equal-to-eas-thumb.png" alt="https://image-holder.forexsb.com/store/sbp-equal-to-eas-thumb.png" /></span></a></p><br /><br /><p><strong>SBP provides tens of Strategy Features</strong> instead of Strategy Properties</p><p><a href="https://image-holder.forexsb.com/store/sbp-tens-of-strategy-features.png"><span class="postimg"><img src="https://image-holder.forexsb.com/store/sbp-tens-of-strategy-features-thumb.png" alt="https://image-holder.forexsb.com/store/sbp-tens-of-strategy-features-thumb.png" /></span></a></p><br /><br /><p>Like <strong>Risk percent</strong></p><p><a href="https://image-holder.forexsb.com/store/sbp-entry-amount-risk.png"><span class="postimg"><img src="https://image-holder.forexsb.com/store/sbp-entry-amount-risk-thumb.png" alt="https://image-holder.forexsb.com/store/sbp-entry-amount-risk-thumb.png" /></span></a></p><br /><br /><p>I&#039;m porting the <strong>FSB Pro backtester</strong> to the browser</p><p><a href="https://image-holder.forexsb.com/store/sbp-equal-fsb.png"><span class="postimg"><img src="https://image-holder.forexsb.com/store/sbp-equal-fsb-thumb.png" alt="https://image-holder.forexsb.com/store/sbp-equal-fsb-thumb.png" /></span></a></p><br /><p>It will work beter on smaller screens. Ind will have <strong>Sai</strong> - the <strong>S</strong>trategy <strong>AI</strong></p><p><a href="https://image-holder.forexsb.com/store/sbp-two-column-sai.png"><span class="postimg"><img src="https://image-holder.forexsb.com/store/sbp-two-column-sai-thumb.png" alt="https://image-holder.forexsb.com/store/sbp-two-column-sai-thumb.png" /></span></a></p><p>The Sai functionality is 1/3rd of the SBP code. It will be able to analyze the current page, the strategy, and the backtest results.</p><p><strong>Sai</strong> can read the technical documentation and can answer specific questions for the program. I spent a lot of time generating special AI instructions from SBP screens and the source code, so the AI models to be helpful.</p><br /><p><strong>Sai can control SBP</strong></p><p>&gt; Set stop loss of 400 USD</p><p><a href="https://image-holder.forexsb.com/store/sbp-set-stop-loss-400-usd.png"><span class="postimg"><img src="https://image-holder.forexsb.com/store/sbp-set-stop-loss-400-usd-thumb.png" alt="https://image-holder.forexsb.com/store/sbp-set-stop-loss-400-usd-thumb.png" /></span></a></p><p>&gt; Set meaningful strategy protections</p><p>Which protections do you want to add? Common choices are:<br /> - Stop Loss (limit loss per position) — can also enable a trailing stop<br />- Take Profit (profit target)<br />- Break-even (move stop to entry once the position is in profit)<br />- Max Spread Protection (skip entries when spread is too wide)</p><p>&gt; You decide</p><p><a href="https://image-holder.forexsb.com/store/sbp-sai-add-meaningful-protections.png"><span class="postimg"><img src="https://image-holder.forexsb.com/store/sbp-sai-add-meaningful-protections-thumb.png" alt="https://image-holder.forexsb.com/store/sbp-sai-add-meaningful-protections-thumb.png" /></span></a></p><br /><p>I&#039;ll start posting updates on SBP on daily basis.</p><p>You may take a look at the current state of the program at: <a href="https://sbp.forexsb.com/">https://sbp.forexsb.com/</a></p><p>Have fun!</p>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Fri, 04 Sep 2026 08:26:35 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/10105/strategy-builder-professional-development/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Tick Data Import from MetaTrader]]></title>
			<link>https://forexsb.com/forum/topic/10077/tick-data-import-from-metatrader/new/posts/</link>
			<description><![CDATA[<p>Hello, Traders,</p><p>I&#039;m very happy that I succeeded in importing Tick Data from MetaTrader 5 Strategy Tester.</p><p>This opens the possibility of having real-time, real-ticks, and real-spread testing in our next strategy builder and generator.</p><p>I already have a prototype of the data import.</p><p>How it works in my tests:</p><p>1. Run a special Expert Advisor on any symbol, M1, and &quot;Every tick based on real ticks&quot;. It took 10 seconds for 5 years of tick data.<br />2. A tick data file is exported. Drag and drop it onto the new Strategy Builder Professional - 2 seconds for the import.<br />3. The Tick data are available within the program. Higher time frames are composed from the tick data. The data is stored locally in the browser.</p><br /><p><strong>Tick Data Import - 1.8 million barts</strong></p><p><a href="https://image-holder.forexsb.com/store/sbp-tick-data-import-prototype.png"><span class="postimg"><img src="https://image-holder.forexsb.com/store/sbp-tick-data-import-prototype-thumb.png" alt="https://image-holder.forexsb.com/store/sbp-tick-data-import-prototype-thumb.png" /></span></a></p><br /><br /><p><strong>Higher Time-frame data composed from Ticks</strong></p><p><a href="https://image-holder.forexsb.com/store/sbp-tick-data-review-prototype.png"><span class="postimg"><img src="https://image-holder.forexsb.com/store/sbp-tick-data-review-prototype-thumb.png" alt="https://image-holder.forexsb.com/store/sbp-tick-data-review-prototype-thumb.png" /></span></a></p><p>A future version of the backtester will be able to open positions within the bars without ambiguity <img src="https://forexsb.com/forum/img/smilies/smile.png" width="15" height="15" alt="smile" /></p><p>Trade safe!</p>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Wed, 20 May 2026 15:00:49 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/10077/tick-data-import-from-metatrader/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Swaps Do Change]]></title>
			<link>https://forexsb.com/forum/topic/10049/swaps-do-change/new/posts/</link>
			<description><![CDATA[<p>Hello Traders,</p><p>I was curious whether swaps change frequently and whether I need to use &quot;real swaps&quot; in my newest and greatest backtester.</p><p>I made a simple script to collect swaps from MetaTrader 5 for each day. It stores the swaps in a local database for later use.</p><p>I checked it today and noticed the swaps had already changed twice over the last two weeks.</p><p><a href="https://image-holder.forexsb.com/store/mt-editor-db-swaps-2026-02-21.png"><span class="postimg"><img src="https://image-holder.forexsb.com/store/mt-editor-db-swaps-2026-02-21-thumb.png" alt="https://image-holder.forexsb.com/store/mt-editor-db-swaps-2026-02-21-thumb.png" /></span></a></p><p>I&#039;ll try to find historical information for the swaps and will use it in my next program.</p><p>Trade Safe!</p>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Sat, 21 Feb 2026 10:06:17 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/10049/swaps-do-change/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[In search of the fastest Strategy Generator]]></title>
			<link>https://forexsb.com/forum/topic/9912/in-search-of-the-fastest-strategy-generator/new/posts/</link>
			<description><![CDATA[<p>Hello Traders,</p><p>I spent a lot of time analysing the performance of EA Studio and Express Generator&#039;s indicators over the last two weeks.</p><p>I designed a simulation program to load a particular data file and calculate the Moving Average and RSI indicators.</p><p>I made it first in JavaScript using the code from Express Generator.</p><p>After testing, refactoring and optimisation, I made a similar program in C.</p><p>The C version was 2 times faster for calculating the Moving Average and 15% faster for RSI.</p><p>Then, I made it in Fortran. It took me a week to read several Fortran books and to &quot;master&quot; the language.<br />Expectedly, the Frotran version was about 30% faster than the C version.</p><p>I continued researching and learned that Fortran is faster than C, not because of the features it has but because of the features it does not have.</p><p>I almost accepted those results. However, I wondered &quot;why&quot; it happens and the particular reason.<br />Several days later, I learned a lot about modern 64-bit Assembly, disassembled the programs and studied the code.</p><p>I was very happy when I found the reason the Fortran code was faster. (It was rather geeky, but if you are interested, I may explain).</p><p>On that latter, I decided to use this knowledge to improve my current code.</p><p>The first result is compiling C to a similar assembly as Fortran. It practically made the program very similar.<br />Then, I did the same in JavaScript.</p><p>And ... surprise, surprise. All three programs, Fortran, C, and JavaScript, performed similarly.</p><p>Calculating 2000 indicators with periods from 1 to 200 on 200k bars.</p><div class="codebox"><pre><code>=======================================
Indicator  Language       Time      
---------------------------------------
MA         Fortran        1.70 sec 
MA         C              1.72 sec 
MA         JavaScript     1.72 sec 
---------------------------------------
RSI        Fortran        6.81 sec 
RSI        C              6.80 sec 
RSI        JavaScript     6.84 sec 
=======================================</code></pre></div><p>The tests are made under Linux with the latest GFortran, GCC, and NodeJS.<br />The optimisation level for Fortran and C was &quot;O2&quot;.</p><p>I also made a test with the optimisation level &quot;-Ofast.&quot; Both C and Fortran showed double improvement in performance. <br />&quot;Ofast&quot; option is not suitable for code distribution.</p><p>I&#039;m going to use this knowledge in the PineGen generator.</p>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Sat, 01 Feb 2025 20:23:35 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9912/in-search-of-the-fastest-strategy-generator/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[PineGen development]]></title>
			<link>https://forexsb.com/forum/topic/9902/pinegen-development/new/posts/</link>
			<description><![CDATA[<p>Hello Traders,</p><p>I&#039;m sharing the concept of the new PineGen application.</p><p>It will be a straightforward Strategy Builder and Generator for TradingView&#039;s Pine Script and others.</p><p>I&#039;m designing PineGen&#039;s user experience and workflow.</p><p>Here is concept-001</p><p><a href="https://image-holder.forexsb.com/store/pinegen-001.png"><span class="postimg"><img src="https://image-holder.forexsb.com/store/pinegen-001-thumb.png" alt="https://image-holder.forexsb.com/store/pinegen-001-thumb.png" /></span></a></p><p>Trade Safe!</p>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Mon, 27 Jan 2025 20:19:22 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9902/pinegen-development/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Development Progress]]></title>
			<link>https://forexsb.com/forum/topic/9892/development-progress/new/posts/</link>
			<description><![CDATA[<p>Hello Traders,</p><p>I&#039;m starting to work on a new trading-related application. I&#039;ll share more specific details later.</p><p>I&#039;m working on a new backend framework for the new app. I aim to make it more secure, end users friendly, and easier for me to develop, debug, and maintain.</p><p>My first step is to develop new helper modules. I&#039;ll make all non-critical code open-source and publicly available.</p><br /><p><strong>Base64 encoding and decoding module for NodeJS</strong></p><p>This module converts an arbitrary text to a combination of hexadecimal digits and letters suitable for online communication.</p><p>Example: <br />The text &quot;Hello, World!&quot; becomes: &quot;SGVsbG8sIFdvcmxkIQ&quot;<br />Later, the base64 text can be decoded to the original message.</p><p>This is very handy for the user&#039;s names and emails.</p><p>Link: <a href="https://github.com/PopovMP/base64">https://github.com/PopovMP/base64</a></p><br /><p><strong>SHA-256 encoding module</strong></p><p>This module encodes a piece of text with a private key. It encodes secure tokens to validate users.</p><p>For example, logging in to the software encodes your password in the browser. The password and your email go to the server, which checks if it corresponds to a currently active user. If so, the server will issue a secure token for the user.</p><p>The encoding works in one direction only. The encoded text cannot be recovered.</p><p>Link: <a href="https://github.com/PopovMP/sha256">https://github.com/PopovMP/sha256</a></p><br /><p><strong>JWT module</strong></p><p>JWT stands for Jason Web Token. This is the secure token the server issues for a successfully logged-in user.<br />This module uses the above Base64 and SHA-256 modules.<br />The JWT token also contains information for the account type: free, trial, or premium...<br />It has an expiration time, which makes it handy for features such as &quot;Remember me&quot;.</p><p>Link: <a href="https://github.com/PopovMP/jwt">https://github.com/PopovMP/jwt</a></p><br /><p><strong>File-writer</strong></p><p>I&#039;m especially happy with this piece of code. It reliably saves files to the disk, even if there are many overlapping save requests with different contents.</p><p>I will use this module in the Logger and the DataBase I&#039;m developing.</p><p>For example, we can send 1000 append file requests, and the file-writer will ensure the correct file content with only two save operations.</p><div class="codebox"><pre><code>for (let i = 1; i &lt;= 1000; i++) {
    appendAndForget(&quot;mambo.txt&quot;, &quot;Mambo number: &quot; + i);
}</code></pre></div><p>Link: <a href="https://github.com/PopovMP/file-writer">https://github.com/PopovMP/file-writer</a></p><br /><p><strong>Logger</strong></p><p>This module helps the server save log messages to a file or show them on the terminal. It prints the messages in different colours depending on their kind.</p><p><span class="postimg"><img src="https://image-holder.forexsb.com/store/logger-output.png" alt="https://image-holder.forexsb.com/store/logger-output.png" /></span></p><p>Link: <a href="https://github.com/PopovMP/file-writer">https://github.com/PopovMP/file-writer</a></p><p>Happy holidays!</p>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Fri, 27 Dec 2024 21:46:26 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9892/development-progress/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Report-Analyzer - developnet]]></title>
			<link>https://forexsb.com/forum/topic/9544/reportanalyzer-developnet/new/posts/</link>
			<description><![CDATA[<p>Hello Traders,</p><p>I&#039;m working on an app for analyzing MT History Reports.</p><p>It extracts the performance of individual Expert Advisors by symbol and a Magic number.</p><p>Drag-drop your reports, and you will see the statistics.</p><p><a href="https://forexsb.com/report-analyzer/">https://forexsb.com/report-analyzer/</a></p><br /><p>Please report any issues!</p>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Fri, 25 Aug 2023 07:18:35 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9544/reportanalyzer-developnet/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[New Trading Session form proposal]]></title>
			<link>https://forexsb.com/forum/topic/9435/new-trading-session-form-proposal/new/posts/</link>
			<description><![CDATA[<p>Hello Traders,</p><p>Please give me your opinion regarding a new format proposal for the Trading Session form in EA Studio.</p><p>The new format will correspond to the Express Generator options.</p><p><strong>Current format</strong></p><p><span class="postimg"><img src="https://image-holder.forexsb.com/store/trading-session-old.png" alt="https://image-holder.forexsb.com/store/trading-session-old.png" /></span></p><br /><p><strong>New format proposal</strong></p><p><span class="postimg"><img src="https://image-holder.forexsb.com/store/trading-session-new.png" alt="https://image-holder.forexsb.com/store/trading-session-new.png" /></span></p>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Fri, 05 May 2023 16:37:53 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9435/new-trading-session-form-proposal/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Indicator Options in EA Studio]]></title>
			<link>https://forexsb.com/forum/topic/9380/indicator-options-in-ea-studio/new/posts/</link>
			<description><![CDATA[<p>Hello Traders,</p><p>I started working on Indicator options in EA Studio.</p><br /><p><span class="postimg"><img src="https://image-holder.forexsb.com/store/settings-indicator-options.png" alt="https://image-holder.forexsb.com/store/settings-indicator-options.png" /></span></p><br /><p>Currently, the options are added in the EA Studio&#039;s settings and on the Settings page.</p><p>The next stage is to start implementing them in all affected indicators.</p>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Sat, 04 Mar 2023 09:19:31 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9380/indicator-options-in-ea-studio/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Developing a new Programming Language for Addons]]></title>
			<link>https://forexsb.com/forum/topic/9241/developing-a-new-programming-language-for-addons/new/posts/</link>
			<description><![CDATA[<p>Hello Traders,</p><p>I spend the last month on prototyping a new programming language for integration in our software.</p><p><a href="https://github.com/PopovMP/cinonim">Cinonim at GitHub</a></p><p>My goal was:<br /> - the language to be with &quot;Context free grammar&quot;<br /> - to be statically typed<br /> - to be able to compile to WebAssembly online without third party modules.<br /> - to be suitable for writing backtesting algorithms and custom indicators.</p><p>Currently the language is Turing Complete (proven by calculating Rule 110): <a href="https://en.wikipedia.org/wiki/Rule_110">https://en.wikipedia.org/wiki/Rule_110</a></p><p>The language is similar to C so I called it &quot;Cinonim&quot; (it is &quot;synonym&quot; in Bulgarian and starts with &quot;c&quot;)</p><p><strong>Cinonim</strong> source code</p><div class="codebox"><pre><code>// Rule 110
// https://en.wikipedia.org/wiki/Rule_110

#import-func js setCell    = void setCell(int index, int value)
#import-func js printTable = void printTable()
#export-func rule110 = rule110

int table[100];
const int SIZE = 100;

void logTable()
{
    int i;

    for (i=0; i&lt;SIZE; i+=1)
        setCell(i, table[i]);

    printTable();
}

void initTable()
{
    int i;

    for (i=0; i&lt;SIZE; i+=1)
        table[i] = 0;

    table[SIZE-1] = 1;
}

void rule110(const int maxCycles)
{
    int i, cycle;
    int pattern, temp;

    initTable();
    logTable();

    cycle = 0;
    while (cycle &lt; maxCycles) {
        temp = table[0];

        for (i=1; i&lt;SIZE-1; i+=1) {
            pattern = 100*temp + 10*table[i] + table[i+1];
            temp = table[i];

            if (pattern == 111) table[i] = 0;
            if (pattern == 110) table[i] = 1;
            if (pattern == 101) table[i] = 1;
            if (pattern == 100) table[i] = 0;
            if (pattern == 011) table[i] = 1;
            if (pattern == 010) table[i] = 1;
            if (pattern == 001) table[i] = 1;
            if (pattern == 000) table[i] = 0;
        }

        logTable();
        cycle += 1;
    }
}</code></pre></div><p>Exported <strong>WebAssembly</strong> text format;</p><div class="codebox"><pre><code>(module
    (import &quot;js&quot; &quot;setCell&quot; (func $setCell (param i32) (param i32)))
    (import &quot;js&quot; &quot;printTable&quot; (func $printTable ))
    (export &quot;rule110&quot; (func $rule110))
    (global $SIZE i32 (i32.const 100))
    (memory 1)
    (func $logTable
        (local $i i32)
        (local.set $i (i32.const 0))
        (block (loop
            (br_if 1 (i32.eqz (local.get $i) (global.get $SIZE) (i32.lt_s)))
            (local.get $i)
            (i32.load (i32.add (i32.const 0) (i32.shl (local.get $i) (i32.const 2))))
            (call $setCell)
            (local.set $i (local.get $i) (i32.const 1) (i32.add))
            (br 0)
        ))
        
        (call $printTable)
    )
    (func $initTable
        (local $i i32)
        (local.set $i (i32.const 0))
        (block (loop
            (br_if 1 (i32.eqz (local.get $i) (global.get $SIZE) (i32.lt_s)))
            (i32.store (i32.add (i32.const 0) (i32.shl (local.get $i) (i32.const 2))) (i32.const 0))
            (local.set $i (local.get $i) (i32.const 1) (i32.add))
            (br 0)
        ))
        (i32.store (i32.add (i32.const 0) (i32.shl (global.get $SIZE) (i32.const 1) (i32.sub) (i32.const 2))) (i32.const 1))
    )
    (func $rule110 (param $maxCycles i32)
        (local $i i32)
        (local $cycle i32)
        (local $pattern i32)
        (local $temp i32)
        
        (call $initTable)
        
        (call $logTable)
        (local.set $cycle (i32.const 0))
        (block (loop
            (br_if 1 (i32.eqz (local.get $cycle) (local.get $maxCycles) (i32.lt_s)))
            (local.set $temp (i32.load (i32.add (i32.const 0) (i32.shl (i32.const 0) (i32.const 2)))))
            (local.set $i (i32.const 1))
            (block (loop
                (br_if 1 (i32.eqz (local.get $i) (global.get $SIZE) (i32.const 1) (i32.sub) (i32.lt_s)))
                (local.set $pattern (i32.const 100) (local.get $temp) (i32.mul) (i32.const 10) (i32.load (i32.add (i32.const 0) (i32.shl (local.get $i) (i32.const 2)))) (i32.mul) (i32.add) (i32.load (i32.add (i32.const 0) (i32.shl (local.get $i) (i32.const 1) (i32.add) (i32.const 2)))) (i32.add))
                (local.set $temp (i32.load (i32.add (i32.const 0) (i32.shl (local.get $i) (i32.const 2)))))
                (local.get $pattern) (i32.const 111) (i32.eq)
                (if (then
                    (i32.store (i32.add (i32.const 0) (i32.shl (local.get $i) (i32.const 2))) (i32.const 0))
                ))
                (local.get $pattern) (i32.const 110) (i32.eq)
                (if (then
                    (i32.store (i32.add (i32.const 0) (i32.shl (local.get $i) (i32.const 2))) (i32.const 1))
                ))
                (local.get $pattern) (i32.const 101) (i32.eq)
                (if (then
                    (i32.store (i32.add (i32.const 0) (i32.shl (local.get $i) (i32.const 2))) (i32.const 1))
                ))
                (local.get $pattern) (i32.const 100) (i32.eq)
                (if (then
                    (i32.store (i32.add (i32.const 0) (i32.shl (local.get $i) (i32.const 2))) (i32.const 0))
                ))
                (local.get $pattern) (i32.const 11) (i32.eq)
                (if (then
                    (i32.store (i32.add (i32.const 0) (i32.shl (local.get $i) (i32.const 2))) (i32.const 1))
                ))
                (local.get $pattern) (i32.const 10) (i32.eq)
                (if (then
                    (i32.store (i32.add (i32.const 0) (i32.shl (local.get $i) (i32.const 2))) (i32.const 1))
                ))
                (local.get $pattern) (i32.const 1) (i32.eq)
                (if (then
                    (i32.store (i32.add (i32.const 0) (i32.shl (local.get $i) (i32.const 2))) (i32.const 1))
                ))
                (local.get $pattern) (i32.const 0) (i32.eq)
                (if (then
                    (i32.store (i32.add (i32.const 0) (i32.shl (local.get $i) (i32.const 2))) (i32.const 0))
                ))
                (local.set $i (local.get $i) (i32.const 1) (i32.add))
                (br 0)
            ))
            
            (call $logTable)
            (local.set $cycle (local.get $cycle) (i32.const 1) (i32.add))
            (br 0)
        ))
    )
)</code></pre></div><br /><p>Output:<br /></p><div class="codebox"><pre><code>                                                                                                   #
                                                                                                  ##
                                                                                                 ###
                                                                                                ## #
                                                                                               #####
                                                                                              ##   #
                                                                                             ###  ##
                                                                                            ## # ###
                                                                                           ####### #
                                                                                          ##     ###
                                                                                         ###    ## #
                                                                                        ## #   #####
                                                                                       #####  ##   #
                                                                                      ##   # ###  ##
                                                                                     ###  #### # ###
                                                                                    ## # ##  ##### #
                                                                                   ######## ##   ###
                                                                                  ##      ####  ## #
                                                                                 ###     ##  # #####
                                                                                ## #    ### ####   #
                                                                               #####   ## ###  #  ##
                                                                              ##   #  ##### # ## ###
                                                                             ###  ## ##   ######## #
                                                                            ## # ######  ##      ###
                                                                           #######    # ###     ## #
                                                                          ##     #   #### #    #####
                                                                         ###    ##  ##  ###   ##   #
                                                                        ## #   ### ### ## #  ###  ##
                                                                       #####  ## ### ###### ## # ###
                                                                      ##   # ##### ###    ######## #
                                                                     ###  ####   ### #   ##      ###
                                                                    ## # ##  #  ## ###  ###     ## #
                                                                   ######## ## ##### # ## #    #####
                                                                  ##      ######   ########   ##   #
                                                                 ###     ##    #  ##      #  ###  ##
                                                                ## #    ###   ## ###     ## ## # ###
                                                               #####   ## #  ##### #    ########## #
                                                              ##   #  ##### ##   ###   ##        ###
                                                             ###  ## ##   ####  ## #  ###       ## #
                                                            ## # ######  ##  # ##### ## #      #####
                                                           #######    # ### ####   ######     ##   #
                                                          ##     #   #### ###  #  ##    #    ###  ##
                                                         ###    ##  ##  ### # ## ###   ##   ## # ###
                                                        ## #   ### ### ## ######## #  ###  ####### #
                                                       #####  ## ### ######      ### ## # ##     ###
                                                      ##   # ##### ###    #     ## #########    ## #
                                                     ###  ####   ### #   ##    #####       #   #####
                                                    ## # ##  #  ## ###  ###   ##   #      ##  ##   #
                                                   ######## ## ##### # ## #  ###  ##     ### ###  ##
                                                  ##      ######   ######## ## # ###    ## ### # ###
                                                 ###     ##    #  ##      ######## #   ##### ##### #
                                                ## #    ###   ## ###     ##      ###  ##   ###   ###
                                               #####   ## #  ##### #    ###     ## # ###  ## #  ## #
                                              ##   #  ##### ##   ###   ## #    ####### # ##### #####
                                             ###  ## ##   ####  ## #  #####   ##     #####   ###   #
                                            ## # ######  ##  # ##### ##   #  ###    ##   #  ## #  ##
                                           #######    # ### ####   ####  ## ## #   ###  ## ##### ###
                                          ##     #   #### ###  #  ##  # ########  ## # #####   ### #
                                         ###    ##  ##  ### # ## ### ####      # #######   #  ## ###
                                        ## #   ### ### ## ######## ###  #     ####     #  ## ##### #
                                       #####  ## ### ######      ### # ##    ##  #    ## #####   ###
                                      ##   # ##### ###    #     ## ######   ### ##   #####   #  ## #
                                     ###  ####   ### #   ##    #####    #  ## ####  ##   #  ## #####
                                    ## # ##  #  ## ###  ###   ##   #   ## #####  # ###  ## #####   #
                                   ######## ## ##### # ## #  ###  ##  #####   # #### # #####   #  ##
                                  ##      ######   ######## ## # ### ##   #  ####  #####   #  ## ###
                                 ###     ##    #  ##      ######## ####  ## ##  # ##   #  ## ##### #
                                ## #    ###   ## ###     ##      ###  # ###### #####  ## #####   ###
                               #####   ## #  ##### #    ###     ## # ####    ###   # #####   #  ## #
                              ##   #  ##### ##   ###   ## #    #######  #   ## #  ####   #  ## #####
                             ###  ## ##   ####  ## #  #####   ##     # ##  ##### ##  #  ## #####   #
                            ## # ######  ##  # ##### ##   #  ###    ##### ##   #### ## #####   #  ##
                           #######    # ### ####   ####  ## ## #   ##   ####  ##  ######   #  ## ###
                          ##     #   #### ###  #  ##  # ########  ###  ##  # ### ##    #  ## ##### #
                         ###    ##  ##  ### # ## ### ####      # ## # ### #### ####   ## #####   ###
                        ## #   ### ### ## ######## ###  #     ######### ###  ###  #  #####   #  ## #
                       #####  ## ### ######      ### # ##    ##       ### # ## # ## ##   #  ## #####
                      ##   # ##### ###    #     ## ######   ###      ## ##############  ## #####   #
                     ###  ####   ### #   ##    #####    #  ## #     #####            # #####   #  ##
                    ## # ##  #  ## ###  ###   ##   #   ## #####    ##   #           ####   #  ## ###
                   ######## ## ##### # ## #  ###  ##  #####   #   ###  ##          ##  #  ## ##### #
                  ##      ######   ######## ## # ### ##   #  ##  ## # ###         ### ## #####   ###
                 ###     ##    #  ##      ######## ####  ## ### ####### #        ## ######   #  ## #
                ## #    ###   ## ###     ##      ###  # ##### ###     ###       #####    #  ## #####
               #####   ## #  ##### #    ###     ## # ####   ### #    ## #      ##   #   ## #####   #
              ##   #  ##### ##   ###   ## #    #######  #  ## ###   #####     ###  ##  #####   #  ##
             ###  ## ##   ####  ## #  #####   ##     # ## ##### #  ##   #    ## # ### ##   #  ## ###
            ## # ######  ##  # ##### ##   #  ###    #######   ### ###  ##   ####### ####  ## ##### #
           #######    # ### ####   ####  ## ## #   ##     #  ## ### # ###  ##     ###  # #####   ###
          ##     #   #### ###  #  ##  # ########  ###    ## ##### ##### # ###    ## # ####   #  ## #
         ###    ##  ##  ### # ## ### ####      # ## #   #####   ###   ##### #   #######  #  ## #####
        ## #   ### ### ## ######## ###  #     #######  ##   #  ## #  ##   ###  ##     # ## #####   #
       #####  ## ### ######      ### # ##    ##     # ###  ## ##### ###  ## # ###    #######   #  ##
      ##   # ##### ###    #     ## ######   ###    #### # #####   ### # ####### #   ##     #  ## ###
     ###  ####   ### #   ##    #####    #  ## #   ##  #####   #  ## #####     ###  ###    ## ##### #
    ## # ##  #  ## ###  ###   ##   #   ## #####  ### ##   #  ## #####   #    ## # ## #   #####   ###
   ######## ## ##### # ## #  ###  ##  #####   # ## ####  ## #####   #  ##   ##########  ##   #  ## #
  ##      ######   ######## ## # ### ##   #  #######  # #####   #  ## ###  ##        # ###  ## #####
 ###     ##    #  ##      ######## ####  ## ##     # ####   #  ## ##### # ###       #### # #####   #
 # #    ###   ## ###     ##      ###  # ######    ####  #  ## #####   ##### #      ##  #####   #  ##
 ###   ## #  ##### #    ###     ## # ####    #   ##  # ## #####   #  ##   ###     ### ##   #  ## ###</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Sat, 08 Oct 2022 05:59:39 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9241/developing-a-new-programming-language-for-addons/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[custom code]]></title>
			<link>https://forexsb.com/forum/topic/9129/custom-code/new/posts/</link>
			<description><![CDATA[<p>Hi guys, it&#039;s been awhile, nice to be back!&nbsp; Wife didn&#039;t like me trading but now we&#039;re divorced lol.</p><p>I seem to remember it being very easy to program indicators and custom codes for stats, but now I can&#039;t seem to do anything.&nbsp; Also creating the mqh files was fairly easy before.&nbsp; Is my memory bad, or has something changed?</p><p>I don&#039;t really see any logic in the current .cs files, and I think I am missing include files?</p><p>Any help would be appreciated, thanks!</p>]]></description>
			<author><![CDATA[null@example.com (jetaro)]]></author>
			<pubDate>Mon, 30 May 2022 10:00:07 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9129/custom-code/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[I'm Yet to Build the Best Backtester and Generator]]></title>
			<link>https://forexsb.com/forum/topic/9057/im-yet-to-build-the-best-backtester-and-generator/new/posts/</link>
			<description><![CDATA[<p>Hello Traders and fellow followers,</p><p>I&#039;m going to start designing and building a strategy tester and a generator from scratch.</p><p>After ten years of working on FSB and FSB Pro and six years on EA Studio, I&#039;m more experienced and more critical to my previous work.</p><p>Let&#039;s say I&#039;m not completely happy with my achievements so far.</p><p>The significant drawbacks on the current backtesting engines are:<br /> - FSB Pro is very complex, making it slow, impossible to fix or expand, and impossible to export pretty looking MQL code.<br /> - EA Studio addresses the FSB Pro issues but lacks some requested features.</p><p>So what to do next?</p><p>Here is an outline of my plans and rationals:</p><p>Application:<br /> - the product will be web-based - The browser-based applications are as fast as the classical desktop solutions.</p><p>Strategy structure:<br /> - a single entry point and a single exit point - The strategies will open position at bar&#039;s Open and close at next bar&#039;s Open (on the same bar&#039;s Close for TradingView).<br /> - Stop Loss, Take Profit, Break Even implemented as indicators. It will make it possible to have variable values based on Standard Deviation, previous High or Low,&nbsp; percentage of the price, percentage of the account (I know some traders die for that <img src="https://forexsb.com/forum/img/smilies/smile.png" width="15" height="15" alt="smile" /> ). Of course, they will accept fixed Pip or Point values also.<br /> - variable entry-amount - lots, dollar value, equity %, free margin %...</p><p>Computation:<br /> - the indicators will reuse data and signals arrays to reduce the memory allocation and cleanup.<br /> - separation of the calculation code from the code for generating MQL, PineScript, ...<br /> - calculating strategies on pristine market conditions - this will allow us to reject strategies that fail early.<br /> - applying spread, slippage, swaps, commissions, Monte Carlo distortions later. It will make the calculations faster and reusable. For example, Monte Carlo effects can be indicator signals instead of hard-coded within the backtester.<br />&nbsp; &nbsp; &nbsp;Imagine the simulation of &#039;Randomly skip entries&#039;. Now the backtester looks at it every time because it doesn&#039;t know if it is allowed to open a position or not. It will be much easier to make it an indicator with buy and sell signals where the entries are randomly distributed and take, let&#039;s say, 20% of the length — no unique code for that purpose in the backtester anymore.<br /> - having pristine strategy results will allow us to collect them on a central repo and recalculate them later on new data with specific market conditions applied. It will even not need to recalculate the indicators.<br /> - calculating backtesting stats and applying Acceptance Criteria gradually - it means why to calculate R-squared if the strategy fails on Drawdown. We can reject it and continue with the next one.</p><br /><p>Work in progress</p><p>I&#039;m already working on a new application now.</p><p>It is a Generator for creating strategies for TradingView and exporting PineScript. It is a perfect moment to start from scratch because TradingView works differently from MetaTrader. It closes positions at Bar CLose and has a different set of embedded indicators.</p><p>I&#039;ll test my ideas with this app. I&#039;m planning it to be simple and oriented towards traders with no experience with the algotrading. I hope it will take me 4-6 months to finish it.</p><p>Later, I&#039;ll see what works best and optimize EA Studio whit whatever is possible without breaking its current workflow.</p><p>My final goal is to test and calculate such fast to make a standby mobile phone application possible to calculate real-time trading signals.</p><p>Please share your opinion.</p><p>Trade Safe!</p>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Tue, 22 Feb 2022 11:07:45 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/9057/im-yet-to-build-the-best-backtester-and-generator/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Short log of my work on EA Studio]]></title>
			<link>https://forexsb.com/forum/topic/8956/short-log-of-my-work-on-ea-studio/new/posts/</link>
			<description><![CDATA[<p>Hello Traders,</p><p>If you are curious, here is my log of the work on&nbsp; EA Studio.</p><div class="codebox"><pre><code>2021-11-08 Real last position status.
2021-11-08 Added last position status to all charts.
2021-11-08 Added last position status.
2021-11-08 Added build time.
2021-11-08 Added sorting scope.
2021-11-04 Monte Carlo randomises DataSet at startup.
2021-11-04 Code cleanup.
2021-11-04 Added OOS time. Refactoring.
2021-11-03 Added serializeWithProfitLists
2021-11-03 Added Remove all in Collection.
2021-11-03 Multi-tester optimised.
2021-11-03 Added `ensure` class. Cleanup.
2021-11-03 Code cleanup.
2021-10-28 Code cleanup.
2021-10-16 Fixed CP notification.
2021-10-13 Bind presenter to the app.
2021-10-12 Pug code cleanup.
2021-10-11 Optimized DD stats.
2021-10-11 Fixed initial acceptance criteria.
2021-10-11 Fixed strategy layout classes.
2021-10-11 Improved strategy layout style.
2021-10-11 Optimized view rendering on the first load.
2021-10-10 Minor style fix.
2021-10-10 Improved style
2021-10-10 Added isProduction property.
2021-10-10 Optimized correlation.
2021-10-10 Fixed zero progress value.
2021-10-09 Fixed Generator&#039;s best strategy on re-entry.
2021-10-09 Added time progress.
2021-10-09 Fixed generator settings.
2021-10-09 Code cleanup.
2021-10-08 Added stripes.
2021-10-08 Fixed cell className on no-backtets.
2021-10-08 Optimized WF stats table.
2021-10-08 Minor optimization of oscillator logic.
2021-10-08 Fixed Paginator&#039;s last page update.
2021-10-08 Refactored Paginator.
2021-10-08 Code cleanup. Refactoring.
2021-10-05 Refactored running view presenters.
2021-10-05 Fixed colour and position of controls.
2021-10-05 Code cleanup
2021-10-01 Server code cleaned up.
2021-09-29 Code cleanup.
2021-09-29 Fixed text colour.
2021-09-29 Code cleanup.
2021-09-29 Code cleanup.
2021-09-27 Fixed no-data crashes.
2021-09-27 Added &quot;Data not loaded&quot; strip.
2021-09-27 Reverted Gain Table.
2021-09-26 Reverted table update.
2021-09-25 Arranged files.
2021-09-25 Minor table styling.
2021-09-23 Refactored checkbox-on-off
2021-09-23 Refactored checkbox-on-off
2021-09-23 Code cleanup.
2021-09-23 Refactoring
2021-09-22 Added commission type. Removed `position` field.
2021-09-22 Added toggled checkbox.
2021-09-21 Fixed navbar style.
2021-09-20 Fixed accordion chevron icons click
2021-09-20 Fixed error in IE.
2021-09-20 Fixed links
2021-09-19 Fixed pointer.
2021-09-19 Fixed accordion and links hover and click.
2021-09-19 Header brand is link to home.
2021-09-19 Added CSS hover.
2021-09-19 Removed unused checkout stiles.
2021-09-19 Fixed navs css.
2021-09-18 Fixed navs css.
2021-09-17 Added Stats Gain table.
2021-09-17 Code cleanup. CSS fixed.
2021-09-17 Code cleanup.
2021-09-16 Code cleanup.
2021-09-16 Fixed UX.
2021-09-16 Validator can push losing strategies.
2021-09-16 Changed min-height to make dropdown visible.
2021-09-15 Dynamic document text.
2021-09-15 Fixed margins.
2021-09-15 Styled solo application.
2021-09-15 Fixed dark-mode link colours.
2021-09-15 Refactoring. Minor style fix.
2021-09-15 Refactored slot tabs.
2021-09-15 Fixed short slots UX.
2021-09-14 Fixed css.
2021-09-14 No-logged-in strip is less tedious.
2021-09-14 Fixed Collection close button color.
2021-09-14 Bumped CSS version.
2021-09-14 Change over to ES5.
2021-09-14 Fixed min / max.
2021-09-14 Fixed params validation 2.
2021-09-14 Fixed params validation.
2021-09-13 Support ES5.
2021-09-13 Removed jQuery.
2021-09-13 Replaced `append` with `appendChild` because has wider support.
2021-09-13 Can toggle accordion panel.
2021-09-13 Made alert&#039;s close buttons more vivid.
2021-09-13 Fixed acquisition dropdown on working Generator.
2021-09-13 Fixed initialisation order of Report page.
2021-09-13 Simplified default dataId.
2021-09-13 Unified info strips.
2021-09-13 Fixed alert contrast
2021-09-11 Fixed busy-disabled.
2021-09-11 Fixed contrast
2021-09-09 Refactoring.
2021-09-09 Added customised Bootstrap v3.4.1
2021-09-09 Refactored lib.js
2021-09-08 Updated jQuery and iFrameResizer.
2021-09-08 Copy Collection to Portfolio if it is empty.
2021-09-08 Faster collection upload.
2021-09-08 Added option &quot;Add top 50&quot;
2021-09-08 Faster collection deserialization.
2021-09-06 Added users online stats.
2021-09-05 Introduced req-log.
2021-09-05 Fixed time. Minor refactoring.
2021-09-04 TS validation.
2021-09-04 Exposed `lastActive`.
2021-09-04 Code cleanup.
2021-08-25 Changed to @xxxxx. Updated DB layer.
2021-08-05 Reverted changes.
2021-08-05 Fixed step=0 bug.
2021-05-27 Implemented Long-only in MQL.
2021-05-20 Added Entry amount info.
2021-05-20 Added TradeDirection mode.
2021-05-04 Increased precision of R-squared.
2021-04-29 Fixed stop request.
2021-04-29 Optimization nd cleanup.
2021-04-29 Code cleanup.
2021-04-25 Do not &quot;green&quot; the Edit button.
2021-04-24 Code cleanup.
2021-04-24 Added an Accept button.
2021-04-24 Push a strategy if not exist.
2021-04-24 Fixed repeating loading.
2021-04-23 Updated packages.
2021-04-23 Redesigned Tools pages.
2021-04-21 Added `start` command.
2021-04-20 Minor refactoring.
2021-04-20 Fixed TS warnings.
2021-04-20 Preload font.
2021-04-20 Refactored build. Added clean-css.
2021-04-20 Show size in kB.
2021-04-19 Build scripts refactored.
2021-04-19 Removed gulp.
2021-04-19 Email lists updated
2021-04-19 EcmaScript 6
2021-04-19 Fixed Monte Carlo checks.
2021-04-19 Refactoring.
2021-04-18 RVI not recommended because it&#039;s slow.
2021-04-18 Refactored BarMeta and Signal.
2021-04-18 Refactored transactions and sessions.
2021-04-18 Grouped all settings in a folder.
2021-04-18 Fixed HTMl type
2021-04-15 Search by string for all partners.
2021-04-14 Code cleanup.
2021-04-13 Print error on console.
2021-04-13 Max entry/exit indicator settings work.
2021-04-13 Escaping typo checks.
2021-04-13 Code cleanup.
2021-04-12 Code cleanup.
2021-04-11 Added option &quot;All&quot;.
2021-04-08 Scheduled real-time backtest. Cache balance chart model.
2021-04-08 Realtime backtest.
2021-04-08 Refactoring.
2021-04-07 Recalculate on keydown and wheel.
2021-04-07 introduced realtime backtesting.
2021-04-07 Code cleanup.
2021-04-07 Code cleanup.
2021-04-07 Fixed decimal digits in `step`.
2021-04-07 Code cleanup.
2021-04-07 Validating app version string length.
2021-04-02 Code cleanup.
2021-04-01 Code cleanup.
2021-04-01 Added a &#039;dispose&#039; method.
2021-04-01 Code cleanup.
2021-03-31 Changed App is Working phrases.
2021-03-31 Introduced App is Working strip.
2021-03-31 Code cleanup.
2021-03-31 Fixed view status.
2021-03-31 Update view properly.
2021-03-31 Updated busy-disabled on entry.
2021-03-31 Calculation in background.
2021-03-31 Code cleanup.
2021-03-30 Code cleanup.
2021-03-30 Code cleanup.
2021-03-29 Code cleanup. Fixed phrases.
2021-03-29 Added appendText and appendHtml. Cleanup.
2021-03-29 Code cleanup.
2021-03-29 Refactoring. Fixed page caching.
2021-03-29 Refactored partners notification.
2021-03-28 Improved Partner Summary email.
2021-03-28 Updated mail domains.
2021-03-27 Email domains validation.
2021-03-27 Added blacklist email domains.
2021-03-27 Added blacklist email domains.
2021-03-27 Upload data scheduled.
2021-03-27 Update partner when upgrading user.
2021-03-27 Logging improved. Removed req timeout.
2021-03-26 Fixed typo.
2021-03-26 Upgrade active trial accounts.
2021-03-26 Added a failed MQL loading notification.
2021-03-26 Premium Data phrases.
2021-03-26 Fixed a phrase.
2021-03-26 Fixed Log in and Log out.
2021-03-26 Blacklist email.
2021-03-25 Refactoring. Removed: Table, Crone, Morgan.
2021-03-25 Refactoring.
2021-03-25 Refactoring app-version.js
2021-03-25 Fixed data files with #.
2021-03-25 Fixed increment loginCount.
2021-03-25 Settings doesn&#039;t reset lang, legal, and theme.
2021-03-25 Cleanup and refactoring ATR.
2021-03-24 Added stats meta.
2021-03-24 Stats fallback.
2021-03-24 Cont of open tabs in stats.
2021-03-23 Fixed lastActive update.
2021-03-23 Optimized loading and status.
2021-03-22 Refactored mail service.
2021-03-22 Store help content in DB.
2021-03-22 Don&#039;t print stats.
2021-03-21 Cache help pages.
2021-03-21 Catch deleted pages.
2021-03-21 Changed the login trap message again.
2021-03-21 Changed the login trap message.
2021-03-21 Fixed bug with not-found page.
2021-03-21 Removed css map.
2021-03-20 Update user&#039;s `lastActive`.
2021-03-20 Introduced `/data-store` endpoint.
2021-03-20 Introduced `/api/stats` endpoint.
2021-03-20 Code cleanup.
2021-03-19 Fixed phrases in home page.
2021-03-18 Changed max to 1000000.
2021-03-18 Fixed progress 100%
2021-03-18 Experts require 100 bars by default.
2021-03-17 Set requiredBars in MQ4 experts.
2021-03-17 Added login-trap.
2021-03-17 Do not wait for email sent.
2021-03-17 Repeat the email send on request error.
2021-03-17 Added OOS for the Normalizer.
2021-03-17 Moved Reset to the right.
2021-03-17 Moved context menu to the right.
2021-03-17 Added Reset button.
2021-03-17 Cod cleanup.
2021-03-17 Added Sigma.
2021-03-17 Fixed correlation dy.
2021-03-16 Fixed next symbols.
2021-03-16 Fixed error logging.
2021-03-16 Reverted creatOrUpdate email feedback.
2021-03-16 Multi market - get next symbol.
2021-03-16 Symbols sorting in groups.
2021-03-16 Refactoring select Symbols.
2021-03-16 Upload up to 1 000 000 bars.
2021-03-15 Fixed initial market&#039;s select element.
2021-03-15 Code cleanup.
2021-03-15 Added HEAD and POST methods.
2021-03-15 Introduced net-service.
2021-03-14 Refactoring.
2021-03-14 Added Timeout.
2021-03-14 Refactoring. Added missing callbacks.
2021-03-14 Added Validated reset.
2021-03-13 Refactoring. Fixed Reset.
2021-03-13 Fixed Reset button title.
2021-03-13 Reset moved to navbar.
2021-03-13 Walk Forward - refactoring. Added &quot;Reset&quot;.
2021-03-13 Updated node-cron.
2021-03-13 Removed unused DB.
2021-03-13 Refactored. Methods `text` and `value` cast to string. Added `swapClass`.
2021-03-12 Minor code cleanup.
2021-03-12 Fixes in email templates.
2021-03-12 Removed premium-data service and api.
2021-03-12 Morgan logs meaningful requests.
2021-03-12 Fixed submit button disabled.
2021-03-12 Using `logDebug` instead of `console.log`.
2021-03-12 Fixed missing exit from recursion.
2021-03-12 Code cleanup.
2021-03-11 SendMail returns errors.
2021-03-11 Improved signature.
2021-03-11 Fixed a bug with &quot;digits&quot; initialization.
2021-03-11 Updated Spanish translation.
2021-03-11 Refactoring.
2021-03-11 Fixed default &quot;Digit&quot; option.
2021-03-10 MQL templates version bumped.
2021-03-10 Updated packages.
2021-03-10 Show untranslated phrases on debug mode only.
2021-03-10 Version bumped to v210310.
2021-03-10 Refactoring.
2021-03-10 Fixed translation.
2021-03-10 Removed unused code.
2021-03-10 Fixed exit signal in MQL Portfolio.
2021-03-09 Users import &quot;My Premium Data:
2021-03-09 Fixed hidden symbols.
2021-03-09 Implemented hidden symbols.
2021-03-09 Implemented timezone shift.
2021-03-09 Refactored &quot;select&quot; management.
2021-03-09 Added Premium Data content.
2021-03-09 Fixed CSS class
2021-03-09 Added &quot;Risk Disclosure&quot; text EA code.
2021-03-09 Added &quot;Please log in&quot; strip.
2021-03-09 Volume indicators are &quot;not recommended&quot;.
2021-03-09 Fixed a bug with MQL position close.
2021-03-09 Removed unused method.
2021-02-27 Libs updated.
2021-02-27 Code cleanup.
2021-02-26 Remove ignored files
2021-02-26 Removed unused methods.
2021-02-26 Fixed a typo. cleanup.
2021-02-26 Typescript updated.
2021-02-25 Load the correct user.
2021-01-27 Make the generated passwords more user friendly.</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Tue, 09 Nov 2021 11:14:07 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/8956/short-log-of-my-work-on-ea-studio/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Sort Collection by profit on unknown data (Work in Progress)]]></title>
			<link>https://forexsb.com/forum/topic/8944/sort-collection-by-profit-on-unknown-data-work-in-progress/new/posts/</link>
			<description><![CDATA[<p>Hello traders,</p><p>I think to make it possible to sort the strategies in a Collection by the profit made on a newer data.<br />When we export a Collection, it stores the time, and the stats on the last backtest in the file. (it is possible to add these records in the Portfolio Expert also)</p><p>Then, when we re-import the Collection, it shows the updated area of the chart in green (from the previous test to the moment of the newer test). However, we cannot see the actual performance.</p><p>My idea is to calculate the Net Profit made in the newer data period and add it to the sorting criteria.<br />These stats will be handy for re-validating of older collections.</p><p>It is also possible to add an OOS zone in days to serve the same purpose.</p><p>I think it will be able to test a prototype this week.<br />Do you think a proper name of the stat can be &quot;OOS Profit&quot;? It can be also available after generating strategies with OOS.</p><p>The OOS days options can be:<br /> - Automatic<br /> - 7 days<br /> - 14 days<br /> - 21 days<br /> - 28 days<br /> - 45 days<br /> - 60 days<br /> - 90 days</p><p>Where &quot;Automatic&quot; means from the previous backtest or from the Generator&#039;s OOS settings (also Validator and Reactor).</p><p>Any thoughts on that?</p>]]></description>
			<author><![CDATA[null@example.com (Popov)]]></author>
			<pubDate>Sun, 24 Oct 2021 21:29:20 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/8944/sort-collection-by-profit-on-unknown-data-work-in-progress/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[FSB open source version]]></title>
			<link>https://forexsb.com/forum/topic/8636/fsb-open-source-version/new/posts/</link>
			<description><![CDATA[<p>Can you point me to where the open source version of the FSB is? Thanks</p>]]></description>
			<author><![CDATA[null@example.com (fiz)]]></author>
			<pubDate>Wed, 16 Dec 2020 15:41:07 +0000</pubDate>
			<guid>https://forexsb.com/forum/topic/8636/fsb-open-source-version/new/posts/</guid>
		</item>
	</channel>
</rss>
