En la carga de los recursos... Cargando...

FMZ PINE Doc de guión

El autor:Los inventores cuantifican - sueños pequeños, Creado: 2022-04-28 16:05:05, Actualizado: 2024-10-12 17:25:27

El valor de t es NaN.

  • 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_offset: X ticks inferior al nivel de activación para salir de una posición larga; X ticks superior al nivel de activación para salir de una posición corta. El valor predeterminado es NaN.
  • 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: X ticks inferior al nivel de activación para salir de posición larga; X ticks superior al nivel de activación para salir de posición corta. El valor predeterminado es NaN.
  • 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 trail_price o trail_points para salir de la posición larga; X ticks superior a trail_price o trail_points para salir de la posición corta. El valor predeterminado es NaN.
  • oca_name(serie de cadenas) Un argumento opcional. Nombre del grupo OCA (oca_type = strategy.oca.reduce) al que pertenecen el objetivo de ganancia, el stop loss / las órdenes de stop de seguimiento. Si no se especifica el nombre, se generará automáticamente.Tenga en cuenta que FMZ no apoya este argumento.
  • commentUn 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 true. Si la condición es false, no sucede nada (el orden colocado previamente con el mismo ID no se cancela).
  • alert_message(cuadro de series) Un argumento opcional cuando se utiliza el marcador de posición {{strategy.order.alert_message}} en el campo Mensaje del diálogo Crear Alerta.

strategy.cancel

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 true, entonces el pedido con un ID especificado será cancelado. El valor predeterminado es true.

Estrategia.cancelar todo

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

strategy.order

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 limit y stop son NaN, el tipo de pedido es el pedido de mercado.

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: estrategia.long es para comprar, estrategia.short es para vender.
  • qty(series int/float) Parámetro opcional. Número de contratos/acciones/lotes/unidades a negociar. El valor predeterminado es NaN.
  • limit(series int/float) Un parámetro opcional. Precio límite de la orden. Si se especifica, el tipo de orden es limit, o stop-limit. NaN debe especificarse para cualquier otro tipo de orden.
  • stop(series int/float) Un parámetro opcional. Precio de parada de la orden. Si se especifica, el tipo de orden es stop, o stop-limit. NaN debe especificarse para cualquier otro tipo de orden.
  • oca_name(serie de cadenas) Un parámetro opcional. Nombre del grupo OCA al que pertenece el orden. Si el orden no debe pertenecer a ningún grupo OCA en particular, debe haber una cadena vacía.Tenga en cuenta que FMZ no apoya este argumento.
  • oca_type(correa de entrada) Un parámetro opcional. Tipo del grupo OCA. Los valores permitidos son: strategy.oca.none - la orden no debe pertenecer a ningún grupo OCA en particular; strategy.oca.cancel - la orden debe pertenecer a un grupo OCA, donde tan pronto como se cumpla una orden, todas las demás órdenes del mismo grupo son canceladas; strategy.oca.reduce - la orden debe pertenecer a un grupo OCA, donde si se cumple X número de contratos de una orden, el número de contratos para cada otra orden del mismo grupo OCA se disminuye en X.Tenga en cuenta que FMZ no apoya este argumento.
  • commentUn 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 true. Si la condición es false, no sucede nada (el orden colocado previamente con el mismo ID no se cancela). El valor predeterminado es true.
  • 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 Crear Alerta Mensaje.

El número de puntos de referencia es el número de puntos de referencia.

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

La estrategia.abertura de operaciones.entrada.

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

Estrategia.ventas abiertas.precio de entrada

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

Estrategia.apertura de operaciones.tiempo de entrada

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

strategy.opentrades.profit

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

strategy.opentrades.size

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

Se trata de las operaciones que se ejecutan en el marco de la estrategia.transacciones cerradas.

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

El valor de las transacciones se calculará en función de las condiciones de mercado.

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

El valor de las operaciones de mercado se calcula a partir de las cifras de las operaciones de mercado.

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

En el caso de las operaciones de negociación, el valor de las operaciones de negociación será el valor de las operaciones de negociación.

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

El precio de entrada es el precio de entrada de la transacción.

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

Se trata de las operaciones de tipo de interés.

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

strategy.closedtrades.profit

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

strategy.closedtrades.size

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

El valor de las transacciones se calcula a partir de la fecha en que se realizan las operaciones.

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

Estrategia.riesgo.permitir la entrada

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

  • valueLa dirección permitida. Valores posibles:strategy.direction.all, strategy.direction.long, strategy.direction.short

Se trata de los valores de los activos de la entidad en el mercado de valores.

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. Si la cantidad mínima posible sigue violando la regla, la orden no se realizará.

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.

las matemáticas

math.abs

Valor absoluto denumberesnumbersi esnumber>= 0, o bien -number otherwise.

math.abs(number) 

Las devolucionesEl valor absoluto denumber.

math.acos

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

math.random

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.

math.asin

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

math.atan

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

math.ceil

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

math.cos

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.

math.exp

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

math.floor(number) 

Las devolucionesEl mayor número entero menor o igual al número dado.

Véase también math.ceil math.round

math.log

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

math.log10

El logaritmo común (o base 10) denumberes 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

math.pow

Función de potencia matemática.

math.pow(base, exponent)

Ejemplo

// math.pow
plot(math.pow(close, 2))

Las devoluciones baseelevados al poder deexponent- Si es así.basees 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

math.sign

El signo (signum) de número es cero si número es cero, 1.0 si número es mayor que cero, -1.0 si número es menor que cero.

math.sign(number)

Las devolucionesLa señal de la discusión.

math.sin

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.

math.sqrt

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

math.tan

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.

math.round

Devuelve el valor denumberse redondea al número entero más cercano, con lazos redondeados hacia arriba.precisionSi 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 denumberredondeado 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.numberCuando no se proporciona ningún argumento, el redondeo es al número entero más cercano.

Las observacionesTenga en cuenta que para los valores na la función devuelve na.

Véase también math.ceil math.floor

math.max

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

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

math.avg

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

math.round_to_mintick (en inglés)

Devuelve el valor redondeado al mintick del símbolo, es decir, el valor más cercano que se puede dividir por syminfo.mintick, sin el resto, con lazos redondeados hacia arriba.

math.round_to_mintick(number) 

Las devolucionesElnumberredondeado a precisión de marca.

Argumentos

  • number(serie int/float) El valor a redondear.

Véase también math.ceil math.floor

math.sum

La función suma devuelve la suma móvil de los últimos valores y de x.

math.sum(source, length)

Las devolucionesEs decir,sourceparalengthLas 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

math.todegrees

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.

math.toradians

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.

otros

- ¿ Qué?

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

n y z

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 desourcesi no es asína. Si el valor desourceesna, devuelve cero, o elreplacementargumento 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 na en elsource series.

Véase también na fixnan

No

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

Int

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

flotación

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

alerta

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 Crear alerta.

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

  • messageMensaje 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 freq solo afecta la frecuencia de activación de la llamada de función cuando se utiliza.

Véase también alertcondition

estado de alerta

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.
  • messageMensaje 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

Indicador

Para ser compatibles con elTrading Viewcódigo de estrategia, en realidad no se requiere para ser llamado.

Véase también strategy

tiempo

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, 1100-2000 es el mismo que 1100-1200:1234567. Por ejemplo, en un símbolo que se negocia siete días a la semana con la sesión de negociación de 24 horas, el siguiente script no coloreará los sábados y domingos:

Ejemplo

// Time
t1 = time(timeframe.period, "0000-0000:23456")
bgcolor(t1 ? color.new(color.blue, 90) : na)

Uno.sessionEl 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

  • timeframeUna cadena vacía se interpreta como el marco de tiempo actual del gráfico.
  • session(simple string) Especificación de sesión. Argumento opcional, la sesión del símbolo se usa por defecto. Una cadena vacía se interpreta como la sesión del símbolo. FMZ no admite esto.
  • timezone(simple cadena) Zona horaria de lasessionSe puede especificar en la notación GMT (por ejemplo, GMT-5) o como un nombre de base de datos de zona horaria IANA (por ejemplo, America/New_York).

Las observacionesEl tiempo UNIX es el número de milisegundos que han transcurrido desde 00:00:00 UTC, 1 de enero de 1970.

año

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.
  • timezoneUn 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

el mes

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.
  • timezoneUn 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

hora

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.
  • timezoneUn 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

el minuto

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.
  • timezoneUn 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

segundo

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.
  • timezoneUn 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

semana por año

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.
  • timezoneUn 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

día a semana

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.
  • timezoneUn 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

día del mes

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.
  • timezoneUn 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

el tiempo

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

Más.

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?