FLOOR
FLOOR in ProBuilder rundet eine Zahl auf die nächste ganze Zahl ab oder auf eine festgelegte Anzahl von Dezimalstellen. Syntax, optionaler Stellen-Parameter und Beispiele.
Syntax
floor(var, digits)Parameter
| Name | Typ | Beschreibung |
|---|---|---|
var | Zahl | Der abzurundende Wert. |
digits | Ganzzahl | Optional. Anzahl der Dezimalstellen, auf die abgerundet wird. Wenn weggelassen, var wird auf die nächste ganze Zahl abgerundet. |
Formel
FLOOR(x) = largest integer <= xMit digits, wird der Wert mit 10^digits skaliert, abgerundet und dann zurückskaliert, sodass floor(x, d) rundet x bis auf d Dezimalstellen.
So funktioniert es
FLOOR rundet immer in Richtung minus unendlich und verwirft bei positiven Zahlen den Dezimalanteil. floor(3.1) und floor(3.9) liefern beide 3. Bei negativen Werten entfernt es sich von null: floor(-3.2) gibt -4 zurück, die größte ganze Zahl, die nicht größer als -3.2 ist.
Der optionale digits Argument legt die Genauigkeit fest. floor(3.756, 1) gibt 3.7 zurück. Dies ist das Gegenstück zu CEIL, das immer aufrundet, und unterscheidet sich von ROUND, die den nächstliegenden Wert in beide Richtungen wählt.
Beispiele
Beispiel 1, Einen Durchschnitt auf ganze Einheiten abrunden (Indikator)
// Whole-number floor of a moving average
ma = Average[20](close)
downTicks = floor(ma)
RETURN downTicks AS "MA rounded down"Der Bruchteil des Durchschnitts wird verworfen, die gezeichnete Linie liegt daher auf oder unter dem rohen Durchschnitt.
Beispiel 2, Ein Verhältnis in untere Stufen einteilen (ProScreener)
// 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")Das Abrunden auf eine Dezimalstelle gruppiert Instrumente in grobe Bänder, die an der Untergrenze jedes Bandes verankert sind.
Beispiel 3, Konservative Position Size (ProOrder)
// 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
ENDIFDas Abrunden der Rohmenge hält das Gesamtexposure innerhalb des Budgets. Zum Abrunden eines Orderpreises auf einen gültigen Tick verwenden Sie ROUNDEDDOWN stattdessen.
Häufige Fehler und Stolperfallen
- Rundet immer ab, nicht zur nächsten Zahl.
floor(3.9)ist3, nicht4. Für die nächstgelegene ganze Zahl verwenden SieROUND; zum Aufrunden nutzen SieCEIL. - Negative Werte entfernen sich von null.
floor(-2.5)gibt zurück-3, nicht-2, weil -3 die größte Ganzzahl ist, die nicht größer als -2.5 ist. - Nicht dasselbe wie ROUNDEDDOWN.
FLOORrundet auf Ganzzahlen oder Dezimalstellen ab.ROUNDEDDOWNrundet einen Orderpreis auf den nächsten gültigen Tick des Instruments ab.
Verwandte Befehle
CEIL, rundet auf die nächste ganze Zahl oder Dezimalstelle auf, die entgegengesetzte Richtung.ROUND, rundet auf die nächste Ganzzahl oder Dezimalstelle.ROUNDEDDOWN, rundet einen Orderkurs auf den nächsten handelbaren Tick ab.ROUNDEDUP, rundet einen Orderkurs auf den nächsten handelbaren Tick auf.ABS, Absolutwert, häufig mit Rundung kombiniert.SGN, Vorzeichen eines Werts.MOD, Rest einer Division, eine weitere ganzzahlorientierte Operation.