В процессе загрузки ресурсов... загрузка...

FMZ PINE Сценарий Doc

Автор:Изобретатели количественного измерения - мечты, Создано: 2022-04-28 16:05:05, Обновлено: 2024-10-12 17:25:27

значение индикатора, чем длиннее стрелка.

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

Функция удаляет последний элемент из массива и возвращает его значение.

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

Функция удаляет первый элемент массива и возвращает его значение.

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

Функция вставляет значение в начале массива.

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

Функция возвращает количество элементов в массиве.

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

Функция создает фрагмент из существующего массива. Если объект из фрагмента меняется, изменения применяются как к новому, так и к исходному массиву.

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

Возвращает массив, содержащий абсолютное значение каждого элемента в исходном массиве.

array.abs(id)

Аргументы

  • id(int[]/float[]) Объект массива.

См. также array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.binary_search

Функция возвращает индекс значения или -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

Функция возвращает индекс значения, если оно найдено. Когда значение не найдено, функция возвращает индекс следующего самого маленького элемента слева от того, где значение лежало бы, если бы оно было в массиве. Массив для поиска должен быть сортирован в восходящем порядке.

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

Функция возвращает индекс значения, если оно найдено. Когда значение не найдено, функция возвращает индекс элемента справа от места, где значение лежало бы, если бы оно было в массиве. Массив должен быть сортирован в восходящем порядке.

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

Функция сортирует элементы массива.

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

Возвращает массив индексов, который при использовании для индексации исходного массива будет получать доступ к его элементам в их сортированном порядке.

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

Функция удаляет все элементы из массива.

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

Функция используется для объединения двух массивов. Она перемещает все элементы из второго массива в первый массив и возвращает первый массив.

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

Функция создает копию существующего массива.

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

Функция возвращает стандартное отклонение элементов массива.

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

Функция возвращает массив стандартизированных элементов.

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

Функция возвращает вариацию элементов массива.

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

Функция возвращает ковариантность двух массивов.

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

array.fill

Функция устанавливает элементы массива на одно значение. Если не указан индекс, все элементы устанавливаются. Если поставлен только начальный индекс (по умолчанию 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

array.includes

Функция возвращает 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

Функция изменяет содержимое массива, добавляя новые элементы.

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

Функция создает и возвращает новую строку, соединяя все элементы массива, разделенные указанной строкой разделителя.

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

array.lastindexof

Функция возвращает индекс последнего появления значения или -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

array.max

Функция возвращает наибольшее значение, или 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

array.min

Функция возвращает наименьшее значение или 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

Функция возвращает медиану элементов массива.

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

Функция возвращает режим элементов массива. Если есть несколько значений с одинаковой частотой, она возвращает наименьшее значение.

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

Возвращает значение, для которого указанный процент значений массива (перцентил) меньше или равен ему, используя линейную интерполяцию.

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 (состав.процентиль_ближайшего_ранга)

Возвращает значение, для которого указанный процент значений массива (перцентил) меньше или равен ему, используя метод ближайшего ранга.

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

Возвращает процентный ранг значения в массиве.

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

Функция возвращает разницу между минимальными и максимальными значениями данного массива.

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

Функция изменяет содержимое массива, удаляя элемент с указанным индексом.

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

Первый элемент массива становится последним, а последний элемент массива становится первым.

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

array.from

Функция принимает переменное количество аргументов с одним из типов: 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) Аргументы массива.

array.new

Функция создает новый объект массива<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(серия ) Начальное значение всех элементов массива. Необязательно. По умолчанию na.

ПримечанияИндекс массива начинается с 0. Если вы хотите инициализировать массив и указать все его элементы одновременно, то используйте функцию array.from.

См. также array.from array.push array.get array.size array.remove array.shift array.sum

array.new_bool

Функция создает новый объект массива элементов типа 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) начальное значение всех элементов массива. необязательно. по умолчанию na.

ПримечанияИндекс массива начинается с 0.

См. также array.new_float array.get array.slice array.sort

array.new_float

Функция создает новый объект массива из элементов типа 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) Начальное значение всех элементов массива. Необязательно. По умолчанию na.

ПримечанияИндекс массива начинается с 0.

См. также array.new_bool array.get array.slice array.sort

array.new_int

Функция создает новый объект массива из элементов типа 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) начальное значение всех элементов массива. необязательно. По умолчанию na.

ПримечанияИндекс массива начинается с 0.

См. также array.new_float array.get array.slice array.sort

array.new_string

Функция создает новый объект массива элементов типа строки.

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(серия строки) Начальное значение всех элементов массива. Необязательно. По умолчанию na.

ПримечанияИндекс массива начинается с 0.

См. также array.new_float array.get array.slice

array.get

Функция возвращает значение элемента в указанном индексе.

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

Функция добавляет значение в массив.

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

Функция устанавливает значение элемента в указанном индексе.

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

Функция возвращает сумму элементов массива.

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

Функция возвращает среднее значение элементов массива.

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

array.indexof

Функция возвращает индекс первого появления значения или -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(const string) тип значения индикатора форматирования на оси цены. Возможные значения: format.inherit, format.price, format.volume. По умолчанию format.inherit.
  • precision(const int) количество цифр после скользящей запятой для показателей значений на оси цены. Должно быть неотрицательным целым числом и не более 16. Если оно пропущено, используется форматирование из родительского ряда. Если формат является format.inherit и этот аргумент установлен, то формат становится format.price.
  • scale(scale_type) ценовой шкалы, к которой должен быть присоединен индикатор. Возможные значения: scale.right, scale.left, scale.none. Значение scale.none может применяться только в сочетании с настройкой overlay=true.
  • pyramiding(const int) Максимальное количество записей, разрешенных в одном направлении. Если значение равняется 0, можно открыть только один ордер на вход в одном направлении, и дополнительные ордера на вход отвергаются.
  • calc_on_order_fills(const bool) Дополнительное однократное расчетное выполнение ордеров внутри строки. Если аргумент установлен на true, то стратегия пересчитывается внутри строки после выполнения ордера (не только при закрытии строки).
  • calc_on_every_tick(const bool) Дополнительные расчеты стратегии внутри баров. Если аргумент true, то стратегия будет рассчитываться на каждом тике в режиме реального времени, а не на барах закрывается. Аргумент не влияет на расчет стратегии на исторических данных. Значение по умолчанию false.
  • max_bars_back(const int) Максимальное количество строк, доступных для стратегии для исторической ссылки. Этот аргумент применяется к каждой встроенной или пользовательской переменной в сценарии, если есть ссылка на исторические данные переменной в коде сценария (используется оператор []). Размеры переменного буфера в Pine Script обычно обнаруживаются автоматически. Однако в некоторых случаях это невозможно, поэтому аргумент позволяет пользователю вручную установить нижнюю границу этого значения.
  • backtest_fill_limits_assumption(const int) Предположение о выполнении лимитного ордера. Лимитные ордера выполняются внутри бара только в том случае, если рыночная цена превышает уровень лимитного ордера на указанное количество тиков.
  • 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, когда их аргумент qty не определен, в единицах, определяемых аргументом, используемым с аргументом default_qty_type.
  • currency(const string) Валюта счета для этой стратегии. Необязательно. По умолчанию является валюта, на которой торгуется символ на графике. Возможные значения: currency.NONE, currency.USD, currency.EUR, currency.AUD, currency.GBP, currency.NZD, currency.CAD, currency.CHF, currency.HKD, currency.JPY, currency.NOK, currency.SEK, currency.SGD, currency.TRY, currency.ZAR, currency.BTC, currency.ETH, currency.MYR, currency.KRW.
  • slippage(const int) Сдвиг в тиках, который должен быть добавлен/отчислен от цены заполнения рынка покупки/продажи или стоп-ордеров. Если mintick = 0,01 и сдвиг = 5, сумма сдвига будет равна 5 * 0,01 = 0,05.
  • commission_type(const string) Тип комиссии для заказа. Допустимые значения: strategy.commission.percent (процент денежного объема заказа), strategy.commission.cash_per_contract (денежные средства, отображаемые в валюте счета по каждому контракту), strategy.commission.cash_per_order (денежные средства, отображаемые в валюте счета по каждому заказу).
  • commission_value(const int/float) Значение комиссии для заказа. В зависимости от выбранного типа (commission_type) включает процент или деньги.
  • process_orders_on_close(const bool) Когда установлено наtrue, генерирует дополнительную попытку выполнения ордеров после закрытия панели и завершения расчетов стратегии. Если ордера являются рыночными ордерами, эмулятор брокера выполняет их до открытия следующей панели. Если ордера обусловлены ценой, они будут выполнены только при условии выполнения ценовых условий.
  • close_entries_rule(const string) Определяет порядок, в котором закрываются ордера. Допустимые значения: FIFO или ANY. FIFO (First-In, First-Out) означает, что когда несколько сделок открыты, первые сделки должны быть закрыты первыми. Это правило применяется к акциям, фьючерсам и американскому форексу (правило соответствия NFA 2-43b). ANY означает, что сделки могут быть закрыты в любом порядке; это разрешено в форексе, не относящемся к США.
  • max_lines_count(const int) Количество отображаемых чертежей последней строки.
  • max_labels_count(const int) Количество последних рисунков этикетки, отображаемых.
  • max_boxes_count(const int) Количество отображаемых последних рисунков поля.
  • margin_long(const int/float) Маржинальная длина - это процент от цены покупки ценной бумаги, которая должна быть покрыта наличными или залогом для длинных позиций. Должна быть неотрицательным числом. Необязательно. По умолчанию 100. - Что?margin_short~~ (const int/float) Короткий марж - это процент от цены покупки ценной бумаги, который должен быть покрыт наличными или залогом для коротких позиций. Должен быть неотрицательным числом. Необязательно.
  • explicit_plot_zorder(const bool) Указывает порядок, в котором отображаются графики, заполнения и линий индикатора. Если верно, графики будут отображаться на основе порядка, в котором они появляются в коде индикатора, каждый новейший график будет отображаться выше предыдущих. Это относится только к функциям plot*(), fill и hline. необязательно.false.
  • initial_capital(const int/float) Сумма средств, изначально доступная для стратегии торговли, в валюте, определенной вcurrencyПо умолчанию это 1000000.
  • risk_free_rate(const int/float) Безрисковая ставка доходности - это ежегодное процентное изменение стоимости инвестиций с минимальным или нулевым риском, используемое для расчета коэффициентов Шарпа и Сортино.

ПримечанияКаждый сценарий стратегии должен иметь один стратегический звонок. Код Pine Script, который использует аргумент calc_on_every_tick = true, может рассчитывать по-разному на историю и данные в режиме реального времени. При использовании нестандартных типов диаграмм в качестве основы для стратегии, вы должны понимать, что результат будет отличаться. Заказы будут выполняться по ценам этого диаграмма (например, для Heikin Ashi это будет принимать цены Heikin Ashi (средние), а не реальные рыночные цены). Поэтому мы настоятельно рекомендуем вам использовать стандартный тип диаграмм для стратегий.

См. также indicator

strategy.entry

Это команда для входа в рыночную позицию. Если ордер с тем же идентификатором уже в ожидании, можно изменить ордер. Если нет ордера с указанным идентификатором, размещается новый ордер. Чтобы деактивировать ордер на вход, следует использовать команду strategy.cancel или strategy.cancel_all. По сравнению с функцией strategy.order, функция strategy.entry подвергается влиянию пирамиды и может правильно обратить рыночную позицию. Если оба аргумента limit и stop являются NaN, тип ордера является рыночным ордером.

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) необязательный аргумент. Лимитная цена ордера. Если она указана, тип ордера либо limit, либо stop-limit. NaN должен быть указан для любого другого типа ордера.
  • stop(series int/float) Опциональный аргумент. Стоп цена ордера. Если он указан, тип ордера либо stop, либо stop-limit. NaN должен быть указан для любого другого типа ордера.
  • oca_name(серия строки) Опциональный аргумент. Название группы OCA, к которой принадлежит порядок. Если порядок не должен принадлежать какой-либо конкретной группе OCA, должна быть пустая строка.Обратите внимание, что FMZ не поддерживает этот аргумент.~~
  • oca_type(вводная строка) необязательный аргумент. Тип группы OCA. Допустимые значения: strategy.oca.none - заказ не должен принадлежать какой-либо конкретной группе OCA; strategy.oca.cancel - заказ должен принадлежать группе OCA, где как только заказ выполняется, все другие заказы той же группы аннулируются; strategy.oca.reduce - заказ должен принадлежать группе OCA, где если выполнено X количество контрактов заказа, количество контрактов для каждого другого заказа той же группы OCA уменьшается на X.Обратите внимание, что FMZ не поддерживает этот аргумент.
  • commentДополнительные примечания к порядку.
  • when(series bool) Опциональный аргумент. Условие заказа. Заказ размещается, если условие true. Если условие false, ничего не происходит (ранее размещенный заказ с тем же ID не отменяется). Значение по умолчанию true.
  • alert_message(series string) Опциональный аргумент, заменяющий местоназначение {{strategy.order.alert_message}} при использовании в диалоговом поле Create Alerts Message.

strategy.close

Это команда для выхода из записи с указанным идентификатором. Если было несколько заказов на вход с одним и тем же идентификатором, все они выходят сразу. Если к моменту запуска команды нет открытых заказов с указанным идентификатором, команда не вступит в силу. Команда использует рыночный заказ. Каждая запись закрывается отдельным рыночным заказом.

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) позиции для закрытия. Его приоритет ниже, чем у аргумента qty. Необязательно. По умолчанию 100.
  • commentДополнительные примечания к порядку.
  • alert_message(series string) Опциональный аргумент, заменяющий местоназначение {{strategy.order.alert_message}} при использовании в диалоговом поле Create Alerts 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}} при использовании в диалоговом поле Create Alerts Message.

strategy.exit

Это команда для выхода либо из определенного входа, либо из всей рыночной позиции. Если ордер с тем же идентификатором уже в ожидании, можно изменить ордер. Если ордер на вход не был выполнен, но ордер на выход генерируется, ордер на выход будет ждать, пока ордер на вход не будет выполнен, а затем ордер на выход будет размещен. Чтобы деактивировать ордер на выход, следует использовать командную функцию strategy.cancel или strategy.cancel_all.strategy.exitЕсли вы хотите выйти несколько раз, командаstrategy.exitЕсли вы используете стоп-лосс и трейлинг-стоп, тип ордера - стоп, поэтому только один из них размещается (тот, который должен быть заполнен первым). Если все следующие аргументы профит, лимит, пропуск, стоп, трейл_пойнт, трейл_оффсет - НН, команда потерпит неудачу. Чтобы использовать рыночный ордер для выхода, следует использовать команду strategy.close или strategy.close_all.

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) позиции для закрытия. Его приоритет ниже, чем у аргумента qty. Необязательно. По умолчанию 100.
  • profit(series int/float) Опциональный аргумент. Цель прибыли (указанная в тиках). Если она указана, то лимитный ордер размещается на выходе из рыночной позиции при достижении указанной суммы прибыли (в тиках). Значение по умолчанию NaN.
  • limit(series int/float) Факультативный аргумент. Цель прибыли (требует определенной цены). Если она указана, лимитный ордер размещается для выхода из рыночной позиции по указанной цене (или лучше). Приоритет аргумента limit выше приоритета аргумента profit (вместо profit используется limit, если его значение не NaN).
  • loss(series int/float) Опциональный аргумент. Стоп-лосс (указанный в тиках). Если он указан, то стоп-ордер размещается для выхода из рыночной позиции при достижении указанной суммы потери (в тиках). Значение по умолчанию NaN.
  • stop(series int/float) Опциональный аргумент. Стоп-лосс (требует определенной цены). Если он указан, то стоп-ордер размещается для выхода из рыночной позиции по указанной цене (или хуже). Приоритет аргумента stop выше, чем приоритет аргумента loss (стап используется вместо loss, если его значение не NaN).

Больше

ПросящиеПочему стратегия Square Duplication не может быть реализована?

Изобретатели количественного измерения - мечтыХорошо, давайте проверим.

ПросящиеОптимизированный тренд-трекер

Изобретатели количественного измерения - мечтыЗдравствуйте, пожалуйста, какая именно стратегия?