FLOOR
FLOOR in ProBuilder rondt een getal naar beneden af op het naastgelegen geheel getal, of op een vast aantal decimalen. Syntaxis, optionele parameter voor cijfers en voorbeelden.
Syntaxis
floor(var, digits)Parameters
| Naam | Type | Beschrijving |
|---|---|---|
var | getal | De naar beneden af te ronden waarde. |
digits | geheel getal | Optioneel. Aantal decimalen waarop naar beneden wordt afgerond. Indien weggelaten, var wordt naar beneden afgerond op het naastgelegen gehele getal. |
Formule
FLOOR(x) = largest integer <= xMet digits, wordt de waarde met 10^digits geschaald, naar beneden afgerond en weer teruggeschaald, zodat floor(x, d) rondt af x tot d decimalen.
Hoe het werkt
FLOOR rondt altijd af naar min oneindig, waarbij elk fractioneel deel bij positieve getallen wordt weggelaten. floor(3.1) en floor(3.9) geven beide 3. Voor negatieve waarden gaat het van nul af: floor(-3.2) geeft -4, het grootste gehele getal dat niet groter is dan -3.2.
De optionele digits argument stelt de precisie in. floor(3.756, 1) geeft 3.7. Dit is het spiegelbeeld van CEIL, die altijd naar boven afrondt, en verschilt van ROUND, die de naastbijgelegen waarde in beide richtingen kiest.
Voorbeelden
Voorbeeld 1, Een gemiddelde naar beneden afronden op hele eenheden (Indicator)
// Whole-number floor of a moving average
ma = Average[20](close)
downTicks = floor(ma)
RETURN downTicks AS "MA rounded down"Het decimale deel van het gemiddelde valt weg, dus de geplotte lijn ligt op of onder het ruwe gemiddelde.
Voorbeeld 2, Een verhouding in lagere stappen indelen (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")Naar beneden afronden op één decimaal groepeert instrumenten in grove banden die zijn vastgezet op de bodem van elke band.
Voorbeeld 3, Conservatieve 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
ENDIFDe ruwe hoeveelheid naar beneden afronden houdt de totale exposure binnen het budget. Om een orderprijs naar beneden af te ronden op een geldige tick, gebruik ROUNDEDDOWN in plaats daarvan.
Veelvoorkomende fouten en valkuilen
- Rondt altijd naar beneden af, niet naar het naaste.
floor(3.9)is3, niet4. Voor het naaste gehele getal gebruik jeROUND; om naar boven af te ronden gebruikCEIL. - Negatieve getallen bewegen weg van nul.
floor(-2.5)geeft terug-3, niet-2, omdat -3 het grootste gehele getal is dat niet groter is dan -2.5. - Niet hetzelfde als ROUNDEDDOWN.
FLOORrondt naar beneden af op gehele getallen of decimalen.ROUNDEDDOWNrondt een orderprijs naar beneden af op de dichtstbijzijnde geldige tick van het instrument.
Gerelateerde instructies
CEIL, rondt af naar boven op het naastgelegen geheel getal of decimaal, de tegenovergestelde richting.ROUND, rondt af op het dichtstbijzijnde gehele of decimale getal.ROUNDEDDOWN, rondt een orderprijs naar beneden af op de dichtstbijzijnde verhandelbare tick.ROUNDEDUP, rondt een orderprijs naar boven af op de dichtstbijzijnde verhandelbare tick.ABS, absolute waarde, vaak gecombineerd met afronden.SGN, teken van een waarde.MOD, rest van een deling, nog een bewerking gericht op gehele getallen.