Assay verdict
A material defect was found, on a broad examination.
RECOMMENDED ACTION
Review the material finding before relying on the strategy claims.
What ASSAY found
What ASSAY cannot verify
A test that cannot look is not a test the strategy failed. It is set aside, and it does not count against the result. Each missing field lights up one line of the spectrum.
position leg identifiercheck whether exit prices are real fills or computedgross result per tradecross-check the reported result against the pricesTest chain · cheapest to most expensive
| Code | Test and measurement | Result |
|---|---|---|
| F2 | Impossible ranges in the columnsamount: min 0.00242519 / median 2.015 / max 1113.39 / zeros 0.0% / distinct 498 amount: 553x tail not assessed, the universe spans 4 assets of different scales |
2 / 3 |
| D6 | The record describes the design, not the executionP1 risk multiple: 422 distinct values over 516 trades | 3 / 3 |
| D1 | Observed exit geometry against the declared oneganancia nominal +0.006R -> observada +0.022R (+284.1%) perdida nominal -0.012R -> observada -0.113R (+840.2%) |
◆ breaks it |
| E4 | Gross edge against the cost flooraverage gross -0.595747 per trade over n=516 (measured from prices) cost floor 0.441497 per trade |
1 / 3 |
| B1 | Asset selection captures dispersionT1 Herfindahl 0.2510 against equal weight 0.2500 (excess 1.00x) T1 split: BTC/USDT 26.7%, SOL/USDT 26.2%, ADA/USDT 24.4%, ETH/USDT 22.7% |
3 / 31 of 2 checks run |
| E5 | The strategy lives off the tailT1 mean -1.0372 / median +0.0003 T1 median in risk multiples: +0.0058 · PINNED at the sink +0.0058 |
3 / 3 |
| G1 | Declared configuration against what actually ranno configuration was provided. This test compares the declared levels against the executed ones: without the configuration file there is nothing to compare | could not run |
5 findings · ordered by severity
What the engine assumed when reading the file
A column name is a claim by the client, not a fact. The engine infers each column's role from its contents and states it openly. If that reading is wrong, everything above must be revisited.
entry timestamp <- open_date (name 1.00 / content 1.00)
[ambiguous: 0.060 margin over 'open_timestamp']
exit timestamp <- close_date (name 1.00 / content 1.00)
[ambiguous: 0.060 margin over 'close_timestamp']
instrument traded <- pair (name 1.00 / content 1.00)
net result per trade <- profit_abs (name 1.00 / content 0.90)
fees per trade <- funding_fees, fee_close, fee_open (name 0.85 / content 1.00 · added to fee_close, fee_open)
[ambiguous: 0.090 margin over 'fee_open']
entry fill price <- open_rate (name 1.00 / content 1.00)
exit fill price <- close_rate (name 1.00 / content 1.00)
reason for closing <- exit_reason (name 1.00 / content 0.80)
stop declarado <- initial_stop_loss_abs (name 0.85 / content 0.95)
[ambiguous: 0.060 margin over 'stop_loss_abs']
quantity traded <- amount (name 1.00 / content 0.25)
gross result per trade <- ---
position leg identifier <- ---
risk multiple per trade <- ---
trade identifier <- ---
trade direction <- ---
COLUMNS LEFT UNUSED (19): close_timestamp, enter_tag, fee_close,
fee_open, initial_stop_loss_ratio, is_open,
is_short, leverage, max_rate,
max_stake_amount, min_rate, open_timestamp,
orders, profit_ratio, stake_amount,
stop_loss_abs, stop_loss_ratio,
trade_duration, weekday
The record against itself
accounting coherence NOT CHECKABLE: missing gross result per trade. There is nothing to check the reported result against
What this report does not say
What this number measures: what fraction of what the strategy CLAIMS is still standing after scrutiny. What it does not measure: future returns, probability of success, or the quality of the idea. A test can score 3/3 on a strategy that loses money: it means it loses in a way consistent with what it declares. This is backward-looking. A 24 of 24 would not be investment advice.
ASSAY finds problems. It does not certify that a strategy works and it issues no return forecasts. A favourable verdict means the tests applied failed to break the result, not that the result will repeat.
A high karat count means nothing if barely anything could be checked: it is obtained by not testing. That is why both figures are always published together. Every figure comes from a test run against the file provided and can be regenerated; whatever could not be assayed is declared as such.