ROUND
ROUND i ProBuilder avrundar ett tal till närmaste heltal, eller till ett angivet antal decimaler. Syntax, noteringen om bankirsavrundning och genomgångna exempel.
Syntax
ROUND(a, digits)Parametrar
| Namn | Typ | Beskrivning |
|---|---|---|
a | tal | Värdet som ska avrundas. |
digits | heltal | Valfritt. Antal decimaler att avrunda till. Om det utelämnas, a avrundas till närmaste heltal. |
Formel
ROUND(x) = nearest integer to x, halves rounded to the nearest even valueMed digits, a avrundas till så många decimaler, så ROUND(3.14159, 2) returnerar 3.14.
Så fungerar det
ROUND väljer det närmaste värdet i båda riktningarna, till skillnad från CEIL som alltid avrundar uppåt och FLOOR som alltid avrundar nedåt. En decimaldel under 0.5 avrundas nedåt, över 0.5 avrundas uppåt. Exakta halvor följer bankavrundning: de går till närmaste jämna tal, så ROUND(2.5) ger 2 och ROUND(3.5) ger 4. Detta minskar den kumulativa snedvridningen vid avrundning av många värden.
Den valfria digits argumentet anger resultatets precision, användbart för att normalisera priser eller indikatorvärden till ett fast antal decimaler.
Exempel
Exempel 1, Avrunda en förändringstakt (Indikator)
// Round the 10-period rate of change to a whole number
i1 = ROC[10](close)
roundedROCvalue = ROUND(i1)
RETURN i1 AS "ROC", roundedROCvalue AS "ROC rounded"Om det råa värdet är 9.6, ROUND returnerar 10. Ett värde på 9.4 skulle avrundas nedåt till 9.
Exempel 2, Avrunda till två decimaler för gruppering (ProScreener)
// Group instruments by a two-decimal ratio
ratio = close / Average[50](close)
r = ROUND(ratio, 2)
SCREENER[r >= 1](r AS "Ratio 2dp")Avrundning till två decimaler slår ihop nästan identiska kvoter i gemensamma grupper.
Exempel 3, Avrunda ett beräknat målpris (ProOrder)
// Round a target price to a whole number before display
entry = close
target = ROUND(entry * 1.015)
IF NOT LongOnMarket AND close CROSSES OVER Average[20](close) THEN
BUY 1 CONTRACT AT MARKET
ENDIFROUND normaliserar det beräknade målet till ett heltal. För att i stället fästa ett orderpris på en giltig tick, använd ROUNDEDUP eller ROUNDEDDOWN.
Vanliga fel och fallgropar
- Hälftvärden avrundas till jämnt tal.
ROUND(2.5)returnerar 2, inte 3, eftersom bankirsavrundning skickar exakta halvor till närmaste jämna tal. Utgå inte från att 0.5 alltid avrundas uppåt. - Avrundar i båda riktningarna. Till skillnad från
CEILochFLOOR,ROUNDkan gå upp eller ner. AnvändCEILför att tvinga uppåt ochFLOORför att tvinga nedåt. - Inte avrundning till tick.
ROUNDfungerar på heltal och decimaltal. För att avrunda ett orderpris till instrumentets handelsbara tick, användROUNDEDUPellerROUNDEDDOWN.
Relaterade instruktioner
CEIL, avrundar uppåt till närmaste heltal eller decimal.FLOOR, avrundar nedåt till närmaste heltal eller decimal.ROUNDEDUP, avrundar ett orderpris uppåt till närmaste handelsbara tick.ROUNDEDDOWN, avrundar ett orderpris nedåt till närmaste handelsbara tick.ABS, absolutvärde, ofta parat med avrundning.SGN, tecknet för ett värde.MOD, resten av en division.