Type/to search
8
Follow
1364
Followers
FMZ PINE Script Документы
Tutorials
Created 2022-05-06 14:27:06  Updated 2025-08-21 13:47:34
 24
 20876

Ключевые слова, грамматика, настройки

Структура кода

Общая структура кода в Pine:

<version> <declaration_statement> <code>

Примечание

ФМЗ поддерживает язык Pine с комментариями: однострочные комментарии//Многострочные комментарии/* */Например, в примере с комментариями:

pine
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9) // 计算MACD指标 /* plot函数在图表上画出指标线 */ plot(macdLine, color = color.blue, title='macdLine') plot(signalLine, color = color.orange, title='signalLine') plot(histLine, color = color.red, title='histLine')

Версия

Компиляторные инструкции следующего вида сообщают, в какой версии Пинь был написан сценарий:

pine
//@version=5

Вы можете пропустить в коде, что является версией 5 по умолчанию//@version=5

Заявление

Заявление определяет тип сценария, который в свою очередь определяет, что в нем разрешено, и как его использовать и выполнять. Настраивает ключевые атрибуты сценария, такие как его название, где он будет появляться, когда он будет добавлен в график, точность и формат показаний, которые он показывает, а также числовые значения, управляющие некоторыми действиями при его запуске, такие как максимальное количество изображенных объектов, которые он будет показывать в графике.indicator()илиstrategy()Заявление.

Код

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

  • Заявление переменной
  • Переоценка переменной
  • Заявление функции
  • Встроенные функции, пользовательские функции
  • ifforwhileилиswitchСтруктура и т.д.

Предложения можно составить разными способами.

  • Некоторые предложения могут быть выражены в одной строке, например, большинство заявлений переменных, содержащих только одну строку для вызова функции или однострочные заявления функции. Другие, как структуры, всегда нуждаются в нескольких строках, поскольку они требуют локального блока.
  • Глобальные высказывания в сценарии (то есть части, которые не относятся к локальным блокам) не могут быть использованы в качестве空格или制表符(таб-клавиши) начинаются. Их первый символ также должен быть первым символом строки. Строки, начинающиеся с первой строки строки, по определению являются частью глобального масштаба сценария.
  • Структурные или многострочные функции всегда требуютlocal block。 Локальный блок должен быть сжат в один значок или четыре пробела (в противном случае он будет расшифрован как последовательность кода предыдущей строки, то есть будет рассматриваться как последовательность кода предыдущей строки), и каждый локальный блок определяет другой локальный диапазон。
  • Несколько одиночных предложений могут быть соединены в один ряд, используя запятую ((,) в качестве разделительного знака.
  • В одной строке может быть комментарий, а может быть только комментарий.
  • Строки также могут быть завершены (продолжение в нескольких строках).

Например, включает в себя три локальных блока, один в заявлениях с функциями на заказ, два в заявлениях с переменными с использованием if-структуры, следующим образом:

pine
indicator("", "", true) // 声明语句(全局范围),可以省略不写 barIsUp() => // 函数声明(全局范围) close > open // 本地块(本地范围) plotColor = if barIsUp() // 变量声明 (全局范围) color.green // 本地块 (本地范围) else color.red // 本地块 (本地范围) runtime.log("color", color = plotColor) // 调用一个内置函数输出日志 (全局范围)

Код смены

Длинные строки могут быть разделены на несколько строк, или "упакованы". Упакованные строки должны быть сжаты в любое количество пробелов, если только они не являются кратными числами 4 (эти границы используются для сжатия локальных блоков).

pine
a = open + high + low + close

может быть упакован в (заметьте, что количество пробелов в каждой строке не является кратным количеству 4):

pine
a = open + high + low + close

Длинный вызов plot ((() может быть упакован в。

pine
close1 = request.security(syminfo.tickerid, "D", close) // syminfo.tickerid 当前交易对的日线级别收盘价数据系列 close2 = request.security(syminfo.tickerid, "240", close) // syminfo.tickerid 当前交易对的240分钟级别收盘价数据系列 plot(ta.correlation(close, open, 100), // 一行长的plot()调用可以被包装 color = color.new(color.purple, 40), style = plot.style_area, trackprice = true)

Однако, поскольку локальный блок грамматически должен начинаться со сжатия (((4 пробела или 1 значок), при разделе его на следующую строку, продолжение части предложения должно начинаться с более чем одного сжатия (((не равняется кратному количеству 4 пробелов)). Например:

pine
test(c, o) => ret = c > o ? (c > o+5000 ? 1 : 0): (c < o-5000 ? -1 : 0) a = test(close, open) plot(a, title="a")

Временная последовательность

Временная последовательность не является типом или форматом данных, а является базовым структурным понятием в языке PINE. Она используется для хранения последовательно меняющихся во времени значений, каждое из которых соответствует определенной точке времени. Такая структура понятия временной последовательности подходит для обработки и записи серии данных, изменяющихся со временем.
Встроенные переменныеopenНапример,openВстроенная переменная записывает стоимость открытия каждого K-образа BAR, если этоopenЭто 5 минут циклов K-линии.openВ переменной записывается цена открытия каждые 5 минут K строки BAR{column}.openДля того, чтобы ссылаться на предыдущие значения в временной последовательности, мы используем[]Исторический оператор, когда политика выполняется на некоторой K-линии BAR,open[1]Означает, что цена, по которой открывается текущая K-линия BAR, соответствует начальной цене предыдущей K-линии BAR.

ХотяВременная последовательностьСтроение данных "аресты" легко вспомнить, хотя в языке PINE также есть типы массивов. Однако они и хронологические последовательности - это совершенно разные понятия.

С помощью PINE можно легко вычислить суммированные значения цены закрытия, используя только встроенные функции языка PINE, без использования циклической структуры, такой как for.ta.cum(close)Для примера, нам нужно вычислить среднее значение разницы между максимальным и минимальным значениями последних 14 K-линий BAR (то есть 14 K-линий BAR, наиболее близких к текущему моменту выполнения кода).ta.sma(high - low, 14)

Результат вызова функции на временной последовательности также оставляет след на временной последовательности.[]Исторический оператор ссылается на предыдущие значения. Например, проверка того, превышает ли закрытие текущей K-линии BAR максимальное значение наивысшего значения в последних 10 K-линий BAR (без учета текущей K-линии BAR). Можно написать:breach = close > ta.highest(close, 10)[1]Также можно написать:breach = close > ta.highest(close[1], 10)Так что...ta.highest(close, 10)[1]иta.highest(close[1], 10)Это равноценно.

Проверка выполняется следующим кодом:

pine
strategy("test pine", "test", true) a = ta.highest(close, 10)[1] b = ta.highest(close[1], 10) plotchar(true, title="a", char=str.tostring(a), location=location.abovebar, color=color.red) plotchar(true, title="b", char=str.tostring(b), location=location.belowbar, color=color.green)

Вышеуказанный тест-код выводит значения a и b на каждом BAR в их соответствующем временном ряду, и можно увидеть, что значения a и b всегда равны, поэтому эти два способа выражения эквивалентны.

Ссылки на исторические данные (history-referencing)

В Trading View есть ограничение на количество исторических ссылок (до 5000), например, следующий код:

pine
//@version=6 indicator("test") ema = ta.ema(close, 10000) // 报错:Error on bar 0: The 'ema'->'sum' function references too many historical candles (10000), the limit is 5000. plot(ema, "ema") // pre10000 = ema[10000] // 报错:Invalid number of bars back specified in the history-referencing operator. It accepts a value between 0 and 5000. // plot(pre10000, "pre10000")

На FMZ используется языковая политика PINE "Статья сделок" в "Классической библиотеке сделок на языке Pine" с параметром "Самое длинное число циклов переменных" для определения максимального количества строк ссылочных данных.

img

pine
indicator("test") ema = ta.ema(close, 1000) // ema = ta.ema(close, 3000) 则报错:Invalid number 3000 of bars back specified in the history-referencing operator. It accepts a value between 0 and 2000. plot(ema, "ema")

Параметр "наибольшее число циклов переменной" не должен быть слишком большим, в соответствующей политике можно использовать диапазон цитирования данных.

Параметры модуляции класса класса транзакций языка Pine

Показания по настройке параметров встроенного шаблона стратегии PINE "Лингвистическая библиотека сделок класса Pine".

img

Настройки торгов

  • Исполнение
    Модель закрытия цены: модель выполняется только после того, как текущий BAR заканчивается, а сделка выполняется, когда начинается нижний BAR.
    Моделирование цены в режиме реального времени: при каждом изменении цены моделирование выполняется, и сделки выполняются сразу после получения сигнала.
  • Количество открытых позиций по умолчанию: если инструкция по торговле не указывает количество сделок, то сделки выполняются в соответствии с количеством, установленным для этого.
  • Максимальная единовременная торговля: в зависимости от фактического раскрытия, в сочетании с данной параметром, определяется максимальное количество заказов на каждый заказ, чтобы избежать удара по диапазону.
  • Количество пунктов скольжения:定价货币精度Параметр и этот параметр определяют скольжение цены на момент заказа. Например, точность ценообразования установлена на 2, то есть точно до второго знака запятой, точно до 0,01. Таким образом, каждая точка скольжения цены представляет собой 0,01 ценообразования.
  • Наибольшее число циклов переменной: количество BAR для K-линий, влияющих на график, иjavascriptВызов в стратегииSetMaxBarLenФункции одинаковые.

Фьючерсные опционы

  • Код разновидности: Код контракта, который необходимо установить только в том случае, если объект биржи является объектом нетоварной биржи.
  • Минимальное количество контрактов: минимальный объем контрактов на момент заказа.

Реальные опционы

  • Автоматическое восстановление: автоматическое восстановление до остановки последней стратегии.
  • Количество повторных попыток заказа: если заказ не сработал, он будет аннулирован, а заказ будет перезадан. Этот параметр используется для определения максимального количества повторных попыток.
  • Интервал сетевого опроса ((миллисекунд): действует только для протокола REST, контролирует интервал сетевых запросов, избегает слишком частого запроса, превышающего ограничения биржи.
  • Время синхронизации аккаунтов (в секундах): период времени синхронизации данных аккаунтов.
  • Время синхронизации позиций после открытия позиции ((миллисекунд): только для некоторых бирж, которые повторно открывают позиции, вызванные задержкой данных, установка большего времени синхронизации может облегчить такие проблемы.
  • Умножение рычагов: Установите множитель рычагов

Торговля наличными деньгами, другие настройки

  • Одноразовый объем: по умолчанию одноразовый объем действует только для наличных товаров.
  • Минимальный объем: минимальный объем сделки.
  • Точность ценообразования: точность цены, то есть меньшая цифра цены.
  • Точность вида сделки: точность следующего заказа, т.е. маленькая цифра следующего заказа.
  • Обработка: для некоторых данных, рассчитанных на основе этой настройки, 0.002 означает 2 тысячных.
  • Промежуточная статистика убытков: использование статистики убытков только для отображения на диске.
  • Неудачная повторная попытка ((миллисекунд): интервал повторной попытки при неудачном сетевом запросе.
  • Использование агента: действует только для протокола REST.
  • Скрыть распространенные ошибки сети: Скрыть распространенные ошибки в регистре.
  • Переключение на базовый адрес: действует только для протокола REST.
  • Отправка уведомлений: отправка сообщений в почтовый ящик и т.д.

Оформить заказ

Открытие позиции

pine
strategy(title = "open long example", pyramiding = 3) // pyramiding 允许的同方向下单的次数 strategy.entry("long1", strategy.long, 0.01) // 市价开多仓,指定分组标签为long1 strategy.entry("long2", strategy.long, 0.02, when = close > ta.ema(close, 10)) // 条件触发,执行下单,市价开多仓 strategy.entry("long3", strategy.long, 0.03, limit = 30000) // 指定(较低的)价格,计划下买单订单,等待成交开仓,限价开仓

Равновесие

pine
strategy(title = "close long example", pyramiding = 2) // pyramiding 允许的同方向下单的次数 strategy.entry("long1", strategy.long, 0.1) // 市价开多仓,指定分组标签为long1 strategy.entry("long2", strategy.long, 0.1) // 市价开多仓,指定分组标签为long2 strategy.close("long1", when = strategy.position_size > 0.1, qty_percent = 50, comment = "close buy entry for 50%") // 平仓,指定平掉分组标签为long1的仓位的50%持仓 strategy.close("long2", when = strategy.position_size > 0.1, qty_percent = 80, comment = "close buy entry for 80%") // 平仓,指定平掉分组标签为long2的仓位的80%持仓

Торговый механизм

Механизм удержания позиций в языке PINE аналогичен однонаправленному удержанию позиций. Например, при удержании позиций в многостороннем направлении ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((

План действий

При заказе с помощью команды "заказать" при заказе, если не указана какая-либо цена, по умолчанию считается, что это рыночная цена. Кроме рыночной цены, можно также заказать через планку, которая не будет действовать сразу.Фиксированный диск/ретроспективаВ таблице "Планируемые заказы" в разделе "Информация о состоянии на момент выполнения стратегии" можно увидеть: "Система действительно заказывает только тогда, когда рыночные цены в реальном времени соответствуют условиям, которые вызывают эти плановые заказы". Таким образом, небольшие отклонения в цене совершения этих заказов являются нормальными.strategy.entryКогда мы заказываем функции, мы можем указатьlimitstopПараметры

var isTrade = false if not barstate.ishistory and not isTrade isTrade := true strategy.entry("test 1", strategy.long, 0.1, stop=close*1.3, comment="test 1 order") // stop strategy.entry("test 2", strategy.long, 0.2, limit=close*0.7, comment="test 2 order") // limit strategy.entry("test 3", strategy.short, 0.3, stop=close*0.6, limit=close*1.4, comment="test 3 order") // stop-limit
  • Ограничительный заказ

    Установление предельной цены заказа, когда заказ является покупкой (т.е.directionПараметры:strategy.long), заказ может быть инициирован только в том случае, если текущая рыночная цена ниже этой цены.
    При заказе на продажу (т.е.directionПараметры:strategy.shortПри этом заказ может быть инициирован только в том случае, если текущая рыночная цена превышает эту цену.

  • Заказ stop

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

  • stop-limit заказ

    Можно одновременноlimitstopПараметр, заказ будет инициирован по первой цене, которая соответствует условиям.

Процентная доля прав

pine
//@version=5 strategy("Percent of Equity Order", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // 简单的均线交叉策略 longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28)) shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28)) // 如果均线交叉条件满足,则买入或卖出 if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short)

Определеноdefault_qty_type=strategy.percent_of_equityПосле, настройкиdefault_qty_valueВ процентном соотношении ((0 ~ 100), 1 - это 1%. Заказ рассчитывается по количеству валют в счете. Например: текущий счет имеет 10000 USDT, настройка заказа на 1%, то есть заказ с использованием 100 USDT в масштабе (расчет по текущей цене при продаже).

Заявление, логическая структура, ключевые слова

var

var - ключевое слово для распределения и одноразовой инициализации переменных.
Обычно, синтаксис присвоения переменных, не содержащий ключевое слово var, приводит к тому, что значение переменной покрывается при каждом обновлении данных. Наоборот, когда используются ключевые слова var, переменные распределяются, несмотря на обновление данных, и они могут сохранять статус папки, изменяя ее только в том случае, если выполняются условия в if-expressions.

var variable_name = expression

Объяснение:

  • variable_name- любое имя пользовательской переменной, разрешенной в Pine Script, которое может содержать латинские символы, цифры и зачеркивание в верхней и нижней буквы_), но не с цифрами в начале).
  • expression- любое арифметическое выражение, как определение регулярной переменной.

Пример

pine
// Var keyword example var a = close var b = 0.0 var c = 0.0 var green_bars_count = 0 if close > open var x = close b := x green_bars_count := green_bars_count + 1 if green_bars_count >= 10 var y = close c := y plot(a, title = "a") plot(b, title = "b") plot(c, title = "c")

Переменная 'a' сохраняет закрытие первого столбца каждой строки в ряду.
Переменная 'b' сохраняет ценовую оценку на закрытие первой в серии ценовой палки на зеленый кремний.
Переменная 'c' сохраняет закрытие десятой в серии зеленой картошки.

На FMZ, это реальные цены модели, закрытие цены модели, дляvarvaripПеременные в заявлении тестируются следующим кодом:

pine
strategy("test pine", "test 1", true) // 测试 var varip var i = 0 varip ii = 0 // 将策略逻辑每轮改变的i、ii打印在图上 plotchar(true, title="ii", char=str.tostring(ii), location=location.abovebar, color=color.red) plotchar(true, title="i", char=str.tostring(i), location=location.belowbar, color=color.green) // 每轮逻辑执行都给i、ii递增1 if true i := i + 1 ii := ii + 1
  • Модель цен в реальном времени
    Вышеуказанный тест-код выполняется в два этапа: 1-й этап исторической K-линии; 2-й этап реальной K-линии;varvaripПеременные i и ii в заявлении выполняют увеличительную операцию при каждом выпуске кода стратегии, потому чтоif trueТаким образом, можно увидеть, что число, отображаемое на линии BAR результатов обратной измерения, увеличивается в 1 раз. Когда этап исторической линии K заканчивается, начинается этап реальной линии K.varvaripИз-за того, что это реальная модель цены, в K-линии BAR каждый изменение цены выполняется один раз, и поэтому в K-линии BAR каждый изменение цены выполняется один раз, а в K-линии BAR - один раз.i := i + 1иii := ii + 1Все выполняется один раз. Разница заключается в том, что ii изменяется каждый раз. Хотя i также изменяется каждый раз, но при следующем раунде выполнения логики стратегии предыдущие значения возвращаются, и значение i не обновляется до тех пор, пока текущая K-линия BAR не будет завершена (то есть при следующем раунде выполнения логики стратегии предыдущие значения не будут возвращены).

  • Модель цены закрытия
    Поскольку модель закрытия цены выполняет стратегическую логику только после того, как K-линия BAR заканчивается. Таким образом, в модели закрытия цены этапы исторической K-линии и этапы реальной K-линии,varvaripУказанные переменные в приведенных выше примерах выступают в полном соответствии с увеличением BAR на каждую K-линию в 1 <unk> .

varip

varip ((var intrabar persist) - ключевое слово, используемое для распределения и разовой инициализации переменных. Оно похоже на ключевое слово var, но переменные с использованием декларации varip сохраняют свои значения между обновлениями K-линий в реальном времени.

varip variable_name = expression

Объяснение:

  • variable_name- любое имя пользовательской переменной, разрешенное в сценарии Pine, может содержать латинские символы в верхних и нижних словах, цифры и зачеркивание_), но не с цифрами в начале).
  • expression- любое арифметическое выражение, как при определении регулярной переменной. На первой K-линии выражение вычисляется только один раз и распределяется переменной один раз.

Пример

pine
// varip varip int v = -1 v := v + 1 plot(v)

При использовании var, график возвращает значение bar_index. При использовании varip, то же самое происходит на исторической K-линии, но на реальной K-линии график возвращает значение, которое увеличивается на 1 для каждого tick.

Примечание
Можно использовать только с простыми типами, такими как float, int, bool, string, и с массивами этих типов.

true

Отображает значение переменной типа буль, или используется при выраженииСравнениеилиЛогикаЗначение, которое может быть вычислено в операторе.

Примечание
Смотрите такжеСравнениеОператор иЛогикаОписание оператора:

См. также
bool

false

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

Примечание
Смотрите такжеСравнениеОператор иЛогикаОписание оператора:

См. также
bool

if

If-ссылка определяет блок ссылки, который должен быть выполнен, чтобы удовлетворить условию выражения.

Общий код:

var_declarationX = if condition var_decl_then0 var_decl_then1 ... var_decl_thenN return_expression_then else if [optional block] var_decl_else0 var_decl_else1 ... var_decl_elseN return_expression_else else var_decl_else0 var_decl_else1 ... var_decl_elseN return_expression_else

Примечание
var_declarationX- эта переменная получает значение if-ссылки
condition- используйте блок ссылки, если условие truethenЛогика вvar_decl_then0var_decl_then1Если условие false, используйте блокelse ifилиelseЛогика вvar_decl_else0var_decl_else1И так далее.
return_expression_then , return_expression_else- последнее выражение в модуле или выражение из блока else возвращает конечное значение фразы. Если объявление переменной в конце, то его значение будет результатом.

Тип возвращаемого значения if зависит отreturn_expression_thenиreturn_expression_elseТипы . Когда они работают на TradingView, их типы должны совпадать: когда у вас есть значение строки в блоке else, невозможно вернуть целое число из блока then. Когда они работают на FMZ, следующий пример не ошибается, когда y значение принимает значение "open" и число, когда он составляется на графике, составляет n/a.

Пример

pine
// This code compiles x = if close > open close else open // This code doesn’t compile by trading view // y = if close > open // close // else // "open" plot(x)

Можно пропустить.elseБлок. В этом случае, если условие false, то для переменной var_declarationX присваивается <unk>empty (на, false или <unk>):

Пример

pine
// if x = if close > open close // If current close > current open, then x = close. // Otherwise the x = na. plot(x)

Можно использовать множество <unk>else if<unk> блоков или вообще не использовать <unk>then<unk>, <unk>else if<unk>, <unk>else<unk> блоков перемещается четыре пробела:

Пример

pine
// if x = if open > close 5 else if high > low close else open plot(x)

Можно игнорироватьifРезультат высказывания ((<unk>var_declarationX=<unk> может быть пропущен) <unk>. Это может быть полезно, если вам нужны побочные эффекты выражения, например, в стратегических сделках:

Пример

pine
if (ta.crossover(high, low)) strategy.entry("BBandLE", strategy.long, stop=low) else strategy.cancel(id="BBandLE")

If-заявления могут содержать друг друга:

Пример

pine
// if float x = na if close > open if close > close[1] x := close else x := close[1] else x := open plot(x)

for

Структура 'for' позволяет выполнять несколько предложений повторно:

[var_declaration =] for counter = from_num to to_num [by step_num] statements | continue | break return_expression

var_declaration- выборочное заявление переменной, которое будет присвоено значение return_expression для обратного круга.
counter- переменная, которая сохраняет значение счетчика оборотов, увеличивается/уменьшается на 1 или step_num в каждой итерации оборота.
from_num- Начальные значения счетчика. Разрешается использование thresholds int/float thresholds/expressions.
to_num- конечная величина счетчика. Цикл прерывается, когда счетчик больше, чем to_num (или меньше, чем to_num в случае, когда from_num > to_num). Использование thresholds int/float thresholds/expressions разрешено, но они оцениваются только при первой итерации цикла.
step_num- Увеличение/уменьшение значения счетчика. Оно является выборочным. По умолчанию значение +1 или -1, в зависимости от того, какой из них является наибольшим из from_num или to_num. При использовании значения счетчик также увеличивается/уменьшается в зависимости от наибольшего из from_num или to_num, поэтому знак +/- для step_num является выборочным.
statements | continue | break- Любое количество фраз, или ключевые слова 'continue' или 'break', сжатые в 4 пробела или одну табуляцию.
return_expression- Возвратные значения цикла, если они существуют, присваиваются переменным в var_declaration. Если цикл выходит из-за ключевого слова <unk>continue<unk> или <unk>break<unk>, то возвратные значения цикла - это значения последней переменной, присвоенной перед выходом из цикла.
continue- ключевое слово, которое может быть использовано только в цикле. Оно приводит к выполнению следующей итерации цикла
break- Ключевые слова для выхода из круга.

Пример

pine
// Here, we count the quantity of bars in a given 'lookback' length which closed above the current bar's close qtyOfHigherCloses(lookback) => int result = 0 for i = 1 to lookback if close[i] > close result += 1 result plot(qtyOfHigherCloses(14))

См. также
for...in while

for...in

for...inСтруктура позволяет выполнять несколько заявлений для каждого элемента в массиве. Она может быть использована с любыми параметрами:array_element, или используется вместе с двумя параметрами:[index, array_element]Вторая форма не влияет на функцию цикла. Она отслеживает индекс текущей итерации в первой переменной модуля.

[var_declaration =] for array_element in array_id statements | continue | break return_expression [var_declaration =] for [index, array_element] in array_id statements | continue | break return_expression

var_declaration- заявление о выборе переменной, которая будет передана в циклreturn_expressionЗначение
index- выборочный переменный, который отслеживает текущий икодированный индекс. Индекс начинается с 0. Переменный неизменен в циклическом теле.array_elementВ подгруппе
array_element- содержит переменную для каждого элемента последовательного ряда, который будет обрабатываться в цикле. Эта переменная неизменна в циклическом теле.
array_id- Идентификатор массива, который возвращает циклическую итерацию.
statements | continue | break- Любое количество фраз, или ключевые слова 'continue' или 'break', сжатые в 4 пробела или одну табуляцию.
return_expression- возвращаемое значение цикла распределено наvar_declarationЕсли цикл выходит из-за ключевых слов 'continue' или 'break', то возвращаемым значением цикла является значение последнего присвоенного значения перед выходом из цикла.
continue- ключевое слово, которое может быть использовано только в цикле. Оно приводит к выполнению следующей итерации цикла
break- Ключевые слова для выхода из круга.

Допускается изменение элементов массива или его размера в цикле.
Здесь мы используемfor...inОднопараметрическая форма для определения того, на каждой K-линии сколько OHLC-значений K-линии больше, чем 'close' - SMA:

Пример

pine
// Here we determine on each bar how many of the bar's OHLC values are greater than the SMA of 'close' values float[] ohlcValues = array.from(open, high, low, close) qtyGreaterThan(value, array) => int result = 0 for currentElement in array if currentElement > value result += 1 result plot(qtyGreaterThan(ta.sma(close, 20), ohlcValues))

Здесь, мы используем два параметра фор...in, чтобы вывести нашуisPosЗначение массива будет trueКогда они были у нас.valuesArrayСоответствующее значение в массиве является правильным:

Пример

pine
// for...in var valuesArray = array.from(4, -8, 11, 78, -16, 34, 7, 99, 0, 55) var isPos = array.new_bool(10, false) for [index, value] in valuesArray if value > 0 array.set(isPos, index, true) if barstate.islastconfirmedhistory runtime.log(str.tostring(isPos))

См. также
for while array.sum array.min array.max

while

whileСтроки допускают условную итерацию блоков локального кода.

variable_declaration = while boolean_expression ... continue ... break ... return_expression

Объяснение:
variable_declaration- Избирательные заявления переменных.return expressionМожно задать значение для этой переменной.
boolean_expression- Если true, то выполняетсяwhileЛокальный блок фразы. Если false, то вwhileПосле высказывания продолжите выполнение сценария.
continue - continueКлючевые слова ведут к следующему размножению цикла.
break - breakКлючевые слова приводят к завершению цикла.whileПосле высказывания возвращается.
return_expression- Подарок.whileВыберите строку, которая возвращает значение фразы.

Пример

pine
// This is a simple example of calculating a factorial using a while loop. int i_n = input.int(10, "Factorial Size", minval=0) int counter = i_n int factorial = 1 while counter > 0 factorial := factorial * counter counter := counter - 1 plot(factorial)

Примечание
НачалоwhileЛокальный блок после строки должен быть сжат на четыре пробела или на один значок.whileЦиклwhileСледующий Булевой экспресс должен в конечном итоге стать ложным, или должен быть выполнен.break

switch

Оператор switch передает контроль над одним из нескольких предложений в зависимости от условий и значения выражения.

[variable_declaration = ] switch expression value1 => local_block value2 => local_block ... => default_local_block [variable_declaration = ] switch boolean_expression1 => local_block boolean_expression2 => local_block ... => default_local_block

Switch с выражением:

Пример

pine
// Switch using an expression string i_maType = input.string("EMA", "MA type", options = ["EMA", "SMA", "RMA", "WMA"]) float ma = switch i_maType "EMA" => ta.ema(close, 10) "SMA" => ta.sma(close, 10) "RMA" => ta.rma(close, 10) // Default used when the three first cases do not match. => ta.wma(close, 10) plot(ma)

Выберите "switch" без выражения:

Пример

pine
strategy("Switch without an expression", overlay = true) bool longCondition = ta.crossover( ta.sma(close, 14), ta.sma(close, 28)) bool shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28)) switch longCondition => strategy.entry("Long ID", strategy.long) shortCondition => strategy.entry("Short ID", strategy.short)

Возвращение
Значение последнего выражения в выполняемом блоке локальных выражений.

Примечание
Использовать толькоlocal_blockПример илиdefault_local_blockПервое.default_local_blockТолько с=>Знак вводится вместе и выполняется только в том случае, если предыдущий блок не выполнен. ЕслиswitchРезультат высказывания присвоен переменной и не указанdefault_local_blockЕсли нет исполненияlocal_block, возвращаетna│ │ │switchРезультат высказывания распределяется на переменнуюlocal_blockПример должен возвращать значения того же типа.

См. также
if ?:

series

series - ключевое слово, обозначающее тип серии данных.seriesКлючевые слова обычно не нужны.

Оператор

=

Используется для присвоения значения переменной, но только при декларировании переменной ((впервые используется))

:=

Оператор присвоения, присваивающий значение левой переменной. Используется для присвоения значения переменной, ранее заявленной.

!=

не равен │ выражениям любого типа │

expr1 != expr2

Возвращение
Бульвария, или ряд бульварий.

%

Модиальное число ((дополнительное целое число) <unk> применимо к числовым выражениям <unk>

expr1 % expr2

Возвращение
Целые числа или значения с плавающей точкой, или ряд значений.

Примечание
В сценарии Пайна, при исчислении остатка целых чисел, сделка будет прервана. То есть, ее окружность будет вписана в минимальное абсолютное значение. Прибыль будет иметь тот же символ, что и дивиденды.

Пример: -1 % 9 = -1 - 9 * truncate ((-1/9) = -1 - 9 * truncate ((-0.111) = -1 - 9 * 0 = -1。

%=

Модульные присвоения. Применяются для числовых выражений.

expr1 %= expr2

Пример

pine
// Equals to expr1 = expr1 % expr2. a = 3 b = 3 a %= b // Result: a = 0. plot(a)

Возвращение
Целые числа или значения с плавающей точкой, или ряд значений.

*

Умножение <unk> применяется к числовым выражениям <unk>

expr1 * expr2

Возвращение
Целые числа или значения с плавающей точкой, или ряд значений.

*=

Применение умножения к числовым выражениям

expr1 *= expr2

Пример

pine
// Equals to expr1 = expr1 * expr2. a = 2 b = 3 a *= b // Result: a = 6. plot(a)

Возвращение
Целые числа или значения с плавающей точкой, или ряд значений.

+

Добавление или однозначное положительное число. Применяется для числовых выражений или строки.

expr1 + expr2
+ expr

Возвращение
Бинарные строки+Возвращает объединение express1 и express2
Цифры возвращают целые числа или значения с плавающей точкой, или ряд значений:
Бинарный '+' возвращает express1 плюс express2。
1 юта + 1 юта возвращает express ((( не добавляет ничего к симметрии оператора 1 юта) [2].

Примечание
Вы можете использовать числовые операторы арифметики, а также ряды переменных. В случае ряда операторы применяются к элементам.

+=

Применение арифметического назначения <unk> применимо к числовым выражениям или строкам <unk>

expr1 += expr2

Пример

pine
// Equals to expr1 = expr1 + expr2. a = 2 b = 3 a += b // Result: a = 5. plot(a)

Возвращение
Для строки возвращает последовательность expres1 и expres2. Для числа возвращает значение целых чисел или плавающих точек, или ряд значений.

Примечание
Вы можете использовать числовые операторы арифметики, а также ряды переменных. В случае ряда операторы применяются к элементам.

-

Снижение или отрицательное число. Применяется для числовых выражений.

expr1 - expr2
- expr

Возвращение
Возвращает число, число или ряд значений:
Бинарный '+' возвращает express1 минус express2。
Одной единицы-Вернуть отрицательную форму express.

Примечание
Вы можете использовать числовые операторы арифметики, а также ряды переменных. В случае ряда операторы применяются к элементам.

-=

Определение вычитания. Применимо к числовым выражениям.

expr1 -= expr2

Пример

pine
// Equals to expr1 = expr1 - expr2. a = 2 b = 3 a -= b // Result: a = -1. plot(a)

Возвращение
Целые числа или значения с плавающей точкой, или ряд значений.

/

Исключение: применяется к числовым выражениям.

expr1 / expr2

Возвращение
Целые числа или значения с плавающей точкой, или ряд значений.

/=

Определение исключения <unk> применяется к числовым выражениям.

expr1 /= expr2

Пример

pine
// Equals to expr1 = expr1 / expr2. a = 3 b = 3 a /= b // Result: a = 1. plot(a)

Возвращение
Целые числа или значения с плавающей точкой, или ряд значений.

<

Меньше ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠

expr1 < expr2

Возвращение
Бульвария, или ряд бульварий.

<=

меньше или равно ≠ ≠ ≠ ≠ ≠ ≠

expr1 <= expr2

Возвращение
Бульвария, или ряд бульварий.

==

Равным │ применимо к любому типу выражения │

expr1 == expr2

Возвращение
Бульвария, или ряд бульварий.

=>

Оператор '=>' используется для объявления пользовательски определенных функций иswitchВ комментариях.

Синтаксис функционной декларации:

<identifier>([<parameter_name>[=<default_value>]], ...) => <local_block> <function_result>

Один.<local_block>Это нулевое число или больше.
<function_result>является переменной, выражением или модулем.

Пример

pine
// single-line function f1(x, y) => x + y // multi-line function f2(x, y) => sum = x + y sumChange = ta.change(sum, 10) // Function automatically returns the last expression used in it plot(f1(30, 8) + f2(1, 3))

Примечание
Более подробную информацию о функциях пользовательского определения вы можете найти в руководстве пользователя на страницах с функциями заявления и с библиотекой скриптов.

>

Больше чем . Применяется для числовых выражений .

expr1 > expr2

Возвращение
Бульвария, или ряд бульварий.

>=

Больший или равен │ применительно к числовым выражениям │

expr1 >= expr2

Возвращение
Бульвария, или ряд бульварий.

?:

Трехмерный условный оператор.

expr1 ? expr2 : expr3

Пример

pine
// Draw circles at the bars where open crosses close s2 = ta.cross(open, close) ? math.avg(open,close) : na plot(s2, style=plot.style_circles, linewidth=2, color=color.red) // Combination of ?: operators for 'switch'-like logic c = timeframe.isintraday ? color.red : timeframe.isdaily ? color.green : timeframe.isweekly ? color.blue : color.gray plot(hl2, color=c)

Возвращение
Если express1 оценивается как true, то express2 - как true, в противном случае - как express3. Значения нуля ((0 и NaN+, Infinity,-Infinity) считаются false, а все остальные значения - как true.

Примечание
Если вам это не нужно, используйте na в качестве ветви <unk>else<unk>.
Вы можете использовать два или более операторов: для реализации фразы, подобной фразе фразы "switch" (см. пример выше).
Вы можете использовать числовые операторы арифметики, а также ряды переменных. В случае ряда операторы применяются к элементам.

См. также
na

[]

Подсерия ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠

expr1[expr2]

Пример

pine
// [] can be used to "save" variable value between bars a = 0.0 // declare `a` a := a[1] // immediately set current value to the same as previous. `na` in the beginning of history if high == low // if some condition - change `a` value to another a := low plot(a)

Возвращение
Ряд значений.

См. также
math.floor

and

Логика AND ≠ применима к булевым выражениям ≠

expr1 and expr2

Возвращение
Бульвария, или ряд бульварий.

or

Логика OR。 применяется к булевым выражениям。

expr1 or expr2

Возвращение
Бульвария, или ряд бульварий.

not

Логическое обратное ((NOT) <unk> применимо к булевым выражениям <unk>

not expr1

Возвращение
Бульвария, или ряд бульварий.

Ключевые слова типа данных

bool

Ключевое слово типа bool для явно заявляемых переменных или параметров. Значения переменной "Bool" могут быть true, false или na.

Пример

pine
// bool bool b = true // Same as `b = true` b := na plot(b ? open : close)

Примечание
Ясное упоминание типа в заявлении переменной является выборочным, если только он не инициирован na. Узнайте больше о типе Pine на странице руководства пользователя системы типов.

См. также
var varip int float color string true false

int

Ключевое слово типа int () для явно заявляемых переменных или параметров.

Пример

pine
// int int i = 14 // Same as `i = 14` i := na plot(i)

Примечание
Ясное упоминание типа в заявлении переменной является выборочным, если только он не инициирован na. Узнайте больше о типе Pine на странице руководства пользователя системы типов.

См. также
var varip float bool color string

float

Ключевое слово типа float для явно заявляемых переменных или параметров.

Пример

pine
// float float f = 3.14 // Same as `f = 3.14` f := na plot(f)

Примечание
Ясное упоминание типа в заявлении переменной является выборочным, если только он не инициализирован na.

См. также
var varip int bool color string

string

Ключевое слово типа "string", используемое для явно декларируемых переменных или параметров.

Пример

pine
// string string s = "Hello World!" // Same as `s = "Hello world!"` // string s = na // same as "" plot(na, title=s)

Примечание
Ясное упоминание типа в заявлении переменной является выборочным, если только он не инициирован na. Узнайте больше о типе Pine на странице руководства пользователя системы типов.

См. также
var varip int float bool str.tostring str.format

color

Ключевое слово типа "color", используемое для явно декларируемых переменных или параметров.

Пример

pine
// color color textColor = color.green if barstate.islastconfirmedhistory runtime.log("test", textcolor = textColor)

Примечание
Цветовое письмо имеет следующий формат: #RRGGBB или #RRGGBBAA. Буквенные пары представляют шестнадцатизначные значения от 00 до FF ((десятизначные от 0 до 255), где RR, GG и BB пары являются значениями доли красного, зеленого и синего цвета. AA - цветовая прозрачность (или доля алфа), где 00 не видна, а FF не прозрачна.
Ясное упоминание типа в заявлении переменной является выборочным, если только он не инициирован na. Узнайте больше о типе Pine на странице руководства пользователя системы типов.

См. также
var varip int float string color.rgb color.new

array

Ключевые слова для явно декларируемых переменных или параметров.array.new<type>,array.fromФункция создает объект массива ((или ID) <unk>.

Пример

pine
// array array<float> a = na a := array.new<float>(1, close) plot(array.get(a, 0))

Примечание
Объекты массива всегда имеют форму массивных серий.

См. также
var array.new array.from

Objects

Объекты языка PINE являются примером пользовательско-определяемых типов (UDT), которые можно понимать как безметодные классы, позволяющие пользователям создавать в стратегии пользовательские типы, организующие различные значения в одном объекте.

Определение типа

Давайте определим тип "order" для хранения информации о заказах:

pine
type order float price float amount string symbol
  • использоватьtypeТип объявления ключевых слов:
  • За ключевым словом type следует название типа.
  • В первой строке type определяется название типа, а затем в четырех пробелах определяется поле, содержащее данный тип.
  • Каждое поле должно указывать свой тип данных, например, int, float, string.

Создание объекта

Используйте заявленный тип, вызовnew()Функция создает объект:

pine
order1 = order.new()
pine
order1 = order.new(100, 0.1, "BTC_USDT")
pine
order1 = order.new(amount = 0.1, symbol = "BTC_USDT", price = 100)

Можно создать пустые объекты:

pine
order order1 = na

Вот пример из жизни:

pine
type order float price float amount string symbol if strategy.position_size == 0 and open > close strategy.entry("long", strategy.long, 1) order1 = order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker) // runtime.log(order1) // 输出 {"data":{"price":46002.8,"amount":1,"symbol":"swap"},"_meta":0,"_type":"order"}

Примером может служить следующее:

pine
order1 = order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker)

Также можно написать в следующей форме:

pine
order order1 = na order1 := order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker)

Тип объекта Использование ключевого слова var

pine
//@version=5 indicator("Objects using `var` demo") //@type A custom type to hold index, price, and volume information. type BarInfo int index = bar_index float price = close float vol = volume //@variable A `BarInfo` instance whose fields persist through all iterations, starting from the first bar. var BarInfo firstBar = BarInfo.new() //@variable A `BarInfo` instance declared on every bar. BarInfo currentBar = BarInfo.new() // Plot the `index` fields of both instances to compare the difference. plot(firstBar.index, "firstBar") plot(currentBar.index, "currentBar")

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

  • firstBar объявлен с использованием ключевого слова var, поэтому его поле ((index, price, vol) будет сохранять свои значения в каждой итерации, начиная с первого элемента и заканчивая последним.
  • Объект currentBar не использует заявку ключевого слова var, поэтому его поле будет переинициализировано в каждой строке и будет иметь новый объект в каждой итерации.

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

Тип объекта для использования ключевых слов varip

pine
//@version=5 indicator("Objects using `varip` fields demo") //@type A custom type that counts the bars and ticks in the script's execution. type Counter int bars = 0 varip int ticks = 0 //@variable A `Counter` object whose reference persists throughout all bars. var Counter counter = Counter.new() // Add 1 to the `bars` and `ticks` fields. The `ticks` field is not subject to rollback on unconfirmed bars. counter.bars += 1 counter.ticks += 1 // Plot both fields for comparison. plot(counter.bars, "Bar counter", color.blue, 3) plot(counter.ticks, "Tick counter", color.purple, 3)

Использование ключевого слова varip в Pine позволяет указать, что поле с объектом будет сохраняться в течение всего выполнения сценария, а не будет перемещаться в неизвестном столбце.
В заявлениях типа Counter поле bars не использует ключевое слово varp, поэтому в каждом неустановленном столбце оно будет перемещаться назад. В поле ticks используется ключевое слово varp, поэтому оно не будет перемещаться назад в неустановленном столбце.
counter объявлен с помощью ключевого слова var, поэтому он будет сохраняться в течение всего выполнения сценария.
В каждой итерации поля bars и ticks увеличиваются на 1 ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠
Наконец, можно сравнить различия между ними, нарисовав поля counter.bars и counter.ticks. Значения counter.bars будут вращаться в каждом неподтвержденном столбце, а значения counter.ticks будут постоянно увеличиваться, пока сценарий не будет выполнен.

Изменить значение поля

pine
type order float price float amount string symbol if strategy.position_size == 0 and open > close strategy.entry("long", strategy.long, 1) order1 = order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker) if strategy.position_size != 0 runtime.log(order1) order1.price := 999 order1.amount := 100 runtime.log(order1) runtime.error("stop")

Доступно:=Оператор переоценки изменяет значение поля объекта.

Набор объектов

В примере объявляется пустой массив, который сохраняет объекты пользовательско-определенного типа order:

pine
type order float price float amount string symbol arrOrder = array.new<order>() order1 = order.new(99, 1, "BTC_USDT") order2 = order.new(100, 2, "ETH_USDT") array.push(arrOrder, order1) array.push(arrOrder, order2) runtime.log(arrOrder) runtime.error("stop")

или

pine
type order float price float amount string symbol var array<order> arrOrder = na arrOrder := array.new<order>() order1 = order.new(99, 1, "BTC_USDT") order2 = order.new(100, 2, "ETH_USDT") array.push(arrOrder, order1) array.push(arrOrder, order2) runtime.log(arrOrder) runtime.error("stop")

Объекты копирования

В Pine объекты распределяются с помощью ссылок. Когда существующие объекты распределяются на новые переменные, они оба указывают на один и тот же объект.

pine
//@version=5 indicator("") type pivotPoint int x float y pivot1 = pivotPoint.new() pivot1.x := 1000 pivot2 = pivot1 pivot2.x := 2000 // Both plot the value 2000. plot(pivot1.x) plot(pivot2.x)

В следующем примере мы создаем объект pivot1 и настраиваем его поле x на 1000. Затем мы объявляем, что pivot2 содержит переменную, которая ссылается на объект pivot1, поэтому оба они указывают на один и тот же экземпляр. Таким образом, изменение pivot2.x также изменяет pivot1.x, поскольку оба они ссылаются на поле x того же объекта.

Чтобы создать копию, независимую от исходного объекта, в этом случае мы можем использовать встроенный метод copy (). В этом примере мы объявляем, что pivot2 ссылается на переменную, которая является копией объекта pivot1. Теперь изменение pivot2.x не изменяет pivot1.x, так как оно указывает на поле, в котором x является отдельным объектом:

pine
//@version=5 indicator("") type pivotPoint int x float y pivot1 = pivotPoint.new() pivot1.x := 1000 pivot2 = pivotPoint.copy(pivot1) pivot2.x := 2000 // Plots 1000 and 2000. plot(pivot1.x) plot(pivot2.x)

Следует отметить, что метод копирования в TradingView является белой копией. Если объект имеет поля особого типа (например, array), эти поля в белой копии объекта будут указывать на тот же экземпляр, что и объект.
FMZ-платформа реализует глубокую копию напрямую, без дополнительной обработки, например:

Глубокая копия

pine
//@version=5 indicator("test deepCopy") type orderInfo float price float amount type labelInfo orderInfo order string labelMsg labelInfo1 = labelInfo.new(orderInfo.new(100, 0.1), "test labelInfo1") labelInfo2 = labelInfo.copy(labelInfo1) labelInfo1.labelMsg := "labelInfo1->2" // 修改 labelInfo1 的基础类型字段,看是否影响 labelInfo2 labelInfo1.order.price := 999 // 修改 labelInfo1 的复合类型字段,看是否影响 labelInfo2 runtime.log(labelInfo1) runtime.log(labelInfo2) runtime.error("stop")

Результаты тестирования, labelInfo.copy ((labelInfo1) выполняется как глубокая копия, изменение любого поля в labelInfo1 не повлияет на labelInfo2。

Methods

Методы в языке Pine - это специальные функции, связанные с встроенными или пользовательскими типами в конкретном примере. В большинстве своем они похожи на обычные функции, но предлагают более короткую и удобную грамматику. Пользователи могут напрямую использовать точечные знаки для доступа к методам в переменных, как они бы делали это при доступе к полям в объектах Pine.

Встроенные методы

Например, в одном из сценариев:

pine
//@version=5 indicator("Custom Sample BB", overlay = true) float sourceInput = input.source(close, "Source") int samplesInput = input.int(20, "Samples") int n = input.int(10, "Bars") float multiplier = input.float(2.0, "StdDev") var array<float> sourceArray = array.new<float>(samplesInput) var float sampleMean = na var float sampleDev = na // Identify if `n` bars have passed. if bar_index % n == 0 // Update the queue. array.push(sourceArray, sourceInput) array.shift(sourceArray) // Update the mean and standard deviaiton values. sampleMean := array.avg(sourceArray) sampleDev := array.stdev(sourceArray) * multiplier // Calculate bands. float highBand = sampleMean + sampleDev float lowBand = sampleMean - sampleDev plot(sampleMean, "Basis", color.orange) plot(highBand, "Upper", color.lime) plot(lowBand, "Lower", color.red)

Это можно перевести как:

pine
//@version=5 indicator("Custom Sample BB", overlay = true) float sourceInput = input.source(close, "Source") int samplesInput = input.int(20, "Samples") int n = input.int(10, "Bars") float multiplier = input.float(2.0, "StdDev") var array<float> sourceArray = array.new<float>(samplesInput) var float sampleMean = na var float sampleDev = na // Identify if `n` bars have passed. if bar_index % n == 0 // Update the queue. sourceArray.push(sourceInput) sourceArray.shift() // Update the mean and standard deviaiton values. sampleMean := sourceArray.avg() sampleDev := sourceArray.stdev() * multiplier // Calculate band values. float highBand = sampleMean + sampleDev float lowBand = sampleMean - sampleDev plot(sampleMean, "Basis", color.orange) plot(highBand, "Upper", color.lime) plot(lowBand, "Lower", color.red)

Это подтверждается поддержкой PINE.MethodsЗатем, код.array.avg(sourceArray)В этом случае можно использовать формулу методов:sourceArray.avg()
Примечание: FMZ временно не поддерживаетсяarray.avgТакой призыв.

Определенные пользователем методы

Pine позволяет пользователю определять пользовательские методы, используемые вместе с любыми встроенными или пользовательскими объектами определенного типа. Методы определения по сути идентичны функциям определения, но имеют два ключевых отличия:

  1. Ключевое слово "method" должно быть в названии функции.
  2. параметры метода, причем тип первого параметра должен быть явно заявлен, поскольку он указывает на тип объекта, с которым будет связан метод.

Например, в следующем коде можно вставить пользовательский метод, используемый для вычисления индекса Бринга:

pine
//@version=5 indicator("Custom Sample BB", overlay = true) float sourceInput = input.source(close, "Source") int samplesInput = input.int(20, "Samples") int n = input.int(10, "Bars") float multiplier = input.float(2.0, "StdDev") var array<float> sourceArray = array.new<float>(samplesInput) var float sampleMean = na var float sampleDev = na // Identify if `n` bars have passed. if bar_index % n == 0 // Update the queue. sourceArray.push(sourceInput) sourceArray.shift() // Update the mean and standard deviaiton values. sampleMean := sourceArray.avg() sampleDev := sourceArray.stdev() * multiplier // Calculate band values. float highBand = sampleMean + sampleDev float lowBand = sampleMean - sampleDev plot(sampleMean, "Basis", color.orange) plot(highBand, "Upper", color.lime) plot(lowBand, "Lower", color.red)

Изменение на:

pine
//@version=5 indicator("Custom Sample BB", overlay = true) float sourceInput = input.source(close, "Source") int samplesInput = input.int(20, "Samples") int n = input.int(10, "Bars") float multiplier = input.float(2.0, "StdDev") var array<float> sourceArray = array.new<float>(samplesInput) method maintainQueue(array<float> srcArray, float value, bool takeSample = true) => if takeSample srcArray.push(value) srcArray.shift() srcArray method calcBB(array<float> srcArray, float mult, bool calculate = true) => var float mean = na var float dev = na if calculate mean := srcArray.avg() dev := srcArray.stdev() * mult [mean, mean + dev, mean - dev] bool newSample = bar_index % n == 0 [sampleMean, highBand, lowBand] = sourceArray.maintainQueue(sourceInput, newSample).calcBB(multiplier, newSample) plot(sampleMean, "Basis", color.orange) plot(highBand, "Upper", color.lime) plot(lowBand, "Lower", color.red)

Вы можете увидеть пользовательские методы, использующие ключевые слова method declaration:maintainQueue, calcBB, где первым параметром в списке параметров являетсяarray<float>Тип <unk> означает, что методarray<float>Методы переменных типа, так что можно увидеть, что для вычисления показателя Булина используется следующий код:

pine
[sampleMean, highBand, lowBand] = sourceArray.maintainQueue(sourceInput, newSample).calcBB(multiplier, newSample)

Перезагрузка методов

В качестве простого примера, предположим, что мы хотим определить метод, связанный с типом переменных. Поскольку мы должны явно указать тип объекта, связанный с методом, определенным пользователем, нам нужно определить перегрузку для каждого типа, который мы хотим, чтобы он был идентифицирован. Ниже мы определяем метод getType (), который возвращает строки, обозначающие тип переменной, и имеет пять основных типов перегрузок:

pine
//@version=5 indicator("Type Inspection") // @function Identifies an object's type. // @param this Object to inspect. // @returns (string) A string representation of the type. method getType(int this) => na(this) ? "int(na)" : "int" method getType(float this) => na(this) ? "float(na)" : "float" method getType(bool this) => na(this) ? "bool(na)" : "bool" method getType(color this) => na(this) ? "color(na)" : "color" method getType(string this) => na(this) ? "string(na)" : "string" a = 1 // a.getType(): float b = 1.0 // b.getType(): float c = true // c.getType(): bool d = color.white // d.getType(): string(na) e = "1" // e.getType(): string runtime.log("a.getType():", a.getType()) runtime.log("b.getType():", b.getType()) runtime.log("c.getType():", c.getType()) runtime.log("d.getType():", d.getType()) runtime.log("e.getType():", e.getType()) runtime.error("stop")

Определение основного типа для каждой переменнойgetType()Какая перезагрузка будет использоваться? На FMZ-платформе, поскольку основной сценарий PINE реализован в языке Javascript, числовые типы будут рассматриваться как плавающие данные.

Встроенная функция

При вызове функции передается параметр, можно указать присвоение имени параметра, можно напрямую передать переменную в соответствующем параметре, также поддерживается смешанное использование. Например:

pine
plot(close, title="test plot") // 直接传参数 close ;指定参数 title ,赋值字符串"test plot"

После присвоения значения имени параметра переменная не может быть передана в качестве параметра, а все последующие параметры должны быть написаны в форме присвоения имени параметра.

pine
// plot(close, title="test", color.red) // 虽然plot第三个参数是颜色值,但是这样写就会报错 plot(close, title="test", color=color.red) // 正确写法 plot(close, "test", color.red) // 正确写法

timeframe

timeframe.in_seconds

Передается вtimeframeВременный цикл параметров преобразуется в секунды.

timeframe.in_seconds(timeframe)

Пример

pine
// Get chart timeframe: i_tf = input.timeframe("1D") // Convert timeframe to the int value (number of seconds in 1 Day): tf = timeframe.in_seconds(i_tf) plot(tf)

Возвращение
timeframeЧисло секунд в одной из K-линий представляет собой форму int.

параметр

  • timeframe(simple string) Временный промежуток.

Примечание
Дляtimeframe>= Функция '1M' рассчитывает секунды на основе 30.4167 (365/12) дней в месяце.

См. также
input.timeframe timeframe.period

ticker

ticker.heikinashi

Создание кода-идентификатора с просьбой сгладить среднее значение K-линейных значений。

ticker.heikinashi(symbol)

Пример

pine
heikinashi_close = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close) heikinashi_aapl_60_close = request.security(ticker.heikinashi(syminfo.tickerid), "60", close) plot(heikinashi_close) plot(heikinashi_aapl_60_close)

Возвращение
Строка кода акции, которая может быть предоставлена функцией request.security.

параметр

  • symbol(simple string) Идентификатор товарного кода.

См. также
syminfo.tickerid syminfo.ticker request.security

request

request.data

Запрос внешних данных.

request.data(url, attribute)

Пример

pine
/*backtest start: 2024-09-01 16:00:00 end: 2024-10-10 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] args: [["RunMode",1,358374],["ZPrecision",0,358374]] */ var chart_data = "https://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/data" spotPrice = request.data(chart_data, "$.spot_close_price") futuresPrice = request.data(chart_data, "$.future_close_price") diff = futuresPrice - spotPrice plot(diff, "永续-现货差价") plot(futuresPrice, "期货价格", overlay=true) plot(spotPrice, "现货价格", overlay=true) if diff > 80 and strategy.position_size >= 0 runtime.log("diff > 80") strategy.entry("Enter Short", strategy.short) if diff < 60 and strategy.position_size <= 0 runtime.log("diff < 60") strategy.entry("Enter Short", strategy.long)

Возвращение
параметрattributeОпределенная серия данных.

параметр

  • url(simple string) запрошенный источник данных url, ответ источника данных должен соответствовать требованиям (включая, по крайней мере, свойства time, data):{"data": [], "schema": ["time", "data"]}◦ Обратите внимание на формат данных, приведенный в примере:

    json
    { "data": [ [1720051200000, "{\"spot_close_price\" : 57050.01, \"future_close_price\" : 57045.9}"], [1720137600000, "{\"spot_close_price\" : 56628.79, \"future_close_price\" : 56604.9}"], // ... ], "schema": ["time", "data"] }
  • attribute(simple string) Название атрибута, возвращающее нужные данные. Например:"$.spot_close_price",использовать$.Как префикс, имя атрибута совпадает с атрибутом в поле data в запрошенном источнике данных

Если сообщение неверное, необходимо проверитьrequest.dataВременный диапазон запроса совпадает с временным диапазоном, установленным для отслеживания.

В данном примере SQL-ссылка для запроса data-data:

sql
WITH latest_data AS ( SELECT klines.spot_1d.Time AS time, CONCAT('{\"spot_close_price\" : ', klines.spot_1d.Close, ', \"future_close_price\" : ', klines.future_1d.Close, '}') AS data FROM klines.spot_1d JOIN klines.future_1d ON klines.spot_1d.Time = klines.future_1d.Time WHERE klines.spot_1d.Symbol = 'btc_usdt' AND klines.future_1d.Symbol = 'btc_usdt.swap' AND klines.spot_1d.Exchange = 'Binance' AND klines.future_1d.Exchange = 'Binance' ORDER BY klines.spot_1d.Time DESC LIMIT 100 ) SELECT * FROM latest_data ORDER BY time ASC;

На сайте FMZИсследование данныхСтраничный запрос, создание ссылок на данные, используемые в примереhttps://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/data

request.security

Требуется другой сорт/разрешение.

request.security(symbol, timeframe, expression, gaps, lookahead, ignore_invalid_symbol, currency)

Пример

pine
s = request.security(syminfo.tickerid, "D", close) // 1 Day plot(s) expr = ta.sma(close, 10) s1 = request.security(syminfo.tickerid, "240", expr) // 240 Minutes plot(s1) // To avoid difference in calculation on history/realtime you can request not latest values and use merge strategy flags as follows: s2 = request.security(syminfo.tickerid, "D", close[1], barmerge.gaps_off, barmerge.lookahead_on) plot(s2) f() => [open, high] [o, h] = request.security(syminfo.tickerid, "D", f()) [l, c] = request.security(syminfo.tickerid, "D", [low, close]) plot((o + h + l + c) / 4)

Возвращение
Серия требований

параметр

  • symbol(simple string) Код товара.
  • timeframe(simple string) Период времени。 Пустая строка будет интерпретироваться как текущий период времени для графика。
  • expression(series int/float/bool/color) может быть вычислен из запроса request.security и возвратить выражение. Оно может быть серией или множеством элементов, которые могут быть преобразованы в серию.
  • gaps(barmerge_gaps) Дает запрошенную стратегию объединения данных (требует, чтобы данные автоматически объединялись с основными сериями данных OHLC). Возможные значения: barmerge.gaps_on, barmerge.gaps_off. barmerge.gaps_on - запрошенные данные объединяются с возможными разрывами.
  • lookahead(barmerge_lookahead) Дает запрошенную стратегию объединения данных. Возможные значения: barmerge.lookahead_on, barmerge.lookahead_off. Начиная с версии 3, по умолчанию barmerge.lookahead_off. Обратите внимание, что поведение идентично реальному времени, только в истории оно отличается.
  • ignore_invalid_symbol(const bool) опциональный параметр. Если не найдены указанные товары, определяется поведение функции: если false, то сценарий останавливается и возвращает ошибку при выполнении; если true, то функция возвращает na и продолжает выполнение. По умолчанию false.
  • currency(simple string) конвертирует валюту, относящуюся к товару (например, OHLC), в валюту. Затем вычисляет значение после конвертации (expression). Используемый коэффициент конвертации основан на ежедневном обменном курсе FX_IDC пары за предыдущий день (в зависимости от вычисленной K-линии).

Примечание
Код PineScript, использующий эту функцию, может выполнять различные вычисления для исторических записей и реального времени.
Если вы хотите указать дополнительные параметры для запрошенного товара, например, время сделки или тип корректировки, вы можете использовать функцию ticker.new ().
Невозможно использовать переменную 'ticker' для передачи отклонения к этой функции. Вы можете использовать переменную 'ticker.new' или струнное выражение кода акций, например AAPL+MSFT*TSLA”。
В настоящее время в одном сценарии может быть не более 40 вызовов request.security.
Пожалуйста, обратите внимание, что использование данной переменной/функции может привести к перекрашиванию индикатора.
Разрешенные значения параметров разрешения:
1S, 5S, 15S, 30S - интервалы в секунды (цикл диаграммы должен быть меньше или равен запрошенному циклу)
От 1 до 1440 минут
От 1D до 365D дней
С 1 до 52 Вт в течение нескольких недель
От 1 до 12 месяцев

См. также
syminfo.ticker syminfo.tickerid timeframe.period ta.correlation barmerge.lookahead_off barmerge.lookahead_on

str

str.contains

ЕслиsourceСтрока содержитstrВ противном случае возвращается false.

str.contains(source, str)

Пример

pine
// If the current chart is a continuous futures chart, e.g “BTC1!”, then the function will return true, false otherwise. var isFutures = str.contains(syminfo.tickerid, "!") plot(isFutures ? 1 : 0)

Возвращение
Если вsourceНайти в строкеstr, то это true, в противном случае это false.

параметр

  • source(series string) Строка источника
  • str(series string) Подстрока, которую нужно искать.

См. также
str.pos str.match

str.endswith

ЕслиsourceСтрока будет называтьсяstrВ конце указанной подстроки возвращается true, в противном случае возвращается false.

str.endswith(source, str)

Возвращение
ЕслиsourceСтрока будет называтьсяstrВ конце подстроки, указанной в строке, указывается true, в противном случае - false.

параметр

  • source(series string) Строка источника
  • str(series string) Подстрока, которую нужно искать.

См. также
str.startswith

str.startswith

ЕслиsourceСтрока будет называтьсяstrВ случае, если подстрока, указанная в начале, возвращает true, в противном случае возвращает false.

str.startswith(source, str)

Возвращение
ЕслиsourceСтрока будет называтьсяstrЕсли в строке "true" указывается "true", то в строке "false" указывается "false".

параметр

  • source(series string) Строка источника
  • str(series string) Подстрока, которую нужно искать.

См. также
str.endswith

str.substring

Возвращает новую строку, которая являетсяsourceПодстрока стринга ≠ подстрока стрингаbegin_posЗнаки начинаются в указанном индексе и расширяются доsource'end_pos - 1' для строки

str.substring(source, begin_pos)
str.substring(source, begin_pos, end_pos)

Пример

pine
sym= "EXCHANGE_NAME:SYMBOL_NAME" pos = str.pos(sym, ":") // Get position of ":" character tkr= str.substring(sym, pos+1) // "SYMBOL_NAME" if barstate.islastconfirmedhistory runtime.log(tkr)

Возвращение
Подстрока, извлеченная из исходной строки.

параметр

  • source(series string) источник, из которого извлекается подстрока.
  • begin_pos(series int) начальное местоположение выделенной подстроки. Оно является эксклюзивным (( выделенная подстрока включает в себя символы этого места)
  • end_pos(series int) место окончания。 оно является эксклюзивным ((извлеченная строка не включает в себя символы этого местоположения)。 является выборочным。 по умолчаниюsourceДлина строки.

Примечание
Индекс строки начинается с 0. Еслиbegin_posравныйend_pos, функция возвращает пустую строку .

См. также
str.contains str.pos str.match

str.tonumber

str.tonumber(string)

Возвращение
Если содержит действительные числа, то является плавающей точкой строки, иначе - na。

параметр

  • string(series string) представляет собой строку int или float.

str.format

Преобразование форматированных строк и значений в форматированные стринги。 Форматированные стринги могут содержать текстовый текст и один значок в скобках {} для каждого форматируемого значения。 Каждый значок включает в себя индекс, в котором будет заменен его необходимый параметр ((начиная с 0), и один из выборных знаков форматирования。 Индекс указывает, где этот параметр находится в списке параметров str.format。

str.format(formatString, arg0, arg1, ...)

Пример

pine
// The format specifier inside the curly braces accepts certain modifiers: // - Specify the number of decimals to display: s1 = str.format("{0,number,#.#}", 1.34) // returns: 1.3 runtime.log(s1) // - Round a float value to an integer: s2 = str.format("{0,number,integer}", 1.34) // returns: 1 runtime.log(s2) // - Display a number in currency: s3 = str.format("{0,number,currency}", 1.34) // returns: $1.34 runtime.log(s3) // - Display a number as a percentage: s4 = str.format("{0,number,percent}", 0.5) // returns: 50% runtime.log(s4) // EXAMPLES WITH SEVERAL ARGUMENTS // returns: Number 1 is not equal to 4 s5 = str.format("Number {0} is not {1} to {2}", 1, "equal", 4) runtime.log(s5) // returns: 1.34 != 1.3 s6 = str.format("{0} != {0, number, #.#}", 1.34) runtime.log(s6) // returns: 1 is equal to 1, but 2 is equal to 2 s7 = str.format("{0, number, integer} is equal to 1, but {1, number, integer} is equal to 2", 1.34, 1.52) runtime.log(s7) // returns: The cash turnover amounted to $1,340,000.00 s8 = str.format("The cash turnover amounted to {0, number, currency}", 1340000) runtime.log(s8) // returns: Expected return is 10% - 20% s9 = str.format("Expected return is {0, number, percent} - {1, number, percent}", 0.1, 0.2) runtime.log(s9)

Возвращение
Форматированные строки.

параметр

  • formatString(series string) Формат строки.
  • arg0, arg1, ... (series int/float/bool/string/na/int[]/float[]/bool[]/string[]) Значение, которое нужно отформатировать.

Примечание
Все скобки в нецитируемом стиле должны быть сбалансированы. Например, "ab {0} de" и "ab '}' de" являются действительными стилями, но "ab {0'}' de", "ab } de" и "'{''" не являются действительными стилями.

str.length

Возвращает целое число, соответствующее числу символов в строке.

str.length(string)

Возвращение
Число символов в исходной строке.

параметр

  • string(series string) Строка источника

str.lower

Возвращает новую строку, в которой все буквы преобразованы в малые.

str.lower(source)

Возвращение
Все буквы преобразованы в новые строки с маленькими буквами.

параметр

  • source(series string) Строка, которую нужно преобразовать

См. также
str.upper

str.upper

Возвращает новую строку, в которой все буквы преобразованы в заглавные.

str.upper(source)

Возвращение
Все буквы преобразованы в новые строки с заглавными буквами.

параметр

  • source(series string) Строка, которую нужно преобразовать

См. также
str.lower

str.match

Если есть совпадениеregexПравильные выражения возвращаютsourceВ противном случае возвращается 'na'。

str.match(source, regex)

Пример

pine
s = input.string("It's time to sell some EXCHANGE_NAME:SYMBOL_NAME!") // finding first substring that matches regular expression "[\w]+:[\w]+" var string tickerid = str.match(s, "[\\w]+:[\\w]+") if barstate.islastconfirmedhistory runtime.log(tickerid) // "EXCHANGE_NAME:SYMBOL_NAME"

Возвращение
sourceНовая подстрока строки, если она соответствуетregexПравильное выражение - 'na' <unk>

параметр

  • source(series string) Строка источника
  • regex(series string) Регулярное выражение, соответствующее этой строке.

Примечание
Функция возвращаетsourceПравильные выражения, впервые появившиеся в строке:
regexВстроенные в строку обратные скобки \ <unk> требуют использования дополнительных обратных скобков для перевода, например <unk>\d<unk> представляет собой правильное выражение <unk>\d<unk>。

См. также
str.contains str.substring

str.pos

ВозвращениеsourceПервое появление в строкеstrПоложение строки, в противном случае возвращается 'na'

str.pos(source, str)

Возвращение
strСтрока вsourceМесто в строке.

параметр

  • source(series string) Строка источника
  • str(series string) Подстрока, которую нужно искать.

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

См. также
str.contains str.match str.substring

str.replace

Возвращает новую строку, в которой N+1 появленияtargetСтрока и предыдущиеtargetСтрока заменена наreplacementСтрока, в которой NoccurrenceУкажите .N как соответствующий индекс, появляющийся в исходной строке .

str.replace(source, target, replacement, occurrence)

Пример

pine
var source = "EXCHANGE1:SYMBOL1 / EXCHANGE1:SYMBOL2" // Replace first occurrence of "EXCHANGE1" with "EXCHANGE2" replacement string var newSource = str.replace(source, "EXCHANGE1", "EXCHANGE2", 0) if barstate.islastconfirmedhistory // Display "EXCHANGE2:SYMBOL1 / EXCHANGE1:SYMBOL2" runtime.log(newSource)

Возвращение
Обработанная строка

параметр

  • source(series string) Строка источника
  • target(series string) заменена строкой
  • replacement(series string) строка, которую нужно вставить, а не цель.
  • occurrence(series int) Целевая строка, которую нужно заменить, является совпадающим индексом, появляющимся в исходной строке. Первый совпадающий индекс начинается с 0.

См. также
str.replace_all str.match

str.replace_all

Замените строку замены на строку назначения, которая появляется каждый раз в исходной строке.

str.replace_all(source, target, replacement)

Возвращение
Обработанная строка

параметр

  • source(series string) Строка источника
  • target(series string) заменена строкой
  • replacement(series string) Каждый раз, когда появится целевая строка, она будет заменена строкой

str.split

Разделяет строки на подстрочные массивы и возвращает их ID массива.

str.split(string, separator)

Возвращение
Идентификатор строки.

параметр

  • string(series string) Строка источника
  • separator(series string) строка, разделяющая каждую подстроку.

str.tostring

str.tostring(value)
str.tostring(value, format)
str.tostring(value[])
str.tostring(value[], format)

Возвращение
valueСтрока параметров представляет собой форму。
ЕслиvalueЕсли параметр - строка, то возвращается как есть.
КогдаvalueФункция Na возвращает строку NaN<unk>.

параметр

  • value (series int/float/bool/string/int[]/float[]/bool[]/string[]), элемент которого преобразуется в значение строки или в ID массива.
  • format (series string) Format string. Accepts these format.* constants: format.mintick, format.percent, format.volume. Optional. The default value is '#.##########'.

Примечание
Формат с плавающей точкой также будет округлять эти значения, если это необходимо, например, str.tostring ((3.99, '#') будет возвращать <unk>4<unk>。
Чтобы показать нули, используйте "0" вместо "#". Например, "#.000".
При использовании format.mintick это значение округляется до числа, которое ближе всего к числу, которое можно делить без пробелов с помощью syminfo.mintick. Обратная строка сопровождается нулями.
Если x - это строка, то она возвращает то же значение.
Bool возвращает значение true или false.
Функция возвращает <unk>NaN<unk>, когда x равен na.

color

color.new

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

color.new(color, transp)

Пример

pine
plot(close, color=color.new(color.red, 50))

Возвращение
Цвета с определенной прозрачностью.

параметр

  • color (series color)
  • transp(series int/float) Доступные значения от 0 (непрозрачно) до 100 (невидимо)

Примечание
Использование множества параметров (например, <unk>simple<unk>, <unk>input<unk> или <unk>series<unk>) влияет на цвет, который отображается на странице тегов настройки/стилевой папки. Для получения дополнительной информации обратитесь к руководству пользователя.

color.rgb

Создание новых цветов с прозрачностью с использованием модели RGB.

color.rgb(red, green, blue, transp)

Пример

pine
plot(close, color=color.rgb(255, 0, 0, 50))

Возвращение
Цвета с определенной прозрачностью.

параметр

  • red(series int/float) красный цвет. Возможные значения от 0 до 255
  • green(series int/float) Зеленый оттенок. Возможные значения от 0 до 255
  • blue(series int/float) Синий цвет. Возможные значения от 0 до 255
  • transp(series int/float) выбирается. цвет прозрачный. возможные значения от 0 (непрозрачный) до 100 (прозрачный). По умолчанию 0 (прозрачный).

Примечание
Использование множества параметров (например, <unk>simple<unk>, <unk>input<unk> или <unk>series<unk>) влияет на цвет, который отображается на странице тегов настройки/стилевой папки. Для получения дополнительной информации обратитесь к руководству пользователя.

runtime

runtime.debug

Печатать информацию о переменных на диспетчере.

FMZ PINE использует специальные языковые функции.runtime.debug(value), есть только один параметр.

runtime.log

Вывод содержимого в журнале

FMZ PINE использует специальные языковые функции.runtime.log(1, 2, 3, close, high, ...), можно передать несколько параметров.

runtime.error

Вызываемое соединение может вызвать ошибку во время выполнения, а также вызвать ошибку в работе.messageОшибочное сообщение, указанное в параметре.

runtime.error(message)

параметр
message (series string) сообщение об ошибке

input

input

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

input(defval, title, tooltip, inline, group)
input(defval, title, inline, group, tooltip)

Пример

pine
i_switch = input(true, "On/Off") // 设置true,默认勾选 plot(i_switch ? open : na) i_len = input(7, "Length") i_src = input(close, "Source") // 下拉框,默认选择close plot(ta.sma(i_src, i_len)) i_col = input(color.red, "Plot Color") plot(close, color=i_col) i_text = input("Hello!", "Message") runtime.log(i_text)

Возвращение
Введите значение переменной

параметр

  • defval(const int/float/bool/string/color or source-type built-ins) По умолчанию определяет рекомендуемую входную переменную на странице ввода / ввода в скрипте, которую может изменить пользователь скрипта. Встроенная функция типа источника - это встроенная серия встроенных переменных в источник вычислений:closehlc3И так далее.
  • title(const string) Заголовок ввода. Если не указано, то имя переменной используется в качестве заголовка ввода. Если заголовок указан, но заголовок пустой, то имя будет пустой строкой.
  • tooltip(const string) Эта строка будет отображаться пользователю, когда мышь будет зависать на значке инструментального указателя.
  • inline(const string) Объединяет все входные вызовы, использующие одни и те же параметры в одном ряду. Строки, используемые в качестве параметров, не отображаются.
  • group(const string) Используйте одну и ту же комбинационную числовую строку для создания заголовка над всеми вводами. Эта строка также используется в качестве текста заголовка.

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

См. также
input.bool input.color input.int input.float input.string input.timeframe input.source

input.source

Добавление ввода на входную страницу с настройками сценария позволяет предоставить пользователям сценария параметры настройки. Эта функция добавляет выпадающее меню, позволяющее пользователям выбирать источник вычислений, например close, hl2 и т. д. Если сценарий содержит только один вызов input.source (), пользователь может выбрать источник вывода другого показателя на графике.

input.source(defval, title, tooltip, inline, group)

Пример

pine
i_src = input.source(close, "Source") plot(i_src)

Возвращение
Введите значение переменной

параметр

  • defval(series int/float) Определяет значение ввода, предложенное на странице ввода в скрипте, которое пользователь может изменить.
  • title(const string) Заголовок ввода. Если не указано, то имя переменной используется в качестве заголовка ввода. Если заголовок указан, но заголовок пустой, то имя будет пустой строкой.
  • tooltip(const string) Эта строка будет отображаться пользователю, когда мышь будет зависать на значке инструментального указателя.
  • inline(const string) Объединяет все входные вызовы, использующие одни и те же параметры в одном ряду. Строки, используемые в качестве параметров, не отображаются.
  • group(const string) Используйте одну и ту же комбинационную числовую строку для создания заголовка над всеми вводами. Эта строка также используется в качестве текста заголовка.

Примечание
Результат функции input.source всегда должен быть присвоен одной переменной, как в примере выше.

См. также
input.bool input.int input.float input.string input.timeframe input.color input

input.string

Функция Input добавляет вводные параметры в настройки сценария, которая позволяет вам предоставлять пользователям сценария параметры конфигурации. Эта функция добавляет вводные поля строки в входные параметры сценария.

input.string(defval, title, options, tooltip, inline, group, confirm)

Пример

pine
i_text = input.string("Hello!", "Message") runtime.log(i_text)

Возвращение
Введите значение переменной

параметр

  • defval(const string) По умолчанию определяет рекомендуемую входную переменную на странице ввода / ввода в скрипте, которую пользователь может изменить.optionsКогда параметры используются вместе, значение должно быть одним из них.
  • title(const string) Заголовок ввода. Если не указано, то имя переменной используется в качестве заголовка ввода. Если заголовок указан, но заголовок пустой, то имя будет пустой строкой.
  • options (List of constants: [<type>...]) список доступных вариантов для выбора.
  • tooltip(const string) Эта строка будет отображаться пользователю, когда мышь будет зависать на значке инструментального указателя.
  • inline(const string) Объединяет все входные вызовы, использующие одни и те же параметры в одном ряду. Строки, используемые в качестве параметров, не отображаются.
  • group(const string) Используйте одну и ту же комбинационную числовую строку для создания заголовка над всеми вводами. Эта строка также используется в качестве текста заголовка.
  • confirm(const bool) Если true, то перед добавлением показателя в график пользователю будет предложено подтвердить введенное значение.

Примечание
Результат функции input.string всегда должен быть присвоен одной переменной, как в примере выше.

См. также
input.bool input.int input.float input.timeframe input.source input.color input

input.bool

Функция Input добавляет вкладку ввода в настройки сценария, которая позволяет вам предоставить пользователям сценария параметры конфигурации. Эта функция добавляет выборочный знак вводу сценария.

input.bool(defval, title, tooltip, inline, group, confirm)

Пример

pine
i_switch = input.bool(true, "On/Off") plot(i_switch ? open : na)

Возвращение
Введите значение переменной

параметр

  • defval(const bool) Определяет встроенное значение рекомендуемой входной переменной в теге "Сценарий настройки ящика" / "Вводная ящик", которую пользователь может изменить.
  • title(const string) Заголовок ввода. Если не указано, то имя переменной используется в качестве заголовка ввода. Если заголовок указан, но заголовок пустой, то имя будет пустой строкой.
  • tooltip(const string) Эта строка будет отображаться пользователю, когда мышь будет зависать на значке инструментального указателя.
  • inline(const string) Объединяет все входные вызовы, использующие одни и те же параметры в одном ряду. Строки, используемые в качестве параметров, не отображаются.
  • group(const string) Используйте одну и ту же комбинационную числовую строку для создания заголовка над всеми вводами. Эта строка также используется в качестве текста заголовка.
  • confirm(const bool) Если true, то перед добавлением показателя в график пользователю будет предложено подтвердить введенное значение.

Примечание
Результат функции input.bool всегда должен быть присвоен одной переменной, как в примере выше.

См. также
input.int input.float input.string input.timeframe input.source input.color input

input.int

Функция Input добавляет вкладку ввода в настройки сценария, которая позволяет вам предоставить пользователям сценария параметры конфигурации. Эта функция добавляет целое число ввода в поле ввода сценария.

input.int(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.int(defval, title, options, tooltip, inline, group, confirm)

Пример

pine
i_len1 = input.int(10, "Length 1", minval=5, maxval=21, step=1) plot(ta.sma(close, i_len1)) i_len2 = input.int(10, "Length 2", options=[5, 10, 21]) plot(ta.sma(close, i_len2))

Возвращение
Введите значение переменной

параметр

  • defval(const int) Определяет предложенную входной переменной по умолчанию на странице ввода / настройки ввода в скрипте, которую может изменить пользователь скрипта.optionsКогда параметры используются вместе, значение должно быть одним из них.
  • title(const string) Заголовок ввода. Если не указано, то имя переменной используется в качестве заголовка ввода. Если заголовок указан, но заголовок пустой, то имя будет пустой строкой.
  • minval(const int) Минимально возможное значение вводной переменной.
  • maxval(const int) Максимально возможное значение вводной переменной.
  • step(const int) значение длины шага, используемое для увеличения/уменьшения ввода.
  • options (tuple of const int values: [val1, val2, ...]) Список опций, выбранных из выпадающего меню, разделенных запятыми и окруженных квадратными скобками:[val1, val2, ...] ≠ не используется при использовании этого параметраminvalmaxvalиstepПараметры
  • tooltip(const string) Эта строка будет отображаться пользователю, когда мышь будет зависать на значке инструментального указателя.
  • inline(const string) Объединяет все входные вызовы, использующие одни и те же параметры в одном ряду. Строки, используемые в качестве параметров, не отображаются.
  • group(const string) Используйте одну и ту же комбинационную числовую строку для создания заголовка над всеми вводами. Эта строка также используется в качестве текста заголовка.
  • confirm(const bool) Если true, то перед добавлением показателя в график пользователю будет предложено подтвердить введенное значение.

Примечание
Результат функции input.int всегда должен быть присвоен одной переменной, как в примере выше.

См. также
input.bool input.float input.string input.timeframe input.source input.color input

input.float

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

input.float(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.float(defval, title, options, tooltip, inline, group, confirm)

Пример

pine
i_angle1 = input.float(0.5, "Sin Angle", minval=-3.14, maxval=3.14, step=0.02) plot(math.sin(i_angle1) > 0 ? close : open, "sin", color=color.green) i_angle2 = input.float(0, "Cos Angle", options=[-3.14, -1.57, 0, 1.57, 3.14]) plot(math.cos(i_angle2) > 0 ? close : open, "cos", color=color.red)

Возвращение
Введите значение переменной

параметр

  • defval(const int/float) Определяет по умолчанию рекомендуемую входную переменную на странице ввода / ввода в скрипте, которую пользователь может изменить.optionsКогда параметры используются вместе, значение должно быть одним из них.
  • title(const string) Заголовок ввода. Если не указано, то имя переменной используется в качестве заголовка ввода. Если заголовок указан, но заголовок пустой, то имя будет пустой строкой.
  • minval(const int/float) Минимально возможное значение вводной переменной。 выборочное。
  • maxval(const int/float) Максимально возможное значение вводной переменной。 выборочное。
  • step(const int/float) значение длины шага для увеличения/уменьшения ввода.
  • options (tuple of const int/float values: [val1, val2, ...]) Список опций, выбранных из выпадающего меню, разделенных запятыми и окруженных квадратными скобками:[val1, val2, ...] ≠ не используется при использовании этого параметраminvalmaxvalиstepПараметры
  • tooltip(const string) Эта строка будет отображаться пользователю, когда мышь будет зависать на значке инструментального указателя.
  • inline(const string) Объединяет все входные вызовы, использующие одни и те же параметры в одном ряду. Строки, используемые в качестве параметров, не отображаются.
  • group(const string) Используйте одну и ту же комбинационную числовую строку для создания заголовка над всеми вводами. Эта строка также используется в качестве текста заголовка.
  • confirm(const bool) Если true, то перед добавлением показателя в график пользователю будет предложено подтвердить введенное значение.

Примечание
Результат функции input.float всегда должен быть присвоен одной переменной, как в примере выше.

См. также
input.bool input.int input.string input.timeframe input.source input.color input

input.color

Функция Input добавляет вкладку вкладки в настройки сценария, которая позволяет вам предоставить пользователям сценария параметры конфигурации. Эта функция добавляет цветовой селектор, который позволяет пользователям выбирать цвет и прозрачность из цветовой панели или шестнадцатизначного значения.

input.color(defval, title, tooltip, inline, group, confirm)

Пример

pine
i_col = input.color(color.red, "Plot Color") plot(close, color=i_col)

Возвращение
Введите значение переменной

параметр

  • defval(const color) Определяет предложенную входной переменную в настройках ячейки / входной ячейке текста, которую пользователь может изменить.
  • title(const string) Заголовок ввода. Если не указано, то имя переменной используется в качестве заголовка ввода. Если заголовок указан, но заголовок пустой, то имя будет пустой строкой.
  • tooltip(const string) Эта строка будет отображаться пользователю, когда мышь будет зависать на значке инструментального указателя.
  • inline(const string) Объединяет все входные вызовы, использующие одни и те же параметры в одном ряду. Строки, используемые в качестве параметров, не отображаются.
  • group(const string) Используйте одну и ту же комбинационную числовую строку для создания заголовка над всеми вводами. Эта строка также используется в качестве текста заголовка.
  • confirm(const bool) Если true, то перед добавлением показателя в график пользователю будет предложено подтвердить введенное значение.

Примечание
Результат функции input.color всегда должен быть присвоен одной переменной, как в примере выше.

См. также
input.bool input.int input.float input.string input.timeframe input.source input

input.price

Добавить ввод цены в скрипт на странице тегов ввода/устройства ящика.confirm = trueВключите интерактивную вводную систему и выберите цену, нажав на график.

input.price(defval, title, tooltip, inline, group, confirm)

Пример

pine
price1 = input.price(title="Date", defval=42) plot(price1) price2 = input.price(54, title="Date") plot(price2)

Возвращение
Введите значение переменной

параметр

  • defval(const int/float) По умолчанию определяет рекомендуемую входную переменную на странице ввода / ввода в скрипте, которую пользователь может изменить.
  • title(const string) Заголовок ввода. Если не указано, то имя переменной используется в качестве заголовка ввода. Если заголовок указан, но заголовок пустой, то имя будет пустой строкой.
  • tooltip(const string) Эта строка будет отображаться пользователю, когда мышь будет зависать на значке инструментального указателя.
  • inline(const string) Объединяет все входные вызовы, использующие одни и те же параметры в одном ряду. Строки, используемые в качестве параметров, не отображаются.
  • group(const string) Используйте одну и ту же комбинационную числовую строку для создания заголовка над всеми вводами. Эта строка также используется в качестве текста заголовка.
  • confirm(const bool) Если true, то вводится интерактивный вводный режим и выбор выполняется, нажав на график при добавлении показателя в график, или выбирая показатель и затем перемещая выбор.

Примечание
При использовании интерактивного режима, если две функции вызваны друг другу, то они будут называться "взаимно".inlineПараметры используют одни и те же параметры, и ввод времени может быть использован в сочетании с вводом цены.

См. также
input.bool input.int input.float input.string input.resolution input.source input.color input

input.timeframe

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

input.timeframe(defval, title, options, tooltip, inline, group, confirm)

Пример

pine
i_res = input.timeframe('D', "Resolution", options=['D', 'W', 'M']) s = request.security(syminfo.tickerid, i_res, close) plot(s)

Возвращение
Введите значение переменной

параметр

  • defval(const string) По умолчанию определяет рекомендуемую входную переменную на странице ввода / ввода в скрипте, которую пользователь может изменить.optionsКогда параметры используются вместе, значение должно быть одним из них.
  • title(const string) Заголовок ввода. Если не указано, то имя переменной используется в качестве заголовка ввода. Если заголовок указан, но заголовок пустой, то имя будет пустой строкой.
  • options (tuple of const string values: [val1, val2, ...]) Список доступных вариантов для выбора.
  • tooltip(const string) Эта строка будет отображаться пользователю, когда мышь будет зависать на значке инструментального указателя.
  • inline(const string) Объединяет все входные вызовы, использующие одни и те же параметры в одном ряду. Строки, используемые в качестве параметров, не отображаются.
  • group(const string) Используйте одну и ту же комбинационную числовую строку для создания заголовка над всеми вводами. Эта строка также используется в качестве текста заголовка.
  • confirm(const bool) Если true, то перед добавлением показателя в график пользователю будет предложено подтвердить введенное значение.

Примечание
Результат функции input.timeframe всегда должен быть присвоен одной переменной, как в примере выше.

См. также
input.bool input.int input.float input.string input.source input.color input

input.integer

Пока нет

input.resolution

Пока нет

ta

ta.alma

Arnaud Legoux Moving Average. Она использует распределение Гауса в качестве веса для скользящих средних.

ta.alma(series, length, offset, sigma)
ta.alma(series, length, offset, sigma, floor)

Пример

pine
plot(ta.alma(close, 9, 0.85, 6)) // same on pine, but much less efficient pine_alma(series, windowsize, offset, sigma) => m = offset * (windowsize - 1) //m = math.floor(offset * (windowsize - 1)) // Used as m when math.floor=true s = windowsize / sigma norm = 0.0 sum = 0.0 for i = 0 to windowsize - 1 weight = math.exp(-1 * math.pow(i - m, 2) / (2 * math.pow(s, 2))) norm := norm + weight sum := sum + series[windowsize - i - 1] * weight sum / norm plot(pine_alma(close, 9, 0.85, 6))

Возвращение
Arnaud Legoux, средняя скорость

параметр

  • series(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).
  • offset(simple int/float) Контроль баланса между гладкостью ((более близко к 1) и отзывчивостью ((более близко к 0)).
  • sigma(simple int/float) изменяет гладкость ALMA. Чем больше сигма, тем гладче ALMA.
  • floor(simple bool) параметр выбора. Перед вычислением ALMA укажите, является ли вычисление смещения нижним пределом. По умолчанию false.

См. также
ta.sma ta.ema ta.rma ta.wma ta.vwma ta.swma

ta.sma

Функция sma возвращает скользящую среднюю величину, т.е. значение y для x, разделенное на y。

ta.sma(source, length)

Пример

pine
plot(ta.sma(close, 15)) // same on pine, but much less efficient pine_sma(x, y) => sum = 0.0 for i = 0 to y - 1 sum := sum + x[i] / y sum plot(pine_sma(close, 15))

Возвращение
lengthК-линия возвращаетсяsourceПростая скользящая средняя

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

См. также
ta.ema ta.rma ta.wma ta.vwma ta.swma ta.alma

ta.cog

cog (фокусность) - показатель, основанный на статистике и золотом коэффициенте Фибоначчи.

ta.cog(source, length)

Пример

pine
plot(ta.cog(close, 10)) // the same on pine pine_cog(source, length) => sum = math.sum(source, length) num = 0.0 for i = 0 to length - 1 price = source[i] num := num + price * (i + 1) -num / sum plot(pine_cog(close, 10))

Возвращение
Внимание

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

См. также
ta.stoch

ta.dev

Различия между сериями измерений и их ta.sma

ta.dev(source, length)

Пример

pine
plot(ta.dev(close, 10)) // the same on pine pine_dev(source, length) => mean = ta.sma(source, length) sum = 0.0 for i = 0 to length - 1 val = source[i] sum := sum + math.abs(val - mean) dev = sum/length plot(pine_dev(close, 10))

Возвращение
lengthК-линия возвращаетсяsourceСклонность.

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

См. также
ta.variance ta.stdev

ta.stdev

ta.stdev(source, length, biased)

Пример

pine
plot(ta.stdev(close, 5)) //the same on pine isZero(val, eps) => math.abs(val) <= eps SUM(fst, snd) => EPS = 1e-10 res = fst + snd if isZero(res, EPS) res := 0 else if not isZero(res, 1e-4) res := res else 15 pine_stdev(src, length) => avg = ta.sma(src, length) sumOfSquareDeviations = 0.0 for i = 0 to length - 1 sum = SUM(src[i], -avg) sumOfSquareDeviations := sumOfSquareDeviations + sum * sum stdev = math.sqrt(sumOfSquareDeviations / length) plot(pine_stdev(close, 5))

Возвращение
Недостаточное качество

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).
  • biased(series bool) определяет, какая оценка должна использоваться.

Примечание
ЕслиbiasedЕсли true, то функция будет рассчитываться с использованием предвзятых оценок для всего общего, если false - с использованием безпредвзятых оценок для образца.

См. также
ta.dev ta.variance

ta.ema

Функция ema возвращает индексированную взвешенную скользящую среднюю. В ema весовой коэффициент падает по индексу. Она рассчитывается по формуле: EMA = alpha * source + (1 - alpha) * EMA[1], где alpha = 2 / (length + 1) ◦

ta.ema(source, length)

Пример

pine
plot(ta.ema(close, 15)) //the same on pine pine_ema(src, length) => alpha = 2 / (length + 1) sum = 0.0 sum := na(sum[1]) ? src : alpha * src + (1 - alpha) * nz(sum[1]) plot(pine_ema(close,15))

Возвращение
sourceИндексная скользящая средняя, альфа = 2 / (длина + 1) ◦

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(simple int) Количество строк K (длина).

Примечание
Пожалуйста, обратите внимание, что использование данной переменной/функции может привести к перекрашиванию индикатора.

См. также
ta.sma ta.rma ta.wma ta.vwma ta.swma ta.alma

ta.wma

Функция wma возвращаетlengthК-линияsourceВ WMA удельный вес уменьшается в арифметических степенях.

ta.wma(source, length)

Пример

pine
plot(ta.wma(close, 15)) // same on pine, but much less efficient pine_wma(x, y) => norm = 0.0 sum = 0.0 for i = 0 to y - 1 weight = (y - i) * y norm := norm + weight sum := sum + x[i] * weight sum / norm plot(pine_wma(close, 15))

Возвращение
lengthК-линия возвращаетсяsourceВесовая скользящая средняя.

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

См. также
ta.sma ta.ema ta.rma ta.vwma ta.swma ta.alma

ta.swma

Симметрично-весовая скользящая средняя с фиксированной длиной:4.[1/6,2 / 6,2 / 6,1 / 6]。

ta.swma(source)

Пример

pine
plot(ta.swma(close)) // same on pine, but less efficient pine_swma(x) => x[3] * 1 / 6 + x[2] * 2 / 6 + x[1] * 2 / 6 + x[0] * 1 / 6 plot(pine_swma(close))

Возвращение
Симметрически взвешенная скользящая средняя.

параметр

  • source(series int/float) Источник серии <unk>

См. также
ta.sma ta.ema ta.rma ta.wma ta.vwma ta.alma

ta.hma

Функция hma возвращает скобку HMA.

ta.hma(source, length)

Пример

pine
src = input(defval=close, title="Source") length = input(defval=9, title="Length") hmaBuildIn = ta.hma(src, length) plot(hmaBuildIn, title="Hull MA", color=#674EA7)

Возвращение
Hull Moving Average, возвращающий Hull Moving Average для источника в столбце length.

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(simple int) Количество строк K

См. также
ta.ema ta.rma ta.wma ta.vwma ta.sma

ta.rma

Движущаяся средняя, используемая в RSI. Это индексная взвешенная движущаяся средняя, с удельным значением альфа = 1 / длина.

ta.rma(source, length)

Пример

pine
plot(ta.rma(close, 15)) //the same on pine pine_rma(src, length) => alpha = 1/length sum = 0.0 sum := na(sum[1]) ? ta.sma(src, length) : alpha * src + (1 - alpha) * nz(sum[1]) plot(pine_rma(close, 15))

Возвращение
sourceУкажите скользящую среднюю величину.length

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(simple int) Количество строк K (длина).

См. также
ta.sma ta.ema ta.wma ta.vwma ta.swma ta.alma ta.rsi

ta.rsi

Индекс относительной интенсивности.lengthK в сетиsourceВверх и вниз измененияta.rma()Рассчитанные.

ta.rsi(source, length)

Пример

pine
plot(ta.rsi(close, 7)) // same on pine, but less efficient pine_rsi(x, y) => u = math.max(x - x[1], 0) // upward ta.change d = math.max(x[1] - x, 0) // downward ta.change rs = ta.rma(u, y) / ta.rma(d, y) res = 100 - 100 / (1 + rs) res plot(pine_rsi(close, 7))

Возвращение
Относительно сильный индикатор (RSI)

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(simple int) Количество строк K (длина).

См. также
ta.rma

ta.tsi

Индекс истинной силы и слабости. Он представляет собой скользящую среднюю потенциальной динамики финансовых инструментов.

ta.tsi(source, short_length, long_length)

Возвращение
Индекс реальных сил и слабостей.[Значение в -1,1]

параметр

  • source(series int/float) Источник серии <unk>
  • short_length(simple int) короткая длина。
  • long_length(simple int) Длина длинной строки。

ta.roc

Функция roc{\displaystyle roc{\mathrm {c}}} показываетsourceТекущее значениеsourceНесколько дней назад.lengthРазница между значениями
Вычисляется по формуле: 100 * change(src, length) / src[length]。

ta.roc(source, length)

Возвращение
lengthК-линия возвращаетсяsourceПрогноз изменения ВВП

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

ta.range

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

ta.range(source, length)

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

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

ta.macd

MACD (англ. Smoothed Asymmetric Average) [2]. Он должен раскрывать силу, направление, динамику и длительность изменения тенденции цен на акции [2].

ta.macd(source, fastlen, slowlen, siglen)

Пример

pine
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9) plot(macdLine, color=color.blue) plot(signalLine, color=color.orange) plot(histLine, color=color.red, style=plot.style_histogram)

Если вам нужно только одно значение, используйте местоимение, например '_':

Пример

pine
[_, signalLine, _] = ta.macd(close, 12, 26, 9) plot(signalLine, color=color.orange)

Возвращение
Три модуля серии MACD: MACD-линия, сигнальная линия и прямоугольная линия.

параметр

  • source(series int/float) Ожидаемые значения серии。
  • fastlen(simple int) скорейший параметр
  • slowlen(simple int) Параметры медленной длины。
  • siglen(simple int) параметр длины сигнала ≠

См. также
ta.sma ta.ema

ta.mode

Вернуть наименьшее значение, если есть несколько значений с одинаковой частотой.

ta.mode(source, length)

Возвращение
Модель последовательности.

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

ta.median

Возвращается среднее число последовательности.

ta.median(source, length)

Возвращение
Среднее число последовательности.

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

ta.linreg

Линейная регрессионная кривая. Линия, наиболее соответствующая цене, указанной пользователем в течение определенного периода времени. Она рассчитывается с использованием минимального двоичного умножения. Результаты этой функции рассчитываются по формуле: linreg = intercept + slope * (length - 1 - offset), где intercept и slope используются.sourceЗначение, рассчитанное на наименьшее двоичное умножение ряда.

ta.linreg(source, length, offset)

Возвращение
Линейная кривая регрессии

параметр

  • source(series int/float) Источник серии <unk>
  • length (series int)
  • offset(simple int) смещение

ta.bb

Брин-пояса. Брин-пояса - это инструмент технического анализа, который определяется группой линий, которые отклоняются от простой движущейся средней цены ценных бумаг (SMA) на два стандартных отклонения (положительные и отрицательные), но могут быть скорректированы в соответствии с предпочтениями пользователя.

ta.bb(series, length, mult)

Пример

pine
[middle, upper, lower] = ta.bb(close, 5, 4) plot(middle, color=color.yellow) plot(upper, color=color.yellow) plot(lower, color=color.yellow) // the same on pine f_bb(src, length, mult) => float basis = ta.sma(src, length) float dev = mult * ta.stdev(src, length) [basis, basis + dev, basis - dev] [pineMiddle, pineUpper, pineLower] = f_bb(close, 5, 4) plot(pineMiddle) plot(pineUpper) plot(pineLower)

Возвращение
Брин-пояс.

параметр

  • series(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).
  • mult(simple int/float) Стандартный коэффициент разницы ≠

См. также
ta.sma ta.stdev ta.kc

ta.bbw

Ширина полосы пропускания. Ширина полосы пропускания - расстояние от верхней и нижней полос до средней полосы пропускания.

ta.bbw(series, length, mult)

Пример

pine
plot(ta.bbw(close, 5, 4), color=color.yellow) // the same on pine f_bbw(src, length, mult) => float basis = ta.sma(src, length) float dev = mult * ta.stdev(src, length) ((basis + dev) - (basis - dev)) / basis plot(f_bbw(close, 5, 4))

Возвращение
Пропускная способность Brin.

параметр

  • series(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).
  • mult(simple int/float) Стандартный коэффициент разницы ≠

См. также
ta.bb ta.sma ta.stdev

ta.cci

CCI (Commodity Path Index) рассчитывается как разница между типичной ценой товара и его простой скользящей средней, разделенной на среднее абсолютное отклонение от типичной цены. Индекс масштабируется по обратной стороне 0.015 для предоставления более читаемых цифр.

ta.cci(source, length)

Возвращение
Индекс товарного канала источника, возвращаемого линией lengthK.

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

ta.change

Разница между текущим и предыдущим значением, source - source[length]。

ta.change(source, length)
ta.change(source)

Возвращение
Результат отмены закона.

параметр

  • source(series int/float) Источник серии <unk>
  • length(series int) отклоняется от текущей k-линии к предыдущей k-линии.

См. также
ta.mom ta.cross

ta.mom

sourceЦены иsourceЦеныlengthДвижение перед K-линией. Это всего лишь разница: source - source[length]。

ta.mom(source, length)

Возвращение
sourceЦены иsourceЦеныlengthДвижение до линии K.

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) смещение от текущей к-линии к предыдущей к-линии.

См. также
ta.change

ta.cmo

Динамический индикатор колебаний Чандра. Рассчитывается сумма недавних точек роста и недавних точек падения, а затем вычитается их сумма, а затем результат делится на сумму всех изменений цен за тот же период времени

ta.cmo(series, length)

Пример

pine
plot(ta.cmo(close, 5), color=color.yellow) // the same on pine f_cmo(src, length) => float mom = ta.change(src) float sm1 = math.sum((mom >= 0) ? mom : 0.0, length) float sm2 = math.sum((mom >= 0) ? 0.0 : -mom, length) 100 * (sm1 - sm2) / (sm1 + sm2) plot(f_cmo(close, 5))

Возвращение
Показатель колебания динамики Чанда

параметр

  • series(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

См. также
ta.rsi ta.stoch math.sum

ta.percentile_linear_interpolation

Процентное соотношение с использованием линейного метода интервалов между двумя последними рейтингами.

ta.percentile_linear_interpolation(source, length, percentage)

Возвращение
lengthК-линия возвращаетсяsourceПервая процентная цифра P в ряду.

параметр

  • source(series int/float) Исполняемые значения ряда ((источник) }}
  • length(series int) количество прошедших K строк (длина)
  • percentage(simple int/float) Процент, число в диапазоне от 0 до 100

Примечание
Обратите внимание, что проценты, рассчитанные с помощью данного метода, не являются членами вводной группы данных.

См. также
ta.percentile_nearest_rank

ta.percentile_nearest_rank

Процент, рассчитанный по последнему методу ранжирования.

ta.percentile_nearest_rank(source, length, percentage)

Возвращение
lengthК-линия возвращаетсяsourceПервая процентная цифра P в ряду.

параметр

  • source(series int/float) Исполняемые значения ряда ((источник) }}
  • length(series int) количество прошедших K строк (длина)
  • percentage(simple int/float) Процент, число в диапазоне от 0 до 100

Примечание
Использование недавнего ранжирования с длиной строк менее 100 к может привести к тому, что одно и то же число будет использоваться для нескольких процентов.
Последние проценты, рассчитанные по рейтингу, являются входящими данными.
100-я процентная точка определяется как максимальное значение в входном наборе данных.

См. также
ta.percentile_linear_interpolation

ta.percentrank

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

ta.percentrank(source, length)

Возвращение
lengthК-линия возвращаетсяsourceПроцентный рейтинг:

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

ta.variance

Дифференциация - это ожидаемое значение (ta.sma) серии квадратных отклонений от среднего значения, которое неофициально измеряет расстояние от среднего значения серии чисел.

ta.variance(source, length, biased)

Возвращение
lengthК-линия возвращаетсяsourceРазница между

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).
  • biased(series bool) определяет, какая оценка должна использоваться.

Примечание
ЕслиbiasedЕсли true, то функция будет рассчитываться с использованием предвзятых оценок для всего общего, если false - с использованием безпредвзятых оценок для образца.

См. также
ta.dev ta.stdev

ta.tr

ta.tr(handle_na)

Возвращение
Настоящий диапазон. Это math.max (высокий - низкий, math.abs (высокий - близкий)[1]), math.abs(low - close[1]))。

параметр

  • handle_na(simple bool) как обрабатывать значение NaN. Если true, и цена закрытия за предыдущий день NaN, то tr будет рассчитываться как высокая-низкая точка за день. В противном случае (((если false) tr в этом случае вернет NaN. Также обратите внимание, что ta.atr использует ta.true).

Примечание
ta.tr(false)иta.trТо же самое.

См. также
ta.atr

ta.mfi

Показатель денежных потоков. Показатель денежных потоков - это технический показатель, который использует цены и объемы сделок для определения перекупа или перепродажи в активах.

ta.mfi(series, length)

Пример

pine
plot(ta.mfi(hlc3, 14), color=color.yellow) // the same on pine pine_mfi(src, length) => float upper = math.sum(volume * (ta.change(src) <= 0.0 ? 0.0 : src), length) float lower = math.sum(volume * (ta.change(src) >= 0.0 ? 0.0 : src), length) mfi = 100.0 - (100.0 / (1.0 + upper / lower)) mfi plot(pine_mfi(hlc3, 14))

Возвращение
Показатели денежных потоков

параметр

  • series(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

См. также
ta.rsi math.sum

ta.kc

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

ta.kc(series, length, mult)
ta.kc(series, length, mult, useTrueRange)

Пример

pine
[middle, upper, lower] = ta.kc(close, 5, 4) plot(middle, color=color.yellow) plot(upper, color=color.yellow) plot(lower, color=color.yellow) // the same on pine f_kc(src, length, mult, useTrueRange) => float basis = ta.ema(src, length) float span = (useTrueRange) ? ta.tr : (high - low) float rangeEma = ta.ema(span, length) [basis, basis + rangeEma * mult, basis - rangeEma * mult] [pineMiddle, pineUpper, pineLower] = f_kc(close, 5, 4, true) plot(pineMiddle) plot(pineUpper) plot(pineLower)

Возвращение
Кентнерский проход

параметр

  • series(series int/float) Ожидаемые значения серии。
  • length(simple int) Количество строк K (длина).
  • mult(simple int/float) Стандартный коэффициент разницы ≠
  • useTrueRange(simple bool) выборные параметры. Укажите, используется ли истинный диапазон; по умолчанию true. Если значение false, то для расчета диапазона используется выражение ((high-low)).

См. также
ta.ema ta.atr ta.bb

ta.kcw

Ширина кантонального канала. Ширина кантонального канала - это разница между верхним и нижним каналами, деленная на значение среднего канала.

ta.kcw(series, length, mult)
ta.kcw(series, length, mult, useTrueRange)

Пример

pine
plot(ta.kcw(close, 5, 4), color=color.yellow) // the same on pine f_kcw(src, length, mult, useTrueRange) => float basis = ta.ema(src, length) float span = (useTrueRange) ? ta.tr : (high - low) float rangeEma = ta.ema(span, length) ((basis + rangeEma * mult) - (basis - rangeEma * mult)) / basis plot(f_kcw(close, 5, 4, true))

Возвращение
Ширина прохода Кентана.

параметр

  • series(series int/float) Ожидаемые значения серии。
  • length(simple int) Количество строк K (длина).
  • mult(simple int/float) Стандартный коэффициент разницы ≠
  • useTrueRange(simple bool) выборные параметры. Укажите, используется ли истинный диапазон; по умолчанию true. Если значение false, то для расчета диапазона используется выражение ((high-low)).

См. также
ta.kc ta.ema ta.atr ta.bb

ta.correlation

Коэффициент соотношения. Описывает степень, в которой две серии склонны отклоняться от своих значений ta.sma.

ta.correlation(source1, source2, length)

Возвращение
Коэффициент соотношения

параметр

  • source1(series int/float) Источник серии <unk>
  • source2(series int/float) Целевая серия。
  • length(series int) длина (количество K строк)

См. также
request.security

ta.cross

ta.cross(source1, source2)

Возвращение
Если две последовательности пересекаются, то они являются истинными, иначе - ложными.

параметр

  • source1(series int/float) Первая серия данных。
  • source2(series int/float) Вторая серия данных。

См. также
ta.change

ta.crossover

source1-series определяется как пересечениеsource2-series, если на текущей K-линииsource1Значение большеsource2И на первой K-линииsource2Значение source1小于source2`Значение

ta.crossover(source1, source2)

Возвращение
Еслиsource1Пройтиsource2Если это не так, то это ложь.

параметр

  • source1(series int/float) Первая серия данных。
  • source2(series int/float) Вторая серия данных。

ta.crossunder

source1-series определяется какsource2-series, если на текущей K-линииsource1меньше, чемsource2И на первой K-линии,source1Значение большеsource2Значение

ta.crossunder(source1, source2)

Возвращение
Еслиsource1существоватьsource2Подкрепим, и будет true, иначе будет false.

параметр

  • source1(series int/float) Первая серия данных。
  • source2(series int/float) Вторая серия данных。

ta.atr

Функция ATR (средняя величина реальной колебательности) возвращает RMA реального диапазона. Реальная колебательность - max (высокая - низкая, abs (высокая - близкая)[1]), abs(low - close[1]))。

ta.atr(length)

Пример

pine
plot(ta.atr(14)) //the same on pine pine_atr(length) => trueRange = na(high[1])? high-low : math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1])) //true range can be also calculated with ta.tr(true) ta.rma(trueRange, length) plot(pine_atr(14))

Возвращение
Средняя величина реальной колебания (ATR)

параметр
length (simple int) длина

См. также
ta.tr ta.rma

ta.sar

Параллельная линия перехода (англ. Parabolic line shifting) - метод, разработанный J. Welles Wilder, Jr. для выявления потенциальных перемен в направлении цены на биржевых рынках.

ta.sar(start, inc, max)

Пример

pine
plot(ta.sar(0.02, 0.02, 0.2), style=plot.style_cross, linewidth=3) // The same on Pine pine_sar(start, inc, max) => var float result = na var float maxMin = na var float acceleration = na var bool isBelow = na bool isFirstTrendBar = false if bar_index == 1 if close > close[1] isBelow := true maxMin := high result := low[1] else isBelow := false maxMin := low result := high[1] isFirstTrendBar := true acceleration := start result := result + acceleration * (maxMin - result) if isBelow if result > low isFirstTrendBar := true isBelow := false result := math.max(high, maxMin) maxMin := low acceleration := start else if result < high isFirstTrendBar := true isBelow := true result := math.min(low, maxMin) maxMin := high acceleration := start if not isFirstTrendBar if isBelow if high > maxMin maxMin := high acceleration := math.min(acceleration + inc, max) else if low < maxMin maxMin := low acceleration := math.min(acceleration + inc, max) if isBelow result := math.min(result, low[1]) if bar_index > 1 result := math.min(result, low[2]) else result := math.max(result, high[1]) if bar_index > 1 result := math.max(result, high[2]) result plot(pine_sar(0.02, 0.02, 0.2), style=plot.style_cross, linewidth=3)

Возвращение
Параллельная линия направлена к указателю.

параметр

  • start(simple int/float) начало
  • inc(simple int/float) увеличение
  • max(simple int/float) Максимальная.

ta.barssince

Вычислите количество K-строк, начиная с предыдущего условия true.

ta.barssince(condition)

Пример

pine
// get number of bars since last color.green bar plot(ta.barssince(close >= open))

Возвращение
Количество строк k, если условие true.

Примечание
Если условие никогда не было выполнено до текущей K-линии, функция возвращает na。
Пожалуйста, обратите внимание, что использование данной переменной/функции может привести к перекрашиванию индикатора.

См. также
ta.lowestbars ta.highestbars ta.valuewhen ta.highest ta.lowest

ta.cum

sourceИными словами, этоsourceСумма всех элементов .

ta.cum(source)

Возвращение
Серия подведена.

параметр

  • source (series int/float)

См. также
math.sum

ta.dmi

Функция dmi возвращает динамический индекс DMI。

ta.dmi(diLength, adxSmoothing)

Пример

pine
len = input.int(17, minval=1, title="DI Length") lensig = input.int(14, title="ADX Smoothing", minval=1, maxval=50) [diplus, diminus, adx] = ta.dmi(len, lensig) plot(adx, color=color.red, title="ADX") plot(diplus, color=color.blue, title="+DI") plot(diminus, color=color.orange, title="-DI")

Возвращение
Три подгруппы серии DMI: положительное направление движения ((+DI), отрицательное направление движения ((-DI) и средний показатель направления движения ((ADX)) [2].

параметр

  • diLength (simple int) DI Period。
  • adxSmoothing(simple int) ADX гладкий цикл

См. также
ta.rsi ta.tsi ta.mfi

ta.falling

ТестыsourceСерия дляlengthНапример, если вы не знаете, что вы делаете, вы не знаете, что вы делаете.

ta.falling(source, length)

Возвращение
Если в настоящее времяsourceменьше, чемlengthЛюбой предыдущий, к которому возвращается линия K.sourceЕсли значение true, то оно true, если нет, то false.

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

См. также
ta.rising

ta.rising

ТестыsourceСерия дляlength"Клинлонг" набирает обороты?

ta.rising(source, length)

Возвращение
Если в настоящее времяsourceСтоит больше, чемlengthЛюбой предыдущий, к которому возвращается линия K.sourceЕсли значение true, то оно true, если нет, то false.

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

См. также
ta.falling

ta.pivothigh

Функция возвращает цену на вершину оси. Если нет вершины оси, то возвращается <unk>NaN<unk>.

ta.pivothigh(source, leftbars, rightbars)
ta.pivothigh(leftbars, rightbars)

Пример

pine
leftBars = input(2) rightBars=input(2) ph = ta.pivothigh(leftBars, rightBars) plot(ph, style=plot.style_cross, linewidth=3, color= color.red, offset=-rightBars)

Возвращение
На данный момент это цена или NaN.

параметр

  • source(series int/float) выборочные параметры.
  • leftbars(series int/float) Левая сила。
  • rightbars(series int/float) Правая длина。

Примечание
Если параметр 'leftbars' или 'rightbars' является серией, вы должны использовать функцию max_bars_back в качестве переменной 'source' [2].

ta.pivotlow

Функция возвращает цену на низкий коренной пункт. Если нет низкого коренного пункта, она возвращает <unk>NaN<unk>.

ta.pivotlow(source, leftbars, rightbars)
ta.pivotlow(leftbars, rightbars)

Пример

pine
leftBars = input(2) rightBars=input(2) pl = ta.pivotlow(close, leftBars, rightBars) plot(pl, style=plot.style_cross, linewidth=3, color= color.blue, offset=-rightBars)

Возвращение
На данный момент это цена или NaN.

параметр

  • source(series int/float) выборочные параметры ◦ Расчетные значения серии данных ◦ По умолчанию <unk> Low<unk> ◦
  • leftbars(series int/float) Левая сила。
  • rightbars(series int/float) Правая длина。

Примечание
Если параметр 'leftbars' или 'rightbars' является серией, вы должны использовать функцию max_bars_back в качестве переменной 'source' [2].

ta.highest

Наибольшее значение для данного числа прошедших k строк.

ta.highest(source, length)
ta.highest(length)

Возвращение
Наивысшее значение в серии.

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

Примечание
Две версии args:sourceЭто сериал, в котором рассказывается о жизни.lengthЭто число возвращенных K-линий.
Аргументационная версия:lengthВернутое число K. алгоритм использует high как sourceСериал

См. также
ta.lowest ta.lowestbars ta.highestbars ta.valuewhen ta.barssince

ta.highestbars

Максимальное отклонение от данного числа за k линий.

ta.highestbars(source, length)
ta.highestbars(length)

Возвращение
Отклоняется к самой высокой k-линии

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

Примечание
Две версии args:sourceЭто сериал, в котором рассказывается о жизни.lengthЭто число возвращенных K-линий.
Аргументационная версия:lengthВернутое число K. алгоритм использует high как sourceСериал

См. также
ta.lowest ta.highest ta.lowestbars ta.barssince ta.valuewhen

ta.stoch

Рассчитывается по уравнению: 100 * (close - lowest, length)) / (highest, high, length) - lowest, length))

ta.stoch(source, high, low, length)

Возвращение
Случайный

параметр

  • source(series int/float) Источник серии <unk>
  • high(series int/float) Высокая серия
  • low(series int/float) Нижняя серия
  • length(series int) длина (количество K строк)

См. также
ta.cog

ta.supertrend

Супертенденциальный индикатор. Супертенденциальный индикатор - это индикатор, который следует за трендом.

ta.supertrend(factor, atrPeriod)

Пример

pine
//@version=5 indicator("Pine Script™ Supertrend") [supertrend, direction] = ta.supertrend(3, 10) plot(direction < 0 ? supertrend : na, "Up direction", color = color.green, style=plot.style_linebr) plot(direction > 0 ? supertrend : na, "Down direction", color = color.red, style=plot.style_linebr) // The same on Pine Script™ pine_supertrend(factor, atrPeriod) => src = hl2 atr = ta.atr(atrPeriod) upperBand = src + factor * atr lowerBand = src - factor * atr prevLowerBand = nz(lowerBand[1]) prevUpperBand = nz(upperBand[1]) lowerBand := lowerBand > prevLowerBand or close[1] < prevLowerBand ? lowerBand : prevLowerBand upperBand := upperBand < prevUpperBand or close[1] > prevUpperBand ? upperBand : prevUpperBand int direction = na float superTrend = na prevSuperTrend = superTrend[1] if na(atr[1]) direction := 1 else if prevSuperTrend == prevUpperBand direction := close > upperBand ? -1 : 1 else direction := close < lowerBand ? 1 : -1 superTrend := direction == -1 ? lowerBand : upperBand [superTrend, direction] [pineSupertrend, pineDirection] = pine_supertrend(3, 10) plot(pineDirection < 0 ? pineSupertrend : na, "Up direction", color = color.green, style=plot.style_linebr) plot(pineDirection > 0 ? pineSupertrend : na, "Down direction", color = color.red, style=plot.style_linebr)

Возвращение
Субъекты двух супертенденционных рядов: супертенденционная линия и трендовый направление. Возможные значения 1 (в направлении вниз) и -1 (в направлении вверх).

параметр

  • factor(series int/float) ATR будет умножено на множитель.
  • atrPeriod(simple int) средняя истинная длина волны

См. также
ta.macd

ta.lowest

Минимальное значение заданного числа прошедших k строк.

ta.lowest(source, length)
ta.lowest(length)

Возвращение
Минимальное значение в серии.

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

Примечание
Две версии args:sourceЭто сериал, в котором рассказывается о жизни.lengthЭто число возвращенных K-линий.
Аргументационная версия:lengthявляется числом K. алгоритм использует low какsourceСериал

См. также
ta.highest ta.lowestbars ta.highestbars ta.valuewhen ta.barssince

ta.lowestbars

Минимальное отклонение от данного числа прошедших k линий.

ta.lowestbars(source, length)
ta.lowestbars(length)

Возвращение
Сдвигается к нижней линии k.

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) возвращает число K.

Примечание
Две версии args:sourceЭто сериал, в котором рассказывается о жизни.lengthЭто число возвращенных K-линий.
Аргументационная версия:lengthявляется числом K. алгоритм использует low какsourceСериал

См. также
ta.lowest ta.highest ta.highestbars ta.barssince ta.valuewhen

ta.valuewhen

Возвращает серию кода кода-источника на K-линии, где кода-условие является истинным в n-м случае последнего появления.

ta.valuewhen(condition, source, occurrence)

Пример

pine
slow = ta.sma(close, 7) fast = ta.sma(close, 14) // Get value of `close` on second most recent cross plot(ta.valuewhen(ta.cross(slow, fast), close, 1))

параметр

  • condition(series bool) Условия для поиска。
  • source(series int/float/bool/color) Значение, возвращаемое из строки K, удовлетворяющей условиям.
  • occurrenceПоявление условий (simple int) ≠ начинается с нуля и восходит в обратном порядке по времени, поэтому <unk>0<unk> является последним появлением <unk>condition<unk>, <unk>1<unk> является вторым последним появлением, и так далее ≠ должно быть целым числом >= 0。

Примечание
Эта функция должна выполняться на каждой K-линии. Не рекомендуется использовать ее в циклической структуре for или while, поскольку ее поведение может быть неожиданным. Обратите внимание, что использование этой функции может привести к перерисованию индикатора.

См. также
ta.lowestbars ta.highestbars ta.barssince ta.highest ta.lowest

ta.vwap

Средневзвешенные цены

ta.vwap(source)

Возвращение
Средневзвешенная сумма

параметр

  • source(series int/float) Источник серии <unk>

См. также
ta.vwap

ta.vwma

Функция vwma возвращаетlengthК-линияsourceВзвешенная подвижная средняя величина объема транзакций △ равна: sma ((source * volume, length) / sma ((volume, length) △

ta.vwma(source, length)

Пример

pine
plot(ta.vwma(close, 15)) // same on pine, but less efficient pine_vwma(x, y) => ta.sma(x * volume, y) / ta.sma(volume, y) plot(pine_vwma(close, 15))

Возвращение
lengthК-линия возвращаетсяsourceВесовая скользящая средняя по объему сделок.

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

См. также
ta.sma ta.ema ta.rma ta.wma ta.swma ta.alma

ta.wpr

Индикатор Уильямса (Williams %R。。) показывает связь между текущей ценой закрытия и высокой/низкой ценой за прошедший период времени.

ta.wpr(length)

Пример

pine
plot(ta.wpr(14), title="%R", color=color.new(#ff6d00, 0))

Возвращение
Williams %R。

параметр

  • length(series int) Количество строк K。

См. также
ta.mfi ta.cmo

plot

plot

На рисунке изображены данные.

plot(series, title, color, linewidth, style, trackprice, histbase, offset, join, editable, show_last, display)

Пример

pine
plot(high+low, title='Title', color=color.new(#00ffaa, 70), linewidth=2, style=plot.style_area, offset=15, trackprice=true) // You may fill the background between any two plots with a fill() function: p1 = plot(open) p2 = plot(close) fill(p1, p2, color=color.new(color.green, 90))

Возвращение
Отображаемые объекты для fill.

параметр

  • series(series int/float) Серия данных, которую нужно нарисовать.
  • title(const string) Заголовок рисунка。
  • color(series color) цвет изображения. Вы можете использовать константы, такие как 'color = red' или 'color =#ff001a', а также сложные выражения, такие как 'color = close >= open ? green: red'.
  • linewidth(input int) Ширина линии для рисования. По умолчанию 1 . Не для всех стилей .
  • style(plot_style) plot тип 。 возможные значения: plot.style_line、plot.style_stepline、plot.style_stepline_diamond、plot.style_histogram、plot.style_cross、plot.style_area、plot.style_columns、plot.style_circles、plot.style_linebr、plot.style_areabr。 по умолчанию значение - plot.style_line。
  • trackprice(input bool) Если true, то горизонтальная ценовая линия будет отображаться на уровне последнего показателя.
  • histbase(input int/float) При составлении графики в стиле plot.style_histogram, plot.style_columns или plot.style_area, используется значение значения эталонного уровня ≠ 0.0 ≠
  • offset(series int) перемещение карты влево или вправо на определенное количество линий k. По умолчанию 0
  • join(input bool) Если true, то начертанная точка будет соединена с линией, только для стилей plot.style_cross и plot.style_circles.
  • editable(const bool) Если true, то стиль рисунка может быть отредактирован в диалоговом окне форматирования.
  • show_last(input int) Если установлена, то определяется число k строк, которые будут нанесены на график ((от последней к-линии назад в прошлое)) [2].
  • display(plot_display) Контроль отображает местоположение начертания. Возможные значения: display.none, display.all. По умолчанию display.all.
  • overlay(const bool) параметр расширения платформы FMZ, используемый для настройки текущей функции на матрице (настройка true) или на подматрице (настройка false). По умолчанию он будет выглядеть как false. Если не указать этот параметр, то он будет отображаться в соответствии сstrategyилиindicatorВoverlayПараметры настройкиstrategyилиindicatorНикаких настроекoverlayПараметры обрабатываются в соответствии с параметрами по умолчанию.

См. также
plotshape plotchar bgcolor

plotshape

На графике изображены видимые формы.

plotshape(series, title, style, location, color, offset, text, textcolor, editable, size, show_last, display)

Пример

pine
data = close >= open plotshape(data, style=shape.xcross)

параметр

  • series(series bool) Серия данных, отображаемая в виде формы. ❚ Серия рассматривается как серия буль значений всех значений местоположения, кроме location.absolute.
  • title(const string) Заголовок рисунка。
  • style(input string) Тип рисунка。 возможные значения: shape.xcross, shape.cross, shape.triangleup, shape.triangledown, shape.flag, shape.circle, shape.arrowup, shape.arrowdown, shape.labelup, shape.labeldown, shape.square, shape.diamond。 По умолчанию значение является shape.xcross。
  • location(input string) Форма расположения на диаграмме. Возможные значения: location.abovebar, location.belowbar, location.top, location.bottom, location.absolute. По умолчанию это location.abovebar.
  • color(series color) цвет формы 。 Вы можете использовать константы, такие как 'color = red' или 'color =#ff001a', а также сложные выражения, такие как 'color = close >= open ? green: red' 。 Параметры выбора 。
  • offset(series int) Формы, которые перемещаются влево или вправо по определенному количеству строк k. По умолчанию 0
  • text(const string) Текст в форме. Вы можете использовать многострочный текст, разделяя строки с помощью '\n' переводных последовательностей. Пример: 'line one\nline two'
  • textcolor(series color) цвет текста. Вы можете использовать константы, такие как 'textcolor=red' или 'textcolor=#ff001a', а также сложные выражения, такие как 'textcolor = close >= open ? green: red'.
  • editable(const bool) Если true, то стиль plotshape может быть отредактирован в диалоге форматирования.
  • show_last(input int) Если установлена, то определяется число форм, которые будут нанесены на график ((от последней k-линии назад в прошлое))
  • size(const string) Размер символа в диаграмме. Возможные значения: size.auto, size.tiny, size.small, size.normal, size.large, size.huge.
  • display(plot_display) Контроль отображает местоположение начертания. Возможные значения: display.none, display.all. По умолчанию display.all.
  • overlay(const bool) параметр расширения платформы FMZ, используемый для настройки текущей функции на матрице (настройка true) или на подматрице (настройка false). По умолчанию он будет выглядеть как false. Если не указать этот параметр, то он будет отображаться в соответствии сstrategyилиindicatorВoverlayПараметры настройкиstrategyилиindicatorНикаких настроекoverlayПараметры обрабатываются в соответствии с параметрами по умолчанию.

См. также
plot plotchar bgcolor

plotchar

На графике используется любой из данных символов Unicode, чтобы нарисовать видимые формы.

plotchar(series, title, char, location, color, offset, text, textcolor, editable, size, show_last, display)

Пример

pine
data = close >= open plotchar(data, char='❄')

параметр

  • series(series bool) Серия данных, отображаемая в виде формы. ❚ Серия рассматривается как серия буль значений всех значений местоположения, кроме location.absolute.
  • title(const string) Заголовок рисунка。
  • char(input string) символы, используемые в качестве визуальных форм
  • location(input string) Форма расположения на диаграмме. Возможные значения: location.abovebar, location.belowbar, location.top, location.bottom, location.absolute. По умолчанию это location.abovebar.
  • color(series color) цвет формы 。 Вы можете использовать константы, такие как 'color = red' или 'color =#ff001a', а также сложные выражения, такие как 'color = close >= open ? green: red' 。 Параметры выбора 。
  • offset(series int) Формы, которые перемещаются влево или вправо по определенному количеству строк k. По умолчанию 0
  • text(const string) Текст в форме. Вы можете использовать многострочный текст, разделяя строки с помощью '\n' переводных последовательностей. Пример: 'line one\nline two'
  • textcolor(series color) цвет текста. Вы можете использовать константы, такие как 'textcolor=red' или 'textcolor=#ff001a', а также сложные выражения, такие как 'textcolor = close >= open ? green: red'.
  • editable(const bool) Если true, то стиль plotchar может быть отредактирован в диалоге форматирования.
  • show_last(input int) Если установлена, то определяется количество графиков, которые будут нанесены на график ((от последней k-линии назад в прошлое))
  • size(const string) Размер символа в диаграмме. Возможные значения:size.auto,size.tiny,size.small,size.normal,size.large,size.huge. По умолчанию используется значение size.auto.
  • display(plot_display) Контроль отображает местоположение начертания. Возможные значения: display.none, display.all. По умолчанию display.all.
  • overlay(const bool) параметр расширения платформы FMZ, используемый для настройки текущей функции на матрице (настройка true) или на подматрице (настройка false). По умолчанию он будет выглядеть как false. Если не указать этот параметр, то он будет отображаться в соответствии сstrategyилиindicatorВoverlayПараметры настройкиstrategyилиindicatorНикаких настроекoverlayПараметры обрабатываются в соответствии с параметрами по умолчанию.

См. также
plot plotshape bgcolor

plotcandle

Нарисуйте <unk> на диаграмме.

plotcandle(open, high, low, close, title, color, wickcolor, editable, show_last, bordercolor, display)

Пример

pine
indicator("plotcandle example", overlay=true) plotcandle(open, high, low, close, title='Title', color = open < close ? color.green : color.red, wickcolor=color.black)

параметр

  • open(series int/float) Открытие серии данных используется в качестве параметров открытия.
  • high(series int/float) Высокий уровень серии данных используется в качестве ячейки.
  • low(series int/float) Данные низкой серии используются в качестве низких значений <unk>。 Необходимые параметры。
  • close(series int/float) Закрыть данные серии как значение закрытой линии k. Необходимые параметры
  • titleЗаголовок (const string) plotcandle.
  • color(series color) Цвет ядра. Вы можете использовать константы, такие как 'color = red' или 'color =#ff001a', а также сложные выражения, такие как 'color = close >= open ? green: red'.
  • wickcolor(series color) Цвет светильника.
  • editable(const bool) Если true, то стиль plotcandle может быть отредактирован в диалоге форматирования.
  • show_last(input int) Если установлена, то определяется число строк, начертанных на диаграмме ((от последней k-линии назад в прошлое) }}.
  • bordercolor(series color) Цвет границы экрана. Один из параметров.
  • display(plot_display) Контроль отображает местоположение начертания. Возможные значения: display.none, display.all. По умолчанию display.all.
  • overlay(const bool) параметр расширения платформы FMZ, используемый для настройки текущей функции на матрице (настройка true) или на подматрице (настройка false). По умолчанию он будет выглядеть как false. Если не указать этот параметр, то он будет отображаться в соответствии сstrategyилиindicatorВoverlayПараметры настройкиstrategyилиindicatorНикаких настроекoverlayПараметры обрабатываются в соответствии с параметрами по умолчанию.

Примечание
Если все NaN являются высокими и низкими, то K-линия не должна отображаться.
Максимальные значения "открыть", "высокий", "низкий" и "закрыть" будут установлены на "высокий" и "высокий", а минимальные - на "низкий" и "низкий".

См. также
plotbar

plotarrow

На графике начертаны стрелки вверх и вниз: стрелка вверх начертана на каждом положительном показателе, а стрелка вниз начертана на каждом отрицательном. Если показатель возвращает na, стрелка не начертается.

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(const string) Заголовок рисунка。
  • colorup(series color) Цвет вверх стрелки.
  • colordown(series color) Цвет стрелки вниз.
  • offset(series int) Движение стрелки влево или вправо по определенному количеству K-линий. По умолчанию 0
  • minheight(input int) Минимальная возможная высота стрелки в пикселях.
  • maxheight(input int) Максимально возможная высота стрелки в пикселях. По умолчанию 100
  • editable(const bool) Если true, то стиль plotarrow может быть отредактирован в диалоге форматирования.
  • show_last(input int) Если установлена, то определяется количество стрелок, которые будут нанесены на график ((возвращается в прошлое от последней k-линии))
  • display(plot_display) Контроль отображает местоположение начертания. Возможные значения: display.none, display.all. По умолчанию display.all.
  • overlay(const bool) параметр расширения платформы FMZ, используемый для настройки текущей функции на матрице (настройка true) или на подматрице (настройка false). По умолчанию он будет выглядеть как false. Если не указать этот параметр, то он будет отображаться в соответствии сstrategyилиindicatorВoverlayПараметры настройкиstrategyилиindicatorНикаких настроекoverlayПараметры обрабатываются в соответствии с параметрами по умолчанию.

См. также
plot plotshape plotchar barcolor bgcolor

array

array.pop

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

array.pop(id)

Пример

pine
// array.pop example a = array.new_float(5,high) removedEl = array.pop(a) plot(array.size(a)) plot(removedEl)

Возвращение
Значение удаленного элемента.

параметр

  • id(any array type) Объекты массива.

См. также
array.new_float array.set array.push array.remove array.insert array.shift

array.shift

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

array.shift(id)

Пример

pine
// array.shift example a = array.new_float(5,high) removedEl = array.shift(a) plot(array.size(a)) plot(removedEl)

Возвращение
Значение удаленного элемента.

параметр

  • id(any array type) Объекты массива.

См. также
array.unshift array.set array.push array.remove array.includes

array.unshift

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

array.unshift(id, value)

Пример

pine
// array.unshift example a = array.new_float(5, 0) array.unshift(a, open) plot(array.get(a, 0))

параметр

  • id(any array type) Объекты массива.
  • value (series <type of the array's elements>) Добавить значение к начальной позиции массива.

См. также
array.shift array.set array.insert array.remove array.indexof

array.size

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

array.size(id)

Пример

pine
// 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(any array type) Объекты массива.

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

array.slice

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

array.slice(id, index_from, index_to)

Пример

pine
// 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(any array type) Объекты массива.
  • 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)

Пример

pine
// 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)

Пример

pine
// 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)

Пример

pine
// 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)

Пример

pine
// 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)

Пример

pine
// 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.

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

array.clear

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

array.clear(id)

Пример

pine
// 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(any array type) Объекты массива.

См. также
array.new_float array.insert array.push array.remove array.pop

array.concat

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

array.concat(id1, id2)

Пример

pine
// 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(any array type) Первый объект в массиве.
  • id2(any array type) Второй объект массива ≠

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

array.copy

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

array.copy(id)

Пример

pine
// 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(any array type) Объекты массива.

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

array.stdev

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

array.stdev(id, biased)

Пример

pine
// 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Если true, то функция будет рассчитываться с использованием предвзятых оценок для всего общего, если false - с использованием безпредвзятых оценок для образца.

См. также
array.new_float array.max array.min array.avg

array.standardize

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

array.standardize(id)

Пример

pine
// 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)

Пример

pine
// 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Если true, то функция будет рассчитываться с использованием предвзятых оценок для всего общего, если false - с использованием безпредвзятых оценок для образца.

См. также
array.new_float array.stdev array.min array.avg array.covariance

array.covariance

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

array.covariance(id1, id2, biased)

Пример

pine
// 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Если true, то функция будет рассчитываться с использованием предвзятых оценок для всего общего, если false - с использованием безпредвзятых оценок для образца.

См. также
array.new_float array.max array.stdev array.avg array.variance

array.fill

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

array.fill(id, value, index_from, index_to)

Пример

pine
// array.fill example a = array.new_float(10) array.fill(a, close) plot(array.sum(a))

параметр

  • id(any array type) Объекты массива.
  • value (series <type of the array's elements>) используется для заполнения массива.
  • index_from(series int) Начальный индекс, по умолчанию 0。
  • index_to(series int) конечный индекс, по умолчанию na。 должен быть больше, чем индекс последнего элемента, который должен быть установлен。

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

array.includes

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

array.includes(id, value)

Пример

pine
// array.includes example a = array.new_float(5,high) p = close if array.includes(a, high) p := open plot(p)

Возвращение
Если значение находится в массиве, то оно true, в противном случае false.

параметр

  • id(any array type) Объекты массива.
  • 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)

Пример

pine
// array.insert example a = array.new_float(5, close) array.insert(a, 0, open) plot(array.get(a, 5))

параметр

  • id(any array type) Объекты массива.
  • 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)

Пример

pine
// array.join example a = array.new_float(5, 5) runtime.log(array.join(a, ","))

параметр

  • id (int[]/float[]/string[Объекты массивов.
  • separator(series string) используется для разделения элементов каждого ряда.

См. также
array.new_float array.set array.insert array.remove array.pop array.unshift

array.lastindexof

Функция возвращает индекс последнего появления значения. Если значение не найдено, возвращается -1.

array.lastindexof(id, value)

Пример

pine
// array.lastindexof example a = array.new_float(5,high) index = array.lastindexof(a, high) plot(index)

Возвращение
Индекс элементов

параметр

  • id(any array type) Объекты массива.
  • 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)

Пример

pine
// 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) возвращает n-е наибольшее значение, где 0 является наибольшим.

См. также
array.new_float array.min array.sum

array.min

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

array.min(id, nth)

Пример

pine
// 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) возвращает n-е минимальное значение, где 0 является минимальным.

См. также
array.new_float array.max array.sum

array.median

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

array.median(id)

Пример

pine
// 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)

Пример

pine
// 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)

Пример

pine
// 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)

Пример

pine
// array.remove example a = array.new_float(5,high) removedEl = array.remove(a, 0) plot(array.size(a)) plot(removedEl)

Возвращение
Значение удаленного элемента.

параметр

  • id(any array type) Объекты массива.
  • index(series int) Индекс элемента, который нужно удалить.

См. также
array.new_float array.set array.push array.insert array.pop array.shift

array.reverse

Эта функция переворачивает массив. Первый элемент массива становится последним, а последний элемент массива становится первым.

array.reverse(id)

Пример

pine
// 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(any array type) Объекты массива.

См. также
array.new_float array.sort array.push array.set array.avg

array.from

Функция принимает переменное количество параметров одного из следующих типов: int, float, bool, string, line, color, linefill, и возвращает массив соответствующего типа.

array.from(arg0, arg1, ...)

Пример

pine
// array.from_example arr = array.from("Hello", "World!") // arr (string[]) will contain 2 elements: {Hello}, {World!}. plot(close)

Возвращение
Значения элементов массива

параметр

  • arg0, arg1, ...(series int/float/bool/color/string/line/linefill) Архивные параметры。

array.new

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

array.new(size, initial_value)

Пример

pine
// array.new<string> example a = array.new<string>(1, "Hello, World!") runtime.log(array.get(a, 0))

Пример

pine
// 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))

Пример

pine
// 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")

Пример

pine
// 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)

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

параметр

  • sizeПервоначальный размер последовательности (series int).
  • initial_value(series <type>) Начальное значение всех элементов последовательности.

Примечание
Индексы массивов начинаются с 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)

Пример

pine
// array.new_bool example length = 5 a = array.new_bool(length, close > open) plot(array.get(a, 0) ? close : open)

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

параметр

  • sizeПервоначальный размер последовательности (series int).
  • initial_value(series bool) Начальное значение всех элементов последовательности.

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

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

array.new_float

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

array.new_float(size, initial_value)

Пример

pine
// array.new_float example length = 5 a = array.new_float(length, close) plot(array.sum(a) / length)

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

параметр

  • sizeПервоначальный размер последовательности (series int).
  • initial_value(series int/float) Начальное значение для всех элементов серии。 выборочное。 по умолчанию <unk>na<unk>。

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

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

array.new_int

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

array.new_int(size, initial_value)

Пример

pine
// array.new_int example length = 5 a = array.new_int(length, int(close)) plot(array.sum(a) / length)

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

параметр

  • sizeПервоначальный размер последовательности (series int).
  • initial_value(series int) Начальное значение для всех элементов серии。 является выборочным。 по умолчанию <unk>na<unk>。

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

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

array.new_string

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

array.new_string(size, initial_value)

Пример

pine
// array.new_string example length = 5 a = array.new_string(length, "text") runtime.log(array.get(a, 0))

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

параметр

  • sizeПервоначальный размер последовательности (series int).
  • initial_value(series string) Начальное значение для всех элементов последовательности.

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

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

array.get

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

array.get(id, index)

Пример

pine
// 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(any array type) Объекты массива.
  • index(series int) Индекс элемента, для которого возвращается его значение.

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

array.push

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

array.push(id, value)

Пример

pine
// array.push example a = array.new_float(5, 0) array.push(a, open) plot(array.get(a, 5))

параметр

  • id(any array type) Объекты массива.
  • 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)

Пример

pine
// 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(any array type) Объекты массива.
  • index(series int) Изменить индекс элемента.
  • value (series <type of the array's elements>) новые значения, которые нужно установить.

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

array.sum

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

array.sum(id)

Пример

pine
// 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)

Пример

pine
// 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)

Пример

pine
// array.indexof example a = array.new_float(5,high) index = array.indexof(a, high) plot(index)

Возвращение
Индекс элементов

параметр

  • id(any array type) Объекты массива.
  • value (series <type of the array's elements>Значение, которое нужно искать в массиве.

См. также
array.lastindexof array.get array.lastindexof array.remove array.insert

strategy

существоватьstrategyВ соответствующих встроенных функциях число стоп-пойнтов определяется как кратное число скачков цены. Например:strategy.exitФункцияprofitlossПараметры в точках обозначают остановку, остановку, параметрыprofitНастройка на 10, то есть цена скачет умножить на 10 как стоп-дифференциал, цена скачет как встроенная переменнаяsyminfo.mintick

strategy

Функция устанавливает несколько атрибутов стратегии:
Примечание: цитаты только для поддержкиtitleshorttitleoverlaypyramidingdefault_qty_typedefault_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)

Пример

pine
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 - он будет добавлен в отдельное окно диаграммы. По умолчанию false.
  • format(const string) Типы возможных значений форматирования показателя на оси цены: format.inherit, format.price, format.volume。 по умолчанию format.inherit。
  • precision(const int) Число, следующее за числом плавающих точек показателя стоимости на оси цены. Должно быть не отрицательным целым числом и не больше 16. Если это не сделано, используйте формат родительской серии. Если format - format.inherit и этот параметр установлен, format превращается в format.price.
  • scale(scale_type) Показатель должен следовать координатам цены. Возможные значения: scale.right,scale.left,scale.none.
  • pyramiding(const int) Максимальное количество входных заказов, разрешенных в одном направлении. Если это значение равняется 0, то только один входный заказ может быть открыт в одном направлении, и любые другие входные заказы будут отклонены.
  • calc_on_order_fills(const bool) дополнительные интрабарные заказы рассчитываются. Если параметр настроен на true<unk>, то политика будет пересчитываться, как только K-строка будет заполнена внутри заказа (не только при закрытии k-строки). По умолчанию это false<unk>.
  • calc_on_every_tick(const bool) Дополнительная интрабарная стратегия рассчитывается. Если параметр true, политика будет рассчитываться в режиме реального времени, не закрывая k-линии. Эта стратегия не влияет на исторические данные.
  • max_bars_back(const int) Максимальное количество элементов, которые можно использовать в стратегии ссылок на историю. Если в коде сценария ссылаются на историю данных переменных, то используется '[В случае, если параметр [max_bars_back] не имеет значения для всех переменных, то этот параметр будет применяться к каждой встроенной переменной или пользовательской переменной в сценарии. Размер переменной буферной зоны в сценарии Pine обычно автоматически обнаруживается. Однако в некоторых случаях это невозможно, и это является причиной того, что параметр позволяет пользователю вручную установить нижнюю границу этого значения.
  • 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) Сдвиг точки с использованием tick в качестве единицы предложения, будет добавлен/вычитается из цены сделки на куплю/продажу или остановку. Если 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) стоимость комиссии заказа. В зависимости от выбранного типа (тип комиссии) включается процент или сумма.
  • process_orders_on_close(const bool) при настройке на <unk>true<unk>, будут генерироваться другие попытки выполнения ордеров после закрытия диаграмма и завершения стратегических вычислений. Если ордеры являются рыночными, то брокерский симулятор будет выполнять их до открытия следующего диаграмма. Если ордеры являются ценовыми, то ордеры будут выполняться только при выполнении ценовых условий.
  • close_entries_rule(const string) Определяет порядок закрытия ордера. Допустимые значения: 'FIFO' или 'ANY'. FIFO (First-In, First-Out) означает, что при открытии нескольких сделок первая сделка должна быть закрыта. Это правило применяется к акциям, фьючерсам и американской валюте (в соответствии с правилом NFA 2-43b).
  • max_lines_count(const int) показывает количество последних строк. По умолчанию 50, максимально допустимое значение 500.
  • max_labels_count(const int) показывает количество недавних тег-картин. По умолчанию 50 и максимально допустимое значение 500.
  • max_boxes_count(const int) Количество показанных в последнем окне рисунков: 50 по умолчанию, 500 - максимально допустимо.
  • margin_long(const int/float) Поверхностная гарантия - это процент от цены покупки ценных бумаг, покрываемых наличными деньгами или залогом. Должна быть не отрицательная.
  • margin_short(const int/float) Позиция по безналичной позиции является процентной долей от цены покупки ценных бумаг, которая должна быть покрыта наличными деньгами или залогом. Должна быть не отрицательной.
  • explicit_plot_zorder(const bool) Указывает, как будут отображаться графики, заполнения и горизонтальные линии показателей. Если true, то графики будут отображаться в том порядке, в каком они отображаются в коде показателей, причем каждый новый график будет отображаться на вершине предыдущего. Это применимо только к plot*Функции () , fill и hline.
  • initial_capital(const int/float) Количество средств, первоначально доступных для стратегии торговли, представлено в валюте, определенной в валютном пакете.
  • risk_free_rate(const int/float) Безрисковая рентабельность - ежегодное процентное изменение стоимости инвестиций с минимальным риском или нулем, используемое для расчета коэффициентов Sharpe и Sortino. По умолчанию 2

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

См. также
indicator

strategy.entry

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

strategy.entry(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)

Пример

pine
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(series string) Необходимые параметры。 Идентификатор заказа。 Заказ может быть отменен или изменен ссылкой на его идентификатор。
  • direction(strategy_direction) Необходимый параметр. Направление позиции на рынке: strategy.long - многоголовый, strategy.short - пустой.
  • qty(series int/float) параметры выборочные. Договор/количество акций/часов/количество единиц сделки.
  • limit(series int/float) параметры выборочные. Лимитированная цена заказа. Если указано, тип заказа - "limit" или "stop-limit". Другие типы заказа - "NaN".
  • stop(series int/float) параметры выбираемы. Стоп-стоп заказа. Если указано, тип заказа "стоп" или "стоп-лимит". Другие типы заказа - "NaN".
  • oca_name(series string) параметр, который можно выбрать. Заказ относится к названию группы OCA. Если заказ не относится ни к одной группе OCA, то должен быть пустой знак.Примечание: FMZ не поддерживает этот параметр.
  • oca_type(input string) параметры выбираются. Тип группы заказов OCA. Допустимые значения: strategy.oca.none - заказ не должен принадлежать к какой-либо конкретной группе OCA; strategy.oca.cancel - заказ должен принадлежать к группе OCA, и, как только заказ будет сделан, все другие заказы в той же группе будут отменены; strategy.oca.reduce - заказ должен принадлежать к группе OCA, и если X количество контрактов заказа было размещено, то количество других контрактов заказа в той же группе OCA уменьшается на X.Примечание: FMZ не поддерживает этот параметр.
  • comment(series string) параметры выборочные. Другие инструкции к заказу.
  • when(series bool) параметры. Состояние заказа. Если "true", то заказ размещен. Если "false", то ничего не происходит.
  • alert_message(series string) Выбираемый параметр, используемый при использовании позиционирующего знака {{strategy.order.alert_message}} в диалоговом окне создания диалогов в окне создания диалогов в окне создания диалогов}}

strategy.close

Это приказ с выходом из ордера с присвоенным ID. Если есть несколько входящих ордеров с одинаковым ID, они выходят одновременно. Если при запуске команды нет открытых ордеров с присвоенным ID, то приказ не вступает в силу.

strategy.close(id, when, comment, qty, qty_percent, alert_message)

Пример

pine
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(series string) Необходимые параметры。 Идентификатор заказа。 Заказ может быть закрыт ссылкой на его идентификатор。
  • when(series bool) выборочный параметр ◦ условия команды ◦
  • qty(series int/float) выбираемый параметр. Количество выходящих контрактов/долей/часов/единиц. По умолчанию 'NaN'
  • qty_percent(series int/float) определяет процент плавных позиций ((0-100) ≠ , приоритетом которых является приоритет ниже параметра 'qty' ≠ , по умолчанию 100 ≠
  • comment(series string) параметры выборочные. Другие инструкции к заказу.
  • alert_message(series string) Выбираемый параметр, используемый при использовании позиционирующего знака {{strategy.order.alert_message}} в диалоговом окне создания диалогов в окне создания диалогов в окне создания диалогов}}

strategy.close_all

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

strategy.close_all(when, comment, alert_message)

Пример

pine
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(series bool) выборочный параметр ◦ условия команды ◦
  • comment(series string) параметры выборочные. Другие инструкции к заказу.
  • alert_message(series string) Выбираемый параметр, используемый при использовании позиционирующего знака {{strategy.order.alert_message}} в диалоговом окне создания диалогов в окне создания диалогов в окне создания диалогов}}

strategy.exit

Это приказ о выходе из заданного входа или всего рыночного положения. Если заказ с одинаковым идентификатором уже привязан, то можно изменить заказ. Если входный заказ не заключен, но есть выходный заказ, то выходный заказ будет приостановлен до тех пор, пока после заключения входного заказа не будет возможно разместить выходный заказ. Чтобы приостановить выходный заказ, следует использовать команду strategy.cancel или strategy.cancel_all. Если функция 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)

Пример

pine
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(series string) Необходимые параметры。 Идентификатор заказа。 Заказ может быть отменен или изменен ссылкой на его идентификатор。
  • from_entry(series string) параметры выборочные. Выход с указанием входящего указателя. Для выхода из всех позиций следует использовать пустую строку. По умолчанию пустая строка.
  • qty(series int/float) выбираемый параметр. Количество выходящих контрактов/долей/часов/единиц. По умолчанию 'NaN'
  • qty_percent(series int/float) определяет процент плавных позиций ((0-100) ≠ , приоритетом которых является приоритет ниже параметра 'qty' ≠ , по умолчанию 100 ≠
  • profit(series int/float) параметры выборочные. Цель прибыли (в точках). Если указано, то при достижении установленного объема прибыли (в точках) выходит из позиции с предельной ценой.
  • limit(series int/float) параметры выбора ◦ Цель прибыли (укажите цену) ◦ Выход из рыночной позиции (укажите цену) ◦ Приоритетность параметра 'limit' выше, чем приоритетность параметра 'profit' (если значение не является 'NaN', то 'limit' заменяет 'profit') ◦ По умолчанию <unk>NaN<unk>
  • loss(series int/float) параметры выбираются. Стоп-убыток (в точках) Если это указано, то при достижении указанного размера убытков (в точках) выходит из позиции с одним стоп-убытком.
  • stop(series int/float) параметры выборочные. Стоп-убыток (укажите цену) Если указано, то выходит из позиции по указанной цене (или хуже). Приоритет параметра "стоп-убыток" выше, чем приоритет параметра "убыток" (если значение не является "NaN", то "стоп-убыток" заменяет "убыток").
  • trail_price(series int/float) параметры выборочные. Отслеживать уровень активации стоп-стандарта (укажите цену) Если указано, то при достижении указанного уровня цены будет размещен отслеживаемый стоп-стандарт. В параметре отслеживания стоп-стандарта в строке trail_offset указывается смещение, используемое для определения начальной цены отслеживаемого стоп-стандарта (учитывается в точках): X-точка ниже уровня активации для выхода из многоголового; X-точка выше уровня активации для выхода из пустого.
  • trail_points(series int/float) параметры выборочные. Отслеживать уровень активации стоп-ложа (в точках указаны прибыли). Если указано, то при достижении рассчитанного уровня цены (в точках указана сумма прибыли) размещают отслеживающий стоп-ложа.
  • trail_offset(series int/float) параметры выбираются. Следить за уровнем активации стоп-стоп (в точках) Следить за первоначальной ценой стоп-стопа: X-точки ниже "trail_price" или "trail_points" для выхода из многоголовной; X-точки выше "trail_price" или "trail_points" для выхода из пустой. По умолчанию - <unk>NaN<unk>
  • oca_name(series string) параметры выборочные. Наименование группы OCA (oca_type = strategy.oca.reduce) Цель прибыли, остановка убытков / отслеживание убытков. Если имя не указано, оно будет автоматически генерироваться.Примечание: FMZ не поддерживает этот параметр.
  • comment(series string) параметры выборочные. Другие инструкции к заказу.
  • when(series bool) параметры. Состояние заказа. Если "true", то заказ размещен. Если "false", то ничего не происходит.
  • alert_message(series string) Выбираемый параметр, используемый при использовании позиционирующего знака {{strategy.order.alert_message}} в диалоговом окне создания диалогов в окне создания диалогов в окне создания диалогов}}

strategy.cancel

Это команды с использованием имени для отмены/отключения всех заранее закрепленных списков, которые генерируются следующими функциями: strategy.order, strategy.entry и strategy.exit.

strategy.cancel(id, when)

Пример

pine
strategy(title = "simple order cancellation example") conditionForBuy = open > high[1] strategy.entry("long", strategy.long, 1, limit = low, when = conditionForBuy) // enter long using limit order at low price of current bar if conditionForBuy is true strategy.cancel("long", when = not conditionForBuy) // cancel the entry order with name "long" if conditionForBuy is false

параметр

  • id(series string) Обязательный параметр。 идентификатор заказа。 расположение этого идентификатора для отмены заказа。
  • when(series bool) параметры. Отменить заказ в соответствии с ID. Если true, то заказ будет отменен.

strategy.cancel_all

Это отмена/отключение всех предварительно заложенных команд, сгенерированных следующими функциями: strategy.order, strategy.entry и strategy.exit.

strategy.cancel_all(when)

Пример

pine
strategy(title = "simple all orders cancellation example") conditionForBuy1 = open > high[1] strategy.entry("long entry 1", strategy.long, 1, limit = low, when = conditionForBuy1) // enter long by limit if conditionForBuy1 is true conditionForBuy2 = conditionForBuy1 and open[1] > high[2] strategy.entry("long entry 2", strategy.long, 1, limit = ta.lowest(low, 2), when = conditionForBuy2) // enter long by limit if conditionForBuy2 is true conditionForStopTrading = open < ta.lowest(low, 2) strategy.cancel_all(conditionForStopTrading) // cancel both limit orders if the conditon conditionForStopTrading is true

параметр

  • when(series bool) параметры. Отменить все условия заказа. Если условие истинно, то все активные заказы будут отменены.

strategy.order

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

strategy.order(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)

Пример

strategy(title = "simple strategy order example") strategy.order("buy", strategy.long, 1, when = open > high[1]) // buy by market if current open great then previous high strategy.order("sell", strategy.short, 1, when = open < low[1]) // sell by market if current open less then previous low

параметр

  • id(series string) Необходимые параметры。 Идентификатор заказа。 Заказ может быть отменен или изменен ссылкой на его идентификатор。
  • direction(strategy_direction) Необходимый параметр. Направление заказа: strategy.long - покупать, strategy.short - продавать.
  • qty(series int/float) параметры выборочные. Договор/количество акций/часов/количество единиц сделки.
  • limit(series int/float) параметры выборочные. Лимитированная цена заказа. Если указано, тип заказа - "limit" или "stop-limit". Другие типы заказа - "NaN".
  • stop(series int/float) параметры выбираемы. Стоп-стоп заказа. Если указано, тип заказа "стоп" или "стоп-лимит". Другие типы заказа - "NaN".
  • oca_name(series string) параметр, который можно выбрать. Заказ относится к названию группы OCA. Если заказ не относится ни к одной группе OCA, то должен быть пустой знак.Примечание: FMZ не поддерживает этот параметр.
  • oca_type(input string) параметры выбираются. Тип группы заказов OCA. Допустимые значения: strategy.oca.none - заказ не должен принадлежать к какой-либо конкретной группе OCA; strategy.oca.cancel - заказ должен принадлежать к группе OCA, и, как только заказ будет сделан, все другие заказы в той же группе будут отменены; strategy.oca.reduce - заказ должен принадлежать к группе OCA, и если X количество контрактов заказа было размещено, то количество других контрактов заказа в той же группе OCA уменьшается на X.Примечание: FMZ не поддерживает этот параметр.
  • comment(series string) параметры выборочные. Другие инструкции к заказу.
  • when(series bool) параметры. Состояние заказа. Если "true", то заказ размещен. Если "false", то ничего не происходит.
  • alert_message(series string) Выбираемый параметр, используемый при использовании позиционирующего знака {{strategy.order.alert_message}} в диалоговом окне создания диалогов в окне создания диалогов в окне создания диалогов}}

strategy.opentrades.entry_bar_index

bar_index, возвращающий вход в неравновесную позицию

strategy.opentrades.entry_bar_index(trade_num)

Ждать 10 K-линий и закрыть позицию.

Пример

pine
strategy("`strategy.opentrades.entry_bar_index` Example") barsSinceLastEntry() => strategy.opentrades > 0 ? bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) : na // Enter a long position if there are no open positions. if strategy.opentrades == 0 strategy.entry("Long", strategy.long) // Close the long position after 10 bars. if barsSinceLastEntry() >= 10 strategy.close("Long")

параметр

  • trade_num(series int) Номер сделки с неравновесной позицией 。 Номер сделки с первой сделкой - ноль 。

См. также
strategy.closedtrades.entry_bar_index strategy.closedtrades.exit_bar_index

strategy.opentrades.entry_id

ID, возвращающий вход в неравновесную сделку.

strategy.opentrades.entry_id(trade_num)

Пример

pine
strategy("`strategy.opentrades.entry_id` Example", overlay = true) // We enter a long position when 14 period sma crosses over 28 period sma. // We enter a short position when 14 period sma crosses under 28 period sma. longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28)) shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28)) // Strategy calls to enter a long or short position when the corresponding condition is met. if longCondition strategy.entry("Long entry at bar #" + str.tostring(bar_index), strategy.long) if shortCondition strategy.entry("Short entry at bar #" + str.tostring(bar_index), strategy.short) // Display ID of the latest open position. if barstate.islastconfirmedhistory runtime.log("Last opened position is " + strategy.opentrades.entry_id(strategy.opentrades - 1))

Возвращение
ID, возвращающий вход в неравновесную сделку.

параметр

  • trade_num(series int) Номер сделки с неравновесной позицией 。 Номер сделки с первой сделкой - ноль 。

Примечание
Если trade_num не находится в пределах, функция возвращает na:0 в strategy.opentrades-1。

См. также
strategy.opentrades.entry_bar_index strategy.opentrades.entry_time

strategy.opentrades.entry_price

Возвращение входной цены на неравновесную сделку.

strategy.opentrades.entry_price(trade_num)

Пример

pine
strategy("strategy.closedtrades.entry_price Example 1") // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars. if bar_index % 15 == 0 strategy.entry("Long", strategy.long) if bar_index % 20 == 0 strategy.close("Long") // Return the entry price for the latest closed trade. entryPrice = strategy.closedtrades.entry_price(strategy.closedtrades - 1) plot(entryPrice, "Long entry price")

Расчет средней неравновесной цены

Пример

pine
strategy("strategy.opentrades.entry_price Example 2", pyramiding = 2) // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars. if bar_index % 15 == 0 strategy.entry("Long", strategy.long) if bar_index % 20 == 0 strategy.close("Long") // Calculate average open position price. avgOpenPositionPrice() => sumOpenPositionPrice = 0.0 for tradeNo = 0 to strategy.opentrades - 1 sumOpenPositionPrice += strategy.opentrades.entry_price(tradeNo) * strategy.opentrades.size(tradeNo) / strategy.position_size result = nz(sumOpenPositionPrice / strategy.opentrades) plot(avgOpenPositionPrice())

параметр

  • trade_num(series int) Номер сделки с неравновесной позицией 。 Номер сделки с первой сделкой - ноль 。

См. также
strategy.closedtrades.exit_price

strategy.opentrades.entry_time

Возвращение к UNIX времени входа в неравновесную торговлю.

strategy.opentrades.entry_time(trade_num)

Пример

pine
strategy("strategy.opentrades.entry_time Example") // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars. if bar_index % 15 == 0 strategy.entry("Long", strategy.long) if bar_index % 20 == 0 strategy.close("Long") // Calculates duration in milliseconds since the last position was opened. timeSinceLastEntry()=> strategy.opentrades > 0 ? (time - strategy.opentrades.entry_time(strategy.opentrades - 1)) : na plot(timeSinceLastEntry() / 1000 * 60 * 60 * 24, "Days since last entry")

параметр

  • trade_num(series int) Номер сделки с неравновесной позицией 。 Номер сделки с первой сделкой - ноль 。

См. также
strategy.closedtrades.entry_time strategy.closedtrades.exit_time

strategy.opentrades.profit

Потери, возвращенные к сделкам с неравновесными позициями. Убытки выражены как отрицательные.

strategy.opentrades.profit(trade_num)

Возвращение прибыли от последней открытой позиции

Пример

pine
strategy("`strategy.opentrades.profit` Example 1", commission_type = strategy.commission.percent, commission_value = 0.1) // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars. if bar_index % 15 == 0 strategy.entry("Long", strategy.long) if bar_index % 20 == 0 strategy.close("Long") plot(strategy.opentrades.profit(strategy.opentrades - 1), "Profit of the latest open trade")

Расчет прибыли от всех неравновесных сделок

Пример

pine
strategy("`strategy.opentrades.profit` Example 2", pyramiding = 5) // Strategy calls to enter 5 long positions every 2 bars. if bar_index % 2 == 0 strategy.entry("Long", strategy.long, qty = 5) // Calculate open profit or loss for the open positions. tradeOpenPL() => sumProfit = 0.0 for tradeNo = 0 to strategy.opentrades - 1 sumProfit += strategy.opentrades.profit(tradeNo) result = sumProfit plot(tradeOpenPL(), "Profit of all open trades")

параметр

  • trade_num(series int) Номер сделки с неравновесной позицией 。 Номер сделки с первой сделкой - ноль 。

См. также
strategy.closedtrades.profit strategy.openprofit strategy.netprofit strategy.grossprofit

strategy.opentrades.size

Возвращает направление сделки и количество контрактов в неравновесной сделке. Если это значение > 0, то рыночная позиция является многоглавой. Если это значение < 0, то рыночная позиция является пустой.

strategy.opentrades.size(trade_num)

Пример

pine
strategy("`strategy.opentrades.size` Example 1") // We calculate the max amt of shares we can buy. amtShares = math.floor(strategy.equity / close) // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars if bar_index % 15 == 0 strategy.entry("Long", strategy.long, qty = amtShares) if bar_index % 20 == 0 strategy.close("Long") // Plot the number of contracts in the latest open trade. plot(strategy.opentrades.size(strategy.opentrades - 1), "Amount of contracts in latest open trade")

Расчет процентной доли средней прибыли от сделки с неравномерной позицией

Пример

pine
strategy("`strategy.opentrades.size` Example 2") // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars. if bar_index % 15 == 0 strategy.entry("Long", strategy.long) if bar_index % 20 == 0 strategy.close("Long") // Calculate profit for all open trades. profitPct = 0.0 for tradeNo = 0 to strategy.opentrades - 1 entryP = strategy.opentrades.entry_price(tradeNo) exitP = close profitPct += (exitP - entryP) / entryP * strategy.opentrades.size(tradeNo) * 100 // Calculate average profit percent for all open trades. avgProfitPct = nz(profitPct / strategy.opentrades)

параметр

  • trade_num(series int) Номер сделки с неравновесной позицией 。 Номер сделки с первой сделкой - ноль 。

См. также
strategy.closedtrades.size strategy.position_size strategy.opentrades strategy.closedtrades

strategy.closedtrades.entry_bar_index

bar_index, возвращающий вход на торги, которые были закрыты.

strategy.closedtrades.entry_bar_index(trade_num)

Пример

pine
strategy("strategy.closedtrades.entry_bar_index Example") // Enter long trades on three rising bars; exit on two falling bars. if ta.rising(close, 3) strategy.entry("Long", strategy.long) if ta.falling(close, 2) strategy.close("Long") // Function that calculates the average amount of bars in a trade. avgBarsPerTrade() => sumBarsPerTrade = 0 for tradeNo = 0 to strategy.closedtrades - 1 // Loop through all closed trades, starting with the oldest. sumBarsPerTrade += strategy.closedtrades.exit_bar_index(tradeNo) - strategy.closedtrades.entry_bar_index(tradeNo) + 1 result = nz(sumBarsPerTrade / strategy.closedtrades) plot(avgBarsPerTrade())

параметр

  • trade_num(series int) Номер сделки, на которой была проведена ликвидация. Номер первой сделки - 0.

См. также
strategy.closedtrades.exit_bar_index strategy.opentrades.entry_bar_index

strategy.closedtrades.exit_price

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

strategy.closedtrades.exit_price(trade_num)

Пример

pine
strategy("strategy.closedtrades.exit_price Example 1") // We are creating a long trade every 5 bars if bar_index % 5 == 0 strategy.entry("Long", strategy.long) strategy.close("Long") // Return the exit price from the latest closed trade. exitPrice = strategy.closedtrades.exit_price(strategy.closedtrades - 1) plot(exitPrice, "Long exit price")

Процент средней прибыли от всех ликвидированных сделок

Пример

pine
strategy("strategy.closedtrades.exit_price Example 2") // Strategy calls to create single short and long trades. if bar_index == last_bar_index - 15 strategy.entry("Long Entry", strategy.long) else if bar_index == last_bar_index - 10 strategy.close("Long Entry") strategy.entry("Short", strategy.short) else if bar_index == last_bar_index - 5 strategy.close("Short") // Calculate profit for both closed trades. profitPct = 0.0 for tradeNo = 0 to strategy.closedtrades - 1 entryP = strategy.closedtrades.entry_price(tradeNo) exitP = strategy.closedtrades.exit_price(tradeNo) profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100 // Calculate average profit percent for both closed trades. avgProfitPct = nz(profitPct / strategy.closedtrades) plot(avgProfitPct)

параметр

  • trade_num(series int) Номер сделки, на которой была проведена ликвидация. Номер первой сделки - 0.

См. также
strategy.closedtrades.entry_price

strategy.closedtrades.exit_bar_index

Возвращает bar_index, вышедший из сделки, когда позиция была уравнена.

strategy.closedtrades.exit_bar_index(trade_num)

Пример

pine
strategy("strategy.closedtrades.exit_bar_index Example 1") // Strategy calls to place a single short trade. We enter the trade at the first bar and exit the trade at 10 bars before the last chart bar. if bar_index == 0 strategy.entry("Short", strategy.short) if bar_index == last_bar_index - 10 strategy.close("Short") // Calculate the amount of bars since the last closed trade. barsSinceClosed = strategy.closedtrades > 0 ? bar_index - strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1) : na plot(barsSinceClosed, "Bars since last closed trade")

Вычислите среднее число K-линий для каждой сделки.

Пример

pine
strategy("strategy.closedtrades.exit_bar_index Example 2") // Enter long trades on three rising bars; exit on two falling bars. if ta.rising(close, 3) strategy.entry("Long", strategy.long) if ta.falling(close, 2) strategy.close("Long") // Function that calculates the average amount of bars per trade. avgBarsPerTrade() => sumBarsPerTrade = 0 for tradeNo = 0 to strategy.closedtrades - 1 // Loop through all closed trades, starting with the oldest. sumBarsPerTrade += strategy.closedtrades.exit_bar_index(tradeNo) - strategy.closedtrades.entry_bar_index(tradeNo) + 1 result = nz(sumBarsPerTrade / strategy.closedtrades) plot(avgBarsPerTrade())

параметр

  • trade_num(series int) Номер сделки, на которой была проведена ликвидация. Номер первой сделки - 0.

См. также
bar_index

strategy.closedtrades.entry_id

id, возвращающий вход в ликвидированную сделку

strategy.closedtrades.entry_id(trade_num)

Пример

pine
strategy("strategy.closedtrades.entry_id Example", overlay = true) var isOpen = false var openIndex = -1 // Enter a short position and close at the previous to last bar. if not barstate.ishistory and not isOpen strategy.entry("Short at bar #" + str.tostring(bar_index), strategy.short) isOpen := true openIndex := bar_index if openIndex != -1 and bar_index > openIndex + 100 strategy.close_all() // Display ID of the last entry position. if barstate.islastconfirmedhistory runtime.log("Last Entry ID is: " + strategy.closedtrades.entry_id(strategy.closedtrades - 1))

Возвращение
id, возвращающий вход в ликвидированную сделку

параметр

  • trade_num(series int) Номер сделки, на которой была проведена ликвидация. Номер первой сделки - 0.

Примечание
Если trade_num не находится в пределах, то функция возвращает na:0 в strategy.closedtrades-1。

См. также
strategy.closedtrades.entry_bar_index strategy.closedtrades.entry_time

strategy.closedtrades.entry_price

Возвращение входной цены на ликвидированную сделку.

strategy.closedtrades.entry_price(trade_num)

Пример

pine
strategy("strategy.closedtrades.entry_price Example 1") // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars. if bar_index % 15 == 0 strategy.entry("Long", strategy.long) if bar_index % 20 == 0 strategy.close("Long") // Return the entry price for the latest entry. entryPrice = strategy.closedtrades.entry_price(strategy.closedtrades - 1) plot(entryPrice, "Long entry price")

Процент средней прибыли от всех ликвидированных сделок

Пример

pine
strategy("strategy.closedtrades.entry_price Example 2") // Strategy calls to create single short and long trades if bar_index == last_bar_index - 15 strategy.entry("Long Entry", strategy.long) else if bar_index == last_bar_index - 10 strategy.close("Long Entry") strategy.entry("Short", strategy.short) else if bar_index == last_bar_index - 5 strategy.close("Short") // Calculate profit for both closed trades. profitPct = 0.0 for tradeNo = 0 to strategy.closedtrades - 1 entryP = strategy.closedtrades.entry_price(tradeNo) exitP = strategy.closedtrades.exit_price(tradeNo) profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100 // Calculate average profit percent for both closed trades. avgProfitPct = nz(profitPct / strategy.closedtrades) plot(avgProfitPct)

параметр

  • trade_num(series int) Номер сделки, на которой была проведена ликвидация. Номер первой сделки - 0.

См. также
strategy.closedtrades.exit_price strategy.closedtrades.size strategy.closedtrades

strategy.closedtrades.entry_time

Возвращение к UNIX-время входа в торговое пространство с уравненным положением.

strategy.closedtrades.entry_time(trade_num)

Пример

pine
strategy("strategy.closedtrades.entry_time Example", overlay = true) // Enter long trades on three rising bars; exit on two falling bars. if ta.rising(close, 3) strategy.entry("Long", strategy.long) if ta.falling(close, 2) strategy.close("Long") // Calculate the average trade duration avgTradeDuration() => sumTradeDuration = 0 for i = 0 to strategy.closedtrades - 1 sumTradeDuration += strategy.closedtrades.exit_time(i) - strategy.closedtrades.entry_time(i) result = nz(sumTradeDuration / strategy.closedtrades) // Display average duration converted to seconds and formatted using 2 decimal points if barstate.islastconfirmedhistory runtime.log(str.tostring(avgTradeDuration() / 1000, "#.##") + " seconds")

параметр

  • trade_num(series int) Номер сделки, на которой была проведена ликвидация. Номер первой сделки - 0.

См. также
strategy.opentrades.entry_time strategy.closedtrades.exit_time time

strategy.closedtrades.profit

Убыток, возвращаемый к сделке, которая была ликвидирована. Убыток представлен как отрицательная стоимость.

strategy.closedtrades.profit(trade_num)

Пример

pine
strategy("`strategy.closedtrades.profit` Example") // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars. if bar_index % 15 == 0 strategy.entry("Long", strategy.long) if bar_index % 20 == 0 strategy.close("Long") // Calculate average gross profit by adding the difference between gross profit and commission. avgGrossProfit() => sumGrossProfit = 0.0 for tradeNo = 0 to strategy.closedtrades - 1 sumGrossProfit += strategy.closedtrades.profit(tradeNo) - strategy.closedtrades.commission(tradeNo) result = nz(sumGrossProfit / strategy.closedtrades) plot(avgGrossProfit(), "Average gross profit")

параметр

  • trade_num(series int) Номер сделки, на которой была проведена ликвидация. Номер первой сделки - 0.

См. также
strategy.opentrades.profit strategy.closedtrades.commission

strategy.closedtrades.size

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

strategy.closedtrades.size(trade_num)

Пример

pine
strategy("`strategy.closedtrades.size` Example 1") // We calculate the max amt of shares we can buy. amtShares = math.floor(strategy.equity / close) // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars if bar_index % 15 == 0 strategy.entry("Long", strategy.long, qty = amtShares) if bar_index % 20 == 0 strategy.close("Long") // Plot the number of contracts traded in the last closed trade. plot(strategy.closedtrades.size(strategy.closedtrades - 1), "Number of contracts traded")

Расчет процентной доли средней прибыли от сделки с плавным положением

Пример

pine
strategy("`strategy.closedtrades.size` Example 2") // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars. if bar_index % 15 == 0 strategy.entry("Long", strategy.long) if bar_index % 20 == 0 strategy.close("Long") // Calculate profit for both closed trades. profitPct = 0.0 for tradeNo = 0 to strategy.closedtrades - 1 entryP = strategy.closedtrades.entry_price(tradeNo) exitP = strategy.closedtrades.exit_price(tradeNo) profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100 // Calculate average profit percent for both closed trades. avgProfitPct = nz(profitPct / strategy.closedtrades) plot(avgProfitPct)

параметр

  • trade_num(series int) Номер сделки, на которой была проведена ликвидация. Номер первой сделки - 0.

См. также
strategy.opentrades.size strategy.position_size strategy.closedtrades strategy.opentrades

strategy.closedtrades.exit_time

Возвращение к UNIX-время выхода из сделки с уравненным положением.

strategy.closedtrades.exit_time(trade_num)

Пример

pine
strategy("strategy.closedtrades.exit_time Example 1") // Enter long trades on three rising bars; exit on two falling bars. if ta.rising(close, 3) strategy.entry("Long", strategy.long) if ta.falling(close, 2) strategy.close("Long") // Calculate the average trade duration. avgTradeDuration() => sumTradeDuration = 0 for i = 0 to strategy.closedtrades - 1 sumTradeDuration += strategy.closedtrades.exit_time(i) - strategy.closedtrades.entry_time(i) result = nz(sumTradeDuration / strategy.closedtrades) // Display average duration converted to seconds and formatted using 2 decimal points. if barstate.islastconfirmedhistory label.new(bar_index, high, str.tostring(avgTradeDuration() / 1000, "#.##") + " seconds")

X секунд, чтобы открыть закрытую позицию

Пример

strategy("strategy.closedtrades.exit_time Example 2") // Strategy calls to emulate a single long trade at the first bar. if bar_index == 0 strategy.entry("Long", strategy.long) reopenPositionAfter(timeSec) => if strategy.closedtrades > 0 if time - strategy.closedtrades.exit_time(strategy.closedtrades - 1) >= timeSec * 1000 strategy.entry("Long", strategy.long) // Reopen last closed position after 120 sec. reopenPositionAfter(120) if ta.change(strategy.opentrades) strategy.exit("Long", stop = low * 0.9, profit = high * 2.5)

параметр

  • trade_num(series int) Номер сделки, на которой была проведена ликвидация. Номер первой сделки - 0.

См. также
strategy.closedtrades.entry_time

strategy.risk.allow_entry_in

Эта функция может быть использована для определения того, в каком направлении на рынке допускается открытие позиции.

strategy.risk.allow_entry_in(value)

Пример

pine
strategy("strategy.risk.allow_entry_in") strategy.risk.allow_entry_in(strategy.direction.long) strategy.entry("Long", strategy.long, when = open > close) // Instead of opening a short position with 10 contracts, this command will close long entries. strategy.entry("Short", strategy.short, when = open < close, qty = 10)

параметр

strategy.risk.max_position_size

Целью этого правила является определение максимального значения рыночной позиции. Это правило влияет на следующие функции:strategy.entry。 Количество входных ячеек может быть уменьшено (если это необходимо) до числа контрактов/акций/рук/единиц, так что общая стоимость позиции не превышает значения, указанного в 'strategy.risk.max_position_size'。 Если минимальное количество все же нарушает правила, то ордеры не будут размещаться。

strategy.risk.max_position_size(contracts)

Пример

pine
strategy("risk.max_position_size Demo", default_qty_value = 100) strategy.risk.max_position_size(10) strategy.entry("buy", strategy.long, when = open > close) plot(strategy.position_size) // max plot value will be 10

параметр

  • contracts(simple int/float) Необходимые параметры. Максимальное количество контрактов/акций/рук/единиц позиции.

math

math.abs

Если...number >= 0,numberАбсолютное значениеnumberв противном случае -number

math.abs(number)

Возвращение
numberАбсолютные значения

math.acos

Функция acos возвращает обратный диапазон числа ((в виде арки), например cos ((acos ((y)) = y в пределах y.[-1, 1]。

math.acos(angle)

Возвращение
Обратное значение. Если y выходит за пределы[-1,1], угол возвращения в[0, Pi] или na в пределах.

math.random

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

math.random(min, max, seed)

Возвращение
Это случайная величина.

параметр

  • min(series int/float) Нижняя граница диапазона случайных значений。 Это значение не включается в диапазон。 По умолчанию 0。
  • max(series int/float) Верхний предел диапазона случайных значений.
  • seed(input int) выборочный параметр. При использовании одного и того же семени, позволяет последовательно вызывать эту функцию, чтобы произвести повторяющийся набор значений.

math.asin

Функция asin возвращает число обратной коэффициентной линии (((в дуге), коэффициент ((asin ((y)) = y в пределах y[-1, 1]。

math.asin(angle)

Возвращение
Противосигнальное значение. Если y выходит за пределы[-1,1], угол возвращения в[- в диапазоне Pi / 2, Pi / 2] или na.

math.atan

Функция atan возвращает число обратного отрезка ((в виде дуги), tan (((atan ((y)) = y в любой y.

math.atan(angle)

Возвращение
обратная резкость; угол возвращения в[- в пределах [Pi / 2, Pi / 2].

math.ceil

Вертикальная функция возвращает наименьшее (наиболее близкое к отрицательной бесконечности) целое число, большее или равное этому.

math.ceil(number)

Возвращение
Минимальное целое число меньше или равно данному числу

См. также
math.floor math.round

math.cos

Кос функция возвращает угловой тригоносец.

math.cos(angle)

Возвращение
Треугольные ароматы уголков.

параметр

  • angle(series int/float) угол, по дуге

math.exp

numberФункция exp e.numberВторое число, где e - число Аура.

math.exp(number)

Возвращение
Мы можем сделать это, но мы не можем сделать это.numberЯ не знаю, что делать.

См. также
math.pow

math.floor

math.floor(number)

Возвращение
меньше или равно наибольшему целому числу данного числа.

См. также
math.ceil math.round

math.log

Никаких.numberЕстественный аргумент > 0 - единственное y, что делает e^y = number

math.log(number)

Возвращение
numberЕстественные аргументы.

См. также
math.log10

math.log10

numberЧасто используемый (или основанный на 10) аргумент - это коэффициент, к которому нужно поднять 10 для полученияnumber。10^y = number

math.log10(number)

Возвращение
numberАргитектура на основе 10 ≠ <unk> <unk> <unk> .

См. также
math.log

math.pow

Функция математической ячейки

math.pow(base, exponent)

Пример

pine
// math.pow plot(math.pow(close, 2))

Возвращение
baseПовышение доexponentЕслиbaseЭто ряд, который рассчитывается по элементам.

параметр

  • base(series int/float) указывает, какую основу использовать.
  • exponent(series int/float) указать индекс.

См. также
math.sqrt math.exp

math.sign

Знак (signum) кода кода кода равен нулю, если кода кода больше 0, то 1,0, если кода кода меньше 0, то -1,0.

math.sign(number)

Возвращение
Знак параметров.

math.sin

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

math.sin(angle)

Возвращение
Треугольная совокупность углов.

параметр

  • angle(series int/float) угол, по дуге

math.sqrt

Любые.numberКвадратный корень >=0 - единственное, что делает y >=0 равной y^2.number

math.sqrt(number)

Возвращение
numberКвадратный корень

См. также
math.pow

math.tan

Тройная прямоугольница, от которой возвращается равенство tan.

math.tan(angle)

Возвращение
Угол треугольника прямоугольный.

параметр

  • angle(series int/float) угол, по дуге

math.round

Возвращение.numberЕсли используется ∞, то ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞, ∞.precisionВ качестве аргумента, возвращается четырехконечное число, входящее в меньшую цифру.

math.round(number)
math.round(number, precision)

Возвращение
numberЗначения в окружности к ближайшему целому числу, или в зависимости от точности.

параметр

  • number(series int/float) Окружить пять входящих значений.
  • precision(series int) выборочный параметр.numberБудет округлое число, округлое к ближайшему целому числу, когда параметры не предоставлены.

Примечание
Обратите внимание, что для значения 'na' функция возвращает 'na'.

См. также
math.ceil math.floor

math.max

Возвращает наибольшую из нескольких значений.

math.max(number0, number1, ...)

Пример

pine
// math.max plot(math.max(close, open)) plot(math.max(close, math.max(open, 42)))

Возвращение
Наибольшее из нескольких заданных значений.

См. также
math.min

math.min

Возвращает наименьшее из нескольких значений.

math.min(number0, number1, ...)

Пример

pine
// math.min plot(math.min(close, open)) plot(math.min(close, math.min(open, 42)))

Возвращение
Наименьшее из нескольких заданных значений.

См. также
math.max

math.avg

Вычислите среднее значение всех рядов ((соответствующие элементы) <unk>).

math.avg(number0, number1, ...)

Возвращение
Средняя

См. также
math.sum ta.cum ta.sma

math.round_to_mintick

Возвращает значение mintick, окруженное к товару, то есть можно делить на ближайшее значение syminfo.mintick без остатка и окружить вверх.

math.round_to_mintick(number)

Возвращение
number"Все, что мы делаем, - мы делаем для того, чтобы выиграть".

параметр

  • number(series int/float) Окружить пять входящих значений.

См. также
math.ceil math.floor

math.sum

Функция sum возвращает скользящий синтез последнего значения y для x.

math.sum(source, length)

Возвращение
lengthК-линия возвращаетсяsourceВсего.

параметр

  • source(series int/float) Ожидаемые значения серии。
  • length(series int) Количество строк K (длина).

См. также
ta.cum for

math.todegrees

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

math.todegrees(radians)

Возвращение
Угловые величины измеряются в единицах.

параметр

  • radians(series int/float) Угол в единицах дуги.

math.toradians

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

math.toradians(degrees)

Возвращение
Угловые значения в единицах дуги.

параметр

  • degrees(series int/float) Угол, измеряемый в единицах.

others

fixnan

Для данного ряда NaN заменяется на предыдущие значения, не относящиеся к NaN.

fixnan(source)

Возвращение
Серия без пробелов.

параметр

  • source (series int/float/bool/color)

См. также
na nz

nz

Замените значение NaN на нуль (или указанное число) в ряду.

nz(source, replacement)
nz(source)

Пример

pine
// nz plot(nz(ta.sma(close, 100)))

Возвращение
sourceЗначение, если это неnaЕслиsourceВ этом случаеna, возвращает 0, если используется 1, возвращаетreplacementПараметры

параметр

  • source(series int/float/bool/color) Серия значений, которые должны быть выполнены.
  • replacement(series int/float/bool/color) заменяет значения всех <unk>na<unk> в серии <unk>source‬

См. также
na fixnan

na

Если NaN, то значение теста ≠

na(x)

Возвращение
Если x не является действительным числом, то истинно ((x является NaN), иначе ложно.

См. также
fixnan nz

int

Преобразовать na или отсечь float в int ≠

int(x)

Возвращение
Переведите значение параметра после int.

См. также
float bool color string

float

Настройка na на плавающий.

float(x)

Возвращение
Преобразовать в значение параметра после float

См. также
int bool color string

alert

Вызывание событий в режиме реального времени в режиме K-линии и создание предупреждений на основе событий в качестве индикатора или стратегии, ранее созданной диалоговой панели создания предупреждений.

alert(message, freq)

Пример

pine
// alert() example ma = ta.sma(close, 14) xUp = ta.crossover(close, ma) if xUp // Trigger the alert the first time a cross occurs during the real-time bar. alert("Price (" + str.tostring(close) + ") crossed over MA (" + str.tostring(ma) + ").", alert.freq_once_per_bar) plot(ma) plotchar(xUp, "xUp", "▲", location.top, size = size.tiny)

параметр

  • message(series string) Сообщение, отправляемое при срабатывании сигнализации.
  • freq(input string) Частота срабатывания. Возможные значения: alert.freq_all (все функции вызовы срабатывают), alert.freq_once_per_bar (первая функция в K-строке вызовы срабатывают), alert.freq_once_per_bar_close (функциональный вызов срабатывает только в режиме реального времени в течение последнего сценария K-строка и срабатывает только при закрытии). По умолчанию alert.freq_once_per_bar.

Примечание
В Help Center рассказывается, как создать подобные оповещения.
В отличие от alertcondition, вызов alert не считается дополнительным рисунком.
Функция может быть вызвана как в глобальном, так и в локальном масштабе.
Функциональный вызов не показывает ничего на графике.
Параметр <unk>freq<unk> влияет только на частоту выстрела при использовании этой функции.

См. также
alertcondition

alertcondition

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

alertcondition(condition, title, message)

Пример

pine
// alertcondition alertcondition(close >= open, title='Alert on Green Bar', message='Green Bar!')

параметр

  • condition(series bool) Серия булов, используемая для сигнализации. True - сигнал, false - отсутствие сигнала.
  • title(const string) Заголовок условий оповещения.
  • message(const string) Показать сообщение при запуске сигнализации.

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

См. также
alert

indicator

Для совместимостиTrading ViewКод стратегии, фактически не требующий вызова.

См. также
strategy

time

Функция time возвращает UNIX-время текущей K-линии в указанном временном диапазоне и в момент сделки, возвращает NaN, если точка времени не находится в момент сделки. Примечание: FMZ не поддерживаетсяsessionПараметры

time(timeframe, session, timezone)

time(timeframe, session)

time(timeframe)

Пример

pine
timeinrange(res, sess) => not na(time(res, sess, "America/New_York")) ? 1 : 0 plot(timeinrange("1", "1300-1400"), color=color.red) // This plots 1.0 at every start of 10 minute bar on a 1 minute chart: newbar(res) => ta.change(time(res)) == 0 ? 0 : 1 plot(newbar("10"))

Когда вы настраиваете сеанс, вы можете указать не только час и минуту, но и дату недели.
Если дата не указана, то считается, что время торгов установлено с воскресенья (1) по субботу (7), то есть 1100-2000 фунтов стерлингов то же самое, что и 1100-1200: 1234567 фунтов стерлингов.
Вы можете изменить его, указав дату. Например, для товаров, которые торгуются 7 дней в неделю и торгуются 24 часа в сутки, следующий сценарий не будет цветовым для субботы и воскресенья:

Пример

pine
// Time t1 = time(timeframe.period, "0000-0000:23456") bgcolor(t1 ? color.new(color.blue, 90) : na)

Один.sessionПараметры могут содержать несколько разных периодов торговли, разделенных запятой. Например, следующий сценарий будет выделять K-линию с 10:00 до 11:00 и с 14:00 до 15:00 (только в будние дни):

Пример

pine
// Time t1 = time(timeframe.period, "1000-1100,1400-1500:23456") bgcolor(t1 ? color.new(color.blue, 90) : na)

Возвращение
Время Unix.

параметр

  • timeframe(simple string) Период времени。 Пустая строка интерпретируется как текущий период времени на графике。
  • session(simple string) Спецификация времени сделки。 параметр, используемый по умолчанию для времени сделки с товаром。 пустая строка интерпретируется как время сделки с товаром。 FMZ не поддерживается。
  • timezone (simple string) sessionЧасовой пояс для параметров。 может использоваться только в том случае, если в ячейке сеанса указана <unk>。 является выборочным。 по умолчанию является syminfo.timezone。 может быть указана с помощью обозначения GMT ((например, <unk>GMT-5<unk>) или названия базы данных IANA-часового пояс ((например, <unk>America/New_York<unk>) <unk>。

Примечание
UNIX-время - это количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 UTC.

year

year(time)
year(time, timezone)

Возвращение
Год, в котором предоставляется время UNIX ((переменные часовые пояса) <unk>).

параметр

  • time(series int) Unix-время в миллисекундах.
  • timezone(series string) Выбираемый параметр ◦ часовой пояс ◦

Примечание
UNIX-время - это количество миллисекунд с 1 января 1970 года UTC 00:00:00. По умолчанию часовой пояс syminfo.timezone. Вы можете использовать timestamp для проверки возможных значений.
Обратите внимание, что эта функция возвращает год в зависимости от времени открытия K-линии. Для ночных торговых часов (например, EURUSD в понедельник начинается с 17:00 UTC-4 в воскресенье), значение может быть ниже года в день торговли.

См. также
year time month dayofmonth dayofweek hour minute second

month

month(time)
month(time, timezone)

Возвращение
Месяцы, предоставляющие время UNIX ((переменные часовые пояса) }}.

параметр

  • time(series int) Unix-время в миллисекундах.
  • timezone(series string) Выбираемый параметр ◦ часовой пояс ◦

Примечание
UNIX-время - это количество миллисекунд с 1 января 1970 года UTC 00:00:00. По умолчанию часовой пояс syminfo.timezone. Вы можете использовать timestamp для проверки возможных значений.
Обратите внимание, что эта функция возвращает месяц в зависимости от времени открытия K-линии. Для ночных торговых часов (например, EURUSD начинает торговать в понедельник с 17:00 UTC-4 по воскресеньям) значение может быть ниже, чем в месяц торгового дня.

См. также
month time year dayofmonth dayofweek hour minute second

hour

hour(time)
hour(time, timezone)

Возвращение
Часы, предоставляющие время UNIX ((переменные часовые пояса) <unk>).

параметр

  • time(series int) Unix-время в миллисекундах.
  • timezone(series string) Выбираемый параметр ◦ часовой пояс ◦

Примечание
UNIX-время - это количество миллисекунд с 1 января 1970 года UTC 00:00:00. По умолчанию часовой пояс syminfo.timezone. Вы можете использовать timestamp для проверки возможных значений.

См. также
hour time year month dayofmonth dayofweek minute second

minute

minute(time)
minute(time, timezone)

Возвращение
Минуты, предоставляемые в UNIX-время ((переменные часовые пояса)).

параметр

  • time(series int) Unix-время в миллисекундах.
  • timezone(series string) Выбираемый параметр ◦ часовой пояс ◦

Примечание
UNIX-время - это количество миллисекунд с 1 января 1970 года UTC 00:00:00. По умолчанию часовой пояс syminfo.timezone. Вы можете использовать timestamp для проверки возможных значений.

См. также
minute time year month dayofmonth dayofweek hour second

second

second(time)
second(time, timezone)

Возвращение
Показать количество секунд UNIX-времени ((переменные часовые пояса)).

параметр

  • time(series int) Unix-время в миллисекундах.
  • timezone(series string) Выбираемый параметр ◦ часовой пояс ◦

Примечание
UNIX-время - это количество миллисекунд с 1 января 1970 года UTC 00:00:00. По умолчанию часовой пояс syminfo.timezone. Вы можете использовать timestamp для проверки возможных значений.

См. также
second time year month dayofmonth dayofweek hour minute

weekofyear

weekofyear(time)
weekofyear(time, timezone)

Возвращение
Обеспечивает циклы UNIX-времени ((переменные часовые пояса)) [2].

параметр

  • time(series int) Unix-время в миллисекундах.
  • timezone(series string) Выбираемый параметр ◦ часовой пояс ◦

Примечание
UNIX-время - это количество миллисекунд с 1 января 1970 года UTC 00:00:00. По умолчанию часовой пояс syminfo.timezone. Вы можете использовать timestamp для проверки возможных значений.
Обратите внимание, что эта функция возвращает неделю в зависимости от времени открытия линии K. Для ночных торговых часов (например, EURUSD, чьи торговые часы в понедельник начинаются с 17:00 в воскресенье), это значение может быть ниже, чем неделя в торговый день.

См. также
weekofyear time year month dayofmonth dayofweek hour minute second

dayofweek

dayofweek(time)
dayofweek(time, timezone)

Возвращение
Каждый день недели, предоставляющий время UNIX ((переменные часовые пояса) }}.

параметр

  • time(series int) Unix-время в миллисекундах.
  • timezone(series string) Выбираемый параметр ◦ часовой пояс ◦

Примечание
Обратите внимание, что эта функция возвращает дату в зависимости от времени открытия K-линии. Для ночных торговых часов (например, EURUSD в понедельник начинается с 17:00 по воскресеньям) значение может быть ниже, чем дата дня торговли.
UNIX-время - это количество миллисекунд с 1 января 1970 года UTC 00:00:00. По умолчанию часовой пояс syminfo.timezone. Вы можете использовать timestamp для проверки возможных значений.

См. также
time dayofmonth

dayofmonth

dayofmonth(time)
dayofmonth(time, timezone)

Возвращение
Месячные даты, предоставляющие время UNIX ((переменные часовые пояса) }}.

параметр

  • time(series int) Unix-время в миллисекундах.
  • timezone(series string) Выбираемый параметр ◦ часовой пояс ◦

Примечание
UNIX-время - это количество миллисекунд с 1 января 1970 года UTC 00:00:00. По умолчанию часовой пояс syminfo.timezone. Вы можете использовать timestamp для проверки возможных значений.
Обратите внимание, что эта функция возвращает дату в зависимости от времени открытия K-линии. Для ночных торговых часов (например, EURUSD в понедельник начинается с 17:00 UTC-4 в воскресенье), значение может быть ниже, чем дата дня торговли.

См. также
time dayofweek

timestamp

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

timestamp(dateString)
timestamp(year, month, day, hour, minute, second)
timestamp(timezone, year, month, day, hour, minute, second)

Пример

pine
// timestamp plot(timestamp(2016, 01, 19, 09, 30), linewidth=3, color=color.green) plot(timestamp(syminfo.timezone, 2016, 01, 19, 09, 30), color=color.blue) plot(timestamp(2016, 01, 19, 09, 30), color=color.yellow) plot(timestamp("GMT+6", 2016, 01, 19, 09, 30)) plot(timestamp(2019, 06, 19, 09, 30, 15), color=color.lime) plot(timestamp("GMT+3", 2019, 06, 19, 09, 30, 15), color=color.fuchsia) plot(timestamp("Feb 01 2020 22:10:05")) plot(timestamp("2011-10-10T14:48:00")) plot(timestamp("04 Dec 1995 00:12:00 GMT+5"))

Возвращение
Время Unix.

параметр

  • timezone(series string) Временное поясное место. . . . . . . . . . . . . . . . . . . .
  • year(series int) год
  • month(series int) месяц
  • day(series int) Дата
  • hour(series int) (возможные параметры) час. По умолчанию 0
  • minute(series int) (возможные параметры) минуты. По умолчанию 0
  • second(series int) (возможный параметр) Second。 по умолчанию 0。
  • dateString(const string) Строка, содержащая дату, а также выбор времени и часового пояса. Формат должен соответствовать стандартам IETF RFC 2822 или ISO 8601 ((<unk>DD MMM YYYY hh:mm:ss±hhmm<unk> или<unk>YYYYY-MM-DDThh:mm:ss±hh:mm<unk>, а значит<unk>20 Feb 2020<unk> или<unk>2020-02-20<unk>). Если время не предоставлено, используйте<unk>00:00<unk>. Если не предоставлено ни одного часового пояса, используйте GMT+0。 Обратите внимание, что это отличается от обычного поведения функции, которая возвращает время часового пояса, в котором находится биржа。

Примечание
UNIX-время - это количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 UTC.

См. также
time timenow syminfo.timezone

fill

Используйте предоставленный цвет, чтобы заполнить фон между двумя рисунками или hline.

fill(hline1, hline2, color, title, editable, fillgaps, display)
fill(plot1, plot2, color, title, editable, show_last, fillgaps, display)

Пример

pine
h1 = hline(20) h2 = hline(10) fill(h1, h2, color=color.new(color.blue, 90)) p1 = plot(open) p2 = plot(close) fill(p1, p2, color=color.new(color.green, 90))

параметр

  • hline1(hline) Первый hline объект. Необходимые параметры.
  • hline2(hline) Второй объект hline. Нужные параметры.
  • plot1(plot) Первый объект начертания. Необходимые параметры
  • plot2(plot) Второй объект начертания. Нужные параметры.
  • color(series color) цвет изображения. Вы можете использовать константы, такие как 'color = red' или 'color =#ff001a', а также сложные выражения, такие как 'color = close >= open ? green: red'.
  • title(const string) создан заголовок для заполнения объекта.
  • editable(const bool) Если true, то заполненный стиль может быть отредактирован в диалоге форматирования.
  • show_last(input int) Если установлена, то определяется количество k строк, заполняющих график ((от последней k строк назад) <unk>
  • fillgaps(const bool) Контролирует последовательное заполнение пробелов, то есть, когда один из вызовов plot() возвращает значение na. Если настроить на true, то последнее заполнение будет продолжать заполнять пробелы.
  • display(plot_display) Контролирует заполненное отображение. Возможные значения: display.none, display.all. По умолчанию display.all.

См. также
plot barcolor bgcolor hline

hline

Горизонтальная линия на заданном уровне фиксированной цены.

hline(price, title, color, linestyle, linewidth, editable, display)

Пример

pine
// input.hline hline(3.14, title='Pi', color=color.blue, linestyle=hline.style_dotted, linewidth=2) // You may fill the background between any two hlines with a fill() function: h1 = hline(20) h2 = hline(10) fill(h1, h2, color=color.new(color.green, 90))

Возвращение
Hline-объекты, которые можно использовать для fill.

параметр

  • price(input int/float) Значение, которое будет отображаться объектом.
  • titleЗаголовок объекта (const string)
  • color(input color) Цвет рендеринга. Должна быть константа ((невыражение))
  • linestyle(hline_style) Стиль рендеринга. Возможные значения: solid, dotted, dotted.
  • linewidth(input int) Ширина рендеринговой линии ≠ 1 ≠ 1
  • editable(const bool) Если true, тоhline стиль может быть отредактирован в диалоговом окне форматирования.
  • display(plot_display) Место отображения в контрольной строке. Возможные значения: display.none, display.all. По умолчанию display.all.
  • overlay(const bool) параметр расширения платформы FMZ, используемый для настройки текущей функции на матрице (настройка true) или на подматрице (настройка false). По умолчанию он будет выглядеть как false. Если не указать этот параметр, то он будет отображаться в соответствии сstrategyилиindicatorВoverlayПараметры настройкиstrategyилиindicatorНикаких настроекoverlayПараметры обрабатываются в соответствии с параметрами по умолчанию.

bgcolor

Фон, заполненный K-линией в указанном цвете.

bgcolor(color, offset, editable, show_last, title, display, overlay)

Пример

pine
// bgcolor example bgcolor(close < open ? color.new(color.red,70) : color.new(color.green, 70))

параметр

  • color(series color) Цвет, заполняющий фон. Вы можете использовать константы, такие как <unk>red<unk> или <unk>#ff001a<unk>, а также сложные выражения, такие как 'close >= open ? green: red‛.
  • offset(series int) Движение цветовой серии влево или вправо на определенном количестве k строк. По умолчанию 0
  • editable(const bool) Если true, то стиль bgcolor может быть отредактирован в диалоге форматирования.
  • show_last(input int) Если установлена, то определяется количество k строк, заполняющих график ((от последней k строк назад) <unk>
  • titleЗаголовок (const string) bgcolor. Выбираемые параметры.
  • display(plot_display) Контролирует местоположение бгколора. Возможные значения: display.none, display.all. По умолчанию display.all.
  • overlay(const bool) параметр расширения платформы FMZ, используемый для настройки текущей функции на матрице (настройка true) или на подматрице (настройка false). По умолчанию он будет выглядеть как false. Если не указать этот параметр, то он будет отображаться в соответствии сstrategyилиindicatorВoverlayПараметры настройкиstrategyилиindicatorНикаких настроекoverlayПараметры обрабатываются в соответствии с параметрами по умолчанию.

См. также
plot

barcolor

Настройка цвета K-линии.

barcolor(color, offset, editable, show_last, title, display)

Пример

pine
barcolor(close < open ? color.black : color.white)

параметр

  • color(series color) Цвет K-линии。 Вы можете использовать константы, такие как <unk>red<unk> или <unk>#ff001a<unk>, а также сложные выражения, такие как 'close >= open ? green: red‛。 Необходимые параметры。
  • offset(series int) Движение цветовой серии влево или вправо на определенном количестве k строк. По умолчанию 0
  • editable(const bool) Если true, то стиль barcolor может быть отредактирован в диалоге форматирования.
  • show_last(input int) Если установлена, то определяется количество k строк, заполняющих график ((от последней k строк назад) <unk>
  • title(const string) Barcolor заголовок 。 параметры 。
  • display(plot_display) Контролирует место отображения цвета K-линии. Возможные значения: display.none, display.all. По умолчанию display.all.

См. также
bgcolor plot fill

error

Совместимые с PINE v4 версииerrorФункции иruntime.errorСогласие.

Встроенные переменные

order

order.ascending

Определить, в каком порядке массив от минимального до максимального.

тип
sort_order

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

order.descending

Определить, в каком порядке распоряжается матрица от наибольшей до наименьшей.

тип
sort_order

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

timeframe

timeframe.isdaily

Если текущее разрешение - ежедневное разрешение, то возвращается true, в противном случае возвращается false.

тип
simple bool

См. также
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isweekly timeframe.ismonthly

timeframe.isdwm

Вернуть true, если текущее разрешение является ежедневным или еженедельным или ежемесячным, иначе вернуть false.

тип
simple bool

См. также
timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.isweekly timeframe.ismonthly

timeframe.isintraday

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

тип
simple bool

См. также
timeframe.isminutes timeframe.isseconds timeframe.isdwm timeframe.isdaily timeframe.isweekly timeframe.ismonthly

timeframe.isminutes

Вернуть true, если текущий цикл является минутным, и false, если нет.

тип
simple bool

См. также
timeframe.isdwm timeframe.isintraday timeframe.isseconds timeframe.isdaily timeframe.isweekly timeframe.ismonthly

timeframe.ismonthly

Если текущее разрешение - это разрешение на месяц, то возвращается true, в противном случае возвращается false.

тип
simple bool

См. также
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.isweekly

timeframe.isseconds

Если текущий цикл составляет секунды, то возвращается true, в противном случае возвращается false.

тип
simple bool

См. также
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isdaily timeframe.isweekly timeframe.ismonthly

timeframe.isweekly

Если текущее разрешение - это разрешение на неделю, то возвращается true, в противном случае возвращается false.

тип
simple bool

См. также
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.ismonthly

timeframe.multiplier

Временные циклы умножаются, например, '60' - 60, 'D' - 1, '5D' - 5, '12M' - 12。

тип
simple int

См. также
syminfo.ticker syminfo.tickerid timeframe.period

timeframe.period

Временный цикл. Например, '60' - 60 минут, 'D' - день, 'W' - неделя, 'M' - месяц, '5D' - 5 дней, '12M' - год, '3M' - квартал.

тип
simple string

См. также
syminfo.ticker syminfo.tickerid timeframe.multiplier

display

display.none

Название константы, указывающей местоположение картинки. Нигде не отображается.

тип
plot_display

См. также
plot plotshape plotchar

display.all

Название константы, указывающей место, где будет отображаться картинка.

тип
plot_display

См. также
plot plotshape plotchar plotarrow plotbar plotcandle

shape

shape.xcross

Стиль формы функции plotshape.

тип
const string

См. также
plotshape

shape.cross

Стиль формы функции plotshape.

тип
const string

См. также
plotshape

shape.triangleup

Стиль формы функции plotshape.

тип
const string

См. также
plotshape

shape.triangledown

Стиль формы функции plotshape.

тип
const string

См. также
plotshape

shape.flag

Стиль формы функции plotshape.

тип
const string

См. также
plotshape

shape.circle

Стиль формы функции plotshape.

тип
const string

См. также
plotshape

shape.arrowup

Стиль формы функции plotshape.

тип
const string

См. также
plotshape

shape.arrowdown

Стиль формы функции plotshape.

тип
const string

См. также
plotshape

shape.labelup

Стиль формы функции plotshape.

тип
const string

См. также
plotshape

shape.labeldown

Стиль формы функции plotshape.

тип
const string

См. также
plotshape

shape.square

Стиль формы функции plotshape.

тип
const string

См. также
plotshape

shape.diamond

Стиль формы функции plotshape.

тип
const string

См. также
plotshape

color

color.aqua

#00BCD4 - именная константа цвета.

тип
const color

color.black

является именной константой цвета #363A45.

тип
const color

color.blue

является именной константой цвета #2962ff。

тип
const color

color.fuchsia

Именная константа цвета #E040FB

тип
const color

color.gray

является именной константой цвета #787B86.

тип
const color

color.green

Это именная константа цвета # 4CAF50.

тип
const color

color.lime

является именной константой цвета #00E676.

тип
const color

color.maroon

Именная константа цвета #880E4F.

тип
const color

color.navy

является именной константой цвета #311B92 ≠

тип
const color

color.olive

#808000 - именная константа цвета.

тип
const color

color.orange

#FF9800 является именной константой цвета <unk>.

тип
const color

color.purple

является именной константой цвета #9C27B0

тип
const color

color.red

#FF5252 является именной константой цвета <unk>.

тип
const color

color.silver

Именная константа цвета #B2B5BE.

тип
const color

color.teal

color.teal

является именной константой цвета #00897B.

тип
const color

color.white

#FFFFFF является именной константой цвета.

тип
const color

color.yellow

Название константы #FFEB3B

тип
const color

plot

plot.style_line

Название константы стиля 'Line', используется в качестве функции plotstyleПараметры в параметрах.

тип
plot_style

См. также
plot plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles

plot.style_linebr

Название константы в стиле 'Line With Breaks', используется в качестве функции plotstyleПараметры для параметров. аналогично plot.style_line, за исключением того, что пустоты в данных не заполняются.

тип
plot_style

См. также
plot plot.style_line plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles

plot.style_histogram

Именная константа в стиле 'Histogram', используемая в функции plotstyleПараметры в параметрах.

тип
plot_style

См. также
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles

plot.style_columns

Название константы в стиле 'Columns', используется в функции plotstyleПараметры в параметрах.

тип
plot_style

См. также
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_circles

plot.style_circles

Название константы в стиле 'Circles', используется в качестве графикаstyleПараметры в параметрах.

тип
plot_style

См. также
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns

plot.style_area

Название константы типа 'Area', используемая в функции plotstyleПараметры в параметрах.

тип
plot_style

См. также
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_areabr plot.style_cross plot.style_columns plot.style_circles

plot.style_areabr

Название константы в стиле 'Area With Breaks' используется в качестве функции plotstyleПараметры параметров. аналогично plot.style_area, за исключением того, что пустоты в данных не заполнены.

тип
plot_style

См. также
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_columns plot.style_circles

plot.style_cross

Название константы типа 'Cross', используемая в качестве функции plotstyleПараметры в параметрах.

тип
plot_style

См. также
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_area plot.style_areabr plot.style_columns plot.style_circles

plot.style_stepline

Именная константа типа Step Line, используемая в качестве функции plotstyleПараметры в параметрах.

тип
plot_style

См. также
plot plot.style_stepline_diamond plot.style_linebr plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles

plot.style_stepline_diamond

Именная константа в стиле Step Line With Diamonds, используемая в качестве функции plotstyleПараметры для параметров. Подобно plot.style_stepline, кроме изменений данных также обозначены иероглифами.

тип
plot_style

См. также
plot plot.style_line plot.style_linebr plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles

location

location.abovebar

location.abovebar

plotshape, значение местоположения функции plotchar。 Форма изображается над линией основной серии k。

тип
const string

См. также
plotshape plotchar location.belowbar location.top location.bottom location.absolute

location.belowbar

plotshape, значение местоположения функции plotchar.

тип
const string

См. также
plotshape plotchar location.abovebar location.top location.bottom location.absolute

location.top

plotshape, значение местоположения функции plotchar.

тип
const string

См. также
plotshape plotchar location.abovebar location.belowbar location.bottom location.absolute

location.bottom

plotshape, значение местоположения функции plotchar.

тип
const string

См. также
plotshape plotchar location.abovebar location.belowbar location.top location.absolute

location.absolute

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

тип
const string

См. также
plotshape plotchar location.abovebar location.belowbar location.top location.bottom

size

size.auto

size.auto

Значение величины функции plotshape, plotchar. Размер формы автоматически приспосабливается к размеру линии.

тип
const string

См. также
plotshape plotchar size.tiny size.small size.normal size.large size.huge

size.tiny

plotshape, значение величины функции plotchar. Размер формы мелкий.

тип
const string

См. также
plotshape plotchar size.auto size.small size.normal size.large size.huge

size.small

plotshape, значение величины функции plotchar. Размер формы мал.

тип
const string

См. также
plotshape plotchar size.auto size.tiny size.normal size.large size.huge

size.normal

plotshape, значение величины функции plotchar. Размер формы обычный.

тип
const string

См. также
plotshape plotchar size.auto size.tiny size.small size.large size.huge

size.large

plotshape, значение величины функции plotchar.

тип
const string

См. также
plotshape plotchar size.auto size.tiny size.small size.normal size.huge

size.huge

plotshape, значение величины функции plotchar.

тип
const string

См. также
plotshape plotchar size.auto size.tiny size.small size.normal size.large

alert

alert.freq_once_per_bar

Именная константа, используемая вместе с параметром 'freq' функции alert().
Первый вызов функции в строке K вызывает тревогу.

тип
const string

См. также
alert

alert.freq_all

Именная константа, используемая вместе с параметром 'freq' функции alert().
Все вызовы функций вызывают тревогу.

тип
const string

См. также
alert

alert.freq_once_per_bar_close

Именная константа, используемая вместе с параметром 'freq' функции alert().
Вызов этой функции происходит только в режиме реального времени во время последнего сценария K-линии и вызывает тревогу при закрытии.

тип
const string

См. также
alert

format

format.inherit

является именной константой.

тип
const string

См. также
format.price format.volume

format.price

является именной константой.

тип
const string

Примечание
Если format - format.price, то задается значение точности по умолчанию. Вы можете изменить значение точности с помощью параметров точности функции указателя.

См. также
format.inherit format.volume

format.volume

является именной константой.

тип
const string

См. также
format.inherit format.price

syminfo

syminfo.ticker

Код товара без префикса биржи, например 'MSFT'。

тип
simple string

См. также
syminfo.tickerid timeframe.period timeframe.multiplier

syminfo.tickerid

Код товара с префиксом биржи, например, BATS: MSFT, NASDAQ: MSFT.

тип
simple string

См. также
syminfo.ticker timeframe.period timeframe.multiplier

syminfo.basecurrency

Основная валюта товара. Для кода товара - BTCUSD, возвращается BTC.

тип
simple string

См. также
syminfo.currency syminfo.ticker

syminfo.currency

Валюта товара. Код валюты возвращаемого товара: <unk> USD<unk>, <unk> EUR<unk> и т. д.

тип
simple string

См. также
syminfo.basecurrency syminfo.ticker

syminfo.type

Тип текущего товарного кода. Возможные значения: stock, futures, index, forex, crypto, fund, dr.

тип
simple string

См. также
syminfo.ticker

syminfo.mintick

Минимальные измерения текущего сорта. В FMZ, на релиз/ретрансляционном интерфейсе в "Pine Language Exchange Class Repository"Точность валюты ценообразованияЭто можно контролировать.Точность валюты ценообразованияНастройка 2 означает, что цена торгуется точно до второго числа, при этом наименьшее изменение цены в единице равен 0.01 <unk> . значение syminfo.mintick равен 0.01 <unk> .

тип
simple float

См. также
syminfo.pointvalue

syminfo.pointvalue

Точечная стоимость текущего товара

тип
simple float

См. также
syminfo.mintick

syminfo.timezone

Обменные часовые пояса основного ряда графиков. Возможные значения см. в timestamp.

тип
simple string

См. также
timestamp

barstate

barstate.islastconfirmedhistory

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

тип
series bool

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

См. также
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew

barstate.isnew

Если сценарий рассчитывается на новой k-линии, то возвращается true, в противном случае false.

тип
series bool

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

См. также
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isconfirmed barstate.islastconfirmedhistory

barstate.isfirst

Вернуть true, если текущая k-строка является первой k-строкой из группы k-строк, в противном случае false.

тип
series bool

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

См. также
barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory

barstate.islast

Вернуть true, если текущая k-строка является последней k-строкой из k-строковой группы, в противном случае false.

тип
series bool

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

См. также
barstate.isfirst barstate.ishistory barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory

barstate.ishistory

Если текущая k-линия является исторической k-линией, то возвращается true, в противном случае возвращается false.

тип
series bool

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

См. также
barstate.isfirst barstate.islast barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory

barstate.isconfirmed

Если сценарий рассчитывает последнее (закрытое) обновление текущей k-линии, возвращает true. Следующий сценарий будет рассчитывать данные новой K-линии.

тип
series bool

Примечание
Код PineScript с этой переменной позволяет выполнять различные вычисления для исторических записей и реального времени.
Не рекомендуется использовать barstate.isconfirmed в выражении request.security. Оно непредсказуемо из-за значения запроса request.security.
Пожалуйста, обратите внимание, что использование данной переменной/функции может привести к перекрашиванию индикатора.

См. также
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew barstate.islastconfirmedhistory

barstate.isrealtime

Если текущая k-линия является реальной k-линией, то возвращается true, в противном случае возвращается false.

тип
series bool

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

См. также
barstate.isfirst barstate.islast barstate.ishistory barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory

barstate.time

Пока нет

ta

ta.accdist

Индекс накопления/распределения

тип
series float

ta.iii

Индекс интенсивности диска.

тип
series float

Пример

pine
// Intraday Intensity Index plot(ta.iii, color=color.yellow) // the same on pine f_iii() => (2 * close - high - low) / ((high - low) * volume) plot(f_iii())

ta.nvi

Отрицательный вес.

тип
series float

Пример

pine
// Negative Volume Index plot(ta.nvi, color=color.yellow) // the same on pine f_nvi() => float ta_nvi = 1.0 float prevNvi = (nz(ta_nvi[1], 0.0) == 0.0) ? 1.0: ta_nvi[1] if nz(close, 0.0) == 0.0 or nz(close[1], 0.0) == 0.0 ta_nvi := prevNvi else ta_nvi := (volume < nz(volume[1], 0.0)) ? prevNvi + ((close - close[1]) / close[1]) * prevNvi : prevNvi result = ta_nvi plot(f_nvi())

ta.pvi

Показатель пропорциональности.

тип
series float

Пример

pine
// Positive Volume Index plot(ta.pvi, color=color.yellow) // the same on pine f_pvi() => float ta_pvi = 1.0 float prevPvi = (nz(ta_pvi[1], 0.0) == 0.0) ? 1.0: ta_pvi[1] if nz(close, 0.0) == 0.0 or nz(close[1], 0.0) == 0.0 ta_pvi := prevPvi else ta_pvi := (volume > nz(volume[1], 0.0)) ? prevPvi + ((close - close[1]) / close[1]) * prevPvi : prevPvi result = ta_pvi plot(f_pvi())

ta.obv

Показатель энергетического потока.

тип
series float

Пример

pine
// On Balance Volume plot(ta.obv, color=color.yellow) // the same on pine f_obv() => ta.cum(math.sign(ta.change(close)) * volume) plot(f_obv())

ta.pvt

Показатель ценовой тенденции.

тип
series float

Пример

pine
// Price-Volume Trend plot(ta.pvt, color=color.yellow) // the same on pine f_pvt() => ta.cum((ta.change(close) / close[1]) * volume) plot(f_pvt())

ta.wad

Вильгельм Доу, линейка воздушных сил.

тип
series float

Пример

pine
// Williams Accumulation/Distribution plot(ta.wad, color=color.yellow) // the same on pine f_wad() => trueHigh = math.max(high, close[1]) trueLow = math.min(low, close[1]) mom = ta.change(close) gain = (mom > 0) ? close - trueLow : (mom < 0) ? close - trueHigh : 0 ta.cum(gain) plot(f_wad())

ta.wvad

Вильгельм вариантный дисперсия.

тип
series float

Пример

pine
// Williams Variable Accumulation/Distribution plot(ta.wvad, color=color.yellow) // the same on pine f_wvad() => (close - open) / (high - low) * volume plot(f_wvad())

math

math.e

Именная константа урала. Она равна 2.7182818284590452.

тип
const float

См. также
math.phi math.pi math.rphi

math.phi

Именная константа золотого деления ≠ 1.6180339887498948.

тип
const float

См. также
math.e math.pi math.rphi

math.pi

Это именная константа постоянного Ахмеда. Она равна 3.1415926535897932.

тип
const float

См. также
math.e math.phi math.rphi

math.rphi

Номинальная константа Золотого деления. Она равна 0.6180339887498948.

тип
const float

См. также
math.e math.pi math.phi

strategy

strategy.equity

Нынешние права и интересы: ((strategy.initial_capital + strategy.netprofit + strategy.openprofit))

тип
series float

См. также
strategy.netprofit strategy.openprofit strategy.position_size

strategy.position_size

Направление и масштаб текущей рыночной позиции. Если значение > 0, то рыночная позиция длинная. Если значение < 0, то рыночная позиция короткая. Абсолютное значение - количество контрактов / акций / рук / единиц в сделке (размер позиции).

тип
series float

См. также
strategy.position_avg_price

strategy.position_avg_price

Если рыночная позиция будет гладкой, то NaN-диоксид будет возвращен назад.

проиллюстрировать
Средняя цена в FMZ PINE Script - это цена, включающая в себя комиссионные. Например: цена заказа - 8000, продажи направления, количество - 1 рука ((один, лист), средняя цена после сделки - не 8000, меньше 8000 ((включает в себя комиссионные).

тип
series float

См. также
strategy.position_size

strategy.long

Много направлений.

тип
strategy_direction

См. также
strategy.entry strategy.exit

strategy.short

Пустое направление.

тип
strategy_direction

См. также
strategy.entry strategy.exit

strategy.closedtrades

Количество закрытых сделок за весь промежуток.

тип
series int

См. также
strategy.position_size strategy.opentrades

strategy.opentrades

Количество сделок, которые не были закрыты или продолжаются. Если нет, то показывается 0.

тип
series int

См. также
strategy.position_size

strategy.netprofit

Общая денежная стоимость всех завершенных сделок.

тип
series float

См. также
strategy.openprofit strategy.position_size strategy.grossprofit

strategy.grossprofit

Общая денежная стоимость всех выигрышных сделок, завершенных.

тип
series float

См. также
strategy.netprofit

strategy.openprofit

Нереализованные убытки от текущих незакрытых позиций.

тип
series float

См. также
strategy.netprofit strategy.position_size

strategy.direction.long

Стратегии, которые могут сделать больше

тип
const string

См. также
strategy.risk.allow_entry_in

strategy.direction.short

Стратегии, которые не работают

тип
const string

См. также
strategy.risk.allow_entry_in

strategy.direction.all

Стратегии, которые позволяют делать больше и делать меньше

тип
const string

См. также
strategy.risk.allow_entry_in

dayofweek

dayofweek

Текущая k-линейная неделя в обменном часовом поясе.

тип
series int

Примечание
Обратите внимание, что эта переменная возвращает день в зависимости от времени открытия K-линии. Для ночных торговых часов (например, EURUSD, чьи торговые часы в понедельник начинаются в воскресенье в 17:00) значение может быть ниже, чем в день торговли.
Для сравнения можно использовать переменные dayofweek.sunday, dayofweek.monday, dayofweek.tuesday, dayofweek.wednesday, dayofweek.thursday, dayofweek.friday и dayofweek.saturday.

См. также
time dayofmonth

dayofweek.sunday

является именной константой значения возвращаемой функции dayofweek и значения переменной dayofweek.

тип
const int

См. также
dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday

dayofweek.monday

является именной константой значения возвращаемой функции dayofweek и значения переменной dayofweek.

тип
const int

См. также
dayofweek.sunday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday

dayofweek.tuesday

является именной константой значения возвращаемой функции dayofweek и значения переменной dayofweek.

тип
const int

См. также
dayofweek.sunday dayofweek.monday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday

dayofweek.wednesday

является именной константой значения возвращаемой функции dayofweek и значения переменной dayofweek.

тип
const int

См. также
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.thursday dayofweek.friday dayofweek.saturday

dayofweek.thursday

является именной константой значения возвращаемой функции dayofweek и значения переменной dayofweek.

тип
const int

См. также
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.friday dayofweek.saturday

dayofweek.friday

является именной константой значения возвращаемой функции dayofweek и значения переменной dayofweek.

тип
const int

См. также
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.saturday

dayofweek.saturday

является именной константой значения возвращаемой функции dayofweek и значения переменной dayofweek.

тип
const int

См. также
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday

hline

hline.style_dashed

является именной константой в виде точечной линии функции Hline.

тип
hline_style

См. также
hline.style_solid hline.style_dotted

hline.style_dotted

hline.style_dotted

является именной константой точечной линейной формы функции Hline.

тип
hline_style

См. также
hline.style_solid hline.style_dashed

hline.style_solid

Именная константа, которая является линейным типом истинного центра функции Hline.

тип
hline_style

См. также
hline.style_dotted hline.style_dashed

barmerge

barmerge.gaps_on

Дать запрошенную стратегию объединения данных. Объединить данные с возможными разрывами.

тип
barmerge_gaps

См. также
request.security barmerge.gaps_off

barmerge.gaps_off

Стратегия запрошенных данных для объединения. Данные объединяются непрерывно, все пробелы заполняются с помощью предыдущих недавних существующих значений.

тип
barmerge_gaps

См. также
request.security barmerge.gaps_on

barmerge.lookahead_on

Стратегия запрошенного местоположения данных. Запрошенный бархат объединяется с текущим бархаром в соответствии с временем открытия k-линии. Такая стратегия объединения может привести к неблагоприятному влиянию на историю вычисления данных, полученных из будущих линий. Это не принимается в стратегии обратного тестирования, но может использоваться в показателях.

тип
barmerge_lookahead

См. также
request.security barmerge.lookahead_off

barmerge.lookahead_off

Политика запрошенного местоположения данных. Запрошенный бархат объединяется с текущим бархатом в соответствии с временем закрытия k-линии. Такая политика объединения запрещает влияние истории вычислений на получение данных из будущих линий.

тип
barmerge_lookahead

См. также
request.security barmerge.lookahead_on

others

hl2

Это [наивысшая цена + наименьшая цена]/2.

тип
series float

См. также
open high low close volume time hlc3 hlcc4 ohlc4

hlc3

Это [высочайшая цена + низкая цена + конечная цена]/3

тип
series float

См. также
open high low close volume time hl2 hlcc4 ohlc4

hlcc4

Это [высокий + низкий + конец + конец]/4.

тип
series float

См. также
open high low close volume time hl2 hlc3 ohlc4

ohlc4

Это кнопка кнопки: ((открытая цена + наивысшая цена + наименьшая цена + закрытая цена) / 4

тип
series float

См. также
open high low close volume time hl2 hlc3 hlcc4

na

Double.NaN (нецифровое) ≠

тип
simple na

Пример

pine
// na plot(bar_index < 10 ? na : close) // CORRECT plot(close == na ? close[1] : close) // INCORRECT! plot(na(close) ? close[1] : close) // CORRECT

Примечание
Если вы хотите проверить, является ли какое-либо значение NaN, используйте встроенную функцию na。

См. также
na

bar_index

Нынешний индекс ценовой палки. Числа начинаются с нуля, первая строка индексируется как 0

тип
series int

Пример

pine
// bar_index plot(bar_index) plot(bar_index > 5000 ? close : 0)

Примечание
Обратите внимание, что bar_index заменил n в версии 4 [2].
Имейте в виду, что индекс K считается 0。 начиная с первой исторической линии K.
Пожалуйста, обратите внимание, что использование данной переменной/функции может привести к перекрашиванию индикатора.

См. также
barstate.isfirst barstate.islast barstate.isrealtime

last_bar_index

Индекс последней K-линии диаграмма. Индекс K начинается с нуля на первой K-линии.

тип
series int

Пример

strategy("Mark Last X Bars For Backtesting", overlay = true, calc_on_every_tick = true) lastBarsFilterInput = input.int(100, "Bars Count:") // Here, we store the 'last_bar_index' value that is known from the beginning of the script's calculation. // The 'last_bar_index' will change when new real-time bars appear, so we declare 'lastbar' with the 'var' keyword. var lastbar = last_bar_index // Check if the current bar_index is 'lastBarsFilterInput' removed from the last bar on the chart, or the chart is traded in real-time. allowedToTrade = (lastbar - bar_index <= lastBarsFilterInput) or barstate.isrealtime bgcolor(allowedToTrade ? color.new(color.green, 80) : na)

Возвращение
Конечный исторический K-индекс закрытия или реальный K-индекс открытия.

Примечание
Пожалуйста, обратите внимание, что использование этой переменной может привести к перекрашиванию показателя.

См. также
bar_index last_bar_time barstate.ishistory barstate.isrealtime

time

Текущее k-линейное время в формате UNIX. Это количество миллисекунд с 00:00:00 UTC 1 января 1970 года.

timenow

Текущее время в формате UNIX. Это миллисекунды с 00:00:00 UTC 1 января 1970 года.

тип
series int

Примечание
Пожалуйста, обратите внимание, что использование данной переменной/функции может привести к перекрашиванию индикатора.

См. также
timestamp time dayofmonth dayofweek

тип
series int

Примечание
Обратите внимание, что эта переменная будет возвращать время в зависимости от времени открытия K-линии. Таким образом, для ночных торговых периодов (например, EURUSD, чья понедельник начинается с 17:00 по воскресеньям), эта переменная может возвращать время до назначенной даты торгового дня. Например, на EURUSD, диагональ dayofmonth (время) может быть меньше, чем дата торгового дня 1, потому что K-линия на текущую дату фактически открыта в предыдущий день.

См. также
time dayofmonth dayofweek

year

Обменная часовая зона текущего года k линия.

тип
series int

Примечание
Обратите внимание, что эта переменная возвращает год в зависимости от времени открытия K-линии. Для ночных торговых часов (например, EURUSD, чьи торговые часы в понедельник начинаются в воскресенье в 17:00) значение может быть ниже, чем год в торговый день.

См. также
year time month weekofyear dayofmonth dayofweek hour minute second

month

Текущая лунная линия k в часовом поясе биржи.

тип
series int

Примечание
Обратите внимание, что эта переменная возвращает месяц в зависимости от времени открытия K-линии. Для ночных торговых часов (например, EURUSD, чьи торговые часы в понедельник начинаются в воскресенье в 17:00) значение может быть ниже, чем в месяц, в день торговли.

См. также
month time year weekofyear dayofmonth dayofweek hour minute second

hour

Текущий час в часовом поясе биржи k-линия.

тип
series int

См. также
hour time year month weekofyear dayofmonth dayofweek minute second

minute

Текущие минуты в часовом поясе биржи kline.

тип
series int

См. также
minute time year month weekofyear dayofmonth dayofweek hour second

second

Текущая секундная линия k в часовом поясе биржи.

тип
series int

См. также
second time year month weekofyear dayofmonth dayofweek hour minute

open

Нынешняя цена.

тип
series float

Примечание
Можно использовать оператор квадратных скобок.[] для просмотра предыдущих значений, например <unk> open[1],open[2]。

См. также
high low close volume time hl2 hlc3 hlcc4 ohlc4

high

Самые высокие цены на данный момент

тип
series float

Примечание
Можно использовать оператор квадратных скобок.[] для просмотра предыдущих значений, например: high[1],high[2]。

См. также
open low close volume time hl2 hlc3 hlcc4 ohlc4

low

Низкая цена.

тип
series float

Примечание
Можно использовать оператор квадратных скобок.[] для просмотра предыдущих значений, например <unk> low[1],low[2]。

См. также
open high close volume time hl2 hlc3 hlcc4 ohlc4

close

Цена закрытия текущей K-линии или цена последней сделки на K-линии в реальном времени, которая еще не завершена.

тип
series float

Примечание
Можно использовать оператор квадратных скобок.[] для доступа к предыдущим значениям, например <unk> close[1],close[2]。

См. также
open high low volume time hl2 hlc3 hlcc4 ohlc4

volume

Текущая пропускная способность K-линии.

тип
series float

Примечание
Можно использовать оператор квадратных скобок.[] для просмотра предыдущих значений, например ◦ volume[1],volume[2]。

См. также
open high low close time hl2 hlc3 hlcc4 ohlc4

weekofyear

Число недель в текущей k-линейной части часового пояса.

тип
series int

Примечание
Обратите внимание, что эта переменная возвращает неделю в зависимости от времени открытия K-линии. Для ночных торговых часов (например, EURUSD, чьи торговые часы в понедельник начинаются с 17:00 в воскресенье), значение может быть ниже, чем неделя в торговый день.

См. также
weekofyear time year month dayofmonth dayofweek hour minute second

dayofmonth

Дата текущего времени k-линии в часовом поясе.

тип
series int

Примечание
Обратите внимание, что эта переменная возвращает день в зависимости от времени открытия K-линии. Для ночных торговых часов (например, EURUSD, чьи торговые часы в понедельник начинаются в воскресенье в 17:00) значение может быть ниже, чем в день торговли.

См. также
time dayofweek

Related Recommendations
Comment
All comments (24)

    你好,我想用同一账户资金然后开多个实盘交易多品种,有持仓的时候其他实盘无法开仓,这个可以解决吗

    4 months ago

    您好,PINE语言只是单品种、单账户策略,您这个需求只能用Javascript/python/c++ 编写策略。

    4 months ago

    好吧,写了Java scripts和python的效果却不一样。。。。

    4 months ago

    PINE只能单品种、单账户。可以多用几个账户隔离运行。

    4 months ago

    好的,只能这样了谢谢

    4 months ago

    不客气。

    4 months ago

    想要币安u合约多个交易对同时运行怎么搞

    3 years ago

    PINE语言只能做单品种策略,多品种策略最好还是用python , javascript , c++编写设计。

    3 years ago

    请教下,pine能多交易对吗? 也是和JS一样遍历交易对吗??谢谢。

    4 years ago

    您好,暂时PINE语言策略只能做单品种。

    4 years ago

    以后会考虑多品种吗?收盘价每个品种遍历就行

    4 years ago

    这个多品种的架构问题不好解决,因为每个交易所接口不一样,对接口频率限定也不一样,会产生很多问题。

    4 years ago

    感觉最好能和JS混编,JS可以更好的适应各种交易方式。

    4 years ago

    好的,感谢云总提出建议,这边报下这个需求。

    4 years ago

    好的,谢谢梦大。

    4 years ago

    謝謝提供詳細的文檔

    4 years ago

    不客气,感谢您的支持。文档还会继续完善。

    4 years ago

    大佬!这 pine script 怎么在平台上使用 okex 的模拟盘?

    4 years ago

    用不了okx模拟盘。。。。。[捂脸]

    4 years ago

    嗯,是的,OKX比较特殊,他们的模拟环境和实盘环境是一样的地址,只是在其它地方做了区别。所以没办法用切换基地址,去切换到模拟盘。

    4 years ago

    PINE模版类库,参数上可以设置切换交易所基地址。文档开头的:PINE语言交易类库模版参数。

    4 years ago

    这等于是 tradingview平台的策略直接copy到发明者平台就可以使用了吧!

    4 years ago

    是的。

    4 years ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)