Skip to content
SIAT PAPER 2026Open the research page
Cryptoverso

Our mission

Quantitative research, training and analysis software. The method, stated and checkable on a case anyone can redo.

Four principles

How we work, and where we stop.

Method before result

Hypotheses are written first and never adjusted afterwards. A negative result is information, and we publish it.

Reproducible, or it is not research

Code, data and procedure ship with the result. No future data, no curve that changes shape after the fact.

What we publish

Methodological research with its code, training with twenty-nine open labs, software written to be inspected.

What we do not do

No investment advice, no recommendations, no profiling. We do not promote crypto-assets and we do not place products.

A verifiable example

A moving average is a filter: which frequencies it removes, and with how much delay, depends on N alone.

The formula is the Dirichlet kernel, the response of an N-sample window. The numbers in the table come from it, recomputed at every build.

H(f)=sin(πfN)Nsin(πf)H(f) = \frac{\sin(\pi f N)}{N \sin(\pi f)}
Properties of the moving average as the window N changes.
N (samples)First zero (cycles/sample)Side lobe (dB)Delay (samples)
10.0
40.2500−11.31.5
80.1250−12.83.5
160.0625−13.17.5

A causal average responds (N − 1)/2 samples after the fact. For N = 1 the filter is the identity: cells without a value carry a dash, never a zero.

How to reproduce

No market data: everything follows from the formula. First zero 1/N, delay (N − 1)/2, side lobe the maximum between the first and second zero. In the labs the same computation is redone in Python.

Go to the labs index

The lines that produced the table: the function that actually runs on this site.

src/lib/dsp/media-mobile.ts
typescript
export function ampiezza(n: number, f: number): number {
  const denominatore = n * Math.sin(Math.PI * f)
  if (Math.abs(denominatore) < 1e-12) return 1
  return Math.abs(Math.sin(Math.PI * f * n) / denominatore)
}

At zero frequency numerator and denominator vanish together and the limit is 1: the constant component crosses the filter untouched.