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

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

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

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

Параметры

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

До встречи array.avg array.variance array.min

array.mode

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

array.mode(id)

Примеры

// array.mode example
a = array.new_float(0)
for i = 0 to 9
    array.push(a, close[i])
plot(array.mode(a))

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

Параметры

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

До встречи array.new_float array.avg array.variance array.min

array.percentile_linear_interpolation

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

array.percentile_linear_interpolation(id, percentage) 

Параметры

  • id(int[]/float[]) массивные объекты.
  • percentage(series int/float) должна быть равна или меньше процента от значения возвращенного значения.

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

До встречи array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.percentile_nearest_rank (состав.процентиль_ближайшего_ранга)

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

array.percentile_nearest_rank(id, percentage) 

Параметры

  • id(int[]/float[]) массивные объекты.
  • percentage(series int/float) должна быть равна или меньше процента от значения возвращенного значения.

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

До встречи array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.percentrank

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

array.percentrank(id, index) 

Параметры

  • id(int[]/float[]) массивные объекты.
  • index(series int) вычисляет значение их процентного ранжирования.

ПримечанияПроцентный рейтинг - это процент того, сколько элементов в матрице меньше или равны значению референции.

До встречи array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.range

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

array.range(id) 

Примеры

// array.range example
a = array.new_float(0)
for i = 0 to 9
    array.push(a, close[i])
plot(array.range(a))

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

Параметры

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

До встречи array.new_float array.min array.max array.sum

array.remove

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

array.remove(id, index)

Примеры

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

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

Параметры

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

До встречи array.new_float array.set array.push array.insert array.pop array.shift

array.reverse

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

array.reverse(id)

Примеры

// array.reverse example
a = array.new_float(0)
for i = 0 to 9
    array.push(a, close[i])
plot(array.get(a, 0))
array.reverse(a)
plot(array.get(a, 0))

Параметры

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

До встречи array.new_float array.sort array.push array.set array.avg

array.from

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

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

Примеры

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

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

Параметры

  • arg0, arg1, ...(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 ) Начальное значение для всех элементов серии.

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

До встречи array.from array.push array.get array.size array.remove array.shift array.sum

array.new_bool

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

array.new_bool(size, initial_value)

Примеры

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

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

Параметры

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

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

До встречи array.new_float array.get array.slice array.sort

array.new_float

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

array.new_float(size, initial_value)

Примеры

// 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_bool array.get array.slice array.sort

array.new_int

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

array.new_int(size, initial_value)

Примеры

// array.new_int example
length = 5
a = array.new_int(length, int(close))
plot(array.sum(a) / length)

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

Параметры

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

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

До встречи array.new_float array.get array.slice array.sort

array.new_string

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

array.new_string(size, initial_value)

Примеры

// array.new_string example
length = 5
a = array.new_string(length, "text")
runtime.log(array.get(a, 0))

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

Параметры

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

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

До встречи array.new_float array.get array.slice

array.get

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

array.get(id, index)

Примеры

// array.get example
a = array.new_float(0)
for i = 0 to 9
  array.push(a, close[i] - open[i])
plot(array.get(a, 9))

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

Параметры

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

До встречи array.new_float array.set array.slice array.sort

array.push

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

array.push(id, value)

Примеры

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

Параметры

  • id(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) 

Примеры

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

Примеры

// array.sum example
a = array.new_float(0)
for i = 0 to 9
  array.push(a, close[i])
plot(array.sum(a))

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

Параметры

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

До встречи array.new_float array.max array.min

array.avg

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

array.avg(id)

Примеры

// array.avg example
a = array.new_float(0)
for i = 0 to 9
  array.push(a, close[i])
plot(array.avg(a))

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

Параметры

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

До встречи array.new_float array.max array.min array.stdev

array.indexof

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

array.indexof(id, value)

Примеры

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

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

Параметры

  • id(any array type) Объект массива.
  • value (series <type of the array's elements>) Значение, которое нужно искать в массиве.

До встречи array.lastindexof array.get array.lastindexof array.remove array.insert

Стратегия

ВstrategyВ соответствующих встроенных функциях число остановочных точек, число остановочных точек определяется как кратность ценового скачка.strategy.exitФункцииprofitlossПараметры с точками означают остановку, остановку, параметрыprofitУстановка на 10, то есть один скачок в цене умножен на 10 в качестве разницы в цене, который является встроенной переменной.syminfo.mintick

Стратегия

Функция устанавливает несколько свойств политики. Обратите внимание, это только поддержка.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) 

Примеры

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[]'), этот параметр будет применяться к каждой встроенной переменной или пользовательской переменной в скрипте. Размер переменного буферного поля в скрипте 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 означает, что первая сделка должна быть закрыта, когда открыты несколько сделок. Это правило применяется к акциям, фьючерсам и американским валютам. FIFO означает, что сделка может закрываться в любом порядке.
  • 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.

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

До встречи indicator

strategy.entry

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

strategy.entry(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message) 

Примеры

strategy(title = "simple strategy entry example")
strategy.entry("enter long", strategy.long, 1, when = open > high[1]) // enter long by market if current open great then previous high
strategy.entry("enter short", strategy.short, 1, when = open < low[1]) // enter short by market if current open less then previous low

Параметры

  • id(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) Выбираемый параметр. Стоп-лимит ордера. Если указано, тип ордера - "stop" или "stop-limit"; другие типы ордеров - "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, то ничего не происходит; если previously placed order with the same ID was not revoked; по умолчанию true.
  • 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Если вы используете стоп-лосс и следите за стоп-лосом, тип ордера которых - стоп-один, только один из них будет размещен (один будет выполнен первым). Если все следующие параметры: стоп-профит, стоп-лимит, стоп-лосс, стоп-один, стоп-трейл_поинты, стоп-трейл_оффсет - все находятся на уровне NaN, то ордер будет провалиться.

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) Выбираемый параметр. Цель прибыли (требуется указать цену). Если указано, выйти из позиции по указанной цене (или лучше). Приоритет параметра наноlimit больше, чем приоритетность параметра наноprofit (если значение не наноNaN нано, то наноlimit нанозаменяет наноprofit нано).
  • loss(series int/float) Выбираемый параметр ─ стоп-потери ─ Если указано, выйти из позиции на стоп-потери при достижении указанной суммы потерь ─ По умолчанию на NaN ─.
  • stop(series int/float) Выбираемый параметр. Стоп-лосс (требуется указать цену). Если указано, то выход из позиции будет осуществляться по указанной цене (или хуже). Приоритет параметра стоп-лосса выше приоритета параметра нано-потеря нано-потеря.
  • trail_price(series int/float) Опциональные параметры.• Следить за уровнем активации стоп-лосса (требуется указать цену).• Если указано, то после достижения указанного уровня цены будет размещен стоп-лосс.• В параметре "Strail_offset" определяется отклонение, используемое для определения первоначальной цены стоп-лосса (с точки): X-точка ниже уровня активации для выхода из многотысячного ряда; X-точка выше уровня активации для выхода из пустого ряда.• По умолчанию значение - NaN-точка.
  • trail_points(series int/float) Опциональный параметр: ‒ уровень активации стоп-лосса для отслеживания (указанный точками прибыли); ‒ если указано, когда достигается уровень рассчитанной цены (указанная сумма прибыли), то размещается стоп-лосса для отслеживания. ‒ в параметре ‒ отклонение от начальной цены стоп-лосса для отслеживания (указанный точками): ‒ X-точка ниже уровня активации для выхода из полиголы; ‒ X-точка выше уровня активации для выхода из полиголы. ‒ по умолчанию ‒ ‒ NaN-точка.
  • 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, то ничего не происходит; если previously placed order with the same ID was not revoked; по умолчанию true.
  • alert_message(series string) опциональный параметр, используемый для замены символа {{strategy.order.alert_message}} в поле {{strategy.order.alert_message}} в диалоговом окне для создания сигналов.

strategy.cancel

Это упоминание имени для отмены / отмены всех предварительно вывешенных команд, генерируемых следующими функциями: strategy.order, strategy.entry andstrategy.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. Если "true", то заказ будет отменен.

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

这是取消/停用所有预挂单命令,由以下功能生成: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) Выбираемый параметр. Стоп-лимит ордера. Если указано, тип ордера - "stop" или "stop-limit"; другие типы ордеров - "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, то ничего не происходит; если previously placed order with the same ID was not revoked; по умолчанию true.
  • 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.closedtrades.entry_bar_index strategy.closedtrades.exit_bar_index

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

Возвращается ID входа в невыплаченную сделку.

strategy.opentrades.entry_id(trade_num)

Примеры

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_bar_index strategy.opentrades.entry_time

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

Например, в случае, если вы не хотите, чтобы ваши деньги были возвращены, вы можете использовать их в качестве сбережений.

strategy.opentrades.entry_price(trade_num)

Примеры

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.closedtrades.exit_price

Стратегия.открытие.время входа

Возвращается время UNIX, в которое не вводились сделки.

strategy.opentrades.entry_time(trade_num)

Примеры

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.closedtrades.entry_time strategy.closedtrades.exit_time

strategy.opentrades.profit

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

strategy.opentrades.profit(trade_num)

Возвращение прибыли последней сделки

Примеры

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.closedtrades.profit strategy.openprofit strategy.netprofit strategy.grossprofit

strategy.opentrades.size

Возвращается направление торговли и количество контрактов на небрежной сделке. Если значение > 0, то рыночная позиция является многоголовой. Если значение < 0, то рыночная позиция является пустой головой.

strategy.opentrades.size(trade_num)

Примеры

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.size strategy.position_size strategy.opentrades strategy.closedtrades

Стратегия.Закрытые сделки.Вход_бар_индекс

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

strategy.closedtrades.entry_bar_index(trade_num)

Примеры

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(trade_num)

Примеры

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

Стратегия.Закрытые сделки.Exit_bar_index

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

strategy.closedtrades.exit_bar_index(trade_num)

Примеры

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.

До встречи bar_index

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

Возвращает ID входа в сделку.

strategy.closedtrades.entry_id(trade_num)

Примеры

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(trade_num)

Примеры

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.exit_price strategy.closedtrades.size strategy.closedtrades

Стратегия.закрытые сделки.время входа

Возвращение времени UNIX, в которое были введены сделки.

strategy.closedtrades.entry_time(trade_num)

Примеры

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)

Примеры

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)

Примеры

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

Процент средней прибыли на сделке

Примеры

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

Больше

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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