Iscriviti ora
Matematica/probuilder · probacktest · proorder · proscreener

FLOOR

FLOOR in ProBuilder arrotonda un numero per difetto all'intero più vicino, o a un numero stabilito di cifre decimali. Sintassi, parametro opzionale delle cifre ed esempi.

Sintassi

probuilder
floor(var, digits)

Parametri

NomeTipoDescrizione
varnumeroIl valore da arrotondare per difetto.
digitsinteroOpzionale. Numero di decimali a cui arrotondare per difetto. Se omesso, var viene arrotondato per difetto all'intero più vicino.

Formula

codice
FLOOR(x) = largest integer <= x

Con digits, il valore viene scalato di 10^digits, arrotondato per difetto, poi riportato alla scala originale, quindi floor(x, d) arrotonda x fino a d cifre decimali.

Come funziona

FLOOR arrotonda sempre verso meno infinito, scartando qualsiasi parte frazionaria per i numeri positivi. floor(3.1) e floor(3.9) restituiscono entrambi 3. Per i negativi si allontana da zero: floor(-3.2) restituisce -4, il più grande intero non maggiore di -3.2.

L'opzionale digits argomento imposta la precisione. floor(3.756, 1) restituisce 3.7. Questo è il simmetrico di CEIL, che arrotonda sempre per eccesso, e differisce da ROUND, che sceglie il valore più vicino in entrambe le direzioni.

Esempi

Esempio 1, Arrotondare per difetto una media a unità intere (Indicatore)

probuilder
// Whole-number floor of a moving average
ma = Average[20](close)
downTicks = floor(ma)
RETURN downTicks AS "MA rounded down"

La parte frazionaria della media viene eliminata, quindi la linea tracciata si colloca al livello della media grezza o sotto di essa.

Esempio 2, Raggruppare un rapporto in gradini inferiori (ProScreener)

probuilder
// Group price-to-average ratio into 0.1 lower buckets
ratio = close / Average[50](close)
bucket = floor(ratio, 1)
SCREENER[ratio < 1](bucket AS "Ratio floor")

Arrotondare per difetto a un decimale raggruppa gli strumenti in fasce ampie ancorate al limite inferiore di ogni fascia.

Esempio 3, Position size conservativa (ProOrder)

probuilder
// Round required contracts down so exposure never overshoots the budget
budget = 10000
priceValue = close
rawQty = budget / priceValue
qty = floor(rawQty)
IF qty >= 1 AND NOT LongOnMarket AND close CROSSES OVER Average[20](close) THEN
  BUY qty CONTRACT AT MARKET
ENDIF

Arrotondare per difetto la quantità grezza mantiene l'esposizione totale entro il budget. Per arrotondare per difetto il prezzo di un ordine a un tick valido, usa ROUNDEDDOWN invece.

Errori e insidie comuni

  • Arrotonda sempre per difetto, non al più vicino. floor(3.9) è 3, non 4. Per l'intero più vicino usare ROUND; per arrotondare per eccesso usa CEIL.
  • I numeri negativi si allontanano da zero. floor(-2.5) restituisce -3, non -2, perché -3 è il più grande intero che non è maggiore di -2.5.
  • Non è lo stesso di ROUNDEDDOWN. FLOOR arrotonda per difetto a interi o decimali. ROUNDEDDOWN arrotonda per difetto il prezzo di un ordine al tick valido più vicino dello strumento.
  • CEIL, arrotonda per eccesso all'intero o al decimale più vicino, nella direzione opposta.
  • ROUND, arrotonda all'intero o al decimale più vicino.
  • ROUNDEDDOWN, arrotonda per difetto il prezzo di un ordine al tick negoziabile più vicino.
  • ROUNDEDUP, arrotonda per eccesso il prezzo di un ordine al tick negoziabile più vicino.
  • ABS, valore assoluto, spesso combinato con l'arrotondamento.
  • SGN, segno di un valore.
  • MOD, resto di una divisione, un'altra operazione orientata agli interi.