ROUND
ROUND i ProBuilder runder et tall av til nærmeste heltall, eller til et bestemt antall desimaler. Syntaks, merknaden om bankavrunding og gjennomgåtte eksempler.
Syntaks
ROUND(a, digits)Parametere
| Navn | Type | Beskrivelse |
|---|---|---|
a | tall | Verdien som skal rundes av. |
digits | heltall | Valgfritt. Antall desimaler det skal rundes av til. Når det utelates, a rundes til nærmeste hele tall. |
Formel
ROUND(x) = nearest integer to x, halves rounded to the nearest even valueMed digits, a rundes av til så mange desimaler, så ROUND(3.14159, 2) returnerer 3.14.
Slik fungerer det
ROUND velger den nærmeste verdien i begge retninger, i motsetning til CEIL som alltid runder opp og FLOOR som alltid runder ned. En desimaldel under 0.5 rundes ned, over 0.5 rundes opp. Eksakte halve følger bankavrunding: de går til nærmeste like tall, så ROUND(2.5) gir 2 og ROUND(3.5) gir 4. Dette reduserer kumulativ skjevhet ved avrunding av mange verdier.
Den valgfrie digits argumentet setter presisjonen på resultatet, nyttig for å normalisere priser eller indikatorverdier til et fast antall desimaler.
Eksempler
Eksempel 1, Rund av en endringsrate (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"Hvis råverdien er 9.6, ROUND returnerer 10. En verdi på 9.4 ville bli rundet ned til 9.
Eksempel 2, Rund av til to desimaler for 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")Avrunding til to desimaler slår nesten identiske forholdstall sammen i felles grupper.
Eksempel 3, Rund av en beregnet 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 normaliserer det beregnede målet til et helt tall. For å feste en ordrepris til en gyldig tick i stedet, bruk ROUNDEDUP eller ROUNDEDDOWN.
Vanlige feil og fallgruver
- Halvverdier rundes til nærmeste like tall.
ROUND(2.5)returnerer 2, ikke 3, fordi bankavrunding sender eksakte halvverdier til nærmeste like tall. Ikke gå ut fra at 0.5 alltid rundes opp. - Runder i begge retninger. I motsetning til
CEILogFLOOR,ROUNDkan gå opp eller ned. BrukCEILfor å tvinge oppover ogFLOORfor å tvinge nedover. - Ikke avrunding til tick.
ROUNDfungerer på heltall og desimaltall. For å runde en ordrepris til instrumentets handlbare tick, brukROUNDEDUPellerROUNDEDDOWN.
Relaterte instruksjoner
CEIL, runder opp til nærmeste heltall eller desimal.FLOOR, runder ned til nærmeste heltall eller desimal.ROUNDEDUP, runder en ordrepris opp til nærmeste omsettelige tick.ROUNDEDDOWN, runder en ordrepris ned til nærmeste omsettelige tick.ABS, absoluttverdi, ofte brukt sammen med avrunding.SGN, fortegnet til en verdi.MOD, resten av en divisjon.