Jetzt beitreten
Konstanten/probuilder · probacktest · proorder · proscreener

Decimals

Decimals gibt in ProBuilder die Anzahl der Dezimalstellen des aktuellen Instruments zurück. Verwenden Sie Decimals, um Ausgaben zu formatieren oder Kurs-Offsets an die Genauigkeit des Instruments anzupassen.

Syntax

probuilder
Decimals

Decimals nimmt keinen Index und gibt eine einzelne Ganzzahl für das Instrument zurück, auf dem der Code läuft.

So funktioniert es

Decimals gibt an, wie viele Stellen nach dem Dezimaltrennzeichen in den Kursnotierungen des Instruments erscheinen. Eine Aktie mit zwei Stellen gibt 2 zurück, ein Index in ganzen Punkten gibt 0 zurück, und ein Währungspaar mit fünf Stellen gibt 5 zurück.

Der Wert ist eine Eigenschaft des Instruments, nicht eines Bars, daher ändert er sich nicht von einem Bar zum nächsten und nimmt keinen Klammer-Offset. Er spiegelt die Kursgenauigkeit wider, die die Plattform für diesen Markt verwendet.

Ablesung Decimals lässt ein einzelnes Skript über Instrumente unterschiedlicher Genauigkeit hinweg sinnvoll arbeiten. Es ist nützlich, um einen Offset von der kleinsten Schrittweite zu bilden, um zu entscheiden, wie ein berechnetes Niveau gerundet wird, oder um einen Wert für die Anzeige so zu formatieren, dass die Anzahl der gezeigten Stellen zum Markt passt.

Beispiele

Beispiel 1, Ausgabe der Instrumentengenauigkeit (Indikator)

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

Der Indikator zeichnet eine flache Linie auf Höhe der Dezimalstellenanzahl des Instruments und bestätigt damit seine Notierungsgenauigkeit.

Beispiel 2, Screening nach Notierungsgenauigkeit (ProScreener)

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

SCREENER[precise] (Decimals AS "Decimals")

Der Screener isoliert Instrumente, deren Kurse mehr als zwei Dezimalstellen haben.

Beispiel 3, Genauigkeitsbewusster Offset (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

Der Stop-Offset wird gebildet aus Decimals, sodass es sich an die kleinste notierte Schrittweite jedes Instruments anpasst.

Häufige Fehler und Stolperfallen

  • Keine Tick-Größe. Decimals liefert die Anzahl der Dezimalstellen, nicht das minimale Kursinkrement. Instrumente, die in Schritten größer als eine Dezimaleinheit ticken, benötigen POINTSIZE oder TICKSIZE für die echte Schrittweite.
  • Pro Instrument fest. Der Wert variiert nicht über Bars hinweg, daher ist das Anwenden eines Klammer-Offsets wie Decimals[1] ist bedeutungslos.
  • Null bei ganzzahligen Notierungen. Instrumente, die in ganzen Einheiten notieren, geben 0 zurück, daher muss Code, der durch Decimals muss diesen Fall abfangen.
  • Close, der Schlusskurs eines Bars.
  • Open, der Eröffnungskurs eines Bars.
  • High, der höchste Kurs eines Bars.
  • Low, der niedrigste Kurs eines Bars.
  • Range, High minus Low eines Bars.
  • TypicalPrice, der Durchschnitt von High, Low und Close.
  • Volume, das gehandelte Volumen eines Bars.
  • CustomClose, die vom Benutzer wählbare Kursquelle.