2026-11-04 15:11:32 +01:00 | | | <!-- MQL5 Market description. Paste in HTML mode.
|
2026-11-04 15:12:27 +01:00 | | | Layout: everything sits in ONE fixed-width column (table width=640, an attribute, so it survives
|
| | | editors that strip CSS). Paragraphs flow inside the column: no hard line breaks.
|
| | | Source lines are wrapped at 100 characters for editing only.
|
| | | Content: English, no emoji, no profit claims, no product or seller named.
|
2026-11-04 15:11:32 +01:00 | | | Only link: the MQL5-hosted forge repo. If the form rejects it, delete that link. -->
|
2026-11-04 15:12:27 +01:00 | | | <table width="640" cellpadding="0" cellspacing="0" border="0"><tr><td>
|
2026-11-04 15:11:32 +01:00 | | |
|
2026-11-04 15:12:27 +01:00 | | | <h2>Tick Forge: does your Expert trade on logic, or on a memorised history?</h2>
|
2026-11-04 15:11:32 +01:00 | | |
|
| | | <p>
|
2026-11-04 15:12:27 +01:00 | | | <b>A perfect backtest proves nothing if the Expert only knows the past it was tested on.
|
| | | Tick Forge rebuilds the same real broker ticks on a different calendar and price level, so you can
|
| | | test the Expert in the normal Strategy Tester on a market it has never seen.</b>
|
2026-11-04 15:11:32 +01:00 | | | </p>
|
| | |
|
2026-11-04 15:12:27 +01:00 | | | <table width="100%" border="1" cellpadding="6" cellspacing="0">
|
| | | <tr><td width="28%"><b>What it is</b></td>
|
| | | <td>A free utility with a window. Attach it to any chart, fill in a few fields, press one button.
|
| | | Algo trading can stay off.</td></tr>
|
| | | <tr><td><b>Who it is for</b></td>
|
| | | <td>Anyone who bought an Expert that looked perfect in the backtest and then behaved differently
|
| | | live, and anyone who wants to check an Expert before putting money behind it.</td></tr>
|
| | | <tr><td><b>What it makes</b></td>
|
| | | <td>An ordinary custom symbol in Market Watch and in the Strategy Tester, built from your own
|
| | | broker's history.</td></tr>
|
| | | <tr><td><b>What it never does</b></td>
|
| | | <td>It never opens, modifies or closes a trade, never touches your live symbols, uses no DLL and
|
| | | has no internet access.</td></tr>
|
| | | <tr><td><b>Cost and source</b></td>
|
| | | <td>Free. Open source (MIT licence), you can read every line.
|
| | | <a href="https://forge.mql5.io/joshuadunnink/Tick_Forge">forge.mql5.io/joshuadunnink/Tick_Forge</a></td></tr>
|
| | | </table>
|
2026-11-04 15:11:32 +01:00 | | |
|
2026-11-04 15:12:27 +01:00 | | | <h3>The problem</h3>
|
2026-11-04 15:11:32 +01:00 | | | <p>
|
2026-11-04 15:12:27 +01:00 | | | A backtest shows what an Expert did on one stretch of history. It does not show why. Some Experts
|
| | | are sold on backtests that look flawless because the "strategy" is partly a memory: a list of dates,
|
| | | a table of times, hard-coded price levels, or entries written after the fact. On the original data
|
| | | they look brilliant. Live, there is no list for the future.
|
2026-11-04 15:11:32 +01:00 | | | </p>
|
| | | <p>
|
2026-11-04 15:12:27 +01:00 | | | Change the history in a controlled way. Logic survives the change. A memorised list does not.
|
2026-11-04 15:11:32 +01:00 | | | </p>
|
| | |
|
2026-11-04 15:12:27 +01:00 | | | <h3>The tests</h3>
|
| | | <table width="100%" border="1" cellpadding="6" cellspacing="0">
|
| | | <tr><th align="left" width="20%">Test</th><th align="left" width="40%">What you do</th>
|
| | | <th align="left">What it exposes</th></tr>
|
| | | <tr><td><b>Control</b></td>
|
| | | <td>Function p, no shift. Run it first.</td>
|
| | | <td>Proves the pipeline changes nothing by itself.</td></tr>
|
| | | <tr><td><b>Calendar shift</b></td>
|
| | | <td>Shift all timestamps by a multiple of 7 days, for example +7 days. Weekday and time of day
|
| | | stay the same, only the date changes.</td>
|
| | | <td>Logic trades much as before. A list of dates loses its trades or its edge.</td></tr>
|
| | | <tr><td><b>Price level</b></td>
|
| | | <td>Multiply the prices: p*0.5 or p*2.</td>
|
| | | <td>Hard-coded levels and fixed distances stop fitting.</td></tr>
|
| | | <tr><td><b>Mirror, reshape</b></td>
|
| | | <td>p0*p0/p, p0*r^2, p*(1+t).</td>
|
| | | <td>Reliance on the direction or size of one period's moves.</td></tr>
|
| | | </table>
|
2026-11-04 15:11:32 +01:00 | | |
|
2026-11-04 15:12:27 +01:00 | | | <h3>Not a "100 worlds" simulation</h3>
|
2026-11-04 15:11:32 +01:00 | | | <p>
|
2026-11-04 15:12:27 +01:00 | | | Some audit tools re-order or re-sample the trades an Expert already made and call the result many
|
| | | worlds. That is the same trades, rearranged. It is not a new market, and an Expert that memorised
|
| | | its history passes it as easily as before.
|
2026-11-04 15:11:32 +01:00 | | | </p>
|
| | | <p>
|
2026-11-04 15:12:27 +01:00 | | | Tick Forge changes the price data itself. Every tick is a real broker tick. The order, the
|
| | | volatility clusters, the gaps and the spreads are real. Only the date and the price level change.
|
2026-11-04 15:11:32 +01:00 | | | </p>
|
| | |
|
2026-11-04 15:12:27 +01:00 | | | <h3>What it does not do</h3>
|
2026-11-04 14:23:54 +01:00 | | | <ul>
|
2026-11-04 15:11:32 +01:00 | | | <li>It does not invent random price paths or simulate possible futures.</li>
|
2026-11-04 15:07:50 +01:00 | | | <li>It does not read, decompile or unlock any Expert. It only gives the Expert different data.</li>
|
2026-11-04 15:12:27 +01:00 | | | <li>It does not prove an Expert is honest, safe or profitable. A pass means the Expert did not
|
| | | depend on what you changed. It is no promise about the future.</li>
|
| | | <li>It does not catch every problem. A failed test is a flag, not a verdict. Honest Experts can
|
| | | depend on sessions, weekdays or round levels, so check which trades changed.</li>
|
2026-11-04 15:11:32 +01:00 | | | <li>It is a research tool: a stress test, not a forecast, not a trading result.</li>
|
2026-11-04 14:23:54 +01:00 | | | </ul>
|
| | |
|
2026-11-04 15:50:31 +01:00 | | | <h3>One-click audit set</h3>
|
| | | <p>
|
| | | The Audit set button builds the standard set in one go, after you confirm: <b>_C</b> control,
|
| | | <b>_S7</b>, <b>_S14</b>, <b>_S28</b> shifted by 7, 14 and 28 days, <b>_L50</b> prices x0.5,
|
| | | <b>_L200</b> prices x2 and <b>_MIR</b> mirrored moves. Nothing is created silently: you see how many
|
| | | symbols and days first, and each symbol uses the disk space of one generated symbol (real ticks use
|
| | | far more than M1 bars). The Delete audit set button removes the set again. It only touches symbols
|
| | | Tick Forge created.
|
| | | </p>
|
| | | <p>
|
| | | <b>It cannot start the Strategy Tester for you.</b> MQL5 programs are not allowed to launch the tester.
|
| | | So you run your Expert on each symbol yourself, control first, with identical settings.
|
| | | A free helper script in the source repository can run the whole set automatically on a terminal
|
| | | you choose and write a comparison report: trade count, net, profit factor, drawdown, and how many of
|
| | | the control's entries reappear at the shifted time.
|
| | | </p>
|
| | |
|
2026-11-04 15:12:27 +01:00 | | | <h3>How to use it</h3>
|
2026-11-04 14:23:54 +01:00 | | | <ol>
|
2026-11-04 15:12:27 +01:00 | | | <li>Pick a source symbol and a date range. The window shows what your broker provides and can scan
|
| | | which months have tick history.</li>
|
| | | <li>Pick the data type. Real ticks: use the tester model "Every tick based on real ticks".
|
2026-11-04 15:11:32 +01:00 | | | M1 bars only: the tester builds the ticks.</li>
|
2026-11-04 15:12:27 +01:00 | | | <li>Set the time offset (hours or days, negative = earlier) and the price function.
|
| | | Press Preview: it draws the whole range, source on top, result below.</li>
|
2026-11-04 15:11:32 +01:00 | | | <li>Press GENERATE SYMBOL. When it says DONE, pick the new symbol in the Strategy Tester.</li>
|
2026-11-04 15:12:27 +01:00 | | | <li>Test the Expert on the control, then on the changed symbol, with identical settings. Compare
|
| | | trade count, profit factor and equity curve.</li>
|
2026-11-04 14:23:54 +01:00 | | | </ol>
|
| | |
|
2026-11-04 15:12:27 +01:00 | | | <h3>Price functions</h3>
|
2026-11-04 15:11:32 +01:00 | | | <ul>
|
| | | <li>Variables: p price, p0 first price, r = p/p0, t progress 0..1, d days since start.</li>
|
| | | <li>Operators: + - * / ^ and parentheses.</li>
|
| | | <li>Functions: abs sqrt ln log10 exp sin cos pow min max.</li>
|
| | | <li>Examples: p*2 | p0*r^2 | p*(1+t) | p+1000 | p0*p0/p</li>
|
| | | </ul>
|
| | | <p>
|
2026-11-04 15:12:27 +01:00 | | | Spread can follow the price factor. Digits, tick size and tick value adjust when the level changes
|
| | | a lot. An existing custom symbol asks before it is replaced. A real broker symbol is never
|
| | | overwritten. The window shows where the data is stored.
|
2026-11-04 15:11:32 +01:00 | | | </p>
|
2026-11-04 14:23:54 +01:00 | | |
|
2026-11-04 15:12:27 +01:00 | | | <h3>Good to know</h3>
|
2026-11-04 14:23:54 +01:00 | | | <ul>
|
2026-11-04 15:11:32 +01:00 | | | <li>It uses only history your terminal holds or can download. Tick depth depends on the broker.</li>
|
2026-11-04 15:12:27 +01:00 | | | <li>The custom symbol keeps the contract settings of the source symbol. Its name differs from the
|
| | | real one, so an Expert that only runs on one exact name will refuse. That is information too.</li>
|
| | | <li>Works with any Expert that runs in your own Strategy Tester. Seller demos may or may not run
|
| | | on a custom symbol.</li>
|
2026-11-04 15:50:31 +01:00 | | | <li>Needs a chart of about 1070 x 640 pixels or more. It does nothing in the Strategy Tester.</li>
|
| | | <li>The audit set also writes one small text file (the list of its symbols) to MQL5\Files\TickForge.</li>
|
2026-11-04 15:11:32 +01:00 | | | <li>After generating, close MetaTrader normally (File, Exit) so the symbol list is saved.</li>
|
2026-11-04 14:23:54 +01:00 | | | </ul>
|
2026-11-04 15:12:27 +01:00 | | |
|
| | | </td></tr></table>
|