El valor de retornoEl número medio de los elementos de la matriz.
Parámetros
id
(int[]/float[]) Objeto de la matriz.Hasta luego.
array.avg
array.variance
array.min
Esta función devuelve el patrón de los elementos de la matriz. Si hay varios valores con la misma frecuencia, devuelve el valor mínimo.
array.mode(id)
Ejemplos
// array.mode example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.mode(a))
El valor de retornoEl patrón de los elementos de la matriz.
Parámetros
id
(int[]/float[]) Objeto de la matriz.Hasta luego.
array.new_float
array.avg
array.variance
array.min
Devuelve el porcentaje especificado del valor de la matriz que es menor o igual a su valor, usando un inserto lineal.
array.percentile_linear_interpolation(id, percentage)
Parámetros
id
(int[]/float[]) Objeto de la matriz.percentage
(series int/float) debe ser igual o menor que el porcentaje del valor de la serie.Nota: el nombre de la ciudad esEn estadística, el porcentaje es el porcentaje de artículos de la clasificación que aparecen en una puntuación determinada o por debajo de una puntuación determinada. Esta medida muestra el porcentaje de puntos en la distribución de frecuencia estándar que está por debajo de la puntuación de porcentaje que está midiendo.
Hasta luego.
array.new_float
array.insert
array.slice
array.reverse
order.ascending
order.descending
Utiliza el método de ordenamiento más reciente para devolver el valor de la matriz del porcentaje especificado (el porcentaje) menor o igual a su valor.
array.percentile_nearest_rank(id, percentage)
Parámetros
id
(int[]/float[]) Objeto de la matriz.percentage
(series int/float) debe ser igual o menor que el porcentaje del valor de la serie.Nota: el nombre de la ciudad esEn estadística, el porcentaje es el porcentaje de artículos de clasificación que aparecen en una puntuación determinada o por debajo de una puntuación determinada. Esta medida muestra el porcentaje de fracciones en la distribución de frecuencia estándar que está por debajo de la puntuación que está midiendo.
Hasta luego.
array.new_float
array.insert
array.slice
array.reverse
order.ascending
order.descending
Devuelve el rango porcentual del valor medio de la matriz.
array.percentrank(id, index)
Parámetros
id
(int[]/float[]) Objeto de la matriz.index
(series int) calcula el valor de su rango porcentual.Nota: el nombre de la ciudad esLa clasificación porcental es el porcentaje del número de elementos en el conjunto que es menor o igual al valor de referencia.
Hasta luego.
array.new_float
array.insert
array.slice
array.reverse
order.ascending
order.descending
Esta función devuelve la diferencia entre el valor mínimo y el valor máximo de la matriz dada.
array.range(id)
Ejemplos
// array.range example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.range(a))
El valor de retornoLa diferencia entre el valor mínimo y el valor máximo de un conjunto.
Parámetros
id
(int[]/float[]) Objeto de la matriz.Hasta luego.
array.new_float
array.min
array.max
array.sum
Esta función cambia el contenido de la matriz eliminando elementos con índices especificados.
array.remove(id, index)
Ejemplos
// array.remove example
a = array.new_float(5,high)
removedEl = array.remove(a, 0)
plot(array.size(a))
plot(removedEl)
El valor de retornoEl valor del elemento eliminado.
Parámetros
id
(any array type) Objeto de la matriz.index
(series int) el índice del elemento que se quiere eliminar.Hasta luego.
array.new_float
array.set
array.push
array.insert
array.pop
array.shift
Esta función invierte la matriz. El primer elemento de la matriz se convierte en el último, y el último elemento de la matriz se convierte en el primero.
array.reverse(id)
Ejemplos
// array.reverse example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.get(a, 0))
array.reverse(a)
plot(array.get(a, 0))
Parámetros
id
(any array type) Objeto de la matriz.Hasta luego.
array.new_float
array.sort
array.push
array.set
array.avg
La función utiliza un parámetro de un número de variables de uno de los siguientes tipos: int, float, boolean, string, line, color, linefill, y devuelve una matriz del tipo correspondiente.
array.from(arg0, arg1, ...)
Ejemplos
// array.from_example
arr = array.from("Hello", "World!") // arr (string[]) will contain 2 elements: {Hello}, {World!}.
plot(close)
El valor de retornoEl valor de los elementos de la matriz.
Parámetros
arg0, arg1, ...
(series int/float/bool/color/string/line/linefill) Parámetros de conjuntoLa función crea un nuevo<type>
Objeto de la matriz de elementos.
array.new(size, initial_value)
Ejemplos
// array.new<string> example
a = array.new<string>(1, "Hello, World!")
runtime.log(array.get(a, 0))
Ejemplos
// array.new<color> example
a = array.new<color>()
array.push(a, color.red)
array.push(a, color.green)
plot(close, color = array.get(a, close > open ? 1 : 0))
Ejemplos
// array.new<float> example
length = 5
var a = array.new<float>(length, close)
if array.size(a) == length
array.remove(a, 0)
array.push(a, close)
plot(array.sum(a) / length, "SMA")
Ejemplos
// array.new<line> example
// draw last 15 lines
var a = array.new<line>()
array.push(a, line.new(bar_index - 1, close[1], bar_index, close))
if array.size(a) > 15
ln = array.shift(a)
line.delete(ln)
El valor de retornoFunción de ID de objetos de la matriz que se puede usar junto con otras matrices.
Parámetros
size
El tamaño inicial de la serie (series int) es 0. Opcional.initial_value
(series Nota: el nombre de la ciudad esEl índice de la matriz comienza en 0. Si se quiere iniciar una matriz y especificar todos sus elementos al mismo tiempo, se puede usar la función array.from.
Hasta luego.
array.from
array.push
array.get
array.size
array.remove
array.shift
array.sum
Esta función crea un nuevo objeto de la matriz compuesto por elementos del tipo boolean.
array.new_bool(size, initial_value)
Ejemplos
// array.new_bool example
length = 5
a = array.new_bool(length, close > open)
plot(array.get(a, 0) ? close : open)
El valor de retornoFunción de ID de objetos de la matriz que se puede usar junto con otras matrices.
Parámetros
size
El tamaño inicial de la serie (series int) es 0. Opcional.initial_value
(series bool) El valor inicial de todos los elementos de la serie↑ opcional↑ el valor predeterminado es Nota: el nombre de la ciudad esEl índice de la matriz comienza en 0.
Hasta luego.
array.new_float
array.get
array.slice
array.sort
Esta función crea un nuevo objeto de la matriz de elementos flotantes.
array.new_float(size, initial_value)
Ejemplos
// array.new_float example
length = 5
a = array.new_float(length, close)
plot(array.sum(a) / length)
El valor de retornoFunción de ID de objetos de la matriz que se puede usar junto con otras matrices.
Parámetros
size
El tamaño inicial de la serie (series int) es 0. Opcional.initial_value
(series int/float) El valor inicial de todos los elementos de la serie. Opcional.Nota: el nombre de la ciudad esEl índice de la matriz comienza en 0.
Hasta luego.
array.new_bool
array.get
array.slice
array.sort
Esta función crea un nuevo objeto de la matriz compuesto por elementos del tipo int.
array.new_int(size, initial_value)
Ejemplos
// array.new_int example
length = 5
a = array.new_int(length, int(close))
plot(array.sum(a) / length)
El valor de retornoFunción de ID de objetos de la matriz que se puede usar junto con otras matrices.
Parámetros
size
El tamaño inicial de la serie (series int) es 0. Opcional.initial_value
(series int) El valor inicial de todos los elementos de la serie↑ opcional↑ el valor predeterminado es Nota: el nombre de la ciudad esEl índice de la matriz comienza en 0.
Hasta luego.
array.new_float
array.get
array.slice
array.sort
Esta función crea nuevos objetos de la matriz con un elemento de tipo de cadena.
array.new_string(size, initial_value)
Ejemplos
// array.new_string example
length = 5
a = array.new_string(length, "text")
runtime.log(array.get(a, 0))
El valor de retornoFunción de ID de objetos de la matriz que se puede usar junto con otras matrices.
Parámetros
size
El tamaño inicial de la serie (series int) es 0. Opcional.initial_value
(series string) El valor inicial de todos los elementos de la serie↑ Opcional↑ El valor predeterminado es Nota: el nombre de la ciudad esEl índice de la matriz comienza en 0.
Hasta luego.
array.new_float
array.get
array.slice
Esta función devuelve el valor del elemento indicado en el índice.
array.get(id, index)
Ejemplos
// array.get example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i] - open[i])
plot(array.get(a, 9))
El valor de retornoEl valor de los elementos de la matriz.
Parámetros
id
(any array type) Objeto de la matriz.index
(series int) es el índice del elemento que se quiere devolver su valor.Hasta luego.
array.new_float
array.set
array.slice
array.sort
Esta función añade un valor a la matriz.
array.push(id, value)
Ejemplos
// array.push example
a = array.new_float(5, 0)
array.push(a, open)
plot(array.get(a, 5))
Parámetros
id
(any array type) Objeto de la matriz.value
(series <type of the array's elements>
) se añade al valor del elemento al final de la matriz.Hasta luego.
array.new_float
array.set
array.insert
array.remove
array.pop
array.unshift
La función establece el valor del elemento como el índice indicado.
array.set(id, index, value)
Ejemplos
// array.set example
a = array.new_float(10)
for i = 0 to 9
array.set(a, i, close[i])
plot(array.sum(a) / 10)
Parámetros
id
(any array type) Objeto de la matriz.index
(series int) para modificar el índice del elemento.value
(series <type of the array's elements>
) Nuevo valor a establecer.Hasta luego.
array.new_float
array.get
array.slice
Esta función devuelve la suma de los elementos de la matriz.
array.sum(id)
Ejemplos
// array.sum example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.sum(a))
El valor de retornoLa suma de los elementos de la matriz.
Parámetros
id
(int[]/float[]) Objeto de la matriz.Hasta luego.
array.new_float
array.max
array.min
Esta función devuelve el valor medio de los elementos de la matriz.
array.avg(id)
Ejemplos
// array.avg example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.avg(a))
El valor de retornoLos elementos de la matriz tienen valores medios.
Parámetros
id
(int[]/float[]) Objeto de la matriz.Hasta luego.
array.new_float
array.max
array.min
array.stdev
Esta función devuelve el índice en el que el valor apareció por primera vez. Si no se puede encontrar, devuelve −1.
array.indexof(id, value)
Ejemplos
// array.indexof example
a = array.new_float(5,high)
index = array.indexof(a, high)
plot(index)
El valor de retornoEl índice de los elementos.
Parámetros
id
(any array type) Objeto de la matriz.value
(series <type of the array's elements>
) el valor que se busca en la matriz.Hasta luego.
array.lastindexof
array.get
array.lastindexof
array.remove
array.insert
En elstrategy
En las funciones integradas correspondientes, el número de puntos de stop loss, stop loss, stop loss se define como el múltiplo de un salto de precio; por ejemplo,strategy.exit
La funciónprofit
、loss
Parámetros con puntos para detener, detener, parámetrosprofit
Se establece como 10, es decir, un salto de precio multiplicado por 10 como diferencia de precio de suspensión, el salto de precio es la variable incorporadasyminfo.mintick
。
Esta función tiene varias propiedades de política.
No se preocupe, el soporte es exclusivo.title
,shorttitle
,overlay
,pyramiding
,default_qty_type
,default_qty_value
Parámetros, otros parámetros pueden ser configurados a través de los parámetros de la interfaz de la política del lenguaje PINE.
strategy(title, shorttitle, overlay, format, precision, scale, pyramiding, calc_on_order_fills, calc_on_every_tick, max_bars_back, backtest_fill_limits_assumption, default_qty_type, default_qty_value, initial_capital, currency, slippage, commission_type, commission_value, process_orders_on_close, close_entries_rule, margin_long, margin_short, explicit_plot_zorder, max_lines_count, max_labels_count, max_boxes_count, risk_free_rate)
Ejemplos
strategy("Strategy", overlay = true)
// Enter long by market if current open is greater than previous high.
strategy.entry("Long", strategy.long, 1, when = open > high[1])
// Generate a full exit bracket (profit 10 points, loss 5 points per contract) from the entry named "Long".
strategy.exit("Exit", "Long", profit = 10, loss = 5)
Parámetros
title
(const string) El título del indicador que se ve en el complemento de indicadores / estrategias. Los parámetros son necesarios.shorttitle
(const string) Se verá en el ejemplo de gráfico como un indicador de título breve. Los parámetros son opcionales.overlay
(const bool) Si es true, el indicador se añade a la superposición de la serie principal. Si es false - se añade a una ventana de gráfico separada.format
precision
scale
pyramiding
(const int) Máxima cantidad permitida en la misma dirección. Si este valor es 0, solo se puede abrir una entrada en la misma dirección, y cualquier otra entrada será rechazada.calc_on_order_fills
calc_on_every_tick
max_bars_back
backtest_fill_limits_assumption
default_qty_type
(const string) está definido paraqty
El valor de los parámetros es el contenido expresado en la función strategy.entry o strategy.order. Los valores posibles son: strategy.fixed es el número de contratos / acciones / manos, strategy.cash es la cantidad de dinero, o strategy.percent_of_equity es el porcentaje de intereses disponibles.default_qty_value
(const int/float) El número de transacciones por defecto de las funciones strategy.entry o strategy.order, cuya unidad se determina por el parámetro utilizado junto con el parámetro currency
slippage
commission_type
commission_value
process_orders_on_close
close_entries_rule
max_lines_count
max_labels_count
max_boxes_count
margin_long
margin_short
explicit_plot_zorder
initial_capital
risk_free_rate
Nota: el nombre de la ciudad esTodos los guiones de estrategia deben tener una llamada de estrategia. El código de PineScript que utiliza el parámetro calc_on_every_tick = true puede realizar diferentes cálculos para registros históricos y datos en tiempo real. Cuando se utiliza un gráfico de tipo no estándar como base de la estrategia, es necesario saber que los resultados serán diferentes. Los pedidos se ejecutarán en el precio de la tabla (e.g. para Heikin Ashi se utilizará el precio de Heikin Ashi (la media) no el precio real del mercado). Por lo tanto, se recomienda encarecidamente que use el tipo de gráfico estándar en su estrategia.
Hasta luego.
indicator
Esta es la orden de entrada al mercado. Si una orden con el mismo ID ya está colgada, se puede modificar la orden. Si no se especifica una orden con el mismo ID, se emitirá una nueva orden. Para cancelar la instrucción de entrada, se debe usar la instrucción strategy.cancel o strategy.cancel_all. En comparación con la función strategy.order, la función strategy.entry está influenciada por la pirámide y puede invertir correctamente la posición del mercado.
strategy.entry(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)
Ejemplos
strategy(title = "simple strategy entry example")
strategy.entry("enter long", strategy.long, 1, when = open > high[1]) // enter long by market if current open great then previous high
strategy.entry("enter short", strategy.short, 1, when = open < low[1]) // enter short by market if current open less then previous low
Parámetros
id
(series string) Parámetros necesarios. El identificador de la orden. Se puede cancelar o modificar la orden citando su identificación.direction
(strategy_direction) Un parámetro necesario. Dirección de la posición del mercado: estrategia.long para el multi-cabeza, estrategia.short para el vacío.qty
(series int/float) Parámetros opcionales. Contrato/número de acciones/número de manos/número de unidades negociados.limit
(series int/float) Opciones de parámetros. El límite de la orden. Si se especifica, el tipo de orden es "limit" o "stop-limit".stop
(series int/float) Opciones de parámetros. Precio de stop-loss de la orden. Si se especifica, el tipo de orden es "stop" o "stop-limit".oca_name
oca_type
comment
(series string) Opciones de parámetros. Otra descripción de la orden.when
(series bool) Parámetros seleccionables. Status de la orden. Si es "true", la orden se coloca. Si es "false", no sucede nada.alert_message
(series string) Un parámetro opcional cuando se utiliza el símbolo de ubicación de {{strategy.order.alert_message}} en el campo de la barra de mensajes de la barra de alertas de la barra de diálogo de la barra de alertas.Se trata de una orden para una orden de salida con un ID especificado. Si hay varias órdenes de entrada con el mismo ID, todas salen al mismo tiempo. La orden no se ejecutará si no se especifica el ID de una orden abierta cuando se activa.
strategy.close(id, when, comment, qty, qty_percent, alert_message)
Ejemplos
strategy("closeEntry Demo", overlay=false)
strategy.entry("buy", strategy.long, when = open > close)
strategy.close("buy", when = open < close, qty_percent = 50, comment = "close buy entry for 50%")
plot(strategy.position_size)
Parámetros
id
(series string) Parámetros necesarios. El identificador de la orden. Se puede cerrar la orden citando su identificador.when
(series bool) Parámetros seleccionables. Condiciones para el comando.qty
(series int/float) Opciones de parámetros. Contrato/número de acciones/número de manos/número de unidades de salida.qty_percent
(series int/float) define el porcentaje de equilibrio ((0-100)). Su prioridad es inferior a la prioridad de los parámetros de comment
(series string) Opciones de parámetros. Otra descripción de la orden.alert_message
(series string) Un parámetro opcional cuando se utiliza el símbolo de ubicación de {{strategy.order.alert_message}} en el campo de la barra de mensajes de la barra de alertas de la barra de diálogo de la barra de alertas.El gobierno de los Estados Unidos está tratando de mantener la posición de los bancos en el mercado.
strategy.close_all(when, comment, alert_message)
Ejemplos
strategy("closeAll Demo", overlay=false)
strategy.entry("buy", strategy.long, when = open > close)
strategy.close_all(when = open < close, comment = "close all entries")
plot(strategy.position_size)
Parámetros
when
(series bool) Parámetros seleccionables. Condiciones para el comando.comment
(series string) Opciones de parámetros. Otra descripción de la orden.alert_message
(series string) Un parámetro opcional cuando se utiliza el símbolo de ubicación de {{strategy.order.alert_message}} en el campo de la barra de mensajes de la barra de alertas de la barra de diálogo de la barra de alertas.Esta es una orden de salida que especifica una entrada o una posición de mercado completa. Si una orden con el mismo ID ya está colgada, se puede modificar la orden. Si la orden de entrada no se realiza, pero aparece una orden de salida, la orden de salida se suspenderá hasta que la persona posterior a la transacción de la orden de entrada pueda colocar la orden de salida. Para detener la orden de salida, se debe usar la orden estrategia.cancel o estrategia.cancel_all. Si la función estrategia.exit se llama una vez, se retirará una sola vez. Si se desea retirarse varias veces, se retirará una sola vez.应该多次调用命令strategy.exitSi utilizas el stop loss y el track stop loss, cuyo tipo de orden es el stop stop, solo uno de ellos se colocará (se realizará primero). Si todos los siguientes parámetros: stop profit, stop limit, stop loss, stop trail, stop trail_points y stop trail_offset son NaN, la orden fallará. Para usar la salida del mercado, se debe usar la orden strategy.close o strategy.close_all.
strategy.exit(id, from_entry, qty, qty_percent, profit, limit, loss, stop, trail_price, trail_points, trail_offset, oca_name, comment, when, alert_message)
Ejemplos
strategy(title = "simple strategy exit example")
strategy.entry("long", strategy.long, 1, when = open > high[1]) // enter long by market if current open great then previous high
strategy.exit("exit", "long", profit = 10, loss = 5) // generate full exit bracket (profit 10 points, loss 5 points per contract) from entry with name "long"
Parámetros
id
(series string) Parámetros necesarios. El identificador de la orden. Se puede cancelar o modificar la orden citando su identificación.from_entry
(series string) Parámetros seleccionables↑ Para especificar el identificador de entrada de instrucciones, salga↑ Para salir de todas las posiciones, se debe usar una cadena en blanco↑ El valor predeterminado es una cadena en blanco↑qty
(series int/float) Opciones de parámetros. Contrato/número de acciones/número de manos/número de unidades de salida.qty_percent
(series int/float) define el porcentaje de equilibrio ((0-100)). Su prioridad es inferior a la prioridad de los parámetros de profit
(series int/float) Parámetros opcionales. Objetivo de ganancias (indicado con puntos). Si se especifica, cuando se alcanza el punto de ganancia indicado (indicado con puntos), la orden de salida del mercado se realiza con el precio límite. El valor predeterminado es NaN NaN.limit
(series int/float) Parámetros opcionales. Objetivo de ganancia (precio especificado). Si se especifica, salga del mercado a un precio especificado (o mejor). La prioridad del parámetro de la barra de límite es mayor que la prioridad del parámetro de la barra de beneficio (si no es una barra de NaN, la barra de límite reemplaza la barra de beneficio).loss
(series int/float) Parámetros opcionales↑ Stop Loss (indicado con puntos)↑ Si se ha especificado, cuando se alcanza la cantidad de pérdidas especificada (indicado con puntos), se sale de la posición de mercado con un stop loss. El valor predeterminado es NaN NaN.stop
(series int/float) Parámetros opcionales。 Stop Loss (precio necesario)。 Si se especifica, se saldrá de la posición de mercado al precio especificado (o peor). El parámetro tiene mayor prioridad que el parámetro stop loss (precio de salida de la posición). El valor predeterminado es stop loss (precio de salida de la posición).trail_price
(series int/float) Parámetros opcionales: nivel de activación de stop-loss de seguimiento (requiere un precio especificado); si se especifica, se colocará una lista de stop-loss de seguimiento cuando se alcance el nivel de precio especificado; se especifica en el parámetro de la barra de desviación de la barra de stop-loss de seguimiento para determinar el precio inicial de la barra de trayectoria (en forma puntual): X puntos por debajo del nivel de activación para salir de la multitud; X puntos por encima del nivel de activación para salir de la nube; el valor predeterminado es NaN trail_points
(series int/float) Parámetros opcionales: ∞ nivel de activación de stop-loss (indicado por puntos de ganancia) ∞ si se especifica, se colocará la lista de stop-loss cuando se alcance el nivel de precio calculado (indicado por el monto de ganancia) ∞ se especifica en el parámetro de la lista de stop-loss para determinar el precio inicial de la lista de stop-loss (indicado por puntos de ganancia): ∞ punto inferior al nivel de activación para salir de varios puntos; ∞ punto superior al nivel de activación para salir de un espacio; ∞ valor predeterminado para NaN ∞).trail_offset
(series int/float) Parámetros opcionales. Nivel de activación de stop-loss de seguimiento (indicado en puntos). El desvío del medidor de puntos se utiliza para determinar el precio inicial de la orden de stop-loss de seguimiento: X puntos por debajo de la barra de trail_price o barra de trail_points para una salida múltiple; X puntos por encima de la barra de trail_price o barra de trail_points para una salida en blanco.oca_name
comment
(series string) Opciones de parámetros. Otra descripción de la orden.when
(series bool) Parámetros seleccionables. Status de la orden. Si es "true", la orden se coloca. Si es "false", no sucede nada.alert_message
(series string) Un parámetro opcional cuando se utiliza el símbolo de ubicación de {{strategy.order.alert_message}} en el campo de la barra de mensajes de la barra de alertas de la barra de diálogo de la barra de alertas.Esta es una referencia de nombre para cancelar/desactivar todos los comandos de lista de espera, generada por las siguientes funciones: estrategy.order, strategy.entry andstrategy.exit。
strategy.cancel(id, when)
Ejemplos
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
Parámetros
id
(series string) Parámetros que deben seleccionarse: Marca de pedido: Localizar la marca para cancelar un pedido: when
(series bool) Parámetros seleccionables↑ Cancelar una orden según el ID↑ Si es "true", la orden será cancelada↑ El valor predeterminado es "true".这是取消/停用所有预挂单命令,由以下功能生成:strategy.order,strategy.entry和strategy.exit。
strategy.cancel_all(when)
Ejemplos
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
Parámetros
when
(series bool) Opciones de parámetros ⇒ Cancelar todas las órdenes ⇒ Cancelar todas las órdenes activas si la condición es verdad ⇒ Cancelar todas las órdenes activas si la condición es verdad ⇒ Cancelar todas las órdenes activas ⇒ Cancelar todas las órdenes activas si la condición es verdad ⇒ Cancelar todas las órdenes activas ⇒ Cancelar todas las órdenes activas si la condición es verdad ⇒ Cancelar todas las órdenes activas ⇒ Cancelar todas las órdenes activas ⇒ Cancelar todas las órdenes activas ⇒ Cancelar todas las órdenes activas ⇒ Cancelar todas las órdenes activas ⇒ Cancelar todas las órdenes activas ⇒ Cancelar todas las órdenes activas ⇒ Cancelar todas las órdenes activas ⇒ Cancelar todas las órdenes activas ⇒ Cancelar todas las órdenes activas ⇒ Cancelar todas las órdenes activas ⇒ Cancelar todas las órdenes activas ⇒ Cancelar todas las órdenes activadas ⇒ Cancelar todas las órdenes activadas ⇒Este es el comando de la siguiente orden. Si una orden con el mismo ID ya está colgada, se puede modificar la orden. Si no se especifica el ID, se emitirá una nueva orden. Para detener la orden, se debe usar el comando estrategy.cancel o estrategy.cancel_all. En comparación con la función strategy.entry, la función strategy.order no está afectada por la forma de la pirámide.
strategy.order(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)
Ejemplos
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
Parámetros
id
(series string) Parámetros necesarios. El identificador de la orden. Se puede cancelar o modificar la orden citando su identificación.direction
(strategy_direction) Un parámetro necesario. Dirección de la orden: estrategia.long para comprar, estrategia.short para vender.qty
(series int/float) Parámetros opcionales. Contrato/número de acciones/número de manos/número de unidades negociados.limit
(series int/float) Opciones de parámetros. El límite de la orden. Si se especifica, el tipo de orden es "limit" o "stop-limit".stop
(series int/float) Opciones de parámetros. Precio de stop-loss de la orden. Si se especifica, el tipo de orden es "stop" o "stop-limit".oca_name
oca_type
comment
(series string) Opciones de parámetros. Otra descripción de la orden.when
(series bool) Parámetros seleccionables. Status de la orden. Si es "true", la orden se coloca. Si es "false", no sucede nada.alert_message
(series string) Un parámetro opcional cuando se utiliza el símbolo de ubicación de {{strategy.order.alert_message}} en el campo de la barra de mensajes de la barra de alertas de la barra de diálogo de la barra de alertas.Devuelve el bar_index de la entrada de operaciones sin liquidación.
strategy.opentrades.entry_bar_index(trade_num)
Esperar 10 líneas K y alinear
Ejemplos
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")
Parámetros
trade_num
(series int) Número de transacción de transacción no liquidada. El número de la primera transacción es 0.Hasta luego.
strategy.closedtrades.entry_bar_index
strategy.closedtrades.exit_bar_index
Devuelve el ID de entrada de las transacciones no liquidadas.
strategy.opentrades.entry_id(trade_num)
Ejemplos
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))
El valor de retornoDevuelve el ID de entrada de las transacciones no liquidadas.
Parámetros
trade_num
(series int) Número de transacción de transacción no liquidada. El número de la primera transacción es 0.Nota: el nombre de la ciudad esSi el trade_num no está dentro del rango, la función devuelve na:0 a strategy.opentrades−1.
Hasta luego.
strategy.opentrades.entry_bar_index
strategy.opentrades.entry_time
El precio de entrada de las transacciones no liquidadas.
strategy.opentrades.entry_price(trade_num)
Ejemplos
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")
Calcula el precio medio sin equilibrio
Ejemplos
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())
Parámetros
trade_num
(series int) Número de transacción de transacción no liquidada. El número de la primera transacción es 0.Hasta luego.
strategy.closedtrades.exit_price
Devuelve el tiempo de entrada de operaciones sin liquidación en UNIX.
strategy.opentrades.entry_time(trade_num)
Ejemplos
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")
Parámetros
trade_num
(series int) Número de transacción de transacción no liquidada. El número de la primera transacción es 0.Hasta luego.
strategy.closedtrades.entry_time
strategy.closedtrades.exit_time
Retorno de ganancias y pérdidas de transacciones no liquidadas. Las pérdidas se indican como negativas.
strategy.opentrades.profit(trade_num)
Volver a los beneficios de la última operación abierta
Ejemplos
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")
Calcula las ganancias de todas las transacciones no liquidadas
Ejemplos
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")
Parámetros
trade_num
(series int) Número de transacción de transacción no liquidada. El número de la primera transacción es 0.Hasta luego.
strategy.closedtrades.profit
strategy.openprofit
strategy.netprofit
strategy.grossprofit
Devuelve la dirección de negociación y el número de contratos en una operación sin liquidación. Si el valor es > 0, la posición de mercado es de múltiples cabezas. Si el valor es < 0, la posición de mercado es de cabezas vacías.
strategy.opentrades.size(trade_num)
Ejemplos
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")
Calcula el porcentaje de ganancias promedio de transacciones sin liquidar
Ejemplos
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)
Parámetros
trade_num
(series int) Número de transacción de transacción no liquidada. El número de la primera transacción es 0.Hasta luego.
strategy.closedtrades.size
strategy.position_size
strategy.opentrades
strategy.closedtrades
Devuelve el bar_index de la transacción que ya está en liquidación.
strategy.closedtrades.entry_bar_index(trade_num)
Ejemplos
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())
Parámetros
trade_num
(series int) el número de transacción que ha sido liquidado. El número de la primera transacción es cero.Hasta luego.
strategy.closedtrades.exit_bar_index
strategy.opentrades.entry_bar_index
El precio de salida de la transacción que ha sido liquidada regresa.
strategy.closedtrades.exit_price(trade_num)
Ejemplos
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")
Calcula el porcentaje de ganancias promedio de todas las transacciones liquidadas
Ejemplos
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)
Parámetros
trade_num
(series int) el número de transacción que ha sido liquidado. El número de la primera transacción es cero.Hasta luego.
strategy.closedtrades.entry_price
Devuelve el bar_index que ha sido retirado de la negociación de liquidación.
strategy.closedtrades.exit_bar_index(trade_num)
Ejemplos
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")
Se calcula el número medio de K líneas por transacción.
Ejemplos
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())
Parámetros
trade_num
(series int) el número de transacción que ha sido liquidado. El número de la primera transacción es cero.Hasta luego.
bar_index
Devuelve el id de la entrada de la transacción que ha sido liquidada.
strategy.closedtrades.entry_id(trade_num)
Ejemplos
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))
El valor de retornoDevuelve el id de la entrada de la transacción que ha sido liquidada.
Parámetros
trade_num
(series int) el número de transacción que ha sido liquidado. El número de la primera transacción es cero.Nota: el nombre de la ciudad esSi el trade_num no está dentro del rango, la función devuelve na:0 a strategy.closedtrades−1.
Hasta luego.
strategy.closedtrades.entry_bar_index
strategy.closedtrades.entry_time
El precio de entrada de las transacciones que ya han sido liquidadas regresa.
strategy.closedtrades.entry_price(trade_num)
Ejemplos
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")
Calcula el porcentaje de ganancias promedio de todas las transacciones liquidadas
Ejemplos
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)
Parámetros
trade_num
(series int) el número de transacción que ha sido liquidado. El número de la primera transacción es cero.Hasta luego.
strategy.closedtrades.exit_price
strategy.closedtrades.size
strategy.closedtrades
Volver al tiempo de entrada en el sistema UNIX de la transacción de liquidación.
strategy.closedtrades.entry_time(trade_num)
Ejemplos
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")
Parámetros
trade_num
(series int) el número de transacción que ha sido liquidado. El número de la primera transacción es cero.Hasta luego.
strategy.opentrades.entry_time
strategy.closedtrades.exit_time
time
Retorno de las ganancias y pérdidas de transacciones que se han liquidado. Las pérdidas se indican como negativas.
strategy.closedtrades.profit(trade_num)
Ejemplos
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")
Parámetros
trade_num
(series int) el número de transacción que ha sido liquidado. El número de la primera transacción es cero.Hasta luego.
strategy.opentrades.profit
strategy.closedtrades.commission
Devuelve la dirección de negociación y el número de contratos en una transacción que ya está en liquidación. Si el valor es > 0, la posición del mercado es de múltiples cabezas. Si el valor es < 0, la posición del mercado es de cabezas vacías.
strategy.closedtrades.size(trade_num)
Ejemplos
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 ganancias promedio de las operaciones de liquidación
Ejemplos
strategy("`strategy.closedtrades.size` Example 2")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculate profit for both closed trades.
profitPct = 0.0
for tradeNo = 0 to strategy.closedtrades - 1
entryP = strategy.closedtrade
¡Qué bueno!¿Cómo se puede hacer para que varios contratos de bitcoins funcionen simultáneamente?
Nube ligeraPor favor, ¿puede Pine hacer más transacciones? ¿Puede JS hacer más transacciones?
- ¿Qué quieres decir?Gracias por los detalles.
el arte¿Cómo es que el script de pine usa la placa de simulación de okex en la plataforma?
el arteEsto equivale a copiar las estrategias de tradingview directamente a las plataformas de los inventores para usarlas.
Los inventores cuantifican - sueños pequeñosEl lenguaje PINE sólo puede hacer una política de variedad única, la política de variedades múltiples es mejor o escribir el diseño en Python, JavaScript, C ++.
Los inventores cuantifican - sueños pequeñosOh, sí, OKX es muy especial, su entorno analógico y su entorno de disco real tienen la misma dirección, sólo que hay una diferencia en otro lugar.
Nube ligeraNo se puede usar el simulador okx.....
Los inventores cuantifican - sueños pequeñosEste problema de la arquitectura de la variedad no se resuelve bien, ya que cada interfaz es diferente y no se limita a la frecuencia de las interfaces, lo que genera muchos problemas.
Los inventores cuantifican - sueños pequeñosBien, gracias por la sugerencia de Cloudways, por favor informe este requerimiento.
Nube ligeraMe siento mejor mezclado con JS, JS puede adaptarse mejor a todo tipo de transacciones.
La tendencia de los cazadoresEl precio de cierre es para cada variedad, y el precio de cierre es para cada variedad.
Los inventores cuantifican - sueños pequeñosNo es muy amable.
Nube ligeraBien, gracias muchachos.
Los inventores cuantifican - sueños pequeñosHola, la política de lenguaje de PINE sólo funciona con una variedad por el momento.
Los inventores cuantifican - sueños pequeñosGracias por su apoyo. La documentación seguirá mejorando.
Los inventores cuantifican - sueños pequeñosSí, es cierto.
Los inventores cuantifican - sueños pequeñosPINE es una biblioteca de modelos, en la que los parámetros permiten configurar la dirección de base de los intercambios.