Decimals
Decimals returnerar antalet decimaler för det aktuella instrumentet i ProBuilder. Använd Decimals för att formatera utdata eller anpassa prisförskjutningar till instrumentets precision.
Syntax
DecimalsDecimals tar inget index och returnerar ett enda heltal för instrumentet som koden körs på.
Så fungerar det
Decimals rapporterar hur många siffror som finns efter decimaltecknet i instrumentets kurser. En aktie som noteras med två decimaler returnerar 2, ett index som noteras i hela punkter returnerar 0, och ett valutapar som noteras med fem decimaler returnerar 5.
Värdet är en egenskap hos instrumentet, inte hos någon bar, så det ändras inte från en bar till nästa och tar ingen hakparentesförskjutning. Det speglar den kursprecision som plattformen använder för den marknaden.
Avläsning Decimals gör att ett och samma skript fungerar vettigt på instrument med olika precision. Det är användbart för att bygga en förskjutning på minsta steg, avgöra hur en beräknad nivå ska avrundas, eller formatera ett värde för visning så att antalet visade siffror matchar marknaden.
Exempel
Exempel 1, Rapportera instrumentets precision (Indikator)
// Show how many decimals the current instrument uses
numDecimals = Decimals
RETURN numDecimals AS "Decimals"Indikatorn ritar en plan linje vid instrumentets antal decimaler, vilket bekräftar dess kursprecision.
Exempel 2, Screening efter kursprecision (ProScreener)
// Instruments quoted to more than two decimal places
precise = Decimals > 2
SCREENER[precise] (Decimals AS "Decimals")Screenern isolerar instrument vars kurser har fler än två decimaler.
Exempel 3, Precisionsmedveten förskjutning (ProOrder)
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
ENDIFStop-offseten byggs utifrån Decimals, så den skalas till varje instruments minsta noterade steg.
Vanliga fel och fallgropar
- Inte en tick-storlek.
Decimalsger antalet decimaler, inte det minsta prissteget. Instrument som tickar i steg större än en decimalenhet behöverPOINTSIZEellerTICKSIZEför det faktiska steget. - Fast per instrument. Värdet varierar inte mellan barer, så att tillämpa en hakparentesförskjutning som
Decimals[1]är meningslöst. - Noll för heltalskurser. Instrument som prissätts i hela enheter returnerar 0, så kod som dividerar med
Decimalsmåste skydda mot det fallet.
Relaterade instruktioner
Close, stängningspriset för en bar.Open, öppningspriset för en bar.High, det högsta priset i en bar.Low, det lägsta priset i en bar.Range, high minus low för en bar.TypicalPrice, medelvärdet av high, low och close.Volume, den handlade volymen för en bar.CustomClose, den användarvalbara priskällan.