SOMA Logo
S O M AETHEREAL // OBSERVATION SYSTEM
LIVE TAILBTC/USD · SIMULATED

Lineage

Every specimen runs a numbered strategy version with its parameters written down. A new generation is a curated change with a stated reason, evaluated on its own period. Nothing here is produced by an optimiser, and a generation that performs worse than its parent stays on the record.

Candidates on recordNone promoted
CandidateChangesDatasets aheadTypicalBy chanceStanding
MOTH-002Confirm Bars6 / 10+0.2175%Not separable from chance
MOTH-003Max Extension———Untested
MOTH-004Exit Threshold———Untested
MOTH-005Trend Slow———Untested
MOSS-002Min Mean Slope———Untested
MOSS-003Min Mean Slope Vol———Untested
MOSS-004Exit Z———Untested
MOSS-005Stop Loss———Untested
ECHO-002Epoch Bars———Untested
ECHO-003Carry Across Epochs———Untested
ECHO-004Position Fraction———Untested
ECHO-005Breakout Exit Lookback———Untested

Every figure here is the corpus result corrected for the 12 candidates tested against it. A candidate that fails keeps its slot, its parameters, its reason and its numbers; one that is supported is still not promoted, because evidence is not a decision.

MOTH-001No parent
Momentum · Confirmed momentum

First generation. Enter only when 12-bar momentum clears +1.2% and the 8-bar mean is above the 24-bar mean, so a single spike cannot trigger an entry on its own. The confirmation gate is open: one qualifying close is enough and there is no limit on how far price may have already travelled.

Stop Loss6.00%Trend Fast8.00Trend Slow24.00Reduce Gain5.00%Confirm Bars1Max Extensionno limitExit Threshold-0.40%Entry Threshold1.20%Momentum Period12Position Fraction50.00%
Fills in this run24Return+1.02%Max drawdown-3.28%

Not yet measured against random trading. This runs in the background after the candidate work.

Candidate MOTH-002 is recorded against this version. It has not been promoted; see below for what changed and how it did on bars this version was not read against.

MOSS-001No parent
Mean reversion · Sigma reversion

First generation. Buy closes stretched 1.4 sigma below a 36-bar mean while RSI confirms weakness, release as price returns through the mean. The regime guard is open: it will buy a dip regardless of what the mean itself is doing.

Exit Z0.20σEntry Z-1.40σMax Rsi45.0Reduce Z-0.20σZ Period36Stop Loss8.00%Rsi Period14Min Mean Slope-99.00Mean Slope Period36Min Mean Slope Vol-99.00Position Fraction50.00%
Fills in this run25Return-1.98%Max drawdown-2.83%

Not yet measured against random trading. This runs in the background after the candidate work.

Candidate MOSS-002 is recorded against this version. It has not been promoted; see below for what changed and how it did on bars this version was not read against.

ECHO-001No parent
Explorer · Seeded rotation

First generation. Rotate between three published rules every 72 bars using the run seed, so each rule accumulates its own trades under identical conditions. The rotation is fixed by the seed, not chosen by performance. Every open position is closed at the epoch boundary to keep that attribution clean.

Stop Loss7.00%Drift Exit-0.20%Epoch Bars72Drift Entry0.60%Drift Period6Rebound Exit Z0.00σRebound Entry Z-1.00σRebound Period24Breakout Lookback20Position Fraction40.00%Carry Across Epochs0Breakout Exit Lookback10
Fills in this run39Return-1.76%Max drawdown-2.46%

Not yet measured against random trading. This runs in the background after the candidate work.

Candidate ECHO-002 is recorded against this version. It has not been promoted; see below for what changed and how it did on bars this version was not read against.

Candidate MOTH-002 · not promotedParent MOTH-001

Candidate, not promoted. MOTH-001 commits on the first close that crosses its threshold. This requires momentum to hold above +1.2% for two consecutive closes and changes nothing else. It was originally written together with an extension limit, which meant no result could be attributed to either parameter; the two were split so each can be tested on its own. The value here is the one it was written with, not one read off a grid.

What changed · 1 of 10 parameters
Confirm Bars1 → 2
Corpus · 30 windows · 10 datasetsNot separable from chance
Windows ahead16 / 30
Datasets ahead6 / 10
Untouched0 / 30
Effect (95% CI)-0.36 … 0.55points per dataset
p over datasets0.754the independent unit
p corrected0.75412 candidates tested
Could have found±0.41points, at 0.05
Fills compared385 / 330
By timescale · fires on · a change that only works on one is not a change that works
15m barsfires on 100% · ahead on 2 of 3 datasets1h barsfires on 100% · ahead on 0 of 3 datasets4h barsfires on 100% · ahead on 2 of 2 datasets1d barsfires on 100% · ahead on 2 of 2 datasets

MOTH-002 was run against its parent on 30 held-out windows across 10 datasets, 385 parent fills against 330. It came out ahead on 16 of 30 decisive windows (median difference +0.21 points). Windows from one dataset share an instrument and their indicator history, so the test is taken over datasets: 6 of 10 went the candidate's way. A split at least that lopsided happens 75% of the time when a change does nothing at all, so this corpus does not separate it from chance. MOTH-002 stays a candidate.

Typical difference per dataset +0.21 points, 95% of resamples between -0.36 and 0.55. That range contains zero, so on this corpus MOTH-002 is consistent with making no difference at all.

With 10 datasets this corpus would have detected a consistent edge of about 0.41 points per dataset. It found none, so whatever MOTH-002 does is smaller than that — which is a bound on the effect, not proof there is none.

Sensitivity · 5 settings · same held-out bars · diagnostic, not a selector
Confirm Barsreturn
1-2.81
2-2.02
3-1.07
4-0.70
5-0.69
parent candidatebrighter = higher return within this grid

Across 5 settings the held-out return ranges from -2.81% to -0.69% (median -1.07%). MOTH-002 is not the best setting in its own grid: it lands below the median, and 4 settings did better. It beat its parent on this window, which the corpus below is a better judge of; that it beats the grid is not something this window shows. The grid is a diagnostic: no value here is selected, and MOTH-002 keeps the parameters it was written with.

Waiting for a held-out test. It runs once the current dataset has been replayed in full.

Candidate MOTH-003 · not promotedParent MOTH-001

Candidate, not promoted. The other half of the change that was originally bundled into MOTH-002: refuse an entry when the close already sits more than 1.5% above the 8-bar mean, on the reasoning that the move has run before the signal arrived. Confirmation is left at the parent's setting so this parameter is the only thing that moves. A sibling of MOTH-002, not a successor to it.

What changed · 1 of 10 parameters
Max Extensionno limit → 1.50%

Corpus evidence pending. 160 of 160 datasets fetched (115,248 bars); every candidate is scored on each of them once they land.

Sensitivity · 6 settings · same held-out bars · diagnostic, not a selector
Max Extensionreturn
0.5%-2.74
1.0%-2.81
1.5%-2.79
2.5%-2.81
4.0%-2.81
off-2.81
parent candidatebrighter = higher return within this grid

Across 6 settings the held-out return ranges from -2.81% to -2.74% (median -2.81%). MOTH-003 is not the best setting in its own grid: it lands above the median, and 2 settings did better. It beat its parent on this window, which the corpus below is a better judge of; that it beats the grid is not something this window shows. The grid is a diagnostic: no value here is selected, and MOTH-003 keeps the parameters it was written with.

Waiting for a held-out test. It runs once the current dataset has been replayed in full.

Candidate MOTH-004 · not promotedParent MOTH-001

Candidate, not promoted. MOTH-001 waits for momentum to turn negative by 0.4% before leaving, so every exit is taken after the move has already reversed and the give-back is built into the rule. This releases while momentum is still positive but decaying, at +0.2%. The expected cost is leaving early in a move that pauses and resumes, which is the same move the parent is paid for.

What changed · 1 of 10 parameters
Exit Threshold-0.40% → 0.20%

Corpus evidence pending. 160 of 160 datasets fetched (115,248 bars); every candidate is scored on each of them once they land.

Sensitivity · 6 settings · same held-out bars · diagnostic, not a selector
Exit Thresholdreturn
-0.01-3.09
-0.004-2.81
0-2.20
0.002-2.14
0.005-2.47
0.01-2.28
parent candidatebrighter = higher return within this grid

Across 6 settings the held-out return ranges from -3.09% to -2.14% (median -2.38%). MOTH-004 is the top cell, but only by 0.06 points in a grid spanning 0.95 points, alongside 2 settings within a quarter point. A margin that thin against the grid's own spread is not a ranking worth reading as a result. The grid is a diagnostic: no value here is selected, and MOTH-004 keeps the parameters it was written with.

This run’s own window · 288 bars · 21 Sept 2026 → 03 Oct 2026 · both start at 10,000 · one window, far weaker than the corpus above
MOTH-001MOTH-004
Return-2.81%-2.14%
Max drawdown-3.98%-3.42%
Fills1212
Bars held8157
Fees paid59.0959.33

Both versions ran the same engine over the same bars, from the same capital, with the same fee and slippage. A difference over one window of 288 bars is not evidence that the change works, so MOTH-004 stays a candidate and MOTH-001 keeps running.

Candidate MOTH-005 · not promotedParent MOTH-001

Candidate, not promoted. MOTH-001 measures momentum over 12 bars and then filters it with a 24-bar mean, which is built from largely the same bars: the filter mostly agrees with the signal it is supposed to check. A 60-bar mean is far enough away to disagree. The expected cost is missing early turns, since a slower mean confirms later.

What changed · 1 of 10 parameters
Trend Slow24.00 → 60.00

Corpus evidence pending. 160 of 160 datasets fetched (115,248 bars); every candidate is scored on each of them once they land.

Sensitivity · 6 settings · same held-out bars · diagnostic, not a selector
Trend Slowreturn
24-2.81
36-2.49
48-2.54
60-2.54
96-1.99
144-2.25
parent candidatebrighter = higher return within this grid

Across 6 settings the held-out return ranges from -2.81% to -1.99% (median -2.52%). MOTH-005 is not the best setting in its own grid: it lands below the median, and 5 settings did better. It beat its parent on this window, which the corpus below is a better judge of; that it beats the grid is not something this window shows. The grid is a diagnostic: no value here is selected, and MOTH-005 keeps the parameters it was written with.

This run’s own window · 288 bars · 21 Sept 2026 → 03 Oct 2026 · both start at 10,000 · one window, far weaker than the corpus above
MOTH-001MOTH-005
Return-2.81%-2.54%
Max drawdown-3.98%-3.71%
Fills1210
Bars held8169
Fees paid59.0949.26

Both versions ran the same engine over the same bars, from the same capital, with the same fee and slippage. A difference over one window of 288 bars is not evidence that the change works, so MOTH-005 stays a candidate and MOTH-001 keeps running.

Candidate MOSS-002 · not promotedParent MOSS-001

Candidate, not promoted. MOSS-001 measures how far price has stretched from its mean but never asks what the mean is doing, so in a sustained decline it buys a level that keeps moving away from it. This changes one parameter: entries are refused while the 36-bar mean has itself fallen more than 3% over the last 36 bars. It narrows when an entry is allowed and adds no new signal. The expected cost is missing the genuine bottom, where the mean is always falling hardest.

What changed · 1 of 11 parameters
Min Mean Slope-99.00 → -0.03

Corpus evidence pending. 160 of 160 datasets fetched (115,248 bars); every candidate is scored on each of them once they land.

Sensitivity · 7 settings · same held-out bars · diagnostic, not a selector
Min Mean Slopereturn
off-0.76
-8.0%-0.76
-5.0%-0.76
-3.0%-0.76
-2.0%-0.76
-1.0%-0.76
-0.5%-0.76
parent candidatebrighter = higher return within this grid

Across 7 settings the held-out return ranges from -0.76% to -0.76% (median -0.76%). Every setting produced effectively the same result, so these bars do not separate them at all — the parameter does not bite on this window. The grid is a diagnostic: no value here is selected, and MOSS-002 keeps the parameters it was written with.

This run’s own window · 288 bars · 21 Sept 2026 → 03 Oct 2026 · both start at 10,000 · one window, far weaker than the corpus above
MOSS-001MOSS-002
Return-0.76%-0.76%
Max drawdown-1.54%-1.54%
Fills99
Bars held6464
Fees paid19.8519.85

The change never triggered on these 288 bars: MOSS-002 produced exactly MOSS-001's trades, fills and fees. That makes this window inconclusive rather than level — it does not test the change either way, and MOSS-002 stays a candidate until a window arrives that does.

Candidate MOSS-003 · not promotedParent MOSS-001

Candidate, not promoted. MOSS-002 asks the same question as this one but in fixed percent, and the corpus showed it untouched on half its windows: a 3% fall over 36 bars is routine on daily bars and almost unheard of on 15-minute bars, so the guard is dead at one timescale and dominant at another. This measures the same fall against the instrument's own volatility instead, which travels across both. The threshold is one standard deviation of the move, chosen for being the obvious unit rather than for anything it scored — the point of the change is that the guard engages at all, not that this number is better than another.

What changed · 1 of 11 parameters
Min Mean Slope Vol-99.00 → -1.00

Corpus evidence pending. 160 of 160 datasets fetched (115,248 bars); every candidate is scored on each of them once they land.

Sensitivity · 7 settings · same held-out bars · diagnostic, not a selector
Min Mean Slope Volreturn
off-0.76
-300.0%-0.76
-200.0%-0.76
-150.0%-0.76
-100.0%-0.76
-75.0%-0.76
-50.0%-0.76
parent candidatebrighter = higher return within this grid

Across 7 settings the held-out return ranges from -0.76% to -0.76% (median -0.76%). Every setting produced effectively the same result, so these bars do not separate them at all — the parameter does not bite on this window. The grid is a diagnostic: no value here is selected, and MOSS-003 keeps the parameters it was written with.

This run’s own window · 288 bars · 21 Sept 2026 → 03 Oct 2026 · both start at 10,000 · one window, far weaker than the corpus above
MOSS-001MOSS-003
Return-0.76%-0.76%
Max drawdown-1.54%-1.54%
Fills99
Bars held6464
Fees paid19.8519.85

The change never triggered on these 288 bars: MOSS-003 produced exactly MOSS-001's trades, fills and fees. That makes this window inconclusive rather than level — it does not test the change either way, and MOSS-003 stays a candidate until a window arrives that does.

Candidate MOSS-004 · not promotedParent MOSS-001

Candidate, not promoted. MOSS-001 holds until price is 0.2 sigma past its mean, which asks the position for an overshoot after the reversion it was bought for has already happened. This releases at the mean. The expected cost is giving up the overshoots that do arrive, which on a strategy this patient may be where the return lives.

What changed · 1 of 11 parameters
Exit Z0.20σ → 0.00σ

Corpus evidence pending. 160 of 160 datasets fetched (115,248 bars); every candidate is scored on each of them once they land.

Sensitivity · 6 settings · same held-out bars · diagnostic, not a selector
Exit Zreturn
-0.3-0.83
-0.1-0.74
0-0.74
0.2-0.76
0.5-0.75
1-0.73
parent candidatebrighter = higher return within this grid

Across 6 settings the held-out return ranges from -0.83% to -0.73% (median -0.75%). MOSS-004 is not the best setting in its own grid: it lands above the median, and 3 settings did better. It beat its parent on this window, which the corpus below is a better judge of; that it beats the grid is not something this window shows. The grid is a diagnostic: no value here is selected, and MOSS-004 keeps the parameters it was written with.

This run’s own window · 288 bars · 21 Sept 2026 → 03 Oct 2026 · both start at 10,000 · one window, far weaker than the corpus above
MOSS-001MOSS-004
Return-0.76%-0.74%
Max drawdown-1.54%-1.53%
Fills96
Bars held6447
Fees paid19.8519.85

Both versions ran the same engine over the same bars, from the same capital, with the same fee and slippage. A difference over one window of 288 bars is not evidence that the change works, so MOSS-004 stays a candidate and MOSS-001 keeps running.

Candidate MOSS-005 · not promotedParent MOSS-001

Candidate, not promoted. MOSS-001 buys into falling prices by design and then allows an 8% loss before admitting the level did not hold, which is a wide stop for a rule whose entries are all into weakness. This tightens it to 5%. The expected cost is being stopped out of reversions that were going to work, since a stop that fires sooner fires more often on noise.

What changed · 1 of 11 parameters
Stop Loss8.00% → 5.00%

Corpus evidence pending. 160 of 160 datasets fetched (115,248 bars); every candidate is scored on each of them once they land.

Sensitivity · 6 settings · same held-out bars · diagnostic, not a selector
Stop Lossreturn
0.03-0.76
0.04-0.76
0.05-0.76
0.08-0.76
0.12-0.76
0.2-0.76
parent candidatebrighter = higher return within this grid

Across 6 settings the held-out return ranges from -0.76% to -0.76% (median -0.76%). Every setting produced effectively the same result, so these bars do not separate them at all — the parameter does not bite on this window. The grid is a diagnostic: no value here is selected, and MOSS-005 keeps the parameters it was written with.

This run’s own window · 288 bars · 21 Sept 2026 → 03 Oct 2026 · both start at 10,000 · one window, far weaker than the corpus above
MOSS-001MOSS-005
Return-0.76%-0.76%
Max drawdown-1.54%-1.54%
Fills99
Bars held6464
Fees paid19.8519.85

The change never triggered on these 288 bars: MOSS-005 produced exactly MOSS-001's trades, fills and fees. That makes this window inconclusive rather than level — it does not test the change either way, and MOSS-005 stays a candidate until a window arrives that does.

Candidate ECHO-002 · not promotedParent ECHO-001

Candidate, not promoted. Each rule gets few trades before the rotation moves on, so experiments run for 120 bars instead of 72 and nothing else changes. This was originally written bundled with a carry flag; the corpus rejected the bundle and the sensitivity grid showed the carry flag producing identical results at four of five epoch lengths, so the two were split and this is the half that moves anything.

What changed · 1 of 12 parameters
Epoch Bars72 → 120

Corpus evidence pending. 160 of 160 datasets fetched (115,248 bars); every candidate is scored on each of them once they land.

Sensitivity · 6 settings · same held-out bars · diagnostic, not a selector
Epoch Barsreturn
48-1.63
72-0.23
96-2.04
120-0.79
168-3.20
240-2.73
parent candidatebrighter = higher return within this grid

Across 6 settings the held-out return ranges from -3.20% to -0.23% (median -1.83%). ECHO-002 is not the best setting in its own grid: it lands above the median, and 2 settings did better. It did not beat its parent on this window either. The grid is a diagnostic: no value here is selected, and ECHO-002 keeps the parameters it was written with.

This run’s own window · 288 bars · 21 Sept 2026 → 03 Oct 2026 · both start at 10,000 · one window, far weaker than the corpus above
ECHO-001ECHO-002
Return-0.23%-0.79%
Max drawdown-1.64%-2.57%
Fills1723
Bars held70120
Fees paid67.7091.16

Both versions ran the same engine over the same bars, from the same capital, with the same fee and slippage. A difference over one window of 288 bars is not evidence that the change works, so ECHO-002 stays a candidate and ECHO-001 keeps running.

Candidate ECHO-003 · not promotedParent ECHO-001

Candidate, not promoted. The other half of the bundle: an open position is carried into the next experiment rather than closed because the calendar said so. It costs clean attribution, since a trade can no longer be assigned to the rule that opened it, which was the boundary exit's whole purpose. The grid suggested it changes almost nothing at the epoch lengths tested, which is a reason to test it alone rather than a reason to assume it.

What changed · 1 of 12 parameters
Carry Across Epochs0 → 1

Corpus evidence pending. 160 of 160 datasets fetched (115,248 bars); every candidate is scored on each of them once they land.

Sensitivity · 2 settings · same held-out bars · diagnostic, not a selector
Carry Across Epochsreturn
close-0.23
carry-0.23
parent candidatebrighter = higher return within this grid

Across 2 settings the held-out return ranges from -0.23% to -0.23% (median -0.23%). Every setting produced effectively the same result, so these bars do not separate them at all — the parameter does not bite on this window. The grid is a diagnostic: no value here is selected, and ECHO-003 keeps the parameters it was written with.

This run’s own window · 288 bars · 21 Sept 2026 → 03 Oct 2026 · both start at 10,000 · one window, far weaker than the corpus above
ECHO-001ECHO-003
Return-0.23%-0.23%
Max drawdown-1.64%-1.64%
Fills1717
Bars held7070
Fees paid67.7067.70

The change never triggered on these 288 bars: ECHO-003 produced exactly ECHO-001's trades, fills and fees. That makes this window inconclusive rather than level — it does not test the change either way, and ECHO-003 stays a candidate until a window arrives that does.

Candidate ECHO-004 · not promotedParent ECHO-001

Candidate, not promoted. ECHO trades more than either sibling and pays the most in fees, while committing 40% of equity to whichever rule the rotation happened to draw — a rule it has no reason to believe in, since the draw is seeded rather than chosen. Sizing at 25% matches the commitment to the confidence. The expected cost is a smaller share of whatever the rotation gets right.

What changed · 1 of 12 parameters
Position Fraction40.00% → 25.00%

Corpus evidence pending. 160 of 160 datasets fetched (115,248 bars); every candidate is scored on each of them once they land.

Sensitivity · 6 settings · same held-out bars · diagnostic, not a selector
Position Fractionreturn
0.15-0.09
0.2-0.11
0.25-0.14
0.4-0.23
0.5-0.29
0.6-0.29
parent candidatebrighter = higher return within this grid

Across 6 settings the held-out return ranges from -0.29% to -0.09% (median -0.19%). ECHO-004 is not the best setting in its own grid: it lands above the median, and 3 settings did better. It beat its parent on this window, which the corpus below is a better judge of; that it beats the grid is not something this window shows. The grid is a diagnostic: no value here is selected, and ECHO-004 keeps the parameters it was written with.

This run’s own window · 288 bars · 21 Sept 2026 → 03 Oct 2026 · both start at 10,000 · one window, far weaker than the corpus above
ECHO-001ECHO-004
Return-0.23%-0.14%
Max drawdown-1.64%-1.03%
Fills1717
Bars held7070
Fees paid67.7042.37

Both versions ran the same engine over the same bars, from the same capital, with the same fee and slippage. A difference over one window of 288 bars is not evidence that the change works, so ECHO-004 stays a candidate and ECHO-001 keeps running.

Candidate ECHO-005 · not promotedParent ECHO-001

Candidate, not promoted. ECHO's breakout rule enters on a 20-bar high and leaves on a 10-bar low, so it demands a level of strength to get in and accepts half as much weakness to get out — the exit is twice as easy to trigger as the entry. This matches them. The expected cost is holding failed breakouts longer, which is exactly what the tighter exit was protecting against.

What changed · 1 of 12 parameters
Breakout Exit Lookback10 → 20

Corpus evidence pending. 160 of 160 datasets fetched (115,248 bars); every candidate is scored on each of them once they land.

Sensitivity · 6 settings · same held-out bars · diagnostic, not a selector
Breakout Exit Lookbackreturn
5-0.23
10-0.23
15-0.23
20-0.23
30-0.23
40-0.23
parent candidatebrighter = higher return within this grid

Across 6 settings the held-out return ranges from -0.23% to -0.23% (median -0.23%). Every setting produced effectively the same result, so these bars do not separate them at all — the parameter does not bite on this window. The grid is a diagnostic: no value here is selected, and ECHO-005 keeps the parameters it was written with.

This run’s own window · 288 bars · 21 Sept 2026 → 03 Oct 2026 · both start at 10,000 · one window, far weaker than the corpus above
ECHO-001ECHO-005
Return-0.23%-0.23%
Max drawdown-1.64%-1.64%
Fills1717
Bars held7070
Fees paid67.7067.70

The change never triggered on these 288 bars: ECHO-005 produced exactly ECHO-001's trades, fills and fees. That makes this window inconclusive rather than level — it does not test the change either way, and ECHO-005 stays a candidate until a window arrives that does.

Evidence base160 / 160 datasets · 115,248 bars

Every candidate is scored against its parent on all of this. Kraken serves roughly 720 bars at whatever interval is asked for and will not page further back, so depth comes from coarser bars and breadth from more instruments. They are all crypto and they move together, so the instrument count is worth rather fewer independent experiments than it looks; the timescale axis separates more than the symbol axis does.

BarsInstrumentsCandlesCoveringFetched
15m4028,84826 Sept 2026 → 04 Oct 202604 Oct 2026
1h4028,80004 Sept 2026 → 04 Oct 202604 Oct 2026
4h4028,80006 Jun 2026 → 03 Oct 202604 Oct 2026
1d4028,80014 Oct 2024 → 03 Oct 202604 Oct 2026
Run conditionsRPL-XBTUSD-60m-MUSCUIMC
Data modeLIVE DATASourceKraken public OHLC (REST, no key)InstrumentBTC / USD · 60m barsWindow03 Sept 2026 → 04 Oct 2026 UTCBars processed735 / 735Starting capital10,000 quote units per specimenFee0.10% per fillSlippage0.05% against the takerMax position50% of equityWarm-up60 bars before any decisionSeedSPECIMEN-001ExecutionDecide on a closed bar, fill at the next bar's open

Fetched 720 committed 60m bars from Kraken. Dropped 0 malformed, 0 duplicate, 0 gap(s) in the series.