CEIL
CEIL in ProBuilder arrotonda un numero per eccesso all'intero più vicino, oppure a un numero stabilito di cifre decimali. Sintassi, il parametro opzionale delle cifre ed esempi.
Sintassi
ceil(var, digits)Parametri
| Nome | Tipo | Descrizione |
|---|---|---|
var | numero | Il valore da arrotondare per eccesso. |
digits | intero | Opzionale. Numero di decimali a cui arrotondare per eccesso. Se omesso, var viene arrotondato per eccesso all'intero più vicino. |
Formula
CEIL(x) = smallest integer >= xCon digits, il valore viene scalato di 10^digits, arrotondato per eccesso, poi riportato alla scala originale, quindi ceil(x, d) arrotonda x fino a d cifre decimali.
Come funziona
CEIL arrotonda sempre verso l'infinito positivo, mai verso lo zero. ceil(3.1) e ceil(3.9) restituiscono entrambi 4 perché qualsiasi parte frazionaria spinge il risultato verso l'alto. Per i negativi si muove verso zero: ceil(-3.7) restituisce -3, il più piccolo intero non minore di -3.7.
L'opzionale digits argomento consente di arrotondare per eccesso alla precisione scelta. ceil(3.14159, 2) restituisce 3.15. Questo differisce da ROUND, che sceglie il valore più vicino in entrambe le direzioni, e da FLOOR, che arrotonda sempre per difetto.
Esempi
Esempio 1, Arrotondare una media per eccesso a unità intere (Indicatore)
// Whole-number ceiling of a moving average
ma = Average[20](close)
upTicks = ceil(ma)
RETURN upTicks AS "MA rounded up"Qualsiasi parte frazionaria della media viene spinta all'intero successivo, quindi la linea tracciata si colloca al livello della media grezza o sopra di essa.
Esempio 2, Raggruppare un rapporto in gradini superiori (ProScreener)
// Group price-to-average ratio into 0.1 upper buckets
ratio = close / Average[50](close)
bucket = ceil(ratio, 1)
SCREENER[ratio > 1](bucket AS "Ratio ceiling")Arrotondare per eccesso a un decimale raggruppa gli strumenti in fasce grossolane mantenendo il limite superiore di ciascuna fascia.
Esempio 3, Position size che copre un obiettivo (ProOrder)
// Round required contracts up so exposure is never short of target
targetExposure = 10000
priceValue = close
rawQty = targetExposure / priceValue
qty = ceil(rawQty)
IF NOT LongOnMarket AND close CROSSES OVER Average[20](close) THEN
BUY qty CONTRACT AT MARKET
ENDIFArrotondare per eccesso la quantità grezza garantisce che la dimensione eseguita copra l'esposizione obiettivo invece di restare appena al di sotto. Per arrotondare il prezzo di un ordine a un tick valido, usa ROUNDEDUP invece.
Errori e insidie comuni
- Arrotonda sempre per eccesso, non al valore più vicino.
ceil(3.1)è4, non3. Se vuoi l'intero più vicino, usaROUND; per arrotondare per difetto, usaFLOOR. - I numeri negativi si spostano verso lo zero.
ceil(-2.5)restituisce-2, non-3, perché -2 è il numero intero più piccolo che sia almeno -2.5. - Non è lo stesso di ROUNDEDUP.
CEILarrotonda per eccesso a interi o decimali.ROUNDEDUParrotonda per eccesso il prezzo di un ordine al tick valido più vicino dello strumento.
Istruzioni correlate
FLOOR, arrotonda per difetto all'intero o al decimale più vicino, nella direzione opposta.ROUND, arrotonda all'intero o al decimale più vicino.ROUNDEDUP, arrotonda per eccesso il prezzo di un ordine al tick negoziabile più vicino.ROUNDEDDOWN, arrotonda per difetto 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.