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

FMZ PINE Script documentación

El autor:Los inventores cuantifican - sueños pequeños, Creado: 2022-05-06 14:27:06, Actualizado: 2024-10-12 15:27:04

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

array.mode

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

Se trata de una serie de datos que se utilizan para determinar el valor de la interpolación.

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

Array.percentile_nearest_rank (Rango más cercano)

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

array.percentrank

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

array.range

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

array.remove

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

array.reverse

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

array.from

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 conjunto

array.new

La 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

  • sizeEl tamaño inicial de la serie (series int) es 0. Opcional.
  • initial_value(series ) El valor inicial de todos los elementos de la serie. Opcional. El valor predeterminado es na.

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

¿ Qué está pasando?

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

  • sizeEl 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 na

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

Array.new_float

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

  • sizeEl 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

En el caso de las aplicaciones

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

  • sizeEl 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 na

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

Array.new_string

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

  • sizeEl 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 na

Nota: el nombre de la ciudad esEl índice de la matriz comienza en 0.

Hasta luego. array.new_float array.get array.slice

array.get

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

array.push

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

array.set

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

array.sum

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

array.avg

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

array.indexof

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

estrategia

En elstrategyEn 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.exitLa funciónprofitlossParámetros con puntos para detener, detener, parámetrosprofitSe 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

estrategia

Esta función tiene varias propiedades de política. No se preocupe, el soporte es exclusivo.titleshorttitleoverlaypyramidingdefault_qty_typedefault_qty_valuePará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(const string) El tipo de valor posible de un indicador formateado en el eje de precios es: format.inherit、format.price、format.volume、default format.inherit。
  • precision(const int) El número de dígitos después del punto flotante del valor del indicador en el eje de precios. Debe ser un número entero no negativo y no mayor de 16. Si se omite, se utiliza el formato de la serie madre. Si el formato es format.inherit y se establece este parámetro, el formato se convierte en format.price.
  • scale(scale_type) El indicador debe seguir las coordenadas de precio. Los valores posibles son: scale.right, scale.left, scale.none. El valor scale.none solo puede usarse en combinación con el valor de true overlay.
  • 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(const bool) Computación de órdenes intrabar adicionales. Si el parámetro está configurado como consonante true, la política se recalcula una vez que la línea K está llena después de la orden (no solo al cerrar la línea k).
  • calc_on_every_tick(const bool) extra cálculo de la política intrabar. Si el parámetro es true, la política calculará en tiempo real cada punto sin cerrar la línea k. El parámetro no afecta el cálculo de la política de datos históricos. El valor predeterminado es false.
  • max_bars_back(const int) Es el máximo número de barras que se puede usar para la política de referencia histórica. Si el código del script se refiere a los datos históricos de la variable (se usa el operador de barras [] '), este parámetro se aplicará a cada variable incorporada o variable de usuario en el script. El tamaño de la zona de reserva variable en el script de pines generalmente se detecta automáticamente. Sin embargo, en algunos casos esto es imposible, por lo que el parámetro permite que el usuario establezca manualmente el límite inferior de este valor.
  • backtest_fill_limits_assumption(const int) Se supone que el precio límite se ejecutará en la barra interior sólo cuando el precio del mercado exceda el número de ticks especificados en el nivel de la barra.
  • default_qty_type(const string) está definido paraqtyEl 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 default_qty_type cuando no se define su parámetro qty.
  • currency(const string) La moneda de la cuenta de esta política. Opcional. El valor predeterminado es la moneda del producto en el gráfico. Los valores posibles son: currency.NONE, currency.USD, currency.EUR, currency.AUD, currency.GBP, currency.NZD, currency.CAD, currency.CHF, currency.HKD, currency.JPY, currency.NOK, currency.SEK, currency.SGD, currency.TRY, currency.ZAR, currency.BTC, currency.ETH, currency.MYR, currency.KRW.
  • slippage(const int) con tick como unidad de oferta, el punto de giro se incrementa o disminuye del precio de transacción del pedido de compra/venta o del pedido de stop loss. Si mintick = 0.01 y el punto de giro = 5, el punto de giro total será 5 * 0.01 = 0.05.
  • commission_type(const string) Tipo de comisión de cada orden. Los valores permitidos son: estrategia.comisión.porcentaje (porcentaje del volumen de efectivo de la orden), estrategia.comisión.cash_per_contract (indicando el monto en la moneda de la cuenta por contrato), estrategia.comisión.cash_per_order (indicando el monto en la moneda de la cuenta por orden).
  • commission_value(const int/float) El valor de la comisión de la orden. Dependiendo del tipo elegido (tipo de comisión) incluye el porcentaje o la cantidad.
  • process_orders_on_close(const bool) cuando está configurado como constelar verdadero, generará otros intentos de orden de ejecución después de que el cuadro se cierre y se complete el cálculo de la política. Si los pedidos son pedidos de precio de mercado, el simulador de brokers los ejecutará antes de que se abra el siguiente cuadro. Si los pedidos son pedidos de precio límite, los pedidos solo se ejecutarán cuando se cumplan las condiciones de precio.
  • close_entries_rule(const string) determina el orden en que se cierra la orden. El valor permitido es: FIFO o ANY. FIFO significa que la primera operación debe cerrarse primero cuando varias operaciones están abiertas. Esta regla se aplica a las acciones, futuros y divisas estadounidenses (Regla de conformidad NFA 2-43b).
  • max_lines_count(const int) muestra el número de gráficos de línea más recientes. El valor predeterminado es 50, y el valor máximo permitido es 500.
  • max_labels_count(const int) muestra el número de imágenes de etiquetas recientes. El valor predeterminado es 50, y el valor máximo permitido es 500.
  • max_boxes_count(const int) El número de dibujos de la última caja que se muestra. El valor predeterminado es 50, y el valor máximo permitido es 500.
  • margin_long(const int/float) El precio de compra de una posición multinivel es el porcentaje del precio de compra de una posición multinivel que debe estar cubierta con dinero en efectivo o garantía. Debe ser no negativo. Opcional. El valor predeterminado es 100.
  • margin_short(const int/float) El valor de garantía en blanco es el porcentaje del precio de compra de una posición en blanco que debe estar cubierta con dinero en efectivo o garantía. Debe ser no negativo. Opcional. El valor predeterminado es 100.
  • explicit_plot_zorder(const bool) Especifica el orden en que se muestran los gráficos, los rellenos y las líneas horizontales de los indicadores. Si es verdad, se dibujan los gráficos en el orden en que aparecen en el código de los indicadores, y cada gráfico más nuevo se dibuja sobre el gráfico anterior. Esto solo se aplica a las funciones plot * (), fill y hline.
  • initial_capital(const int/float) La cantidad de dinero que se puede utilizar inicialmente para la negociación estratégica se representa como una moneda definida en el par de monedas de la consola. Opcional.
  • risk_free_rate(const int/float) La rentabilidad sin riesgo es el cambio anual porcentual en el valor de una inversión en la que el riesgo es mínimo o cero, y se utiliza para calcular los ratios Sharpe y Sortino. El valor predeterminado es 2.

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

strategy.entry

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(series string) Parámetros opcionales. La orden pertenece al nombre del grupo OCA. Si la orden no pertenece a ningún grupo OCA, debe haber un carácter en blanco.Nota: FMZ no admite este parámetro.
  • oca_type(input string) Parámetros opcionales. Tipo de grupo de pedidos OCA. El valor permitido es: strategy.oca.none - los pedidos no deben pertenecer a ningún grupo OCA específico; strategy.oca.cancel - los pedidos deben pertenecer al grupo OCA y, una vez que se realice el pedido, todos los demás pedidos del mismo grupo se cancelarán; strategy.oca.reduce - los pedidos deben pertenecer al grupo OCA, si se ha colocado X cantidad de pedidos, el número de otros pedidos del mismo grupo OCA disminuirá X.Nota: FMZ no admite este parámetro.
  • 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.

strategy.close

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 qty. Opcional. El valor predeterminado es 100.
  • 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.

estrategia.cerrar_todo

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.

strategy.exit

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 qty. Opcional. El valor predeterminado es 100.
  • 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(series string) Parámetros opcionales. Nombre del grupo OCA (oca_type = strategy.oca.reduce) Objetivo de ganancia, stop/track stop. Si no se especifica el nombre, se generará automáticamente.Nota: FMZ no admite este parámetro.
  • 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.

strategy.cancel

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

Estrategia.cancelar todo

这是取消/停用所有预挂单命令,由以下功能生成: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 ⇒

strategy.order

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(series string) Parámetros opcionales. La orden pertenece al nombre del grupo OCA. Si la orden no pertenece a ningún grupo OCA, debe haber un carácter en blanco.Nota: FMZ no admite este parámetro.
  • oca_type(input string) Parámetros opcionales. Tipo de grupo de pedidos OCA. El valor permitido es: strategy.oca.none - los pedidos no deben pertenecer a ningún grupo OCA específico; strategy.oca.cancel - los pedidos deben pertenecer al grupo OCA y, una vez que se realice el pedido, todos los demás pedidos del mismo grupo se cancelarán; strategy.oca.reduce - los pedidos deben pertenecer al grupo OCA, si se ha colocado X cantidad de pedidos, el número de otros pedidos del mismo grupo OCA disminuirá X.Nota: FMZ no admite este parámetro.
  • 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.

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

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

La estrategia.abertura de operaciones.entrada.

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

Estrategia.ventas abiertas.precio de entrada

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

Estrategia.apertura de operaciones.tiempo de entrada

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

strategy.opentrades.profit

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

strategy.opentrades.size

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

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

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 valor de las transacciones se calculará en función de las condiciones de mercado.

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

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

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

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 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 es el precio de entrada de la transacción.

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

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

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

strategy.closedtrades.profit

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

strategy.closedtrades.size

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

Más.

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