2.3 The settingsFields[] array

The settingsFields[] array in the object you return from UDI.onInit() describes the configurable fields which people should be able to modify for your indicator.

There is one special field which fundamentally affects the type and behaviour of your UDI. If your indicator has a Source field then it receives, in UDI.onCalculate(), a single data series such as the close prices or the high prices – or the values from another indicator. If your indicator does not have a Source field then it receives the full data for each bar – open, high, low, close, and volume – and your UDI cannot be applied to another indicator.

The Source field is defined in the settingsFields[] array as follows. (It is normal, but not compulsory, for it to be the first field.)

settingsFields: [
	{id: "Source"}

]

All other fields in the settingsFields[] array should have an id, a caption, and a type. They can also optionally have other properties depending on the type of field. For example:

settingsFields: [
	{id: "Source"},
	{id: "threshold", caption: "Threshold", type: "float", defaultValue: 1, min: 1, step: 0.1},
	{id: "highlightcolor", caption: "Color", type: "color", defaultValue: "rgba(0,0,255,0.5)"},
	{id: "options", caption: "Display type", type: "select", options: [
		{k: "line", v: "Display as line"},
		{k: "marker", v: "Display as histogram"}
	]}
]

The types of field which you can use are as follows:

Field type

Description

int

Integer field

float

Numeric, non-integer field

yesno

Yes/no (Boolean) field

select

List of options

textline

Free-text field

color

Colour field

maType

Type of moving average, for use with the SWay.ta library

The full set of properties which can be defined for each field is as follows:

Property

Description

id

ID for your field

caption

Display text for your field

type

The type of field: "int", "color", "textline" etc

defaultValue

Default value for the field (depending on its type)

omitFromParameters

Tells the chart that the field should not be displayed in the summary of the indicator's values

min

For numeric fields, the minimum value which can be entered

max

For numeric fields, the maximum value which can be entered

step

For numeric fields, the increment between values

options[]

For the select field-type only, an array of options for the user to select from. Each entry in the array should have a key, k, and a displayable caption, v. For example: {k: "close", v: "Close price"}. The value which your indicator receives, in UDI.onCalculate(), is the k property.

Last updated