El valor de t es
trail_price
(series int/float) Un argumento opcional. Nivel de activación de trailing stop (requiere un precio específico). Si se especifica, se colocará una orden de trailing stop cuando se alcance el nivel de precio especificado. El desplazamiento (en ticks) para determinar el precio inicial de la orden de trailing stop se especifica en el argumento trail_points
(series int/float) Un argumento opcional. Nivel de activación de trailing stop (ganancia especificada en ticks). Si se especifica, se colocará una orden de trailing stop cuando se alcance el nivel de precio calculado (cantidad de ganancia especificada). El desplazamiento (en ticks) para determinar el precio inicial de la orden de trailing stop se especifica en el argumento trail_offset
(series int/float) Un argumento opcional. Precio de parada de seguimiento (especificado en ticks). El desplazamiento en ticks para determinar el precio inicial de la orden de parada de seguimiento: X ticks inferior a oca_name
comment
Un argumento opcional, instrucciones adicionales para el orden.when
(series bool) Un argumento opcional. Condición del orden. El orden se coloca si la condición es alert_message
(cuadro de series) Un argumento opcional cuando se utiliza el marcador de posición {{strategy.order.alert_message}} en el campo Es un comando para cancelar/desactivar órdenes pendientes haciendo referencia a sus nombres, que fueron generados por las funciones: strategy.order, strategy.entry ystrategy.exit.
strategy.cancel(id, when)
Ejemplo
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
Argumentos
id
(serie de cadenas) Un argumento requerido. El identificador del pedido. Es posible cancelar un pedido haciendo referencia a su identificador.when
(serie bool) Un argumento opcional. Condición para cancelar un pedido con un ID especificado. Si la condición es Se trata de un comando para cancelar/desactivar todas las órdenes pendientes, que fueron generadas por las funciones: strategy.order, strategy.entry ystrategy.exit.
strategy.cancel_all(when)
Ejemplo
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
Argumentos
when
(serie bool) Un argumento opcional. Condición para cancelar todos los pedidos. Si la condición es verdadera, entonces todos los pedidos activos serán cancelados. El valor predeterminado es Es un comando para colocar un pedido. Si un pedido con el mismo ID ya está pendiente, es posible modificar el pedido. Si no hay un pedido con el ID especificado, se coloca un nuevo pedido. Para desactivar el pedido, se debe usar el comando strategy.cancel o strategy.cancel_all. En comparación con la función strategy.entry, la función strategy.order no se ve afectada por la pirámide. Si los parámetros
strategy.order(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)
Ejemplo
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
Argumentos
id
(serial string) Un parámetro requerido. El identificador del pedido. Es posible cancelar o modificar un pedido haciendo referencia a su identificador.direction
(estrategia_dirección) Un parámetro requerido. Dirección de la orden: qty
(series int/float) Parámetro opcional. Número de contratos/acciones/lotes/unidades a negociar. El valor predeterminado es limit
(series int/float) Un parámetro opcional. Precio límite de la orden. Si se especifica, el tipo de orden es stop
(series int/float) Un parámetro opcional. Precio de parada de la orden. Si se especifica, el tipo de orden es oca_name
oca_type
comment
Un parámetro opcional, notas adicionales sobre el orden.when
(series bool) Un parámetro opcional. Condición del orden. El orden se coloca si la condición es alert_message
(cuadro de serie) Un parámetro opcional que reemplaza el marcador de posición {{strategy.order.alert_message}} cuando se utiliza en el cuadro de diálogo Devuelve el bar_index de la entrada de la operación abierta.
strategy.opentrades.entry_bar_index(trade_num)
Espera 10 bares y cierra la posición.
Ejemplo
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")
Argumentos
trade_num
(serie int) El número de operación de la operación abierta.Véase también
strategy.closedtrades.entry_bar_index
strategy.closedtrades.exit_bar_index
Devuelve el ID de la entrada de la operación abierta.
strategy.opentrades.entry_id(trade_num)
Ejemplo
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))
Las devolucionesDevuelve el ID de la entrada de la operación abierta.
Argumentos
trade_num
(serie int) El número de operación de la operación abierta.Las observacionesLa función devuelve na si trade_num no está en el rango: 0 a strategy.opentrades-1.
Véase también
strategy.opentrades.entry_bar_index
strategy.opentrades.entry_time
Devuelve el precio de la entrada de la operación abierta.
strategy.opentrades.entry_price(trade_num)
Ejemplo
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")
Calcular el precio medio de la posición abierta.
Ejemplo
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())
Argumentos
trade_num
(serie int) El número de operación de la operación abierta.Véase también
strategy.closedtrades.exit_price
Devuelve la hora UNIX de la entrada de la operación abierta.
strategy.opentrades.entry_time(trade_num)
Ejemplo
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")
Argumentos
trade_num
(serie int) El número de operación de la operación abierta.Véase también
strategy.closedtrades.entry_time
strategy.closedtrades.exit_time
Devuelve la ganancia/pérdida del comercio abierto.
strategy.opentrades.profit(trade_num)
Devuelva el beneficio de la última operación abierta.
Ejemplo
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")
Calcule el beneficio de todas las posiciones abiertas.
Ejemplo
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")
Argumentos
trade_num
(serie int) El número de operación de la operación abierta.Véase también
strategy.closedtrades.profit
strategy.openprofit
strategy.netprofit
strategy.grossprofit
Devuelve la dirección y el número de contratos negociados en el comercio abierto. Si el valor es > 0, la posición de mercado fue larga. Si el valor es < 0, la posición de mercado fue corta.
strategy.opentrades.size(trade_num)
Ejemplo
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")
Calcular el porcentaje de ganancia promedio de las posiciones abiertas.
Ejemplo
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)
Argumentos
trade_num
(serie int) El número de operación de la operación abierta.Véase también
strategy.closedtrades.size
strategy.position_size
strategy.opentrades
strategy.closedtrades
Devuelve el bar_index de la entrada de la operación cerrada.
strategy.closedtrades.entry_bar_index(trade_num)
Ejemplo
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())
Argumentos
trade_num
(serie int) Número de operación de la operación cerrada.Véase también
strategy.closedtrades.exit_bar_index
strategy.opentrades.entry_bar_index
Devuelve el precio de salida de una operación cerrada.
strategy.closedtrades.exit_price(trade_num)
Ejemplo
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")
Calcular el porcentaje de ganancia promedio para todas las operaciones cerradas.
Ejemplo
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)
Argumentos
trade_num
(serie int) Número de transacción de la transacción cerrada. El número de la primera transacción es cero.Véase también
strategy.closedtrades.entry_price
Devuelve el bar_index de la salida de la operación cerrada.
strategy.closedtrades.exit_bar_index(trade_num)
Ejemplo
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")
Calcular el número promedio de líneas K por transacción.
Ejemplo
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())
Argumentos
trade_num
(serie int) Número de operación de la operación cerrada.Véase también
bar_index
Devuelve el ID de la entrada de la operación cerrada.
strategy.closedtrades.entry_id(trade_num)
Ejemplo
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))
Las devolucionesDevuelve el ID de la entrada de la operación cerrada.
Argumentos
trade_num
(serie int) Número de operación de la operación cerrada.Las observacionesLa función devuelve na si el trade_num no se encuentra en el rango: 0 a strategy.closedtrades-1.
Véase también
strategy.closedtrades.entry_bar_index
strategy.closedtrades.entry_time
Devuelve el precio de la entrada de la operación cerrada.
strategy.closedtrades.entry_price(trade_num)
Ejemplo
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")
Calcular el porcentaje de ganancia promedio para todas las operaciones cerradas.
Ejemplo
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)
Argumentos
trade_num
(serie int) Número de operación de la operación cerrada.Véase también
strategy.closedtrades.exit_price
strategy.closedtrades.size
strategy.closedtrades
Devuelve la hora UNIX de la entrada de la operación cerrada.
strategy.closedtrades.entry_time(trade_num)
Ejemplo
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")
Argumentos
trade_num
(serie int) Número de operación de la operación cerrada.Véase también
strategy.opentrades.entry_time
strategy.closedtrades.exit_time
time
Devuelve la ganancia/pérdida de la operación cerrada.
strategy.closedtrades.profit(trade_num)
Ejemplo
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")
Argumentos
trade_num
(serie int) Número de operación de la operación cerrada.Véase también
strategy.opentrades.profit
strategy.closedtrades.commission
Devuelve la dirección y el número de contratos negociados en la operación cerrada. Si el valor es > 0, la posición de mercado fue larga. Si el valor es < 0, la posición de mercado fue corta.
strategy.closedtrades.size(trade_num)
Ejemplo
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")
Calcular el porcentaje de ganancia promedio en operaciones cerradas.
Ejemplo
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)
Argumentos
trade_num
(serie int) Número de operación de la operación cerrada.Véase también
strategy.opentrades.size
strategy.position_size
strategy.closedtrades
strategy.opentrades
Devuelve la hora UNIX de la salida de la operación cerrada.
strategy.closedtrades.exit_time(trade_num)
Ejemplo
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")
Volver a abrir operaciones cerradas después de X segundos.
Ejemplo
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)
Argumentos
trade_num
(serie int) Número de operación de la operación cerrada.Véase también
strategy.closedtrades.entry_time
Esta función puede utilizarse para especificar en qué dirección del mercado se permite a la función strategy.entry abrir posiciones.
strategy.risk.allow_entry_in(value)
Ejemplo
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)
Argumentos
value
La dirección permitida. Valores posibles:strategy.direction.all
, strategy.direction.long
, strategy.direction.short
Esta regla tiene por objeto determinar el tamaño máximo de una posición de mercado y afecta a la siguiente función:strategy.entry
. La cantidad de entrada puede reducirse (si es necesario) a tal número de contratos/acciones/lotes/unidades, por lo que el tamaño total de la posición no excede el valor especificado en
strategy.risk.max_position_size(contracts)
Ejemplo
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
Argumentos
contracts
(simple int/float) Parámetro requerido: número máximo de contratos/acciones/lotes/unidades en una posición.Valor absoluto denumber
esnumber
si esnumber
>= 0, o bien -number
otherwise.
math.abs(number)
Las devolucionesEl valor absoluto denumber
.
La función acos devuelve el arccosino (en radianos) de un número tal que cos ((acos(y)) = y por y en el rango [-1, 1].
math.acos(angle)
Las devolucionesEl arco coseno de un valor; el ángulo devuelto está en el rango [0, Pi], o na si y está fuera del rango [-1, 1].
Devuelve un valor pseudo-aleatorio. La función generará una secuencia diferente de valores para cada ejecución de script. Usar el mismo valor para el argumento seed opcional producirá una secuencia repetible.
math.random(min, max, seed)
Las devolucionesUn valor aleatorio.
Argumentos
min
(series int/float) El límite inferior del rango de valores aleatorios. El valor no está incluido en el rango. El valor predeterminado es 0.max
(series int/float) El límite superior del rango de valores aleatorios. El valor no está incluido en el rango. El valor predeterminado es 1.seed
(input int) Argumento opcional. Cuando se utiliza la misma semilla, permite que las llamadas sucesivas a la función produzcan un conjunto de valores repetibles.La función asin devuelve el arcsino (en radianos) de un número tal que sin ((asin(y)) = y por y en el rango [-1, 1].
math.asin(angle)
Las devolucionesEl arcino de un valor; el ángulo devuelto está en el rango [-Pi/2, Pi/2], o na si y está fuera del rango [-1, 1].
La función atan devuelve la arctangente (en radianos) de un número tal que tan ((atan ((y)) = y para cualquier y.
math.atan(angle)
Las devolucionesLa tangente de arco de un valor; el ángulo devuelto está en el rango [-Pi/2, Pi/2].
La función de techo devuelve el número entero más pequeño (más cercano al infinito negativo) que es mayor o igual al argumento.
math.ceil(number)
Las devolucionesEl número entero más pequeño menor o igual al número dado.
Véase también
math.floor
math.round
La función cos devuelve el coseno trigonométrico de un ángulo.
math.cos(angle)
Las devolucionesEl coseno trigonométrico de un ángulo.
Argumentos
angle
(serie int/float) Ángulo, en radianos.La función exp denumber
¿Es elevado al poder denumber
, donde e es el número de Euler.
math.exp(number)
Las devolucionesUn valor que representa e elevado a la potencia denumber
.
Véase también
math.pow
math.floor(number)
Las devolucionesEl mayor número entero menor o igual al número dado.
Véase también
math.ceil
math.round
Logaritmo natural de cualquiernumber
> 0 es el único y tal que e ^ y =number
.
math.log(number)
Las devolucionesEl logaritmo natural denumber
.
Véase también
math.log10
El logaritmo común (o base 10) denumber
es la potencia a la que 10 debe ser elevado para obtener elnumber
. 10 ^ y =number
.
math.log10(number)
Las devolucionesEl logaritmo de base 10 denumber
.
Véase también
math.log
Función de potencia matemática.
math.pow(base, exponent)
Ejemplo
// math.pow
plot(math.pow(close, 2))
Las devoluciones
base
elevados al poder deexponent
- Si es así.base
es una serie, se calcula por elementos.
Argumentos
base
(serie int/float) Especificar la base a utilizar.exponent
(serie int/float) Especifica el exponente.Véase también
math.sqrt
math.exp
El signo (signum) de
math.sign(number)
Las devolucionesLa señal de la discusión.
La función sin devuelve el seno trigonométrico de un ángulo.
math.sin(angle)
Las devolucionesEl seno trigonométrico de un ángulo.
Argumentos
angle
(serie int/float) Ángulo, en radianos.Raíz cuadrada de cualquiernumber
>= 0 es el único y >= 0 tal que y ^ 2 =number
.
math.sqrt(number)
Las devolucionesLa raíz cuadradanumber
.
Véase también
math.pow
La función tan devuelve la tangente trigonométrica de un ángulo.
math.tan(angle)
Las devolucionesLa tangente trigonométrica de un ángulo.
Argumentos
angle
(serie int/float) Ángulo, en radianos.Devuelve el valor denumber
se redondea al número entero más cercano, con lazos redondeados hacia arriba.precision
Si se utiliza un parámetro, devuelve un valor flotante redondeado a esa cantidad de decimales.
math.round(number)
math.round(number, precision)
Las devolucionesEl valor denumber
redondeado al número entero más cercano, o según la precisión.
Argumentos
number
(serie int/float) El valor a redondear.precision
(serie int) Argumento opcional.number
Cuando no se proporciona ningún argumento, el redondeo es al número entero más cercano.Las observacionesTenga en cuenta que para los valores
Véase también
math.ceil
math.floor
Devuelve el mayor de los valores múltiples.
math.max(number0, number1, ...)
Ejemplo
// math.max
plot(math.max(close, open))
plot(math.max(close, math.max(open, 42)))
Las devolucionesEl mayor de múltiples valores dados.
Véase también
math.min
Devuelve el más pequeño de los valores múltiples.
math.min(number0, number1, ...)
Ejemplo
// math.min
plot(math.min(close, open))
plot(math.min(close, math.min(open, 42)))
Las devolucionesEl más pequeño de múltiples valores dados.
Véase también
math.max
Calcula la media de todas las series dadas (por elementos).
math.avg(number0, number1, ...)
Las devoluciones Average.
Véase también
math.sum
ta.cum
ta.sma
Devuelve el valor redondeado al mintick del símbolo
math.round_to_mintick(number)
Las devolucionesElnumber
redondeado a precisión de marca.
Argumentos
number
(serie int/float) El valor a redondear.Véase también
math.ceil
math.floor
La función suma devuelve la suma móvil de los últimos valores y de x.
math.sum(source, length)
Las devolucionesEs decir,source
paralength
Las rejas atrás.
Argumentos
source
(serie int/float) Serie de valores a procesar.length
(serie int) Número de barras (longitud).Véase también
ta.cum
for
Devuelve un ángulo aproximadamente equivalente en grados desde un ángulo medido en radianos.
math.todegrees(radians)
Las devolucionesEl valor del ángulo en grados.
Argumentos
radians
(serie int/float) Ángulo en radianos.Devuelve un ángulo aproximadamente equivalente en radianos desde un ángulo medido en grados.
math.toradians(degrees)
Las devolucionesEl valor del ángulo en radianos.
Argumentos
degrees
(serie int/float) Ángulo en grados.Para una serie dada, sustituye los valores de NaN por el valor anterior no NaN más cercano.
fixnan(source)
Las devolucionesSerie sin huecos.
Argumentos
source
(serie int/float/bool/color)Véase también
na
nz
Reemplaza los valores NaN con ceros (o valor dado) en una serie.
nz(source, replacement)
nz(source)
Ejemplo
// nz
plot(nz(ta.sma(close, 100)))
Las devolucionesEl valor desource
si no es asína
. Si el valor desource
esna
, devuelve cero, o elreplacement
argumento cuando se usa uno.
Argumentos
source
(serie int/float/bool/color) Serie de valores a procesar.replacement
(serie int/float/bool/color) Valor que reemplazará todos los valores source
series.Véase también
na
fixnan
Valor de ensayo si es un NaN.
na(x)
Las devolucionesverdadero si x no es un número válido (x es NaN), de lo contrario falso.
Véase también
fixnan
nz
Cambia o trunca el valor de float a int.
int(x)
Las devolucionesEl valor del argumento después de ser lanzado a int.
Véase también
float
bool
color
string
No puede flotar.
float(x)
Las devolucionesEl valor del argumento después de ser lanzado a float.
Véase también
int
bool
color
string
Activa un evento de alerta cuando se llama durante la barra de tiempo real y una alerta basada en eventos de la función de alerta se creó previamente para el indicador o la estrategia a través del cuadro de diálogo
alert(message, freq)
Ejemplo
// 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)
Argumentos
message
Mensaje enviado cuando se activa la alerta.freq
(correa de entrada) La frecuencia de activación. Los valores posibles son: alert.freq_all (todas las llamadas de funciones activan la alerta), alert.freq_once_per_bar (la primera llamada de función durante la barra activa la alerta), alert.freq_once_per_bar_close (la llamada de función activa la alerta solo cuando ocurre durante la última iteración de script de la barra en tiempo real, cuando se cierra). El valor predeterminado es alert.freq_once_per_bar.Las observacionesEl Centro de ayuda explica cómo crear tales alertas.
A diferencia de la condición de alerta, las llamadas de alerta NO se cuentan como una parcela adicional.
Las llamadas de funciones pueden ubicarse tanto en ámbitos globales como locales.
Las llamadas de funciones no muestran nada en la tabla.
El argumento
Véase también
alertcondition
Crea una condición de alerta, que está disponible en el cuadro de diálogo Crear alerta. Tenga en cuenta que la condición de alerta NO crea una alerta, solo le da más opciones en el cuadro de diálogo Crear alerta. Además, el efecto de la condición de alerta es invisible en el gráfico.
alertcondition(condition, title, message)
Ejemplo
// alertcondition
alertcondition(close >= open, title='Alert on Green Bar', message='Green Bar!')
Argumentos
condition
(serie bool) Serie de valores booleanos que se utiliza para la alerta. valores verdaderos significan fuego de alerta, falso - ninguna alerta. argumento requerido.title
(const string) Título de la condición de alerta.message
Mensaje para mostrar cuando se dispara la alerta.Las observacionesTenga en cuenta que en Pine Script v4/v5 una llamada de alerta de condición genera una trama adicional. Todas estas llamadas se tienen en cuenta cuando se calcula el número de series de salida por script.
Véase también
alert
Para ser compatibles con elTrading View
código de estrategia, en realidad no se requiere para ser llamado.
Véase también
strategy
La función de tiempo devuelve la hora UNIX de la barra actual para el marco de tiempo y la sesión especificados o NaN si el punto de tiempo está fuera de sesión.session
arguments.
time(timeframe, session, timezone)
time(timeframe, session)
time(timeframe)
Ejemplo
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"))
Al configurar una sesión, puede especificar no solo las horas y minutos, sino también los días de la semana que se incluirán en esa sesión.
Si no se especifican los días, se considera que la sesión se ha establecido desde el domingo (1) hasta el sábado (7), es decir,
Ejemplo
// Time
t1 = time(timeframe.period, "0000-0000:23456")
bgcolor(t1 ? color.new(color.blue, 90) : na)
Uno.session
El argumento puede incluir varias sesiones diferentes, separadas por comas. Por ejemplo, el siguiente script resaltará las barras de 10:00 a 11:00 y de 14:00 a 15:00 (sólo días laborables):
Ejemplo
// Time
t1 = time(timeframe.period, "1000-1100,1400-1500:23456")
bgcolor(t1 ? color.new(color.blue, 90) : na)
Las devolucionesTiempo UNIX.
Argumentos
timeframe
Una cadena vacía se interpreta como el marco de tiempo actual del gráfico.session
timezone
(simple cadena) Zona horaria de lasession
Se puede especificar en la notación GMT (por ejemplo, Las observacionesEl tiempo UNIX es el número de milisegundos que han transcurrido desde 00:00:00 UTC, 1 de enero de 1970.
year(time)
year(time, timezone)
Las devolucionesAño (en zona horaria de intercambio) para el tiempo UNIX proporcionado.
Argumentos
time
(serie int) tiempo UNIX en milisegundos.timezone
Un argumento opcional, zona horaria.Las enmiendasEl tiempo UNIX es el número de milisegundos que han transcurrido desde 00:00:00 UTC, 1 de enero de 1970. Tenga en cuenta que esta función devuelve el año basado en la hora en que las barras están abiertas. Para las sesiones de una noche (por ejemplo, EURUSD, donde la sesión del lunes comienza el domingo, 17:00 UTC-4) este valor puede ser inferior a 1 que el año del día de negociación.
Véase también
year
time
month
dayofmonth
dayofweek
hour
minute
second
month(time)
month(time, timezone)
Las devolucionesMes (en zona horaria de intercambio) para el tiempo UNIX proporcionado.
Argumentos
time
(serie int) tiempo UNIX en milisegundos.timezone
Un argumento opcional, zona horaria.Las observacionesEl tiempo UNIX es el número de milisegundos que han transcurrido desde 00:00:00 UTC, 1 de enero de 1970. Tenga en cuenta que esta función devuelve el mes en función de la hora en que las barras están abiertas. Para las sesiones nocturnas (por ejemplo, EURUSD, donde la sesión del lunes comienza el domingo, 17:00 UTC-4) este valor puede ser inferior a 1 que el mes del día de negociación.
Véase también
month
time
year
dayofmonth
dayofweek
hour
minute
second
hour(time)
hour(time, timezone)
Las devolucionesHora (en zona horaria de intercambio) para el tiempo UNIX proporcionado.
Argumentos
time
(serie int) tiempo UNIX en milisegundos.timezone
Un parámetro opcional, zona horaria.Las observacionesEl tiempo UNIX es el número de milisegundos que han transcurrido desde 00:00:00 UTC, 1 de enero de 1970.
Véase también
hour
time
year
month
dayofmonth
dayofweek
minute
second
minute(time)
minute(time, timezone)
Las devolucionesMinuto (en zona horaria de intercambio) para el tiempo UNIX proporcionado.
Argumentos
time
(serie int) tiempo UNIX en milisegundos.timezone
Un argumento opcional, zona horaria.Las observacionesEl tiempo UNIX es el número de milisegundos que han transcurrido desde 00:00:00 UTC, 1 de enero de 1970.
Véase también
minute
time
year
month
dayofmonth
dayofweek
hour
second
second(time)
second(time, timezone)
Las devolucionesSegundo (en zona horaria de intercambio) para el tiempo UNIX proporcionado.
Argumentos
time
(serie int) tiempo UNIX en milisegundos.timezone
Un parámetro opcional, zona horaria.Las observacionesEl tiempo UNIX es el número de milisegundos que han transcurrido desde 00:00:00 UTC, 1 de enero de 1970.
Véase también
second
time
year
month
dayofmonth
dayofweek
hour
minute
weekofyear(time)
weekofyear(time, timezone)
Las devolucionesSemana del año (en zona horaria de intercambio) para el tiempo UNIX proporcionado.
Argumentos
time
(serie int) tiempo UNIX en milisegundos.timezone
Un parámetro opcional, zona horaria.Las observacionesEl tiempo UNIX es el número de milisegundos que han transcurrido desde 00:00:00 UTC, 1 de enero de 1970. Tenga en cuenta que esta función devuelve la semana en función de la hora en que las barras están abiertas. Para las sesiones nocturnas (por ejemplo, EURUSD, donde la sesión del lunes comienza el domingo, 17:00) este valor puede ser menor de 1 que la semana del día de negociación.
Véase también
weekofyear
time
year
month
dayofmonth
dayofweek
hour
minute
second
dayofweek(time)
dayofweek(time, timezone)
Las devolucionesDía de la semana (en zona horaria de intercambio) para el tiempo UNIX proporcionado.
Argumentos
time
(serie int) tiempo UNIX en milisegundos.timezone
Un parámetro opcional, zona horaria.Las observacionesTenga en cuenta que esta función devuelve el día en función de la hora en que las barras están abiertas. Para las sesiones nocturnas (por ejemplo, EURUSD, donde la sesión del lunes comienza el domingo, 17:00) este valor puede ser menor de 1 que el día del día de negociación. El tiempo UNIX es el número de milisegundos que han transcurrido desde 00:00:00 UTC, 1 de enero de 1970.
Véase también
time
dayofmonth
dayofmonth(time)
dayofmonth(time, timezone)
Las devolucionesDía del mes (en zona horaria de intercambio) para el tiempo UNIX proporcionado.
Argumentos
time
(serie int) tiempo unix en milisegundos.timezone
Un parámetro opcional, zona horaria.Las observacionesEl tiempo UNIX es el número de milisegundos que han transcurrido desde 00:00:00 UTC, 1 de enero de 1970. Tenga en cuenta que esta función devuelve el día basado en la hora en que las barras están abiertas. Para las sesiones nocturnas (por ejemplo, EURUSD, donde la sesión del lunes comienza el domingo, 17:00 UTC-4) este valor puede ser inferior a 1 que el día del día de negociación.
Véase también
time
dayofweek
La función timestamp devuelve el tiempo UNIX de la fecha y hora especificadas.
timestamp(dateString)
timestamp(year, month, day, hour, minute, second)
timestamp(timezone, year, month, day, hour, minute, second)
Ejemplo
// 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"))
El mendigo¿Por qué las estrategias de la Plaza de Replicación de la estrategia de Pine no pueden ser reales?
Los inventores cuantifican - sueños pequeñosBien, vamos a ver qué pasa.
El mendigoEl rastreador de tendencias optimizado de Zhang
Los inventores cuantifican - sueños pequeñosHola, ¿cuál es la estrategia en concreto?