Tick_Forge/market/DESCRIPTION.html
142 라인
7.3 KiB
HTML
<!-- MQL5 Market description. Paste in HTML mode.
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.
Only link: the MQL5-hosted forge repo. If the form rejects it, delete that link. -->
<table width="640" cellpadding="0" cellspacing="0" border="0"><tr><td>
<h2>Tick Forge: does your Expert trade on logic, or on a memorised history?</h2>
<p>
<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>
</p>
<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>
<h3>The problem</h3>
<p>
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.
</p>
<p>
Change the history in a controlled way. Logic survives the change. A memorised list does not.
</p>
<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>
<h3>Not a "100 worlds" simulation</h3>
<p>
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.
</p>
<p>
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.
</p>
<h3>What it does not do</h3>
<ul>
<li>It does not invent random price paths or simulate possible futures.</li>
<li>It does not read, decompile or unlock any Expert. It only gives the Expert different data.</li>
<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>
<li>It is a research tool: a stress test, not a forecast, not a trading result.</li>
</ul>
<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>
<h3>How to use it</h3>
<ol>
<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".
M1 bars only: the tester builds the ticks.</li>
<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>
<li>Press GENERATE SYMBOL. When it says DONE, pick the new symbol in the Strategy Tester.</li>
<li>Test the Expert on the control, then on the changed symbol, with identical settings. Compare
trade count, profit factor and equity curve.</li>
</ol>
<h3>Price functions</h3>
<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>
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.
</p>
<h3>Good to know</h3>
<ul>
<li>It uses only history your terminal holds or can download. Tick depth depends on the broker.</li>
<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>
<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>
<li>After generating, close MetaTrader normally (File, Exit) so the symbol list is saved.</li>
</ul>
</td></tr></table>