значение индикатора, чем длиннее стрелка.
plotarrow(series, title, colorup, colordown, offset, minheight, maxheight, editable, show_last, display)
Пример
codiff = close - open
plotarrow(codiff, colorup=color.new(color.teal,40), colordown=color.new(color.orange, 40), overlay=true)
Аргументы
series
(series int/float) Серия данных, изображаемая в виде стрелок.title
Название участка.colorup
Цвет стрелок вверх.colordown
Цвет стрелок вниз.offset
(series int) перемещает стрелки влево или направо по заданному числу строк.minheight
Минимальная возможная высота стрелки в пикселях.maxheight
Максимальная возможная высота стрелки в пикселях.editable
(const bool) Если true, то стиль строки будет редактироваться в диалоге Format.show_last
(input int) Если установлено, определяет количество стрелок (от последней строки назад в прошлое), которые должны быть отображены на графике.display
(plot_display) Устройства, где отображается график. Возможные значения: display.none, display.all. По умолчанию display.all.overlay
(const bool) - это аргумент расширения платформы FMZ, он используется для настройки текущей функции, которая будет отображаться на главном изображении (направлено на true) или под-изображении (направлено на false), значение по умолчанию false. Если этот аргумент не указан, он будет установлен в соответствии сoverlay
Аргумент вstrategy
илиindicator
, еслиstrategy
илиindicator
не устанавливаетoverlay
аргумент, он будет обрабатываться в соответствии с аргументами по умолчанию.См. также
plot
plotshape
plotchar
barcolor
bgcolor
Функция удаляет последний элемент из массива и возвращает его значение.
array.pop(id)
Пример
// array.pop example
a = array.new_float(5,high)
removedEl = array.pop(a)
plot(array.size(a))
plot(removedEl)
ВозвращениеЗначение удаленного элемента.
Аргументы
id
(любой тип массива) Объект массива.См. также
array.new_float
array.set
array.push
array.remove
array.insert
array.shift
Функция удаляет первый элемент массива и возвращает его значение.
array.shift(id)
Пример
// array.shift example
a = array.new_float(5,high)
removedEl = array.shift(a)
plot(array.size(a))
plot(removedEl)
ВозвращениеЗначение удаленного элемента.
Аргументы
id
(любой тип массива) Объект массива.См. также
array.unshift
array.set
array.push
array.remove
array.includes
Функция вставляет значение в начале массива.
array.unshift(id, value)
Пример
// array.unshift example
a = array.new_float(5, 0)
array.unshift(a, open)
plot(array.get(a, 0))
Аргументы
id
(любой тип массива) Объект массива.value
(series <type of the array's elements>
) Значение, которое добавляется к началу массива.См. также
array.shift
array.set
array.insert
array.remove
array.indexof
Функция возвращает количество элементов в массиве.
array.size(id)
Пример
// array.size example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
// note that changes in slice also modify original array
slice = array.slice(a, 0, 5)
array.push(slice, open)
// size was changed in slice and in original array
plot(array.size(a))
plot(array.size(slice))
ВозвращениеКоличество элементов в массиве.
Аргументы
id
(любой тип массива) Объект массива.См. также
array.new_float
array.sum
array.slice
array.sort
Функция создает фрагмент из существующего массива. Если объект из фрагмента меняется, изменения применяются как к новому, так и к исходному массиву.
array.slice(id, index_from, index_to)
Пример
// array.slice example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
// take elements from 0 to 4
// *note that changes in slice also modify original array
slice = array.slice(a, 0, 5)
plot(array.sum(a) / 10)
plot(array.sum(slice) / 5)
ВозвращениеПлоская копия куска массива.
Аргументы
id
(любой тип массива) Объект массива.index_from
(series int) индекс на основе нуля, с которого начинается извлечение.index_to
(series int) нулевой индекс, до которого завершается экстракция. Функция экстрагирует до, но не включая элемент с этим индексом.См. также
array.new_float
array.get
array.sort
Возвращает массив, содержащий абсолютное значение каждого элемента в исходном массиве.
array.abs(id)
Аргументы
id
(int[]/float[]) Объект массива.См. также
array.new_float
array.insert
array.slice
array.reverse
order.ascending
order.descending
Функция возвращает индекс значения или -1 если значение не найдено.
array.binary_search(id, val)
Пример
// array.binary_search
a = array.from(5, -2, 0, 9, 1)
array.sort(a) // [-2, 0, 1, 5, 9]
position = array.binary_search(a, 0) // 1
plot(position)
Аргументы
id
(int[]/float[]) Объект массива.val
(series int/float) Значение, которое нужно искать в массиве.ПримечанияБинарный поиск работает на массивах, предварительно сортированных в восходящем порядке. Он начинается с сравнения элемента в середине массива с целевым значением. Если элемент соответствует целевому значению, его положение в массиве возвращается. Если значение элемента больше целевого значения, поиск продолжается в нижней половине массива. Если значение элемента меньше целевого значения, поиск продолжается в верхней половине массива. Делая это рекурсивно, алгоритм постепенно устраняет все меньшие и меньшие части массива, в которых целевое значение не может лежать.
См. также
array.new_float
array.insert
array.slice
array.reverse
order.ascending
order.descending
Функция возвращает индекс значения, если оно найдено. Когда значение не найдено, функция возвращает индекс следующего самого маленького элемента слева от того, где значение лежало бы, если бы оно было в массиве. Массив для поиска должен быть сортирован в восходящем порядке.
array.binary_search_leftmost(id, val)
Пример
// array.binary_search_leftmost
a = array.from(5, -2, 0, 9, 1)
array.sort(a) // [-2, 0, 1, 5, 9]
position = array.binary_search_leftmost(a, 3) // 2
plot(position)
Аргументы
id
(int[]/float[]) Объект массива.val
(series int/float) Значение, которое нужно искать в массиве.ПримечанияБинарный поиск работает на массивах, предварительно сортированных в восходящем порядке. Он начинается с сравнения элемента в середине массива с целевым значением. Если элемент соответствует целевому значению, его положение в массиве возвращается. Если значение элемента больше целевого значения, поиск продолжается в нижней половине массива. Если значение элемента меньше целевого значения, поиск продолжается в верхней половине массива. Делая это рекурсивно, алгоритм постепенно устраняет все меньшие и меньшие части массива, в которых целевое значение не может лежать.
См. также
array.new_float
array.insert
array.slice
array.reverse
order.ascending
order.descending
Функция возвращает индекс значения, если оно найдено. Когда значение не найдено, функция возвращает индекс элемента справа от места, где значение лежало бы, если бы оно было в массиве. Массив должен быть сортирован в восходящем порядке.
array.binary_search_rightmost(id, val)
Пример
// array.binary_search_rightmost
a = array.from(5, -2, 0, 9, 1)
array.sort(a) // [-2, 0, 1, 5, 9]
position = array.binary_search_rightmost(a, 3) // 3
plot(position)
Аргументы
id
(int[]/float[]) Объект массива.val
(series int/float) Значение, которое нужно искать в массиве.ПримечанияБинарный поиск работает на сортированных массивах в восходящем порядке. Он начинается с сравнения элемента в середине массива с целевым значением. Если элемент соответствует целевому значению, его положение в массиве возвращается. Если значение элемента больше целевого значения, поиск продолжается в нижней половине массива. Если значение элемента меньше целевого значения, поиск продолжается в верхней половине массива. Делая это рекурсивно, алгоритм постепенно устраняет все меньшие и меньшие части массива, в которых целевое значение не может лежать.
См. также
array.new_float
array.insert
array.slice
array.reverse
order.ascending
order.descending
Функция сортирует элементы массива.
array.sort(id, order)
Пример
// array.sort example
a = array.new_float(0,0)
for i = 0 to 5
array.push(a, high[i])
array.sort(a, order.descending)
if barstate.islast
runtime.log(str.tostring(a))
Аргументы
id
(int[]/float[]/string[]) Объект массива.order
(sort_order) Порядок сортировки: order.ascending (по умолчанию) или order.descending.См. также
array.new_float
array.insert
array.slice
array.reverse
order.ascending
order.descending
Возвращает массив индексов, который при использовании для индексации исходного массива будет получать доступ к его элементам в их сортированном порядке.
array.sort_indices(id, order)
Пример
// array.sort_indices
a = array.from(5, -2, 0, 9, 1)
sortedIndices = array.sort_indices(a) // [1, 2, 4, 0, 3]
indexOfSmallestValue = array.get(sortedIndices, 0) // 1
smallestValue = array.get(a, indexOfSmallestValue) // -2
plot(smallestValue)
Аргументы
id
(int[]/float[]/string[]) Объект массива.order
(sort_order) Порядок сортировки: order.ascending или order.descending. Необязательно. По умолчанию order.ascending.См. также
array.new_float
array.insert
array.slice
array.reverse
order.ascending
order.descending
Функция удаляет все элементы из массива.
array.clear(id)
Пример
// array.clear example
a = array.new_float(5,high)
array.clear(a)
array.push(a, close)
plot(array.get(a,0))
plot(array.size(a))
Аргументы
id
(любой тип массива) Объект массива.См. также
array.new_float
array.insert
array.push
array.remove
array.pop
Функция используется для объединения двух массивов. Она перемещает все элементы из второго массива в первый массив и возвращает первый массив.
array.concat(id1, id2)
Пример
// array.concat example
a = array.new_float(0,0)
b = array.new_float(0,0)
for i = 0 to 4
array.push(a, high[i])
array.push(b, low[i])
c = array.concat(a,b)
plot(array.size(a))
plot(array.size(b))
plot(array.size(c))
ВозвращениеПервый массив с объединенными элементами из второго массива.
Аргументы
id1
(любой тип массива) Первый объект массива.id2
(любой тип массива) второй объект массива.См. также
array.new_float
array.insert
array.slice
Функция создает копию существующего массива.
array.copy(id)
Пример
// array.copy example
length = 5
a = array.new_float(length, close)
b = array.copy(a)
a := array.new_float(length, open)
plot(array.sum(a) / length)
plot(array.sum(b) / length)
ВозвращениеКопия массива.
Аргументы
id
(любой тип массива) Объект массива.См. также
array.new_float
array.get
array.slice
array.sort
Функция возвращает стандартное отклонение элементов массива.
array.stdev(id, biased)
Пример
// array.stdev example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.stdev(a))
ВозвращениеСтандартное отклонение элементов массива.
Аргументы
id
(int[]/float[]) Объект массива.biased
(series bool) Определяет, какую оценку следует использовать.ПримечанияЕслиbiased
является истинным, функция будет рассчитываться с использованием предвзятой оценки всей популяции, если ложна - беспристрастная оценка выборки.
См. также
array.new_float
array.max
array.min
array.avg
Функция возвращает массив стандартизированных элементов.
array.standardize(id)
Пример
// array.standardize example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
b = array.standardize(a)
plot(array.min(b))
plot(array.max(b))
ВозвращениеМассив стандартизированных элементов.
Аргументы
id
(int[]/float[]) Объект массива.См. также
array.max
array.min
array.mode
array.avg
array.variance
array.stdev
Функция возвращает вариацию элементов массива.
array.variance(id, biased)
Пример
// array.variance example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.variance(a))
ВозвращениеРазница элементов массива.
Аргументы
id
(int[]/float[]) Объект массива.biased
(series bool) Определяет, какую оценку следует использовать.ПримечанияЕслиbiased
является истинным, функция будет рассчитываться с использованием предвзятой оценки всей популяции, если ложна - беспристрастная оценка выборки.
См. также
array.new_float
array.stdev
array.min
array.avg
array.covariance
Функция возвращает ковариантность двух массивов.
array.covariance(id1, id2, biased)
Пример
// array.covariance example
a = array.new_float(0)
b = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
array.push(b, open[i])
plot(array.covariance(a, b))
ВозвращениеКовариантность двух массивов.
Аргументы
id1
(int[]/float[]) Объект массива.id2
(int[]/float[]) Объект массива.biased
(series bool) Определяет, какую оценку следует использовать.ПримечанияЕслиbiased
является истинным, функция будет рассчитываться с использованием предвзятой оценки всей популяции, если ложна - беспристрастная оценка выборки.
См. также
array.new_float
array.max
array.stdev
array.avg
array.variance
Функция устанавливает элементы массива на одно значение. Если не указан индекс, все элементы устанавливаются. Если поставлен только начальный индекс (по умолчанию 0), элементы, начинающиеся с этого индекса, устанавливаются. Если используются оба аргумента индекса, элементы от начального индекса до, но не включая конечный индекс (по умолчанию na) устанавливаются.
array.fill(id, value, index_from, index_to)
Пример
// array.fill example
a = array.new_float(10)
array.fill(a, close)
plot(array.sum(a))
Аргументы
id
(любой тип массива) Объект массива.value
(series <type of the array's elements>
) Значение для заполнения массива.index_from
Индекс старта, по умолчанию 0.index_to
(series int) конечный индекс, по умолчанию n. Должен быть на один больше индекса последнего элемента, который должен быть установлен.См. также
array.new_float
array.set
array.slice
Функция возвращает true, если значение было найдено в массиве, false иначе.
array.includes(id, value)
Пример
// array.includes example
a = array.new_float(5,high)
p = close
if array.includes(a, high)
p := open
plot(p)
ВозвращениеПравда, если значение было найдено в массиве, ложь в противном случае.
Аргументы
id
(любой тип массива) Объект массива.value
(series <type of the array's elements>
) Значение для поиска в массиве.См. также
array.new_float
array.indexof
array.shift
array.remove
array.insert
Функция изменяет содержимое массива, добавляя новые элементы.
array.insert(id, index, value)
Пример
// array.insert example
a = array.new_float(5, close)
array.insert(a, 0, open)
plot(array.get(a, 5))
Аргументы
id
(любой тип массива) Объект массива.index
(series int) Индекс, в который вставляется значение.value
(series <type of the array's elements>
) Значение, которое нужно добавить в массив.См. также
array.new_float
array.set
array.push
array.remove
array.pop
array.unshift
Функция создает и возвращает новую строку, соединяя все элементы массива, разделенные указанной строкой разделителя.
array.join(id, separator)
Пример
// array.join example
a = array.new_float(5, 5)
runtime.log(array.join(a, ","))
Аргументы
id
(int[]/float[]/string[]) Объект массива.separator
(Серьезная строка) Строка, используемая для разделения каждого элемента массива.См. также
array.new_float
array.set
array.insert
array.remove
array.pop
array.unshift
Функция возвращает индекс последнего появления значения или -1 если значение не найдено.
array.lastindexof(id, value)
Пример
// array.lastindexof example
a = array.new_float(5,high)
index = array.lastindexof(a, high)
plot(index)
ВозвращениеИндекс элемента.
Аргументы
id
(любой тип массива) Объект массива.value
(series <type of the array's elements>
) Значение для поиска в массиве.См. также
array.new_float
array.set
array.push
array.remove
array.insert
Функция возвращает наибольшее значение, или n-е наибольшее значение в данном массиве.
array.max(id, nth)
Пример
// array.max
a = array.from(5, -2, 0, 9, 1)
secondHighest = array.max(a, 2) // 1
plot(secondHighest)
ВозвращениеНаибольшее или n-е наибольшее значение в массиве.
Аргументы
id
(int[]/float[]) Объект массива.nth
(series int) наибольшее значение для возвращения, где нуль является наибольшим.См. также
array.new_float
array.min
array.sum
Функция возвращает наименьшее значение или n-е наименьшее значение в данном массиве.
array.min(id, nth)
Пример
// array.min
a = array.from(5, -2, 0, 9, 1)
secondLowest = array.min(a, 1) // 0
plot(secondLowest)
ВозвращениеНаименьшее или n-е наименьшее значение в массиве.
Аргументы
id
(int[]/float[]) Объект массива.nth
(series int) наименьшее значение для возвращения, где нуль является наименьшим.См. также
array.new_float
array.max
array.sum
Функция возвращает медиану элементов массива.
array.median(id)
Пример
// array.median example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.median(a))
ВозвращениеМедиана элементов массива.
Аргументы
id
(int[]/float[]) Объект массива.См. также
array.avg
array.variance
array.min
Функция возвращает режим элементов массива. Если есть несколько значений с одинаковой частотой, она возвращает наименьшее значение.
array.mode(id)
Пример
// array.mode example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.mode(a))
ВозвращениеРежим элементов массива.
Аргументы
id
(int[]/float[]) Объект массива.См. также
array.new_float
array.avg
array.variance
array.min
Возвращает значение, для которого указанный процент значений массива (перцентил) меньше или равен ему, используя линейную интерполяцию.
array.percentile_linear_interpolation(id, percentage)
Аргументы
id
(int[]/float[]) Объект массива.percentage
(series int/float) Процент значений, которые должны быть равны или меньше возвращенного значения.ПримечанияВ статистике процентный показатель - это процент элементов рейтинга, которые появляются на определенном уровне или ниже определенного показателя.
См. также
array.new_float
array.insert
array.slice
array.reverse
order.ascending
order.descending
Возвращает значение, для которого указанный процент значений массива (перцентил) меньше или равен ему, используя метод ближайшего ранга.
array.percentile_nearest_rank(id, percentage)
Аргументы
id
(int[]/float[]) Объект массива.percentage
(series int/float) Процент значений, которые должны быть равны или меньше возвращенного значения.ПримечанияВ статистике процентный показатель - это процент элементов рейтинга, которые появляются на или ниже определенного балла.
См. также
array.new_float
array.insert
array.slice
array.reverse
order.ascending
order.descending
Возвращает процентный ранг значения в массиве.
array.percentrank(id, index)
Аргументы
id
(int[]/float[]) Объект массива.index
(series int) Значение, по которому рассчитывается его процентный ранг.ПримечанияПроцентный ранг - это процент того, сколько элементов в массиве меньше или равны значению отсчета.
См. также
array.new_float
array.insert
array.slice
array.reverse
order.ascending
order.descending
Функция возвращает разницу между минимальными и максимальными значениями данного массива.
array.range(id)
Пример
// array.range example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.range(a))
ВозвращениеРазница между минимальными и максимальными значениями в массиве.
Аргументы
id
(int[]/float[]) Объект массива.См. также
array.new_float
array.min
array.max
array.sum
Функция изменяет содержимое массива, удаляя элемент с указанным индексом.
array.remove(id, index)
Пример
// array.remove example
a = array.new_float(5,high)
removedEl = array.remove(a, 0)
plot(array.size(a))
plot(removedEl)
ВозвращениеЗначение удаленного элемента.
Аргументы
id
(любой тип массива) Объект массива.index
(series int) индекс элемента, который следует удалить.См. также
array.new_float
array.set
array.push
array.insert
array.pop
array.shift
Первый элемент массива становится последним, а последний элемент массива становится первым.
array.reverse(id)
Пример
// array.reverse example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.get(a, 0))
array.reverse(a)
plot(array.get(a, 0))
Аргументы
id
(любой тип массива) Объект массива.См. также
array.new_float
array.sort
array.push
array.set
array.avg
Функция принимает переменное количество аргументов с одним из типов: int, float, bool, string, label, line, color, box, table, linefill и возвращает массив соответствующего типа.
array.from(arg0, arg1, ...)
Пример
// array.from_example
arr = array.from("Hello", "World!") // arr (string[]) will contain 2 elements: {Hello}, {World!}.
plot(close)
ВозвращениеЗначение элемента массива.
Аргументы
arg0, arg1, ...
(серия int/float/bool/color/string/line/linefill) Аргументы массива.Функция создает новый объект массива<type>
elements.
array.new(size, initial_value)
Пример
// array.new<string> example
a = array.new<string>(1, "Hello, World!")
runtime.log(array.get(a, 0))
Пример
// array.new<color> example
a = array.new<color>()
array.push(a, color.red)
array.push(a, color.green)
plot(close, color = array.get(a, close > open ? 1 : 0))
Пример
// array.new<float> example
length = 5
var a = array.new<float>(length, close)
if array.size(a) == length
array.remove(a, 0)
array.push(a, close)
plot(array.sum(a) / length, "SMA")
Пример
// array.new<line> example
// draw last 15 lines
var a = array.new<line>()
array.push(a, line.new(bar_index - 1, close[1], bar_index, close))
if array.size(a) > 15
ln = array.shift(a)
line.delete(ln)
ВозвращениеИдентификатор объекта массива, который может использоваться в других функциях массива.*().
Аргументы
size
(series int) Начальный размер массива.initial_value
(серия ПримечанияИндекс массива начинается с 0. Если вы хотите инициализировать массив и указать все его элементы одновременно, то используйте функцию array.from.
См. также
array.from
array.push
array.get
array.size
array.remove
array.shift
array.sum
Функция создает новый объект массива элементов типа bool.
array.new_bool(size, initial_value)
Пример
// array.new_bool example
length = 5
a = array.new_bool(length, close > open)
plot(array.get(a, 0) ? close : open)
ВозвращениеИдентификатор объекта массива, который может использоваться в других функциях массива.*().
Аргументы
size
(series int) Начальный размер массива.initial_value
(series bool) начальное значение всех элементов массива. необязательно. по умолчанию ПримечанияИндекс массива начинается с 0.
См. также
array.new_float
array.get
array.slice
array.sort
Функция создает новый объект массива из элементов типа float.
array.new_float(size, initial_value)
Пример
// array.new_float example
length = 5
a = array.new_float(length, close)
plot(array.sum(a) / length)
ВозвращениеИдентификатор объекта массива, который может использоваться в других функциях массива.*().
Аргументы
size
(series int) Начальный размер массива.initial_value
(series int/float) Начальное значение всех элементов массива. Необязательно. По умолчанию ПримечанияИндекс массива начинается с 0.
См. также
array.new_bool
array.get
array.slice
array.sort
Функция создает новый объект массива из элементов типа int.
array.new_int(size, initial_value)
Пример
// array.new_int example
length = 5
a = array.new_int(length, int(close))
plot(array.sum(a) / length)
ВозвращениеИдентификатор объекта массива, который может использоваться в других функциях массива.*().
Аргументы
size
(series int) Начальный размер массива.initial_value
(series int) начальное значение всех элементов массива. необязательно. По умолчанию ПримечанияИндекс массива начинается с 0.
См. также
array.new_float
array.get
array.slice
array.sort
Функция создает новый объект массива элементов типа строки.
array.new_string(size, initial_value)
Пример
// array.new_string example
length = 5
a = array.new_string(length, "text")
runtime.log(array.get(a, 0))
ВозвращениеИдентификатор объекта массива, который может использоваться в других функциях массива.*().
Аргументы
size
(series int) Начальный размер массива.initial_value
(серия строки) Начальное значение всех элементов массива. Необязательно. По умолчанию ПримечанияИндекс массива начинается с 0.
См. также
array.new_float
array.get
array.slice
Функция возвращает значение элемента в указанном индексе.
array.get(id, index)
Пример
// array.get example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i] - open[i])
plot(array.get(a, 9))
ВозвращениеЗначение элемента массива.
Аргументы
id
(любой тип массива) Объект массива.index
(series int) Индекс элемента, значение которого должно быть возвращено.См. также
array.new_float
array.set
array.slice
array.sort
Функция добавляет значение в массив.
array.push(id, value)
Пример
// array.push example
a = array.new_float(5, 0)
array.push(a, open)
plot(array.get(a, 5))
Аргументы
id
(любой тип массива) Объект массива.value
(series <type of the array's elements>
) Значение элемента, добавленного к концу массива.См. также
array.new_float
array.set
array.insert
array.remove
array.pop
array.unshift
Функция устанавливает значение элемента в указанном индексе.
array.set(id, index, value)
Пример
// array.set example
a = array.new_float(10)
for i = 0 to 9
array.set(a, i, close[i])
plot(array.sum(a) / 10)
Аргументы
id
(любой тип массива) Объект массива.index
(series int) Индекс элемента, который должен быть изменен.value
(series <type of the array's elements>
) Новое значение, которое необходимо установить.См. также
array.new_float
array.get
array.slice
Функция возвращает сумму элементов массива.
array.sum(id)
Пример
// array.sum example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.sum(a))
ВозвращениеСумма элементов массива.
Аргументы
id
(int[]/float[]) Объект массива.См. также
array.new_float
array.max
array.min
Функция возвращает среднее значение элементов массива.
array.avg(id)
Пример
// array.avg example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.avg(a))
ВозвращениеСреднее число элементов массива.
Аргументы
id
(int[]/float[]) Объект массива.См. также
array.new_float
array.max
array.min
array.stdev
Функция возвращает индекс первого появления значения или -1 если значение не найдено.
array.indexof(id, value)
Пример
// array.indexof example
a = array.new_float(5,high)
index = array.indexof(a, high)
plot(index)
ВозвращениеИндекс элемента.
Аргументы
id
(любой тип массива) Объект массива.value
(series <type of the array's elements>
) Значение для поиска в массиве.См. также
array.lastindexof
array.get
array.lastindexof
array.remove
array.insert
Встроенные функции, связанные сstrategy
, точки остановки потери и точки получения прибыли определяются как кратные одному скачку цены.profit
иloss
Аргументыstrategy.exit
функция представляет стоп-лосс и прибыль в пунктах, и аргументprofit
Установлено на 10, то есть скачок цены умножается на 10 как прибыль, и скачок цены является встроенной переменнойsyminfo.mintick
.
Функция устанавливает ряд свойств стратегии.
Обратите внимание, что толькоtitle
, shorttitle
, overlay
, pyramiding
, default_qty_type
, default_qty_value
Другие аргументы могут быть установлены через интерфейсные аргументы языковой стратегии PINE.
strategy(title, shorttitle, overlay, format, precision, scale, pyramiding, calc_on_order_fills, calc_on_every_tick, max_bars_back, backtest_fill_limits_assumption, default_qty_type, default_qty_value, initial_capital, currency, slippage, commission_type, commission_value, process_orders_on_close, close_entries_rule, margin_long, margin_short, explicit_plot_zorder, max_lines_count, max_labels_count, max_boxes_count, risk_free_rate)
Пример
strategy("Strategy", overlay = true)
// Enter long by market if current open is greater than previous high.
strategy.entry("Long", strategy.long, 1, when = open > high[1])
// Generate a full exit bracket (profit 10 points, loss 5 points per contract) from the entry named "Long".
strategy.exit("Exit", "Long", profit = 10, loss = 5)
Аргументы
title
(const string) название индикатора, которое будет показано в виджете "Индикаторы/Стратегии".shorttitle
(const string) краткое название индикатора, которое будет показано в легенде графика.overlay
(const bool) если true показатель будет добавлен как перекрытие для основной серии. Если false - он будет добавлен на отдельном диаграмме.format
precision
scale
pyramiding
(const int) Максимальное количество записей, разрешенных в одном направлении. Если значение равняется 0, можно открыть только один ордер на вход в одном направлении, и дополнительные ордера на вход отвергаются.calc_on_order_fills
(const bool) Дополнительное однократное расчетное выполнение ордеров внутри строки. Если аргумент установлен на calc_on_every_tick
max_bars_back
backtest_fill_limits_assumption
default_qty_type
(const string) Определяет, какое значение используется дляqty
в функциях strategy.entry или strategy.order представляет аргумент. Возможны значения: strategy.fixed для контрактов/акций/лотов,strategy.cashдля сумм в валюте, или strategy.percent_of_equity для процента доступного собственного капитала.default_qty_value
(const int/float) величина по умолчанию для торговли в функциях strategy.entry или strategy.order, когда их аргумент currency
slippage
commission_type
commission_value
process_orders_on_close
true
, генерирует дополнительную попытку выполнения ордеров после закрытия панели и завершения расчетов стратегии. Если ордера являются рыночными ордерами, эмулятор брокера выполняет их до открытия следующей панели. Если ордера обусловлены ценой, они будут выполнены только при условии выполнения ценовых условий.close_entries_rule
max_lines_count
max_labels_count
max_boxes_count
margin_long
margin_short
~~ (const int/float) Короткий марж - это процент от цены покупки ценной бумаги, который должен быть покрыт наличными или залогом для коротких позиций. Должен быть неотрицательным числом. Необязательно.explicit_plot_zorder
false
.initial_capital
currency
По умолчанию это 1000000.risk_free_rate
ПримечанияКаждый сценарий стратегии должен иметь один стратегический звонок. Код Pine Script, который использует аргумент calc_on_every_tick = true, может рассчитывать по-разному на историю и данные в режиме реального времени. При использовании нестандартных типов диаграмм в качестве основы для стратегии, вы должны понимать, что результат будет отличаться. Заказы будут выполняться по ценам этого диаграмма (например, для Heikin Ashi это будет принимать цены Heikin Ashi (средние), а не реальные рыночные цены). Поэтому мы настоятельно рекомендуем вам использовать стандартный тип диаграмм для стратегий.
См. также
indicator
Это команда для входа в рыночную позицию. Если ордер с тем же идентификатором уже в ожидании, можно изменить ордер. Если нет ордера с указанным идентификатором, размещается новый ордер. Чтобы деактивировать ордер на вход, следует использовать команду strategy.cancel или strategy.cancel_all. По сравнению с функцией strategy.order, функция strategy.entry подвергается влиянию пирамиды и может правильно обратить рыночную позицию. Если оба аргумента
strategy.entry(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)
Пример
strategy(title = "simple strategy entry example")
strategy.entry("enter long", strategy.long, 1, when = open > high[1]) // enter long by market if current open great then previous high
strategy.entry("enter short", strategy.short, 1, when = open < low[1]) // enter short by market if current open less then previous low
Аргументы
id
(серия строки) Требуемый аргумент. Идентификатор заказа. Можно отменить или изменить заказ, ссылаясь на его идентификатор.direction
(стратегия_направление) Требуется аргумент. Направление рыночной позиции: qty
(series int/float) необязательный аргумент. Количество контрактов/акций/лотов/единиц к торговле.limit
(series int/float) необязательный аргумент. Лимитная цена ордера. Если она указана, тип ордера либо stop
(series int/float) Опциональный аргумент. Стоп цена ордера. Если он указан, тип ордера либо oca_name
oca_type
comment
Дополнительные примечания к порядку.when
(series bool) Опциональный аргумент. Условие заказа. Заказ размещается, если условие alert_message
(series string) Опциональный аргумент, заменяющий местоназначение {{strategy.order.alert_message}} при использовании в диалоговом поле Это команда для выхода из записи с указанным идентификатором. Если было несколько заказов на вход с одним и тем же идентификатором, все они выходят сразу. Если к моменту запуска команды нет открытых заказов с указанным идентификатором, команда не вступит в силу. Команда использует рыночный заказ. Каждая запись закрывается отдельным рыночным заказом.
strategy.close(id, when, comment, qty, qty_percent, alert_message)
Пример
strategy("closeEntry Demo", overlay=false)
strategy.entry("buy", strategy.long, when = open > close)
strategy.close("buy", when = open < close, qty_percent = 50, comment = "close buy entry for 50%")
plot(strategy.position_size)
Аргументы
id
(серия строки) Требуемый аргумент. Идентификатор заказа. Можно закрыть заказ, ссылаясь на его идентификатор.when
(серия bool) необязательный аргумент.qty
(series int/float) необязательный аргумент. Количество контрактов/акций/лотов/единиц для выхода из сделки.qty_percent
(series int/float) Определяет процент (0-100) позиции для закрытия. Его приоритет ниже, чем у аргумента comment
Дополнительные примечания к порядку.alert_message
(series string) Опциональный аргумент, заменяющий местоназначение {{strategy.order.alert_message}} при использовании в диалоговом поле Выходит из текущей рыночной позиции, делая ее плоской.
strategy.close_all(when, comment, alert_message)
Пример
strategy("closeAll Demo", overlay=false)
strategy.entry("buy", strategy.long, when = open > close)
strategy.close_all(when = open < close, comment = "close all entries")
plot(strategy.position_size)
Аргументы
when
(серия bool) необязательный аргумент.comment
Дополнительные примечания к порядку.alert_message
(series string) Опциональный аргумент, заменяющий местоназначение {{strategy.order.alert_message}} при использовании в диалоговом поле Это команда для выхода либо из определенного входа, либо из всей рыночной позиции. Если ордер с тем же идентификатором уже в ожидании, можно изменить ордер. Если ордер на вход не был выполнен, но ордер на выход генерируется, ордер на выход будет ждать, пока ордер на вход не будет выполнен, а затем ордер на выход будет размещен. Чтобы деактивировать ордер на выход, следует использовать командную функцию strategy.cancel или strategy.cancel_all.strategy.exitЕсли вы хотите выйти несколько раз, командаstrategy.exitЕсли вы используете стоп-лосс и трейлинг-стоп, тип ордера -
strategy.exit(id, from_entry, qty, qty_percent, profit, limit, loss, stop, trail_price, trail_points, trail_offset, oca_name, comment, when, alert_message)
Пример
strategy(title = "simple strategy exit example")
strategy.entry("long", strategy.long, 1, when = open > high[1]) // enter long by market if current open great then previous high
strategy.exit("exit", "long", profit = 10, loss = 5) // generate full exit bracket (profit 10 points, loss 5 points per contract) from entry with name "long"
Аргументы
id
(серия строки) Требуемый аргумент. Идентификатор заказа. Можно отменить или изменить заказ, ссылаясь на его идентификатор.from_entry
(series string) Опциональный аргумент. Идентификатор определенного порядка ввода для выхода из него. Для выхода из всех записей должна использоваться пустая строка.qty
(series int/float) необязательный аргумент. Количество контрактов/акций/лотов/единиц для выхода из сделки.qty_percent
(series int/float) Определяет процент (0-100) позиции для закрытия. Его приоритет ниже, чем у аргумента profit
(series int/float) Опциональный аргумент. Цель прибыли (указанная в тиках). Если она указана, то лимитный ордер размещается на выходе из рыночной позиции при достижении указанной суммы прибыли (в тиках). Значение по умолчанию limit
(series int/float) Факультативный аргумент. Цель прибыли (требует определенной цены). Если она указана, лимитный ордер размещается для выхода из рыночной позиции по указанной цене (или лучше). Приоритет аргумента loss
(series int/float) Опциональный аргумент. Стоп-лосс (указанный в тиках). Если он указан, то стоп-ордер размещается для выхода из рыночной позиции при достижении указанной суммы потери (в тиках). Значение по умолчанию stop
(series int/float) Опциональный аргумент. Стоп-лосс (требует определенной цены). Если он указан, то стоп-ордер размещается для выхода из рыночной позиции по указанной цене (или хуже). Приоритет аргумента ПросящиеПочему стратегия Square Duplication не может быть реализована?
Изобретатели количественного измерения - мечтыХорошо, давайте проверим.
ПросящиеОптимизированный тренд-трекер
Изобретатели количественного измерения - мечтыЗдравствуйте, пожалуйста, какая именно стратегия?