Iscriviti ora
Costanti/probuilder · probacktest · proorder · proscreener

Decimals

Decimals restituisce il numero di cifre decimali dello strumento corrente in ProBuilder. Usa Decimals per formattare l'output o per dimensionare gli scostamenti di prezzo in base alla precisione dello strumento.

Sintassi

probuilder
Decimals

Decimals non accetta indice e restituisce un singolo intero per lo strumento su cui gira il codice.

Come funziona

Decimals indica quante cifre compaiono dopo la virgola decimale nelle quotazioni di prezzo dello strumento. Un'azione quotata a due decimali restituisce 2, un indice quotato in punti interi restituisce 0 e una coppia di valute quotata a cinque decimali restituisce 5.

Il valore è una proprietà dello strumento, non di un bar, quindi non cambia da un bar al successivo e non accetta offset tra parentesi quadre. Riflette la precisione di prezzo che la piattaforma usa per quel mercato.

Lettura Decimals permette a un unico script di comportarsi in modo corretto su strumenti con precisione diversa. È utile per costruire uno scostamento pari al passo minimo, decidere come arrotondare un livello calcolato o formattare un valore per la visualizzazione in modo che il numero di cifre mostrate corrisponda al mercato.

Esempi

Esempio 1, Riportare la precisione dello strumento (Indicatore)

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

L'indicatore traccia una linea piatta al numero di decimali dello strumento, confermandone la precisione di quotazione.

Esempio 2, Ricerca per precisione di quotazione (ProScreener)

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

SCREENER[precise] (Decimals AS "Decimals")

Lo screener isola gli strumenti i cui prezzi hanno più di due cifre decimali.

Esempio 3, Scostamento consapevole della precisione (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

L'offset dello stop è costruito da Decimals, quindi si adatta al più piccolo step quotato di ogni strumento.

Errori e insidie comuni

  • Non è una dimensione del tick. Decimals fornisce il numero di cifre decimali, non l'incremento minimo di prezzo. Gli strumenti che si muovono a passi maggiori di un'unità decimale richiedono POINTSIZE o TICKSIZE per il passo reale.
  • Fisso per ogni strumento. Il valore non varia tra le bars, quindi applicare un offset tra parentesi come Decimals[1] non ha significato.
  • Zero per quotazioni a numeri interi. Gli strumenti quotati in unità intere restituiscono 0, quindi il codice che divide per Decimals deve proteggersi da quel caso.
  • Close, il prezzo di chiusura di una bar.
  • Open, il prezzo di apertura di una bar.
  • High, il prezzo più alto di una bar.
  • Low, il prezzo più basso di una bar.
  • Range, il massimo meno il minimo di una bar.
  • TypicalPrice, la media di massimo, minimo e chiusura.
  • Volume, il volume scambiato di una bar.
  • CustomClose, la fonte di prezzo selezionabile dall'utente.