FMZ PINE Script документация

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

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

Параметры - id(int[]/float[]) массивные объекты.

До встречи


### 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.percentile_linear_interpolation

返回数组值的指定百分比(百分位数)小于或等于它的值,使用线性插值。

array.percentile_linear_interpolation ((id, процент)


**参数**
- ```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, процент)


**参数**
- ```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, индекс)


**参数**
- ```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.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.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.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)

Примеры

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

Примеры

// array.new<color> example
a = array.new<color>()
array.push(a, color.red)
array.push(a, color.green)
plot(close, color = array.get(a, close > open ? 1 : 0))

Примеры

// array.new<float> example
length = 5
var a = array.new<float>(length, close)
if array.size(a) == length
  array.remove(a, 0)
  array.push(a, close)
plot(array.sum(a) / length, "SMA")

Примеры

// array.new<line> example
// draw last 15 lines
var a = array.new<line>()
array.push(a, line.new(bar_index - 1, close[1], bar_index, close))
if array.size(a) > 15
    ln = array.shift(a)
    line.delete(ln)

Возвращается значениеФункция ID ======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

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

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

До встречи


### array.new_bool

此函数创建一个由bool类型的元素组成的新阵列对象。

array.new_bool ((размер, начальное значение)


**例子**
```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) начальный размер последовательности↑ опциональный↑ по умолчанию 0↑ - Я не знаю.initial_value(series bool) Начальное значение всех элементов серии↑ опциональное↑ по умолчанию na

ПримечанияИндекс матрицы начинается с нуля.

До встречи


### array.new_float

此函数创建一个新的浮点型元素阵列对象。

array.new_float ((размер, начальное значение)


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

Возвращается значениеФункция ID ======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

Параметры - size(series int) начальный размер последовательности↑ опциональный↑ по умолчанию 0↑ - Я не знаю.initial_value(series int/float) Начальное значение всех элементов серии.

ПримечанияИндекс матрицы начинается с нуля.

До встречи


### 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) начальный размер последовательности↑ опциональный↑ по умолчанию 0↑ - Я не знаю.initial_value(series int) Начальное значение всех элементов серии↑ опциональное↑ по умолчанию na

ПримечанияИндекс матрицы начинается с нуля.

До встречи


### array.new_string

该函数创建一个字符串类型元素的新阵列对象。

array.new_string ((размер, начальное значение)


**例子**
```pine
// array.new_string example
length = 5
a = array.new_string(length, "text")
runtime.log(array.get(a, 0))

Возвращается значениеФункция ID ======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

Параметры - size(series int) начальный размер последовательности↑ опциональный↑ по умолчанию 0↑ - Я не знаю.initial_value(series string) Начальное значение для всех элементов серии↑ опциональное↑ по умолчанию na

ПримечанияИндекс матрицы начинается с нуля.

До встречи


### 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.push

该函数将一个值附加到阵列。

array.push ((id, значение)


**例子**
```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.set

该函数将元素的值设置为指定的索引。

array.set ((id, индекс, значение)


**例子**
```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.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.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.indexof

此函数返回值首次出现的索引。如果找不到该值,则返回 -1。

array.indexof ((id, значение)


**例子**
```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>) Значение, которое нужно искать в массиве.

До встречи


## strategy

在```strategy```相关的内置函数中,止损点数、止盈点数定义为价格一跳的倍数。例如```strategy.exit```函数的```profit```、```loss```参数以点表示止损、止盈,参数```profit```设置为10,即价格一跳乘以10作为止盈价差,价格一跳即内置变量```syminfo.mintick```。

### strategy

该函数设置了多个策略属性。
注意,传参仅支持```title```,```shorttitle```,```overlay```,```pyramiding```,```default_qty_type```,```default_qty_value```参数,其它参数可以通过PINE语言策略的界面参数设置。

стратегия ((заголовок, краткое название, наложение, формат, точность, масштаб, пирамида, calc_on_order_fills, calc_on_every_tick, max_bars_back, backtest_fill_limits_assumption, default_qty_type, default_qty_value, initial_capital, валюта, скольжение, комиссия_type, комиссия_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 - он будет добавлен в отдельный окно графика. - Я не знаю.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, то политика будет пересчитываться (не только при закрытии k-строки) как только строка K будет заполнена после заказа. - Я не знаю.calc_on_every_tick(const bool) дополнительное вычисление политики внутрибарной строки. Если параметр является true, политика будет вычислять каждую точку в реальном времени, не закрывая строку k. Параметр не влияет на вычисление политики с историческими данными. - Я не знаю.max_bars_back(const int) Максимальное значение буферной зоны, которое может использоваться в политике исторического ссылки. Если в коде скрипта упоминается историческая информация о переменной (используется оператор "const[]bars"), этот параметр будет применяться к каждой встроенной переменной или пользовательской переменной в скрипте. Размер переменного буферного поля в скрипте "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) с тиком как единица предложения, увеличивается/уменьшается от цены сделки на куплю/продажу или стоп-лосс. Если 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) при настройке на "consttrue bool" будет генерировать другие попытки выполнить ордера после закрытия диаграммы и завершения вычисления стратегии. Если ордера являются ордерами по рыночной цене, брокерский имитатор будет выполнять их до открытия следующей диаграммы. Если ордера является ценой, то ордера будет выполнена только при условии, что условия цены будут выполнены. - Я не знаю.close_entries_rule(const string) определяет порядок закрытия ордеров. Допустимое значение: FIFO или ANY. FIFO означает, что первая сделка должна быть закрыта, когда открыты несколько сделок. Это правило применяется к акциям, фьючерсам и американскому форексу. ANY означает, что сделка может закрываться в любом порядке. - Я не знаю.max_lines_count(const int) показывает количество последних стенограмм. - Я не знаю.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.

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

До встречи


### strategy.entry

这是进入市场的命令。 如果具有相同ID的订单已经挂起,则可修改订单。 如果没有指定ID的订单,则会发出新的订单。 要停用进场指令,应使用命令strategy.cancel或strategy.cancel_all。 与函数strategy.order相比,strategy.entry功能受金字塔影响,可以正确反转市场位置。 如果“Limit”和“stop”参数均为“NaN”,则订单类型为市场订单。

strategy.entry ((id, направление, qty, предел, остановка, oca_name, oca_type, комментарий, когда, 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) опциональные параметры↑ количество контрактов/долей/листов/единиц, сделанных↑ значение по умолчанию − NaN − NaN∞↑ - Я не знаю.limit(series int/float) Выбираемый параметр. Предельная цена заказа. Если указано, тип заказа - limit или stop-limit. Другие типы заказа - NaN. - Я не знаю.stop(series int/float) Выбираемый параметр. Стоп-лосс ордера. Если указано, тип ордера - стоп-отель или стоп-лимит-отель. - Я не знаю.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.order.alert_message}} в диалоговом окне для создания сигналов.

strategy.close

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

strategy.close(id, when, comment, qty, qty_percent, alert_message) 

Примеры

strategy("closeEntry Demo", overlay=false)
strategy.entry("buy", strategy.long, when = open > close)
strategy.close("buy", when = open < close, qty_percent = 50, comment = "close buy entry for 50%")
plot(strategy.position_size)

Параметры - id(series string) Необходимые параметры. Идентификатор заказа. Заказ может быть закрыт ссылкой на его идентификатор. - Я не знаю.when(series bool) Выберите параметры. - Я не знаю.qty(series int/float) опциональные параметры. Количество контрактов/числа акций/числа участников/единиц, вышедших из сделки. - Я не знаю.qty_percent(series int/float) определяет процентную ставку на баланс ((0-100)). Его приоритет ниже приоритета параметра qty . Опционально. - Я не знаю.comment(series string) Выбираемые параметры. - Я не знаю.alert_message(series string) опциональный параметр, используемый для замены символа {{strategy.order.alert_message}} в поле {{strategy.order.alert_message}} в диалоговом окне для создания сигналов.

Стратегия.закрыть все

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

strategy.close_all(when, comment, alert_message) 

Примеры

strategy("closeAll Demo", overlay=false)
strategy.entry("buy", strategy.long, when = open > close)
strategy.close_all(when = open < close, comment = "close all entries")
plot(strategy.position_size)

Параметры - when(series bool) Выберите параметры. - Я не знаю.comment(series string) Выбираемые параметры. - Я не знаю.alert_message(series string) опциональный параметр, используемый для замены символа {{strategy.order.alert_message}} в поле {{strategy.order.alert_message}} в диалоговом окне для создания сигналов.

strategy.exit

Это приказ выхода, указывающий вход или весь рыночный статус. Ордер может быть изменен, если ордер с одинаковым ИД уже вывешен. Если входный ордер не был выполнен, но появился выходный, то он будет отложен до тех пор, пока после входа не будет выполнен, и выходный ордер может быть размещен. Для остановки ордера выхода следует использовать команду strategy.cancel или strategy.cancel_all. Если функция strategy.exit вызвана один раз, то выход будет выполнен только один раз. Если выйти нужно несколько раз, то следует использовать команду strategy.exit.

strategy.exit(id, from_entry, qty, qty_percent, profit, limit, loss, stop, trail_price, trail_points, trail_offset, oca_name, comment, when, alert_message) 

Примеры

strategy(title = "simple strategy exit example")
strategy.entry("long", strategy.long, 1, when = open > high[1]) // enter long by market if current open great then previous high
strategy.exit("exit", "long", profit = 10, loss = 5) // generate full exit bracket (profit 10 points, loss 5 points per contract) from entry with name "long"

Параметры - id(series string) Необходимые параметры. Идентификатор заказа. Можно отменить или изменить заказ, ссылаясь на его идентификатор. - Я не знаю.from_entry(series string) Параметры на выбор. Для указания идентификатора ввода и вывода инструкции. Для вывода всех позиций следует использовать пустую строку. - Я не знаю.qty(series int/float) опциональные параметры. Количество контрактов/числа акций/числа участников/единиц, вышедших из сделки. - Я не знаю.qty_percent(series int/float) определяет процентную ставку на баланс ((0-100)). Его приоритет ниже приоритета параметра qty . Опционально. - Я не знаю.profit(series int/float) Выбираемый параметр. Цель прибыли. Если указано, выйти из позиции с ограничительным ордером при достижении указанной суммы прибыли. - Я не знаю.limit(series int/float) Выбираемый параметр. Цель прибыли (требуется указать цену). Если указано, выйти из позиции с указаной ценой (или лучше). Приоритет параметра накладной ограничения выше приоритета параметра накладной прибыли (если значение не накладной NaN накладной, то накладная ограничения заменяет накладной прибыли). - Я не знаю.loss(series int/float) Выбираемый параметр ‒ стоп-потери ‒ Если указано, выйти из позиции на стоп-потери при достижении указанной суммы потерь ‒ Если указано, выйти из позиции на стоп-потери ‒ По умолчанию ‒ NaN ‒ - Я не знаю.stop(series int/float) Выбираемый параметр. Стоп-лосс (требуется указать цену). Если указано, то выход из позиции будет осуществляться по указанной цене (или хуже). Приоритет параметра стоп-лосса выше, чем приоритета параметра нано-потеря (при отсутствии нано-потеря нано вместо нано-потеря нано). - Я не знаю.trail_price(series int/float) Опциональные параметры.• Следить за уровнем активации стоп-лосса (требуется указать цену).• Если указано, то после достижения указанного уровня цены будет размещен стоп-лосс.• В параметре trail_offset определяется отклонение, используемое для определения начальной цены trail_offset (с точки): X-точка ниже уровня активации для выхода из полигоды; X-точка выше уровня активации для выхода из полигоды.• По умолчанию значение NaN. - Я не знаю.trail_points(series int/float) Опциональные параметры. Следить за уровнем активации стоп-лосса. Если указано, то после достижения уровня рассчитанной цены. Указать сумму прибыли. - Я не знаю.trail_offset(series int/float) Опциональные параметры. Уровень активации стоп-лосса (отмеченные точками). Склонение с точки используется для определения начальной цены стоп-лосса: X-точка ниже кнопки trail_price или кнопки trail_points для выхода из многотысячной серии; X-точка выше кнопки trail_price или кнопки trail_points для выхода из пустоты. - Я не знаю.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.order.alert_message}} в диалоговом окне для создания сигналов.

strategy.cancel

Это упоминание имен для отмены/отмены всех приказов по предварительно выложенным спискам, которое генерируется следующими функциями: strategy.order, strategy.entry и strategy.exit.

strategy.cancel(id, when) 

Примеры

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. Если буквы являются верными, то заказ будет отменен.

Стратегия.отменить_все

这是取消/停用所有预挂单命令,由以下功能生成:strategy.order,strategy.entry和strategy.exit。

strategy.cancel_all(when) 

Примеры

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) Опциональный параметр↑ Условия для отмены всех заказов↑ Если условие верно, то все активные заказы будут отменены↑ По умолчанию значение true

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) опциональные параметры↑ количество контрактов/долей/листов/единиц, сделанных↑ значение по умолчанию − NaN − NaN∞↑ - Я не знаю.limit(series int/float) Выбираемый параметр. Предельная цена заказа. Если указано, тип заказа - limit или stop-limit. Другие типы заказа - NaN. - Я не знаю.stop(series int/float) Выбираемый параметр. Стоп-лосс ордера. Если указано, тип ордера - стоп-отель или стоп-лимит-отель. - Я не знаю.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.order.alert_message}} в диалоговом окне для создания сигналов.

Стратегия.Открытые сделки.Вход в список

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

strategy.opentrades.entry_bar_index(trade_num)

Ждите 10 K-линий и выровняйте

Примеры

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) Номер сделки, которая не была выведена на баланс. Номер первой сделки - 0.

До встречи


### strategy.opentrades.entry_id

返回未平仓交易的入场的ID。

Стратегия.Открытые сделки.Вход.


**例子**
```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) Номер сделки, которая не была выведена на баланс. Номер первой сделки - 0.

ПримечанияЕсли trade_num не находится в диапазоне, функция возвращает na:0 к strategy.opentrades−1.

До встречи


### 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")

Расчет средней неравномерной цены

Примеры

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) Номер сделки, которая не была выведена на баланс. Номер первой сделки - 0.

До встречи


### strategy.opentrades.entry_time

返回未平仓交易入场的UNIX时间。

Стратегия.Открытые сделки.Время вступления в силу.


**例子**
```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) Номер сделки, которая не была выведена на баланс. Номер первой сделки - 0.

До встречи


### strategy.opentrades.profit

返回未平仓交易的盈亏。损失表示为负值。

Стратегия.Открытые сделки.Прибыль.


返回最后开仓交易的利润

**例子**
```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")

Расчет прибыли от всех неисключенных сделок

Примеры

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) Номер сделки, которая не была выведена на баланс. Номер первой сделки - 0.

До встречи


### strategy.opentrades.size

返回未平仓交易中的交易方向和合约数量。如果该值>0,则市场仓位为多头。如果该值<0,则市场仓位为空头。

Стратегия.Открытые сделки.Размер (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")

Расчет процента средней прибыли от неисключенных сделок

Примеры

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) Номер сделки, которая не была выведена на баланс. Номер первой сделки - 0.

До встречи


### strategy.closedtrades.entry_bar_index

返回已平仓交易入场的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_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")

Вычислить процент средней прибыли по всем сделкам, которые были выведены на баланс

Примеры

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.exit_bar_index

返回已平仓交易退出的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 строк на одну транзакцию.

Примеры

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.

До встречи


### strategy.closedtrades.entry_id

返回已平仓交易的入场的id。

Стратегия.закрытые сделки.вход_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_price

返回已平仓交易的入场价格。

Стратегия.закрытые сделки.входная цена (number trade)


**例子**
```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")

Вычислить процент средней прибыли по всем сделкам, которые были выведены на баланс

Примеры

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.entry_time

返回已平仓交易入场的UNIX时间。

Стратегия.закрытые сделки.время вступления (number trade)


**例子**
```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.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.closedtrades.size

返回已平仓交易中的交易方向和合约数量。如果该值>0,则市场仓位为多头。 如果该值<0,则市场仓位为空头。

Стратегия.закрытые сделки.размер (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("Стратегия.закрытые сделки.размер ≠ Пример 2)

// Стратегия требует вводить длинные сделки каждые 15 бар и выходить из длинных сделок каждые 20 бар. if bar_index % 15 == 0 Стратегия.Вход ((Долгая, стратегия.долгая) if bar_index % 20 == 0 Стратегия.Закрыть.

// Расчет прибыли для обеих закрытых сделок. ПрибыльPct = 0,0 для сделкиNo = 0 к стратегии.закрытые сделки - 1 вход P = стратегия.закрытая торговля


Больше информации

ВуаоянКак можно работать с несколькими сделками одновременно?

Легкие облака.Пожалуйста, расскажите, может pine иметь больше транзакций, не так ли? Или перемещаться по транзакциям, как JS?

Лиза20231Спасибо за подробную документацию.

художественностьОго! Как этот скрипт pine использует на платформе симулятор okex?

художественностьЭто означает, что стратегию tradingview можно скопировать прямо на платформу изобретателя и использовать!

Изобретатели количественного измерения - мечтыЯзык PINE может выполнять только одноразовые стратегии, а многоразовые стратегии лучше всего использовать для написания дизайна в Python, JavaScript, C++.

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

Легкие облака.Не могу использовать okx анимационный диск.

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

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

Легкие облака.Я считаю, что лучше всего совмещать с JS, чтобы JS лучше адаптировался к различным способам торговли.

Тенденционный охотникЕсли вы хотите, чтобы вы были в курсе, что вы хотите, чтобы вы были в курсе, что вы хотите, чтобы вы были в курсе.

Изобретатели количественного измерения - мечтыНепристойность.

Легкие облака.Хорошо, спасибо, Джимми.

Изобретатели количественного измерения - мечтыЗдравствуйте, но на данный момент стратегия языка PINE работает только с одной разновидностью.

Изобретатели количественного измерения - мечтыСпасибо за вашу поддержку. Документы будут продолжать совершенствоваться.

Изобретатели количественного измерения - мечтыДа, это так.

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