Bli medlem i dag
Matematisk/probuilder · probacktest · proorder · proscreener

FLOOR

FLOOR i ProBuilder runder et tall ned til nærmeste heltall, eller til et fastsatt antall desimaler. Syntaks, valgfri sifferparameter og eksempler.

Syntaks

probuilder
floor(var, digits)

Parametere

NavnTypeBeskrivelse
vartallVerdien som skal rundes ned.
digitsheltallValgfritt. Antall desimaler det skal rundes ned til. Når det utelates, var rundes ned til nærmeste hele tall.

Formel

kode
FLOOR(x) = largest integer <= x

Med digits, skaleres verdien med 10^digits, rundes ned og skaleres tilbake, slik at floor(x, d) runder av x ned til d desimaler.

Slik fungerer det

FLOOR runder alltid mot minus uendelig, og forkaster eventuell desimaldel for positive tall. floor(3.1) og floor(3.9) returnerer begge 3. For negative tall beveger den seg bort fra null: floor(-3.2) returnerer -4, det største heltallet som ikke er større enn -3.2.

Den valgfrie digits argumentet angir presisjonen. floor(3.756, 1) returnerer 3.7. Dette er speilbildet av CEIL, som alltid runder opp, og skiller seg fra ROUND, som velger den nærmeste verdien i begge retninger.

Eksempler

Eksempel 1, Rund et gjennomsnitt ned til hele enheter (Indikator)

probuilder
// Whole-number floor of a moving average
ma = Average[20](close)
downTicks = floor(ma)
RETURN downTicks AS "MA rounded down"

Brøkdelen av gjennomsnittet forkastes, så den plottede linjen ligger på eller under det rå gjennomsnittet.

Eksempel 2, Grupper et forholdstall i lavere trinn (ProScreener)

probuilder
// 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")

Å runde ned til én desimal grupperer instrumenter i grove bånd forankret ved gulvet til hvert bånd.

Eksempel 3, Konservativ position size (ProOrder)

probuilder
// 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
ENDIF

Å runde den rå kvantiteten ned holder den totale eksponeringen innenfor budsjettet. For å runde en ordrepris ned til en gyldig tick, bruk ROUNDEDDOWN i stedet.

Vanlige feil og fallgruver

  • Runder alltid ned, ikke mot nærmeste. floor(3.9) er 3, ikke 4. For nærmeste heltall bruk ROUND; for å runde opp bruk CEIL.
  • Negative tall flyttes bort fra null. floor(-2.5) returnerer -3, ikke -2, fordi -3 er det største heltallet som ikke er større enn -2.5.
  • Ikke det samme som ROUNDEDDOWN. FLOOR runder ned til heltall eller desimaler. ROUNDEDDOWN runder en ordrepris ned til nærmeste gyldige tick for instrumentet.
  • CEIL, runder opp til nærmeste heltall eller desimal, motsatt retning.
  • ROUND, runder av til nærmeste heltall eller desimal.
  • ROUNDEDDOWN, runder en ordrepris ned til nærmeste omsettelige tick.
  • ROUNDEDUP, runder en ordrepris opp til nærmeste omsettelige tick.
  • ABS, absoluttverdi, ofte kombinert med avrunding.
  • SGN, fortegnet til en verdi.
  • MOD, resten av en divisjon, en annen heltallsorientert operasjon.