значение t -
trail_price
(series int/float) Опциональный аргумент. Уровень активации последней остановки (требует определенной цены). Если он указан, ордер последней остановки будет размещен, когда будет достигнут указанный уровень цены. Замещение (в тиках) для определения начальной цены последней остановки указано в аргументе trail_points
(series int/float) Опциональный аргумент. Уровень активации последнего остановки (прибыль, указанная в тиках). Если он указан, ордер последнего остановки будет размещен, когда будет достигнут рассчитанный уровень цены (указанная сумма прибыли). Замещение (в тиках) для определения начальной цены последнего остановки указано в аргументе trail_offset
(series int/float) Опциональный аргумент. Цена остановки последнего хода (указанная в тиках). Замещение в тиках для определения начальной цены ордера остановки последнего хода: X тики ниже oca_name
comment
Дополнительные инструкции для порядка.when
(series bool) Опциональный аргумент. Условие заказа. Заказ размещается, если условие alert_message
(серия строки) Опциональный аргумент при использовании {{strategy.order.alert_message}} в поле Это команда для отмены/деактивации ожидаемых заказов, ссылаясь на их имена, которые были сгенерированы функциями: 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
(серия строки) Требуемый аргумент. Идентификатор заказа. Можно отменить заказ, ссылаясь на его идентификатор.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) Опциональный аргумент. Условие для отмены всех заказов. Если условие верно, то все активные заказы будут отменены. Значение по умолчанию Это команда для размещения заказа. Если заказ с тем же 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
(серийная строка) Необходимый параметр. Идентификатор заказа. Можно отменить или изменить заказ, ссылаясь на его идентификатор.direction
(strategy_direction) Необходимый параметр. Направление ордера: qty
(series int/float) Факультативный параметр. Количество контрактов/акций/лотов/единиц для торговли.limit
(series int/float) Факультативный параметр. Лимитная цена ордера. Если он указан, тип ордера либо stop
(series int/float) Факультативный параметр. Стоп цена ордера. Если он указан, тип ордера либо oca_name
oca_type
comment
Дополнительные замечания о порядке.when
(series bool) Опциональный параметр. Условие заказа. Заказ размещается, если условие alert_message
(series string) Факультативный параметр, который заменяет местоназначение {{strategy.order.alert_message}} при использовании в диалоговом поле Возвращает bar_index записи открытой сделки.
strategy.opentrades.entry_bar_index(trade_num)
Подождите 10 баров и закройте позицию.
Пример
strategy("`strategy.opentrades.entry_bar_index` Example")
barsSinceLastEntry() =>
strategy.opentrades > 0 ? bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) : na
// Enter a long position if there are no open positions.
if strategy.opentrades == 0
strategy.entry("Long", strategy.long)
// Close the long position after 10 bars.
if barsSinceLastEntry() >= 10
strategy.close("Long")
Аргументы
trade_num
(series int) Номер сделки открытой сделки.См. также
strategy.closedtrades.entry_bar_index
strategy.closedtrades.exit_bar_index
Возвращает идентификатор записи открытой сделки.
strategy.opentrades.entry_id(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))
ВозвращениеВозвращает идентификатор записи открытой сделки.
Аргументы
trade_num
(series int) Номер сделки открытой сделки.ПримечанияФункция возвращает na, если trade_num не находится в диапазоне: 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) Номер сделки открытой сделки.См. также
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) Номер сделки открытой сделки.См. также
strategy.closedtrades.entry_time
strategy.closedtrades.exit_time
Возвращает прибыль/убыток от открытой торговли.
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) Номер сделки открытой сделки.См. также
strategy.closedtrades.profit
strategy.openprofit
strategy.netprofit
strategy.grossprofit
Возвращает направление и количество контрактов, торгуемых в открытой торговле. Если значение > 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) Номер сделки открытой сделки.См. также
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) Номер сделки закрытой сделки.См. также
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) Номер сделки завершенной сделки.См. также
strategy.closedtrades.entry_price
Вернуть 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) Номер сделки закрытой сделки.См. также
bar_index
Возвращает идентификатор записи закрытой сделки.
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))
ВозвращениеВозвращает идентификатор записи закрытой сделки.
Аргументы
trade_num
(series int) Номер сделки закрытой сделки.ПримечанияФункция возвращает na, если trade_num не находится в диапазоне: 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) Номер сделки закрытой сделки.См. также
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) Номер сделки закрытой сделки.См. также
strategy.opentrades.entry_time
strategy.closedtrades.exit_time
time
Возвращает прибыль/убыток от закрытой сделки.
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) Номер сделки закрытой сделки.См. также
strategy.opentrades.profit
strategy.closedtrades.commission
Возвращает направление и количество контрактов, торгуемых в закрытой торговле. Если значение > 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.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) Номер сделки закрытой сделки.См. также
strategy.opentrades.size
strategy.position_size
strategy.closedtrades
strategy.opentrades
Возвращает время UNIX закрытия сделки.
strategy.closedtrades.exit_time(trade_num)
Пример
strategy("strategy.closedtrades.exit_time Example 1")
// Enter long trades on three rising bars; exit on two falling bars.
if ta.rising(close, 3)
strategy.entry("Long", strategy.long)
if ta.falling(close, 2)
strategy.close("Long")
// Calculate the average trade duration.
avgTradeDuration() =>
sumTradeDuration = 0
for i = 0 to strategy.closedtrades - 1
sumTradeDuration += strategy.closedtrades.exit_time(i) - strategy.closedtrades.entry_time(i)
result = nz(sumTradeDuration / strategy.closedtrades)
// Display average duration converted to seconds and formatted using 2 decimal points.
if barstate.islastconfirmedhistory
label.new(bar_index, high, str.tostring(avgTradeDuration() / 1000, "#.##") + " seconds")
Возобновить закрытые сделки через X секунд.
Пример
strategy("strategy.closedtrades.exit_time Example 2")
// Strategy calls to emulate a single long trade at the first bar.
if bar_index == 0
strategy.entry("Long", strategy.long)
reopenPositionAfter(timeSec) =>
if strategy.closedtrades > 0
if time - strategy.closedtrades.exit_time(strategy.closedtrades - 1) >= timeSec * 1000
strategy.entry("Long", strategy.long)
// Reopen last closed position after 120 sec.
reopenPositionAfter(120)
if ta.change(strategy.opentrades)
strategy.exit("Long", stop = low * 0.9, profit = high * 2.5)
Аргументы
trade_num
(series int) Номер сделки закрытой сделки.См. также
strategy.closedtrades.entry_time
Эта функция может быть использована для указания направления рынка, в котором функция strategy.entry может открывать позиции.
strategy.risk.allow_entry_in(value)
Пример
strategy("strategy.risk.allow_entry_in")
strategy.risk.allow_entry_in(strategy.direction.long)
strategy.entry("Long", strategy.long, when = open > close)
// Instead of opening a short position with 10 contracts, this command will close long entries.
strategy.entry("Short", strategy.short, when = open < close, qty = 10)
Аргументы
value
(простая строка) Допустимое направление. Возможные значения:strategy.direction.all
, strategy.direction.long
, strategy.direction.short
Целью данного правила является определение максимального размера рыночной позиции.strategy.entry
Количество
strategy.risk.max_position_size(contracts)
Пример
strategy("risk.max_position_size Demo", default_qty_value = 100)
strategy.risk.max_position_size(10)
strategy.entry("buy", strategy.long, when = open > close)
plot(strategy.position_size) // max plot value will be 10
Аргументы
contracts
(простой int/float) Необходимый параметр. Максимальное количество контрактов/акций/лотов/единиц в позиции.Абсолютная стоимостьnumber
этоnumber
еслиnumber
>= 0, или -number
otherwise.
math.abs(number)
ВозвращениеАбсолютная стоимостьnumber
.
Функция acos возвращает аркосинус (в радианах) такого числа, что cos ((acos(y)) = y для y в диапазоне [-1, 1].
math.acos(angle)
ВозвращениеКосинус дуги значения; возвращенный угол находится в диапазоне [0, Pi], или na, если y находится вне диапазона [-1, 1].
Возвращает псевдослучайное значение. Функция будет генерировать различную последовательность значений для каждого выполнения скрипта. Использование того же значения для опционального аргумента семена будет производить повторяемую последовательность.
math.random(min, max, seed)
ВозвращениеСлучайное значение.
Аргументы
min
(series int/float) Нижняя граница диапазона случайных значений. Значение не включено в диапазон. По умолчанию 0.max
(series int/float) верхняя граница диапазона случайных значений. Значение не включено в диапазон. По умолчанию 1.seed
(input int) Опциональный аргумент. При использовании одного и того же семена позволяет последовательным вызовам к функции производить повторяемый набор значений.Функция асин возвращает арксинус (в радианах) числа такого рода, что sin ((asin(y)) = y для y в диапазоне [-1, 1].
math.asin(angle)
ВозвращениеАрксинус значения; возвращенный угол находится в диапазоне [-Pi/2, Pi/2], или na, если y находится вне диапазона [-1, 1].
Функция atan возвращает арктангенс (в радианах) числа таким образом, что tan ((atan ((y)) = y для любого y.
math.atan(angle)
ВозвращениеТангенс дуги значения; возвращенный угол находится в диапазоне [-Pi/2, Pi/2].
Функция ceil возвращает наименьшее (ближе всего к отрицательному бесконечности) целое число, которое больше или равно аргументу.
math.ceil(number)
ВозвращениеНаименьшее целое число меньше или равно данному числу.
См. также
math.floor
math.round
Функция cos возвращает тригонометрический косинус угла.
math.cos(angle)
ВозвращениеТригонометрический косинус угла.
Аргументы
angle
(серия int/float) Угол, в радианах.Функция expnumber
Это поднято к властиnumber
, где e - число Эйлера.
math.exp(number)
ВозвращениеЗначение, которое представляет собой e возведенное на степеньnumber
.
См. также
math.pow
math.floor(number)
ВозвращениеНаибольшее целое число меньше или равно данному числу.
См. также
math.ceil
math.round
Естественный логарифм любогоnumber
> 0 - это уникальное y такое, что e^y =number
.
math.log(number)
ВозвращениеЕстественный логарифмnumber
.
См. также
math.log10
Общий (или базовый 10) логарифмnumber
Это степень, до которой 10 нужно поднять, чтобы получитьnumber
. 10^y =number
.
math.log10(number)
ВозвращениеЛогарифм в основе 10number
.
См. также
math.log
Математическая функция мощности.
math.pow(base, exponent)
Пример
// math.pow
plot(math.pow(close, 2))
Возвращение
base
поднято к властиexponent
Если.base
является рядом, он рассчитывается по элементам.
Аргументы
base
(серия int/float) Укажите базу, которую вы хотите использовать.exponent
(series int/float) Указывает экспонент.См. также
math.sqrt
math.exp
Знак (signum)
math.sign(number)
ВозвращениеЗнак спора.
Функция sin возвращает тригонометрический синус угла.
math.sin(angle)
ВозвращениеТригонометрический синус угла.
Аргументы
angle
(серия int/float) Угол, в радианах.Квадратный корень любогоnumber
>= 0 - это уникальное y >= 0 такое, что y^2 =number
.
math.sqrt(number)
ВозвращениеКвадратного корняnumber
.
См. также
math.pow
Функция тан возвращает тригонометрическую тангенс угла.
math.tan(angle)
ВозвращениеТригонометрическая тангенс угла.
Аргументы
angle
(серия int/float) Угол, в радианах.Возвращает значениеnumber
Закруглены до ближайшего целого числа, с связи округления.precision
параметр используется, возвращает значение плавающего числа, округленное до этого количества десятичных мест.
math.round(number)
math.round(number, precision)
ВозвращениеСтоимостьnumber
округлить до ближайшего целого числа или по точности.
Аргументы
number
(серия int/float) Значение, которое должно быть округлено.precision
(series int) Факультативный аргумент.number
Если нет аргумента, округление будет на ближайшее целое число.ПримечанияОбратите внимание, что для функции значений
См. также
math.ceil
math.floor
Возвращает наибольшее из множественных значений.
math.max(number0, number1, ...)
Пример
// math.max
plot(math.max(close, open))
plot(math.max(close, math.max(open, 42)))
ВозвращениеНаибольшее из множественных данных значений.
См. также
math.min
Возвращает наименьшее из множественных значений.
math.min(number0, number1, ...)
Пример
// math.min
plot(math.min(close, open))
plot(math.min(close, math.min(open, 42)))
ВозвращениеНаименьшее из множества данных значений.
См. также
math.max
Вычисляет среднее значение всех данных рядов (по элементам).
math.avg(number0, number1, ...)
Возвращение Average.
См. также
math.sum
ta.cum
ta.sma
Возвращает значение, округленное на минутик символа, т.е. ближайшее значение, которое можно разделить на syminfo.mintick, без остатка, с округлением связи вверх.
math.round_to_mintick(number)
ВозвращениеВnumber
Закругленный до точности.
Аргументы
number
(серия int/float) Значение, которое должно быть округлено.См. также
math.ceil
math.floor
Функция суммы возвращает скользящую сумму последних y значений x.
math.sum(source, length)
ВозвращениеСуммаsource
дляlength
Стойки назад.
Аргументы
source
(серия int/float) Серия значений для обработки.length
(серия int) Количество строк (длина).См. также
ta.cum
for
Возвращает приблизительно эквивалентный угол в градусах от угла, измеренного в радианах.
math.todegrees(radians)
ВозвращениеЗначение угла в градусах.
Аргументы
radians
(серия int/float) Угол в радианах.Возвращает приблизительно эквивалентный угол в радианах от угла, измеренного в градусах.
math.toradians(degrees)
ВозвращениеЗначение угла в радианах.
Аргументы
degrees
(серия int/float) Угол в градусах.Для данной серии заменяет значения NaN предыдущим ближайшим не NaN-значением.
fixnan(source)
ВозвращениеСерия без пробелов.
Аргументы
source
(серия int/float/bool/color)См. также
na
nz
Заменяет значения NaN нулями (или заданным значением) в серии.
nz(source, replacement)
nz(source)
Пример
// nz
plot(nz(ta.sma(close, 100)))
ВозвращениеСтоимостьsource
если нетna
. Если значениеsource
этоna
, возвращает ноль, илиreplacement
аргумент, когда один используется.
Аргументы
source
(серия int/float/bool/color) Серия значений для обработки.replacement
(серия int/float/bool/color) Значение, которое заменит все значения source
series.См. также
na
fixnan
Испытательное значение, если это NaN.
na(x)
Возвращениеистинное, если x не является действительным числом (x - NaN), в противном случае ложное.
См. также
fixnan
nz
Отбрасывает на или обрезает значение плавающего на int.
int(x)
ВозвращениеЗначение аргумента после отложения в int.
См. также
float
bool
color
string
Кассы не плывут.
float(x)
ВозвращениеЗначение аргумента после перехода на "плавающий".
См. также
int
bool
color
string
Запускает событие оповещения при вызове в режиме реального времени и предупреждение, основанное на событиях функции оповещения, ранее было создано для индикатора или стратегии через диалоговое окно "Создать предупреждение".
alert(message, freq)
Пример
// alert() example
ma = ta.sma(close, 14)
xUp = ta.crossover(close, ma)
if xUp
// Trigger the alert the first time a cross occurs during the real-time bar.
alert("Price (" + str.tostring(close) + ") crossed over MA (" + str.tostring(ma) + ").", alert.freq_once_per_bar)
plot(ma)
plotchar(xUp, "xUp", "▲", location.top, size = size.tiny)
Аргументы
message
Сообщение, отправленное, когда запускается предупреждение.freq
(вводная строка) Частота запуска. Возможные значения: alert.freq_all (все вызовы функций запускают предупреждение), alert.freq_once_per_bar (первый вызов функции во время панели запускает предупреждение), alert.freq_once_per_bar_close (призыв функции запускает предупреждение только тогда, когда это происходит во время последней итерации сценария панели реального времени, когда она закрывается).ПримечанияВ Центре помощи объясняется, как создать такие оповещения.
В отличие от условий оповещения, вызовы оповещения НЕ считаются дополнительной схемой.
Вызовы функций могут быть расположены как в глобальном, так и в локальном масштабах.
Вызовы функций ничего не показывают на диаграмме.
Аргумент
См. также
alertcondition
Создает условие предупреждения, которое доступно в диалоге "Создать предупреждение". Обратите внимание, что условие предупреждения НЕ создает предупреждение, оно просто дает вам больше вариантов в диалоге "Создать предупреждение". Кроме того, эффект предупреждения невидим на графике.
alertcondition(condition, title, message)
Пример
// alertcondition
alertcondition(close >= open, title='Alert on Green Bar', message='Green Bar!')
Аргументы
condition
(серия bool) Серия булевых значений, которая используется для предупреждения. истинные значения означают предупреждение о пожаре, ложное - никакого предупреждения. требуется аргумент.title
(const string) Заголовок условия тревоги.message
(const string) Сообщение для отображения при запуске сигналов.ПримечанияОбратите внимание, что в Pine Script v4/v5 вызов alertcondition генерирует дополнительный график. Все такие вызовы учитываются при расчете числа выходной серии на скрипт.
См. также
alert
Для того, чтобы быть совместимым сTrading View
Стратегический код, на самом деле не требуется, чтобы быть вызванным.
См. также
strategy
Функция времени возвращает время UNIX текущей строки для указанного временного интервала и сеанса или NaN, если точка времени находится вне сеанса.session
arguments.
time(timeframe, session, timezone)
time(timeframe, session)
time(timeframe)
Пример
timeinrange(res, sess) => not na(time(res, sess, "America/New_York")) ? 1 : 0
plot(timeinrange("1", "1300-1400"), color=color.red)
// This plots 1.0 at every start of 10 minute bar on a 1 minute chart:
newbar(res) => ta.change(time(res)) == 0 ? 0 : 1
plot(newbar("10"))
При настройке сеанса вы можете указать не только часы и минуты, но и дни недели, которые будут включены в этот сеанс.
Если дни не указаны, считается, что сессия была назначена с воскресенья (1) по субботу (7), т.е.
Пример
// Time
t1 = time(timeframe.period, "0000-0000:23456")
bgcolor(t1 ? color.new(color.blue, 90) : na)
Один.session
Например, следующий скрипт будет выделять строки с 10:00 до 11:00 и с 14:00 до 15:00 (только в рабочие дни):
Пример
// Time
t1 = time(timeframe.period, "1000-1100,1400-1500:23456")
bgcolor(t1 ? color.new(color.blue, 90) : na)
ВозвращениеВремя UNIX.
Аргументы
timeframe
Пустая строка интерпретируется как текущая временная рамка диаграммы.session
timezone
(простая строка) Временный поясsession
это аргумент. Он может быть использован только при указании ПримечанияВремя UNIX - это количество миллисекунд, прошедших с 00:00:00 UTC, 1 января 1970 года.
year(time)
year(time, timezone)
ВозвращениеГод (в часовом поясе обмена) для предоставленного времени UNIX.
Аргументы
time
Время UNIX в миллисекундах.timezone
Дополнительный аргумент - часовой пояс.ПримечанияВремя UNIX - это количество миллисекунд, прошедших с 00:00:00 UTC, 1 января 1970 года. Обратите внимание, что эта функция возвращает год, основанный на времени открытия баров. Для ночных сессий (например, EURUSD, где понедельник начинается в воскресенье, 17:00 UTC-4) это значение может быть ниже на 1 года торгового дня.
См. также
year
time
month
dayofmonth
dayofweek
hour
minute
second
month(time)
month(time, timezone)
ВозвращениеМесяц (в часовом поясе обмена) для предоставленного времени UNIX.
Аргументы
time
Время UNIX в миллисекундах.timezone
Дополнительный аргумент - часовой пояс.ПримечанияВремя UNIX - это количество миллисекунд, прошедших с 00:00:00 UTC, 1 января 1970 года. Обратите внимание, что эта функция возвращает месяц, основанный на времени открытия баров. Для ночных сессий (например, EURUSD, где понедельник начинается в воскресенье, 17:00 UTC-4) это значение может быть ниже на 1 месяца торгового дня.
См. также
month
time
year
dayofmonth
dayofweek
hour
minute
second
hour(time)
hour(time, timezone)
ВозвращениеЧас (в часовом поясе обмена) для предоставленного времени UNIX.
Аргументы
time
Время UNIX в миллисекундах.timezone
(Серьезная строка) Факультативный параметр.ПримечанияВремя UNIX - это количество миллисекунд, прошедших с 00:00:00 UTC, 1 января 1970 года.
См. также
hour
time
year
month
dayofmonth
dayofweek
minute
second
minute(time)
minute(time, timezone)
ВозвращениеМинута (в часовом поясе) для предоставленного времени UNIX.
Аргументы
time
Время UNIX в миллисекундах.timezone
Дополнительный аргумент - часовой пояс.ПримечанияВремя UNIX - это количество миллисекунд, прошедших с 00:00:00 UTC, 1 января 1970 года.
См. также
minute
time
year
month
dayofmonth
dayofweek
hour
second
second(time)
second(time, timezone)
ВозвращениеВторой (в часовом поясе обмена) для предоставленного времени UNIX.
Аргументы
time
Время UNIX в миллисекундах.timezone
(Серьезная строка) Факультативный параметр.ПримечанияВремя UNIX - это количество миллисекунд, прошедших с 00:00:00 UTC, 1 января 1970 года.
См. также
second
time
year
month
dayofmonth
dayofweek
hour
minute
weekofyear(time)
weekofyear(time, timezone)
ВозвращениеНеделя года (в часовом поясе обмена) для предоставленного времени UNIX.
Аргументы
time
Время UNIX в миллисекундах.timezone
(Серьезная строка) Факультативный параметр.ПримечанияВремя UNIX - это количество миллисекунд, прошедших с 00:00:00 UTC, 1 января 1970 года. Обратите внимание, что эта функция возвращает неделю, основанную на времени открытия баров. Для ночных сессий (например, EURUSD, где понедельник начинается в воскресенье, 17:00) это значение может быть ниже на 1 недели торгового дня.
См. также
weekofyear
time
year
month
dayofmonth
dayofweek
hour
minute
second
dayofweek(time)
dayofweek(time, timezone)
ВозвращениеДень недели (в часовом поясе обмена) для предоставленного времени UNIX.
Аргументы
time
Время UNIX в миллисекундах.timezone
(Серьезная строка) Факультативный параметр.ПримечанияОбратите внимание, что эта функция возвращает день, основанный на времени открытия баров. Для ночных сессий (например, EURUSD, где понедельник начинается в воскресенье, 17:00) это значение может быть ниже на 1 дня торгового дня. Время UNIX - это количество миллисекунд, прошедших с 00:00:00 UTC, 1 января 1970 года.
См. также
time
dayofmonth
dayofmonth(time)
dayofmonth(time, timezone)
ВозвращениеДень месяца (в часовом поясе обмена) для предоставленного времени UNIX.
Аргументы
time
(серия int) Unix время в миллисекундах.timezone
(Серьезная строка) Факультативный параметр.ПримечанияВремя UNIX - это количество миллисекунд, прошедших с 00:00:00 UTC, 1 января 1970 года. Обратите внимание, что эта функция возвращает день, основанный на времени открытия баров. Для ночных сессий (например, EURUSD, где понедельник начинается в воскресенье, 17:00 UTC-4) это значение может быть ниже на 1 дня торгового дня.
См. также
time
dayofweek
Функция timestamp возвращает время UNIX указанной даты и времени.
timestamp(dateString)
timestamp(year, month, day, hour, minute, second)
timestamp(timezone, year, month, day, hour, minute, second)
Пример
// timestamp
plot(timestamp(2016, 01, 19, 09, 30), linewidth=3, color=color.green)
plot(timestamp(syminfo.timezone, 2016, 01, 19, 09, 30), color=color.blue)
plot(timestamp(2016, 01, 19, 09, 30), color=color.yellow)
plot(timestamp("GMT+6", 2016, 01, 19, 09, 30))
plot(timestamp(2019, 06, 19, 09, 30, 15), color=color.lime)
plot(timestamp("GMT+3", 2019, 06, 19, 09, 30, 15), color=color.fuchsia)
plot(timestamp("Feb 01 2020 22:10:05"))
plot(timestamp("2011-10-10T14:48:00"))
ПросящиеПочему стратегия Square Duplication не может быть реализована?
Изобретатели количественного измерения - мечтыХорошо, давайте проверим.
ПросящиеОптимизированный тренд-трекер
Изобретатели количественного измерения - мечтыЗдравствуйте, пожалуйста, какая именно стратегия?