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

Decimals

Decimals returnerer antallet desimaler for gjeldende instrument i ProBuilder. Bruk Decimals for å formatere utdata eller tilpasse kursforskyvninger til instrumentets presisjon.

Syntaks

probuilder
Decimals

Decimals tar ingen indeks og returnerer ett enkelt heltall for instrumentet koden kjører på.

Slik fungerer det

Decimals rapporterer hvor mange siffer som vises etter desimaltegnet i instrumentets priskurser. En aksje notert med to desimaler returnerer 2, en indeks notert i hele punkter returnerer 0, og et valutapar notert med fem desimaler returnerer 5.

Verdien er en egenskap ved instrumentet, ikke ved noen bar, så den endrer seg ikke fra en bar til den neste og tar ingen klammeforskyvning. Den gjenspeiler kurspresisjonen plattformen bruker for det markedet.

Avlesning Decimals gjør at ett skript oppfører seg fornuftig på tvers av instrumenter med ulik presisjon. Den er nyttig til å lage en forskyvning på minste trinn, avgjøre hvordan et beregnet nivå skal rundes av, eller formatere en verdi for visning slik at antallet viste siffer stemmer med markedet.

Eksempler

Eksempel 1, Rapportering av instrumentets presisjon (Indikator)

probuilder
// Show how many decimals the current instrument uses
numDecimals = Decimals
RETURN numDecimals AS "Decimals"

Indikatoren tegner en flat linje på instrumentets desimalantall, og bekrefter kurspresisjonen.

Eksempel 2, Screening etter kurspresisjon (ProScreener)

probuilder
// Instruments quoted to more than two decimal places
precise = Decimals > 2

SCREENER[precise] (Decimals AS "Decimals")

Screeneren isolerer instrumenter der kursene har mer enn to desimaler.

Eksempel 3, Presisjonsbevisst forskyvning (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

// One smallest price unit, derived from the instrument's decimals
oneUnit = Pow(10, -Decimals)

IF Close CROSSES OVER Average[20](Close) THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

// Place the stop one unit below the recent low
IF LONGONMARKET THEN
  SELL AT Lowest[10](Low) - oneUnit STOP
ENDIF

Stopforskyvningen er bygd opp av Decimals, så den skalerer til hvert instruments minste kvoterte trinn.

Vanlige feil og fallgruver

  • Ikke en tick-størrelse. Decimals gir antall desimaler, ikke det minste prisinkrementet. Instrumenter som ticker i steg større enn én desimalenhet trenger POINTSIZE eller TICKSIZE for det faktiske steget.
  • Fast per instrument. Verdien varierer ikke mellom barer, så en parentesforskyvning som Decimals[1] er meningsløst.
  • Null for heltallskurser. Instrumenter priset i hele enheter returnerer 0, så kode som deler på Decimals må sikre seg mot det tilfellet.
  • Close, sluttprisen i en bar.
  • Open, åpningsprisen i en bar.
  • High, den høyeste prisen i en bar.
  • Low, den laveste prisen i en bar.
  • Range, high minus low for en bar.
  • TypicalPrice, gjennomsnittet av high, low og close.
  • Volume, det omsatte volumet i en bar.
  • CustomClose, den brukervalgbare priskilden.