ROUND
ROUND rundet in ProBuilder eine Zahl auf die nächste ganze Zahl oder auf eine festgelegte Anzahl von Dezimalstellen. Syntax, der Hinweis zum Banker's Rounding und ausgearbeitete Beispiele.
Syntax
ROUND(a, digits)Parameter
| Name | Typ | Beschreibung |
|---|---|---|
a | Zahl | Der zu rundende Wert. |
digits | Ganzzahl | Optional. Anzahl der Dezimalstellen, auf die gerundet wird. Wenn weggelassen, a wird auf die nächste ganze Zahl gerundet. |
Formel
ROUND(x) = nearest integer to x, halves rounded to the nearest even valueMit digits, a wird auf so viele Dezimalstellen gerundet, daher ROUND(3.14159, 2) gibt 3.14 zurück.
So funktioniert es
ROUND wählt den nächstliegenden Wert in beide Richtungen, anders als CEIL das immer aufrundet und FLOOR das immer abrundet. Ein Bruchteil unter 0.5 wird abgerundet, über 0.5 aufgerundet. Genaue Hälften folgen der Bankiersrundung: Sie gehen zur nächsten geraden Zahl, daher ROUND(2.5) ergibt 2 und ROUND(3.5) ergibt 4. Das reduziert die kumulative Verzerrung beim Runden vieler Werte.
Der optionale digits Argument setzt die Genauigkeit des Ergebnisses, nützlich zum Normalisieren von Preisen oder Indikatorwerten auf eine feste Anzahl von Dezimalstellen.
Beispiele
Beispiel 1, Eine Änderungsrate runden (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"Wenn der Rohwert 9.6 ist, ROUND gibt 10 zurück. Ein Wert von 9.4 würde auf 9 abgerundet.
Beispiel 2, Auf zwei Dezimalstellen runden zur Gruppierung (ProScreener)
// Group instruments by a two-decimal ratio
ratio = close / Average[50](close)
r = ROUND(ratio, 2)
SCREENER[r >= 1](r AS "Ratio 2dp")Das Runden auf zwei Dezimalstellen fasst nahezu identische Verhältnisse in gemeinsame Gruppen zusammen.
Beispiel 3, Einen berechneten Zielpreis runden (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 normalisiert das berechnete Ziel auf eine ganze Zahl. Um stattdessen einen Orderkurs auf einen gültigen Tick zu runden, verwenden Sie ROUNDEDUP oder ROUNDEDDOWN.
Häufige Fehler und Stolperfallen
- Halbe Werte werden zur geraden Zahl gerundet.
ROUND(2.5)gibt 2 zurück, nicht 3, weil Banker's Rounding exakte Hälften auf die nächste gerade Zahl führt. Gehen Sie nicht davon aus, dass 0.5 immer aufgerundet wird. - Rundet in beide Richtungen. Anders als
CEILundFLOOR,ROUNDkann steigen oder fallen. Verwenden SieCEILum Aufrunden zu erzwingen undFLOORum Abrunden zu erzwingen. - Keine Rundung auf Ticks.
ROUNDfunktioniert mit Ganzzahlen und Dezimalzahlen. Um einen Orderpreis auf den handelbaren Tick des Instruments zu runden, verwenden SieROUNDEDUPoderROUNDEDDOWN.
Verwandte Befehle
CEIL, rundet auf die nächste ganze Zahl oder Dezimalstelle auf.FLOOR, rundet auf die nächste ganze Zahl oder Dezimalstelle ab.ROUNDEDUP, rundet einen Orderkurs auf den nächsten handelbaren Tick auf.ROUNDEDDOWN, rundet einen Orderkurs auf den nächsten handelbaren Tick ab.ABS, Absolutwert, oft in Kombination mit Rundung.SGN, Vorzeichen eines Werts.MOD, Rest einer Division.