Type/to search
8
Follow
1364
Followers
FMZ PINE Script Documentación
Tutorials
Created 2022-05-06 14:27:06  Updated 2025-08-21 13:47:34
 24
 20878

Palabras clave, gramática y descripción de la configuración

Estructura del código

La estructura general que sigue el código en Pine:

<version> <declaration_statement> <code>

Comentarios

Los signos de comentarios para el soporte de lenguaje Pine de FMZ: comentarios de una sola línea//¿Qué es lo que está pasando?/* */Por ejemplo, en el siguiente ejemplo, la forma de escribir los comentarios:

pine
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9) // 计算MACD指标 /* plot函数在图表上画出指标线 */ plot(macdLine, color = color.blue, title='macdLine') plot(signalLine, color = color.orange, title='signalLine') plot(histLine, color = color.red, title='histLine')

Ediciones

La siguiente forma de instrucciones de compilador le dice al compilador en qué versión de Pine está escrito el script:

pine
//@version=5

Versión v5 por defecto, puede omitirse en el código//@version=5

Declaración de las declaraciones

Las declaraciones determinan el tipo de script, que a su vez determina qué contenido está permitido en él, y cómo se usa y se ejecuta. Establece las propiedades clave del script, como su nombre, dónde aparecerá cuando se agregue a la tabla, la precisión y el formato de los valores que muestra, y los valores para administrar ciertos comportamientos cuando se ejecute, como el número máximo de objetos de dibujo que mostrará en la tabla. Para las estrategias, las propiedades incluyen parámetros de retroalimentación, como capital inicial, comisiones, puntos de deslizamiento, etc.indicator()ostrategy()Declaración de la declaración.

Código

Las líneas que no son comentarios o instrucciones del compilador en un script son declaraciones, que implementan el algoritmo del script. Una declaración puede ser uno de estos elementos.

  • Declaración de las variables
  • Revalorización de las variables
  • Declaración de la función
  • Invocación de funciones integradas y definidas por el usuario
  • ifforwhileoswitchEstructura de las placas

Las oraciones se pueden ordenar de muchas maneras.

  • Algunas declaraciones pueden expresarse en una sola línea, como la mayoría de las declaraciones de variables, que contienen una sola línea de llamada de función o una declaración de función de una sola línea. Otras, como las estructuras, siempre requieren más de una línea, ya que requieren un bloque local.
  • Las declaraciones en el ámbito global de un script (es decir, las partes que no pertenecen a bloques locales) no pueden ser consideradas空格o制表符Las líneas que comienzan en la primera posición de la línea, por definición, forman parte del alcance global del script.
  • Una estructura o una declaración de funciones de varias líneas siempre requiere unlocal blockUn bloque local debe resumir en un marcador o en cuatro espacios (de lo contrario, se analizará como una secuencia de la línea anterior de código, es decir, se juzgará como un contenido continuo de la línea anterior de código), y cada bloque local define un rango local diferente.
  • Las oraciones de una sola línea se pueden enrolar en una línea usando el comma ((,) como separador.
  • Una línea puede contener comentarios o simplemente comentarios.
  • Las líneas también pueden ser envueltas (continúa en varias líneas).

Por ejemplo, se incluyen tres bloques locales, uno en la declaración de la función personalizada y dos en la declaración de la variable con la estructura if, con el siguiente código:

pine
indicator("", "", true) // 声明语句(全局范围),可以省略不写 barIsUp() => // 函数声明(全局范围) close > open // 本地块(本地范围) plotColor = if barIsUp() // 变量声明 (全局范围) color.green // 本地块 (本地范围) else color.red // 本地块 (本地范围) runtime.log("color", color = plotColor) // 调用一个内置函数输出日志 (全局范围)

Cambiar el código

Las líneas largas pueden ser divididas en varias líneas, o "envueltas". Las líneas envueltas deben reducirse en cualquier cantidad de espacios, siempre que no sea un múltiplo de 4.

pine
a = open + high + low + close

Puede ser envasado en (tenga en cuenta que el número de espacios en cada línea no es un múltiplo de 4):

pine
a = open + high + low + close

Una llamada a una trama larga puede ser empaquetada como ▽.

pine
close1 = request.security(syminfo.tickerid, "D", close) // syminfo.tickerid 当前交易对的日线级别收盘价数据系列 close2 = request.security(syminfo.tickerid, "240", close) // syminfo.tickerid 当前交易对的240分钟级别收盘价数据系列 plot(ta.correlation(close, open, 100), // 一行长的plot()调用可以被包装 color = color.new(color.purple, 40), style = plot.style_area, trackprice = true)

Las oraciones en las declaraciones de funciones definidas por el usuario también pueden ser empaquetadas. Sin embargo, debido a que el bloque local debe comenzar gramaticalmente con una contracción (((4 espacios o 1 símbolo), cuando se divide a la siguiente línea, la parte de continuación de la oración debe comenzar con una contracción o más ((( no es igual a un múltiplo de 4 espacios)).

pine
test(c, o) => ret = c > o ? (c > o+5000 ? 1 : 0): (c < o-5000 ? -1 : 0) a = test(close, open) plot(a, title="a")

Secuencia de tiempo

La secuencia de tiempo no es un tipo o formato de datos, sino un concepto de estructura básica en el lenguaje PINE. Se utiliza para almacenar valores que cambian continuamente en el tiempo, cada valor corresponde a un punto de tiempo. La estructura de este concepto de secuencia de tiempo es adecuada para procesar y registrar una serie de datos que cambian con el tiempo.
Variables incluidasopenPor ejemplo:openLa variable incorporada registra el precio de apertura de cada línea KBAR, si estaopenEs el dato de un ciclo de 5 minutos de la línea K.openLo que se registra en la variable es el precio de apertura por cada 5 minutos de la línea K BAR (columna). Cuando su programa de estrategia se ejecuta, el código hace referencia aopenEs decir, se cita el precio de apertura de la línea BAR de la línea K en la que se encuentra actualmente. Para citar el valor anterior en la secuencia de tiempo (valor pasado), usamos[]El operador histórico, cuando la estrategia se ejecuta en una línea KBAR,open[1]Se refiere al precio de apertura de la línea K BAR anterior a la línea K BAR actual.

AunqueSecuencia de tiempoEs fácil pensar en la estructura de datos "arrayones", aunque el lenguaje PINE también tiene tipos de arrays. Pero son conceptos completamente diferentes de las secuencias temporales.

El lenguaje PINE diseñó la secuencia de tiempo para que los valores acumulados de los precios de cierre se puedan calcular fácilmente en el código de la estrategia, sin necesidad de utilizar una estructura de ciclo como for, solo con funciones incorporadas en el lenguaje PINE.ta.cum(close)Por ejemplo, necesitamos calcular el promedio de la diferencia entre el valor máximo y el valor mínimo de las últimas 14 líneas de K BAR (es decir, las 14 líneas de K BAR más cercanas al momento en que se ejecuta el código). Se puede escribir como:ta.sma(high - low, 14)

Los resultados de las llamadas a una función en una secuencia de tiempo también pueden dejar huellas en la secuencia de tiempo.[]El operador histórico cita el valor anterior. Por ejemplo, cuando se prueba si el precio de cierre de la línea K BAR actual supera el valor máximo de la máxima de las últimas 10 líneas K BAR (excluyendo la línea K BAR actual). Se puede escribir comobreach = close > ta.highest(close, 10)[1]También se puede escribir:breach = close > ta.highest(close[1], 10)Por eso.ta.highest(close, 10)[1]yta.highest(close[1], 10)Es el equivalente.

El código de verificación es el siguiente:

pine
strategy("test pine", "test", true) a = ta.highest(close, 10)[1] b = ta.highest(close[1], 10) plotchar(true, title="a", char=str.tostring(a), location=location.abovebar, color=color.red) plotchar(true, title="b", char=str.tostring(b), location=location.belowbar, color=color.green)

El código de prueba anterior produce a y b en cada BAR en su correspondiente secuencia de tiempo, y se puede ver que a y b son siempre iguales, por lo que ambos métodos de representación son equivalentes.

Citaciones de datos históricos

En Trading View hay un límite máximo de artículos para referencias históricas (hasta 5.000 artículos), como el siguiente código:

pine
//@version=6 indicator("test") ema = ta.ema(close, 10000) // 报错:Error on bar 0: The 'ema'->'sum' function references too many historical candles (10000), the limit is 5000. plot(ema, "ema") // pre10000 = ema[10000] // 报错:Invalid number of bars back specified in the history-referencing operator. It accepts a value between 0 and 5000. // plot(pre10000, "pre10000")

"Configuración de transacciones" en la base de datos de transacciones de lenguaje Pine, con el parámetro "número de períodos más largos de variables" para configurar el número máximo de datos que se pueden citar.

img

pine
indicator("test") ema = ta.ema(close, 1000) // ema = ta.ema(close, 3000) 则报错:Invalid number 3000 of bars back specified in the history-referencing operator. It accepts a value between 0 and 2000. plot(ema, "ema")

El parámetro "número de ciclos más largos de la variable" no debe ser demasiado grande, el rango de referencia de datos en la política adecuada puede ser:

Parámetros de la versión de la biblioteca de clases de intercambio de la lengua Pine

La configuración de los parámetros de la plantilla de la política de PINE, "Pine Language Exchange Repository".

img

Configuración de las operaciones

  • Ejecución
    Modelo de cierre de precios: ejecuta el modelo al final del BAR actual y ejecuta la operación al comienzo del BAR subyacente.
    Modelo de precios en tiempo real: ejecuta el modelo cada vez que el precio cambia y ejecuta la operación inmediatamente cuando hay una señal.
  • Número de manos de apertura de posición por defecto: si la instrucción de negociación no especifica el número de operaciones, ejecute las operaciones de acuerdo con el número establecido.
  • Máxima cantidad de órdenes en una sola transacción: De acuerdo con el descubierto real, en combinación con la configuración de este parámetro, determine la cantidad máxima de órdenes en una sola transacción para evitar el impacto en el cuadro.
  • Puntos de deslizamiento: según定价货币精度El parámetro y el parámetro determinan el precio de deslizamiento en el momento de la orden. Por ejemplo, la precisión de la moneda de cotización es de 2, es decir, precisa al segundo decimal, precisa a 0.01. Entonces, cada punto en el número de puntos de deslizamiento representa 0.01 unidades de cotización.
  • Número de ciclos más largos de la variable: el número de líneas KBAR que afectan el gráfico, yjavascriptLlamadas en la estrategiaSetMaxBarLenLa función es la misma.

Opciones de futuros

  • Código de variedad: Código de contrato, que solo se necesita configurar cuando el objeto de la bolsa es un objeto de la bolsa no en efectivo.
  • Número mínimo de transacciones: el número mínimo de transacciones en el contrato al momento de la orden.

Opciones reales

  • Regreso automático: Regreso automático al estado anterior a la parada de la última estrategia.
  • Número de reintentos de pedido: el pedido no se realiza, se cancela el pedido y se vuelve a ordenar el intento de negociación, el parámetro se utiliza para limitar el número máximo de reintentos.
  • Intervalo de encuestas de red ((millisecondos): solo es válido para el protocolo REST, controla el intervalo de peticiones de red y evita que las peticiones sean demasiado frecuentes y sobrepasen los límites de la bolsa.
  • Tiempo de sincronización de cuentas (segundos): el período de tiempo para la sincronización de datos de cuentas.
  • Tiempo de sincronización de posiciones después de la apertura de la posición (millisecondas): solo para la repetición de la apertura de posiciones causada por el retraso de los datos de algunas bolsas, la configuración de un tiempo de sincronización más grande puede mitigar este tipo de problemas.
  • Módulo de multiplicador de palanca: establece el multiplicador de palanca.

Comercio en efectivo, otras configuraciones

  • Volumen de transacción de una sola mano: El volumen de transacción de una sola mano por defecto es válido solo para el efectivo.
  • Volumen mínimo de transacciones: el volumen mínimo de transacciones.
  • Precisión monetaria: Precisión de precios, es decir, el número de dígitos en el precio.
  • Precisión de la variedad de transacción: Precisión de la siguiente orden, es decir, los dígitos menores de la siguiente orden.
  • Cuotas de servicio: Para algunos datos calculados con esta configuración, 0.002 representa 2 milésimas.
  • Intervalos de pérdidas y ganancias: solo se utilizan las estadísticas de pérdidas y ganancias para mostrar en el disco.
  • Fallo en el intento de repetición ((ms): intervalo de repetición en el fallo de la solicitud de red。
  • Uso de un agente: sólo es válido para el protocolo REST
  • Ocultar errores comunes de la red: Ocultar errores comunes en la zona de registro.
  • La dirección de base de conmutación: sólo es válida para el protocolo REST.
  • Notificaciones de envío: envío de mensajes al buzón de correo, etc.

Realizar un pedido

La apertura de una posición

pine
strategy(title = "open long example", pyramiding = 3) // pyramiding 允许的同方向下单的次数 strategy.entry("long1", strategy.long, 0.01) // 市价开多仓,指定分组标签为long1 strategy.entry("long2", strategy.long, 0.02, when = close > ta.ema(close, 10)) // 条件触发,执行下单,市价开多仓 strategy.entry("long3", strategy.long, 0.03, limit = 30000) // 指定(较低的)价格,计划下买单订单,等待成交开仓,限价开仓

Posiciones estables

pine
strategy(title = "close long example", pyramiding = 2) // pyramiding 允许的同方向下单的次数 strategy.entry("long1", strategy.long, 0.1) // 市价开多仓,指定分组标签为long1 strategy.entry("long2", strategy.long, 0.1) // 市价开多仓,指定分组标签为long2 strategy.close("long1", when = strategy.position_size > 0.1, qty_percent = 50, comment = "close buy entry for 50%") // 平仓,指定平掉分组标签为long1的仓位的50%持仓 strategy.close("long2", when = strategy.position_size > 0.1, qty_percent = 80, comment = "close buy entry for 80%") // 平仓,指定平掉分组标签为long2的仓位的80%持仓

Mecanismo de intercambio

El mecanismo de mantenimiento de posiciones en el lenguaje PINE es similar al de la posición unidireccional. Por ejemplo, cuando se mantiene una posición en la dirección opuesta a la de la posición, si hay órdenes de venta, planes de operación, etc. que se ejecutan en la dirección opuesta a la de la posición, se eliminan primero las posiciones en la dirección opuesta a la de la posición, y luego se ejecutan las órdenes que se activan en la dirección opuesta a la de la posición anterior.

Plan de trabajo

Cuando se usa la orden de pedido, si no se especifica ningún precio, el listado es el listado por defecto. Además del listado se puede ordenar a través del listado de planes, el listado de planes no opera el listado de planes de inmediato. El listado de planes puede estar en la cola de comisiones del programa que no existe en el momento de la activación.Disco vivo y retroalimentaciónLa información de estado en el tiempo (es decir, la barra de estado de la estrategia en ejecución) se ve en la sección de la tabla "Pedidos programados". El sistema realmente ordenará solo cuando los precios en tiempo real del mercado cumplan con las condiciones que desencadenan estos planes. Por lo tanto, es normal que estos pedidos tengan una ligera desviación en el precio de transacción.strategy.entryCuando la función se ordena, podemos especificarlimitstopParámetros

var isTrade = false if not barstate.ishistory and not isTrade isTrade := true strategy.entry("test 1", strategy.long, 0.1, stop=close*1.3, comment="test 1 order") // stop strategy.entry("test 2", strategy.long, 0.2, limit=close*0.7, comment="test 2 order") // limit strategy.entry("test 3", strategy.short, 0.3, stop=close*0.6, limit=close*1.4, comment="test 3 order") // stop-limit
  • Orden de límite

    Establecer el precio límite de la orden cuando la orden es de compra (es decir,directionLos parámetros sonstrategy.long), el pedido sólo se activa cuando el precio actual del mercado es inferior a ese precio.
    Cuando el pedido es para venta por encargo (es decir,directionLos parámetros sonstrategy.shortLa orden se activa sólo cuando el precio actual en el mercado es superior a ese precio.

  • Orden de detención

    Establecer el precio de parada de la orden, cuando la orden es una compra, la orden se activará solo si el precio actual del mercado es superior a ese precio.
    Cuando una orden es una oferta, la orden se activa solo cuando el precio actual del mercado es inferior a ese precio.

  • Orden de límite de parada

    Se puede configurar simultáneamentelimitstopParámetros, los pedidos se activan al primer precio que cumpla las condiciones.

Porcentaje de derechos y intereses

pine
//@version=5 strategy("Percent of Equity Order", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // 简单的均线交叉策略 longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28)) shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28)) // 如果均线交叉条件满足,则买入或卖出 if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short)

Específicodefault_qty_type=strategy.percent_of_equityDespués de la configuracióndefault_qty_valueEn porcentaje ((0 ~ 100), 1 es el 1%. El pedido se calcula de acuerdo con la cantidad de monedas en la cuenta. Por ejemplo: la cuenta actual tiene 10000 USDT, establece un pedido del 1%, es decir, el pedido de pedido se calcula con la escala de 100 USDT (según el precio actual al vender).

Declaración, Palabras clave de la estructura lógica

var

var es la palabra clave para asignar y initializar variables una vez.
Por lo general, la sintaxis de asignación de variables que no incluye la palabra clave var hace que el valor de la variable se cubra cada vez que se actualiza el dato. Por el contrario, cuando se usan las palabras clave var para asignar variables, a pesar de la actualización del dato, se puede mantener la barra de estado y solo cambiarla si se cumplen las condiciones de las if-expressions.

var variable_name = expression

La explicación:

  • variable_name- Cualquier nombre de la variable de usuario permitida en Pine Script puede incluir caracteres latinos mayúsculas y minúsculas, números y sublinados_), pero no puede comenzar con un número) 。
  • expression- Cualquier expresión aritmética, como la definición de una variable regular. Se calcula la expresión y se asigna a la variable una vez.

Ejemplo

pine
// Var keyword example var a = close var b = 0.0 var c = 0.0 var green_bars_count = 0 if close > open var x = close b := x green_bars_count := green_bars_count + 1 if green_bars_count >= 10 var y = close c := y plot(a, title = "a") plot(b, title = "b") plot(c, title = "c")

La variable 'a' mantiene el valor de cierre de la primera columna de cada columna de la serie.
La variable 'b' mantiene el precio de cierre de la primera barra de precios de aluminio verde de la serie.
La variable 'c' mantiene el precio de cierre de la décima naranja verde de la serie.

En la FMZ, se dividen en modelos de precios en tiempo real, modelos de precios de cierre, y modelos de precios de cierre para los mercados de divisas.varvaripLas variables declaradas se prueban con el siguiente código:

pine
strategy("test pine", "test 1", true) // 测试 var varip var i = 0 varip ii = 0 // 将策略逻辑每轮改变的i、ii打印在图上 plotchar(true, title="ii", char=str.tostring(ii), location=location.abovebar, color=color.red) plotchar(true, title="i", char=str.tostring(i), location=location.belowbar, color=color.green) // 每轮逻辑执行都给i、ii递增1 if true i := i + 1 ii := ii + 1
  • Modelo de precios en tiempo real
    El código de prueba anterior se divide en dos etapas al ejecutarse: 1) la etapa histórica de la línea K; 2) la etapa de la línea K en tiempo real; 3) cuando se trata de un modelo de precios en tiempo real, la etapa de la línea K histórica.varvaripLas variables i, ii de la declaración se ejecutan incrementalmente cada vez que se ejecuta el código de la estrategia.if truePor lo tanto, se ejecuta el bloque de código condicional correspondiente). Por lo tanto, se puede ver que los números que aparecen en la línea BAR de los resultados de la medición son cada uno incrementados por 1. Cuando la etapa histórica de la línea K termina, comienza la etapa de la línea K en tiempo real.varvaripLas variables declaradas comienzan a cambiar de forma diferente. Como se trata de un modelo de precios en tiempo real, el código de la estrategia se ejecuta una vez cada cambio de precio dentro de una línea KBAR.i := i + 1yii := ii + 1La diferencia es que ii se modifica cada vez que se ejecuta. Aunque i también se modifica cada vez, el siguiente ciclo de ejecución de la lógica de la estrategia restablece el valor anterior, y el valor de i se actualiza hasta que la línea KBAR actual termine (es decir, no se restablece el valor anterior en el siguiente ciclo de ejecución de la lógica de la estrategia).

  • Modelo de precio de cierre
    Dado que el modelo de precios de cierre es una lógica de estrategia que se ejecuta cuando cada K-line BAR termina. En el modelo de precios de cierre, la fase de la línea K histórica y la fase de la línea K en tiempo real, son las siguientes:varvaripLas variables declaradas se muestran de manera muy consistente en el ejemplo anterior, incrementando 1BAR por cada línea K.

varip

varip ((var intrabar persist) es una palabra clave utilizada para asignar y initializar variables una vez. Es similar a la palabra clave var, pero las variables que usan la declaración varip conservan su valor entre las actualizaciones de la línea K en tiempo real.

varip variable_name = expression

La explicación:

  • variable_name- Cualquier nombre de una variable de usuario permitida en el guión de Pine que pueda contener caracteres latinos mayúsculas y minúsculas, números y sublinados_), pero no puede comenzar con un número) 。
  • expression- Cualquier expresión aritmética, como cuando se define una variable regular. En la primera línea K, la expresión se calcula una sola vez y se asigna a la variable una sola vez.

Ejemplo

pine
// varip varip int v = -1 v := v + 1 plot(v)

Con var, el gráfico devuelve el valor de bar_index. Con varip, el mismo comportamiento ocurre en la línea K histórica, pero en la línea K en tiempo real, el gráfico devuelve un valor que aumenta por cada tick.

Las notas
Solo se puede usar con tipos simples, como float, int, bool, string, y con arrays de estos tipos.

true

Representa el valor de una variable de tipo Boole, o cuando la expresión es usadaComparaciónoLa lógicaValores que se pueden calcular cuando el operador es ≠

Las notas
Véase tambiénComparaciónEl operador yLa lógicaDescripción del operador

Véase también
bool

false

Indica el valor de una variable de tipo Boole, y el resultado de las operaciones comparativas y lógicas.

Las notas
Véase tambiénComparaciónEl operador yLa lógicaDescripción del operador

Véase también
bool

if

Las sentencias If definen los bloques de sentencias que deben ejecutarse para cumplir con los requisitos de la expresión. La lengua de scripting Pine, versión 4, permite usar la sintaxis de <unk>else if<unk>.

El código general proviene de:

var_declarationX = if condition var_decl_then0 var_decl_then1 ... var_decl_thenN return_expression_then else if [optional block] var_decl_else0 var_decl_else1 ... var_decl_elseN return_expression_else else var_decl_else0 var_decl_else1 ... var_decl_elseN return_expression_else

Las notas
var_declarationX- Esta variable obtiene el valor de la declaración if
condition- Si la condición es verdadera, se usa el bloque de sentenciasthenLa lógica envar_decl_then0var_decl_then1Si la condición es false, se usa el bloque de sentencias.else ifoelseLa lógica envar_decl_else0var_decl_else1¿Qué es lo que está sucediendo?
return_expression_then , return_expression_else- La última expresión en el módulo o la expresión de la bloqueelse devolverá el valor final de la frase. Si la declaración de la variable está al final, su valor será el resultado.

El tipo de valor que devuelve la declaración if depende dereturn_expression_thenyreturn_expression_elseCuando se ejecuta en TradingView, sus tipos deben coincidir: cuando tienes un valor de cadena en el bloque else, no es posible devolver un valor entero desde el bloque then. Cuando se ejecuta en FMZ, el siguiente ejemplo no se equivocará, y cuando el valor de y toma el valor "open", el valor del gráfico de trazado es n/a.

Ejemplo

pine
// This code compiles x = if close > open close else open // This code doesn’t compile by trading view // y = if close > open // close // else // "open" plot(x)

Se puede omitirelseEn este caso, si la condición es false, se asigna un valor de valencia vacío a la variable var_declarationX (na, false o <unk>):

Ejemplo

pine
// if x = if close > open close // If current close > current open, then x = close. // Otherwise the x = na. plot(x)

Se pueden usar varios bloques de <unk>else if<unk> o ninguno. Los bloques de <unk>then<unk>, <unk>else if<unk> y <unk>else<unk> se mueven en cuatro espacios:

Ejemplo

pine
// if x = if open > close 5 else if high > low close else open plot(x)

Se puede ignorar.ifEl valor de resultado de la expresión ((<unk>var_declarationX=<unk> se puede omitir) <unk>. Puede ser útil si necesita efectos secundarios de la expresión, por ejemplo, en el comercio de estrategias:

Ejemplo

pine
if (ta.crossover(high, low)) strategy.entry("BBandLE", strategy.long, stop=low) else strategy.cancel(id="BBandLE")

Las sentencias If pueden incluir:

Ejemplo

pine
// if float x = na if close > open if close > close[1] x := close else x := close[1] else x := open plot(x)

for

La estructura 'for' permite la ejecución repetida de varias sentencias:

[var_declaration =] for counter = from_num to to_num [by step_num] statements | continue | break return_expression

var_declaration- Una declaración de variable opcional, que se asignará como el valor de la expresión return_expression de la vuelta.
counter- Variables que guardan el valor del contador de vuelta, incrementando/disminuyendo 1 o el valor step_num en cada repetición de vuelta.
from_num- Los valores iniciales del contador ≠ permiten el uso de una serie de valores / expresiones ≠ int / float.
to_num- El valor final del contador. Cuando el contador es mayor que to_num (o menor que to_num en el caso de from_num > to_num), el ciclo se interrumpe. Se permite el uso de los valores de flotación/expresiones de la serie int/float, pero solo se evalúan en la primera iteración del ciclo.
step_num- El valor de incremento/decrecimiento del contador. Es opcional. El valor por defecto es +1 o -1, dependiendo del mayor de from_num o to_num.
statements | continue | break- Un número arbitrario de frases, o las palabras clave 'continue' o 'break', reducidas a 4 espacios o una tab.
return_expression- El valor de retorno del ciclo, si existe, se asigna a la variable en la declaración de var. Si el ciclo se retira debido a la palabra clave de la barra de continuidad o de la barra de ruptura, el valor de retorno del ciclo es el valor de la última variable asignada antes de la salida del ciclo.
continue- Palabras clave que sólo se pueden usar en la vuelta.
break- Palabras clave para salir de la círculo.

Ejemplo

pine
// Here, we count the quantity of bars in a given 'lookback' length which closed above the current bar's close qtyOfHigherCloses(lookback) => int result = 0 for i = 1 to lookback if close[i] > close result += 1 result plot(qtyOfHigherCloses(14))

Véase también
for...in while

for...in

for...inLa estructura permite ejecutar varias instrucciones repetidas para cada elemento de la matriz. Se puede usar con cualquier parámetro:array_element, o con los dos siguientes parámetros:[index, array_element]La segunda forma no afecta a la función del ciclo. Se trata de un índice que sigue la iteración actual en la primera variable del grupo.

[var_declaration =] for array_element in array_id statements | continue | break return_expression [var_declaration =] for [index, array_element] in array_id statements | continue | break return_expression

var_declaration- una declaración de variable opcional, que será asignada a la secuencia dereturn_expressionEl valor de
index- Variables opcionales que siguen el índice de la iteración actual. El índice comienza en 0. La variable es inmutable en el cuerpo circular.array_elementEn el subgrupo
array_element- Contiene la variable de cada elemento de la serie que se va a procesar en el ciclo. Esta variable es inmutable en el cuerpo del ciclo.
array_id- ID de la matriz de la repetición del círculo.
statements | continue | break- Un número arbitrario de frases, o las palabras clave 'continue' o 'break', reducidas a 4 espacios o una tab.
return_expression- El valor de la vuelta asignado avar_declarationLa variable, si existe. Si el ciclo se extingue debido a las palabras clave 'continue' o 'break', el valor de retorno del ciclo es la última variable asignada antes de que el ciclo se extingue.
continue- Palabras clave que sólo se pueden usar en la vuelta.
break- Palabras clave para salir de la círculo.

Permite modificar los elementos de la matriz o su tamaño en el ciclo.
En este caso, usamosfor...inPara determinar cuántos valores de OHLC de la línea K son mayores que los valores de SMA de 'close' en cada línea K, se utiliza la forma monoparámetrica de:

Ejemplo

pine
// Here we determine on each bar how many of the bar's OHLC values are greater than the SMA of 'close' values float[] ohlcValues = array.from(open, high, low, close) qtyGreaterThan(value, array) => int result = 0 for currentElement in array if currentElement > value result += 1 result plot(qtyGreaterThan(ta.sma(close, 20), ohlcValues))

Aquí, usamos dos formas de parámetros de for...in para hacer nuestroisPosEl valor de la matriz es trueCuando están en nuestrovaluesArrayEl valor correspondiente en la matriz es el tiempo real:

Ejemplo

pine
// for...in var valuesArray = array.from(4, -8, 11, 78, -16, 34, 7, 99, 0, 55) var isPos = array.new_bool(10, false) for [index, value] in valuesArray if value > 0 array.set(isPos, index, true) if barstate.islastconfirmedhistory runtime.log(str.tostring(isPos))

Véase también
for while array.sum array.min array.max

while

whileLa sentencia permite la iteración condicional de bloques de código locales.

variable_declaration = while boolean_expression ... continue ... break ... return_expression

La explicación:
variable_declaration- Declaraciones de variables opcionales.return expressionSe puede proporcionar un valor de inicialización para esta variable.
boolean_expression- Si es verdad, ejecutawhileEl bloque local de la oración. Si es false, entonces enwhileDespués de la frase, continúa con el guión.
continue - continueLa palabra clave conduce a la siguiente generación.
break - breakLas palabras clave terminan el ciclo.whileLa sentencia fue restablecida.
return_expression- Se lo ofrecemos.whileLa línea opcional que devuelve el valor de la frase.

Ejemplo

pine
// This is a simple example of calculating a factorial using a while loop. int i_n = input.int(10, "Factorial Size", minval=0) int counter = i_n int factorial = 1 while counter > 0 factorial := factorial * counter counter := counter - 1 plot(factorial)

Las notas
El comienzo.whileEl bloque de código local después de la línea debe resumirse en cuatro espacios o un marcador. Terminar.whileEl ciclo.whileLa siguiente expresión de Boole debe convertirse en false, o debe ejecutarse.break

switch

El operador switch transfiere el control a una de las varias sentencias dependiendo de la condición y el valor de la expresión.

[variable_declaration = ] switch expression value1 => local_block value2 => local_block ... => default_local_block [variable_declaration = ] switch boolean_expression1 => local_block boolean_expression2 => local_block ... => default_local_block

El nombre de la página web es:

Ejemplo

pine
// Switch using an expression string i_maType = input.string("EMA", "MA type", options = ["EMA", "SMA", "RMA", "WMA"]) float ma = switch i_maType "EMA" => ta.ema(close, 10) "SMA" => ta.sma(close, 10) "RMA" => ta.rma(close, 10) // Default used when the three first cases do not match. => ta.wma(close, 10) plot(ma)

El cambio sin expresión:

Ejemplo

pine
strategy("Switch without an expression", overlay = true) bool longCondition = ta.crossover( ta.sma(close, 14), ta.sma(close, 28)) bool shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28)) switch longCondition => strategy.entry("Long ID", strategy.long) shortCondition => strategy.entry("Short ID", strategy.short)

Devuelve el valor
El valor de la última expresión en el bloque de declaraciones locales ejecutadas.

Las notas
Sólo ejecutarlocal_blockEjemplos odefault_local_blockUno de ellos.default_local_blockSólo con=>La marca se introduce junto y sólo se ejecuta si no se ejecuta el bloque anterior. SiswitchEl resultado de la sentencia se asigna a una variable y no se especificadefault_local_blockSi no se ejecuta,local_block, la frase regresana¿Qué es eso?switchCuando el resultado de una sentencia se asigna a una variable, todoslocal_blockLa instancia debe devolver el mismo tipo de valor.

Véase también
if ?:

series

series es una palabra clave que indica el tipo de serie de datos.seriesLas palabras clave suelen ser innecesarias.

El operador

=

Se utiliza para dar un valor a una variable, pero solo cuando se declara una variable (por primera vez).

:=

El operador de asignación, que asigna un valor a la variable de la izquierda. Se utiliza para asignar un valor a la variable declarada anteriormente.

!=

No es igual a ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠

expr1 != expr2

Devuelve el valor
El valor de Bur, o una serie de valores de Bur.

%

Número modulo ((número entero sobrante) <unk>. Aplicación para expresiones numéricas <unk>.

expr1 % expr2

Devuelve el valor
Número entero o valor de punto flotante, o una serie de valores.

Las notas
En el guión de Pine, cuando se calcula el resto de los números enteros, el negocio se interrumpe. Es decir, se redondea hasta el mínimo absoluto. El valor ganado tendrá el mismo símbolo que el dividendo.

Ejemplo: -1 % 9 = -1 - 9 * truncate ((-1/9) = -1 - 9 * truncate ((-0.111) = -1 - 9 * 0 = -1。

%=

La asignación de módulos. Se aplica a las expresiones numéricas.

expr1 %= expr2

Ejemplo

pine
// Equals to expr1 = expr1 % expr2. a = 3 b = 3 a %= b // Result: a = 0. plot(a)

Devuelve el valor
Número entero o valor de punto flotante, o una serie de valores.

*

La multiplicación <unk> se aplica a las expresiones numéricas <unk>

expr1 * expr2

Devuelve el valor
Número entero o valor de punto flotante, o una serie de valores.

*=

La multiplicación se aplica a las expresiones numéricas.

expr1 *= expr2

Ejemplo

pine
// Equals to expr1 = expr1 * expr2. a = 2 b = 3 a *= b // Result: a = 6. plot(a)

Devuelve el valor
Número entero o valor de punto flotante, o una serie de valores.

+

Añadir o poner un número positivo. Aplicable a expresiones numéricas o cadenas de caracteres.

expr1 + expr2
+ expr

Devuelve el valor
El binario de la cadena+Regresa la combinación de expr1 y expr2
El número devuelve un número entero o un valor de punto flotante, o una serie de valores:
El binario '+' devuelve expr1 más expr2。
El valor de 1 y el valor de 1 + el valor de 1 devuelven expr (sin añadir nada a la simetría del operador de 1 y 1).

Las notas
Se pueden usar operadores de aritmética con números, así como series de variables. En caso de usar series, los operadores se aplican a los elementos.

+=

La designación de la adición <unk> se aplica a las expresiones numéricas o a las cadenas <unk>.

expr1 += expr2

Ejemplo

pine
// Equals to expr1 = expr1 + expr2. a = 2 b = 3 a += b // Result: a = 5. plot(a)

Devuelve el valor
Para las cadenas de caracteres, devuelve la secuenciación de expr1 y expr2. Para los números, devuelve un valor entero o de punto flotante, o una serie de valores.

Las notas
Se pueden usar operadores de aritmética con números, así como series de variables. En caso de usar series, los operadores se aplican a los elementos.

-

El método de la subtracción o el número unitaria negativa. Se aplica a la expresión numérica.

expr1 - expr2
- expr

Devuelve el valor
Devuelve un valor entero o de punto flotante, o una serie de valores:
El binario '+' devuelve expr1 menos expr2。
Unidad-Regresa la expresión negativa de expr ≠

Las notas
Se pueden usar operadores de aritmética con números, así como series de variables. En caso de usar series, los operadores se aplican a los elementos.

-=

Se aplica a las expresiones numéricas.

expr1 -= expr2

Ejemplo

pine
// Equals to expr1 = expr1 - expr2. a = 2 b = 3 a -= b // Result: a = -1. plot(a)

Devuelve el valor
Número entero o valor de punto flotante, o una serie de valores.

/

Las excepciones. Se aplican a las expresiones numéricas.

expr1 / expr2

Devuelve el valor
Número entero o valor de punto flotante, o una serie de valores.

/=

La designación de la excepción ≠ aplica para las expresiones numéricas ≠

expr1 /= expr2

Ejemplo

pine
// Equals to expr1 = expr1 / expr2. a = 3 b = 3 a /= b // Result: a = 1. plot(a)

Devuelve el valor
Número entero o valor de punto flotante, o una serie de valores.

<

Menos de ≠ se aplica a las expresiones numéricas ≠

expr1 < expr2

Devuelve el valor
El valor de Bur, o una serie de valores de Bur.

<=

Menos o igual a . Se aplica a las expresiones numéricas .

expr1 <= expr2

Devuelve el valor
El valor de Bur, o una serie de valores de Bur.

==

Es igual a . . . Aplicable a cualquier tipo de expresión . .

expr1 == expr2

Devuelve el valor
El valor de Bur, o una serie de valores de Bur.

=>

El operador '=>' se utiliza para la declaración de funciones definidas por el usuario yswitchEn la frase:

La sintaxis de la declaración de la función es:

<identifier>([<parameter_name>[=<default_value>]], ...) => <local_block> <function_result>

Uno de ellos.<local_block>Es decir, cero o más frases de Pine.
<function_result>Es una variable, una expresión o un grupo.

Ejemplo

pine
// single-line function f1(x, y) => x + y // multi-line function f2(x, y) => sum = x + y sumChange = ta.change(sum, 10) // Function automatically returns the last expression used in it plot(f1(30, 8) + f2(1, 3))

Las notas
Puede obtener más información sobre las funciones definidas por el usuario en las páginas de las funciones declaradas y de la biblioteca de scripts del manual del usuario.

>

Más que ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠

expr1 > expr2

Devuelve el valor
El valor de Bur, o una serie de valores de Bur.

>=

Es mayor o igual que . Se aplica a las expresiones numéricas .

expr1 >= expr2

Devuelve el valor
El valor de Bur, o una serie de valores de Bur.

?:

El operador de la condición tridimensional.

expr1 ? expr2 : expr3

Ejemplo

pine
// Draw circles at the bars where open crosses close s2 = ta.cross(open, close) ? math.avg(open,close) : na plot(s2, style=plot.style_circles, linewidth=2, color=color.red) // Combination of ?: operators for 'switch'-like logic c = timeframe.isintraday ? color.red : timeframe.isdaily ? color.green : timeframe.isweekly ? color.blue : color.gray plot(hl2, color=c)

Devuelve el valor
Si expr1 es evaluado como verdadero, expr2 es evaluado como verdadero, y si no es evaluado como verdadero, expr3 es evaluado como verdadero. Los valores de cero ((0 y NaN+, Infinity,-Infinity) son considerados falsos, y todos los demás valores son considerados verdaderos.

Las notas
Si no lo necesita, utilice na como sucursales de <unk>else<unk>.
Se puede combinar el uso de dos o más?: operadores para implementar una declaración similar a la de la barra de conmutación (ver el ejemplo anterior).
Se pueden usar operadores de aritmética con números, así como series de variables. En caso de usar series, los operadores se aplican a los elementos.

Véase también
na

[]

La subsiguiente de la serie。 proporciona acceso a los valores anteriores de la serie expr1。 expr2 es el número de líneas k pasadas, y debe ser un valor。 el float será redondeado hacia abajo。

expr1[expr2]

Ejemplo

pine
// [] can be used to "save" variable value between bars a = 0.0 // declare `a` a := a[1] // immediately set current value to the same as previous. `na` in the beginning of history if high == low // if some condition - change `a` value to another a := low plot(a)

Devuelve el valor
Una serie de valores.

Véase también
math.floor

and

La lógica AND ≠ se aplica a las expresiones de Boole.

expr1 and expr2

Devuelve el valor
El valor de Bur, o una serie de valores de Bur.

or

La lógica OR。 se aplica a las expresiones de Boole。

expr1 or expr2

Devuelve el valor
El valor de Bur, o una serie de valores de Bur.

not

La inversión lógica es NOT. Se aplica a las expresiones de Boole.

not expr1

Devuelve el valor
El valor de Bur, o una serie de valores de Bur.

Tipo de datos clave

bool

Palabras clave del tipo bool <unk> ((bool)) para una variable o un parámetro declarado explícitamente. Los valores de la variable "Bool" pueden ser verdadero, falso o na.

Ejemplo

pine
// bool bool b = true // Same as `b = true` b := na plot(b ? open : close)

Las notas
Es opcional mencionar claramente el tipo en la declaración de la variable, a menos que se inicie con na. Para más información sobre el tipo Pine, consulte la página del manual del usuario del sistema de tipos.

Véase también
var varip int float color string true false

int

Palabras clave de tipo int para una variable o un parámetro declarados explícitamente.

Ejemplo

pine
// int int i = 14 // Same as `i = 14` i := na plot(i)

Las notas
Es opcional mencionar claramente el tipo en la declaración de la variable, a menos que se inicie con na. Para más información sobre el tipo Pine, consulte la página del manual del usuario del sistema de tipos.

Véase también
var varip float bool color string

float

Palabras clave del tipo float para una variable o un parámetro declarado explícitamente.

Ejemplo

pine
// float float f = 3.14 // Same as `f = 3.14` f := na plot(f)

Las notas
Es opcional mencionar claramente el tipo en la declaración de la variable, a menos que se inicie con na.

Véase también
var varip int bool color string

string

Palabras clave del tipo "string" para variables o parámetros declarados explícitamente.

Ejemplo

pine
// string string s = "Hello World!" // Same as `s = "Hello world!"` // string s = na // same as "" plot(na, title=s)

Las notas
Es opcional mencionar claramente el tipo en la declaración de la variable, a menos que se inicie con na. Para más información sobre el tipo Pine, consulte la página del manual del usuario del sistema de tipos.

Véase también
var varip int float bool str.tostring str.format

color

Palabras clave del tipo "color" para una variable o un parámetro de declaración explícita.

Ejemplo

pine
// color color textColor = color.green if barstate.islastconfirmedhistory runtime.log("test", textcolor = textColor)

Las notas
Los caracteres de color tienen el siguiente formato: #RRGGBB o #RRGGBBAA. Los pares de letras representan los dieciséis digitos de 00 a FF ((de 0 a 255 en decimal), donde RR, GG y BB son los valores de las proporciones de rojo, verde y azul de los colores. AA es el porcentaje de transparencia de color (o el porcentaje de alfa), donde 00 no se ve y FF no es transparente. Cuando no se proporciona el par de AA, se usa FF. Los pares de letras de dieciséis digitos pueden escribirse en mayúscula o en minúscula.
Es opcional mencionar claramente el tipo en la declaración de la variable, a menos que se inicie con na. Para más información sobre el tipo Pine, consulte la página del manual del usuario del sistema de tipos.

Véase también
var varip int float string color.rgb color.new

array

Las palabras clave del tipo de columna de la matriz de columnas que se usan para declarar variables o parámetros explícitamente.array.new<type>,array.fromLa función crea un objeto de la matriz ((o ID) }}.

Ejemplo

pine
// array array<float> a = na a := array.new<float>(1, close) plot(array.get(a, 0))

Las notas
Los objetos de la matriz son siempre en forma de una serie de pilas.

Véase también
var array.new array.from

Objects

Los objetos de la lengua PINE son ejemplos de tipos definidos por el usuario (UDT), que pueden entenderse como clases sin métodos, permitiendo a los usuarios crear tipos personalizados en la política para organizar diferentes valores en una entidad.

Definición del tipo

Vamos a definir un tipo de orden para guardar la información del pedido:

pine
type order float price float amount string symbol
  • usartypeTipo de declaración de la palabra clave
  • Después de la palabra clave type está el nombre del tipo.
  • La primera línea type define el nombre del tipo, luego se enciende en cuatro espacios para definir el campo que contiene el tipo.
  • Cada campo debe declarar su tipo de datos, por ejemplo, int, float, string.

Objeto de creación

Utiliza el tipo declarado bueno, llamadanew()Objeto de creación de la función:

pine
order1 = order.new()
pine
order1 = order.new(100, 0.1, "BTC_USDT")
pine
order1 = order.new(amount = 0.1, symbol = "BTC_USDT", price = 100)

También puedes crear objetos vacíos:

pine
order order1 = na

A continuación vemos un ejemplo real:

pine
type order float price float amount string symbol if strategy.position_size == 0 and open > close strategy.entry("long", strategy.long, 1) order1 = order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker) // runtime.log(order1) // 输出 {"data":{"price":46002.8,"amount":1,"symbol":"swap"},"_meta":0,"_type":"order"}

La siguiente es una de ellas:

pine
order1 = order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker)

También puede escribirse en la siguiente forma:

pine
order order1 = na order1 := order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker)

Tipo de objeto para el uso de la clave var

pine
//@version=5 indicator("Objects using `var` demo") //@type A custom type to hold index, price, and volume information. type BarInfo int index = bar_index float price = close float vol = volume //@variable A `BarInfo` instance whose fields persist through all iterations, starting from the first bar. var BarInfo firstBar = BarInfo.new() //@variable A `BarInfo` instance declared on every bar. BarInfo currentBar = BarInfo.new() // Plot the `index` fields of both instances to compare the difference. plot(firstBar.index, "firstBar") plot(currentBar.index, "currentBar")

Cuando se usa una declaración de la palabra clave var para asignar una variable a un objeto de un tipo definido por el usuario, la palabra clave se aplica automáticamente a todos los campos de ese objeto. Esto significa que un objeto declarado a través de la palabra clave var mantendrá su estado entre cada iteración sin la necesidad de reiniciar su valor de campo en cada iteración.

  • El firstBar se declara con la palabra clave var, por lo que su campo (index, price, vol) mantendrá su valor en cada iterada, desde el primer elemento hasta el último.
  • El objeto currentBar no usa la declaración de la palabra clave var, por lo que su campo se reinicializa en cada entrada y hay un nuevo objeto en cada repetición.

Al trazar los campos de índice de dos objetos, puede comparar las diferencias entre ellos. firstBar.index mantendrá el valor previamente establecido en cada repetición, mientras que currentBar.index se reinicializará en cada repetición como el valor de bar_index de la entrada actual.

Tipo de objeto para el uso de la palabra clave varip

pine
//@version=5 indicator("Objects using `varip` fields demo") //@type A custom type that counts the bars and ticks in the script's execution. type Counter int bars = 0 varip int ticks = 0 //@variable A `Counter` object whose reference persists throughout all bars. var Counter counter = Counter.new() // Add 1 to the `bars` and `ticks` fields. The `ticks` field is not subject to rollback on unconfirmed bars. counter.bars += 1 counter.ticks += 1 // Plot both fields for comparison. plot(counter.bars, "Bar counter", color.blue, 3) plot(counter.ticks, "Tick counter", color.purple, 3)

En Pine, el uso de la palabra clave varip puede indicar que el campo del objeto persiste durante toda la ejecución del script, sin que se vuelva a rodar en una columna no confirmada.
En las declaraciones de tipo Counter, el campo bars no usa la palabra clave varip, por lo que se desliza en cada columna no confirmada. El campo ticks usa la palabra clave varip, por lo que no se desliza en columnas no confirmadas.
El objeto counter está declarado con la palabra clave var, por lo que persistirá durante toda la ejecución del script.
En cada repetición, los campos de barras y ticks se incrementan 1 ≠. Los campos de barras se vuelven dentro de cada columna no confirmada, mientras que los campos de ticks no se vuelven.
Finalmente, mediante el trazado de los campos counter.bars y counter.ticks, se pueden comparar las diferencias entre ellos. El valor de counter.bars se volverá a rodar dentro de cada columna no confirmada, mientras que el valor de counter.ticks continuará aumentando hasta que finalice la ejecución del script.

Modificar el valor del campo

pine
type order float price float amount string symbol if strategy.position_size == 0 and open > close strategy.entry("long", strategy.long, 1) order1 = order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker) if strategy.position_size != 0 runtime.log(order1) order1.price := 999 order1.amount := 100 runtime.log(order1) runtime.error("stop")

Se puede usar:=El operador de reasignación cambia el valor del campo objeto.

Colección de objetos

El ejemplo declara un array NULL que guardará objetos del tipo order definido por el usuario:

pine
type order float price float amount string symbol arrOrder = array.new<order>() order1 = order.new(99, 1, "BTC_USDT") order2 = order.new(100, 2, "ETH_USDT") array.push(arrOrder, order1) array.push(arrOrder, order2) runtime.log(arrOrder) runtime.error("stop")

o

pine
type order float price float amount string symbol var array<order> arrOrder = na arrOrder := array.new<order>() order1 = order.new(99, 1, "BTC_USDT") order2 = order.new(100, 2, "ETH_USDT") array.push(arrOrder, order1) array.push(arrOrder, order2) runtime.log(arrOrder) runtime.error("stop")

Objeto de la copia

En Pine, los objetos se asignan por referencia. Cuando un objeto existente se asigna a una nueva variable, ambos apuntan al mismo objeto.

pine
//@version=5 indicator("") type pivotPoint int x float y pivot1 = pivotPoint.new() pivot1.x := 1000 pivot2 = pivot1 pivot2.x := 2000 // Both plot the value 2000. plot(pivot1.x) plot(pivot2.x)

En el siguiente ejemplo, creamos un objeto pivot1 y fijamos su campo x en 1000 ≠. Luego, declaramos que un pivot2 contiene una variable que hace referencia a ese objeto pivot1, por lo que ambos apuntan a la misma instancia. Por lo tanto, cambiar pivot2.x también cambia pivot1.x, ya que ambos hacen referencia a un campo x del mismo objeto ≠.

Para crear una copia independiente del objeto original, en este caso podemos usar el método de copiar () interno. En este ejemplo, declaramos que pivot2 hace referencia a una variable de la instancia de copia del objeto pivot1. Ahora bien, cambiar pivot2.x no cambia pivot1.x, ya que se refiere a un campo de un objeto independiente x:

pine
//@version=5 indicator("") type pivotPoint int x float y pivot1 = pivotPoint.new() pivot1.x := 1000 pivot2 = pivotPoint.copy(pivot1) pivot2.x := 2000 // Plots 1000 and 2000. plot(pivot1.x) plot(pivot2.x)

Tenga en cuenta que el método de copia de TradingView es una copia en blanco. Si el objeto tiene campos de tipo especial (array, etc.), los campos en la copia en blanco del objeto se referirán a la misma instancia que el objeto.
La plataforma FMZ permite la copia profunda directamente, sin necesidad de realizar ningún tipo de procesamiento adicional, como se puede ver en los siguientes ejemplos:

Copias profundas

pine
//@version=5 indicator("test deepCopy") type orderInfo float price float amount type labelInfo orderInfo order string labelMsg labelInfo1 = labelInfo.new(orderInfo.new(100, 0.1), "test labelInfo1") labelInfo2 = labelInfo.copy(labelInfo1) labelInfo1.labelMsg := "labelInfo1->2" // 修改 labelInfo1 的基础类型字段,看是否影响 labelInfo2 labelInfo1.order.price := 999 // 修改 labelInfo1 的复合类型字段,看是否影响 labelInfo2 runtime.log(labelInfo1) runtime.log(labelInfo2) runtime.error("stop")

El resultado de la prueba, labelInfo.copy ((labelInfo1) se ejecuta como una copia profunda, modificando cualquier campo de labelInfo1 no afectará a labelInfo2。

Methods

Los métodos del lenguaje Pine son funciones especializadas asociadas a los tipos incorporados o definidos por el usuario en una instancia específica. En la mayoría de los aspectos, son básicamente las mismas funciones que las funciones regulares, pero ofrecen una sintaxis más corta y más conveniente. Los usuarios pueden acceder a los métodos en las variables directamente con signos de punto, como si accedieran a los campos de los objetos Pine.

Métodos integrados

Por ejemplo, un fragmento de código de este guión:

pine
//@version=5 indicator("Custom Sample BB", overlay = true) float sourceInput = input.source(close, "Source") int samplesInput = input.int(20, "Samples") int n = input.int(10, "Bars") float multiplier = input.float(2.0, "StdDev") var array<float> sourceArray = array.new<float>(samplesInput) var float sampleMean = na var float sampleDev = na // Identify if `n` bars have passed. if bar_index % n == 0 // Update the queue. array.push(sourceArray, sourceInput) array.shift(sourceArray) // Update the mean and standard deviaiton values. sampleMean := array.avg(sourceArray) sampleDev := array.stdev(sourceArray) * multiplier // Calculate bands. float highBand = sampleMean + sampleDev float lowBand = sampleMean - sampleDev plot(sampleMean, "Basis", color.orange) plot(highBand, "Upper", color.lime) plot(lowBand, "Lower", color.red)

El equivalente se puede traducir como:

pine
//@version=5 indicator("Custom Sample BB", overlay = true) float sourceInput = input.source(close, "Source") int samplesInput = input.int(20, "Samples") int n = input.int(10, "Bars") float multiplier = input.float(2.0, "StdDev") var array<float> sourceArray = array.new<float>(samplesInput) var float sampleMean = na var float sampleDev = na // Identify if `n` bars have passed. if bar_index % n == 0 // Update the queue. sourceArray.push(sourceInput) sourceArray.shift() // Update the mean and standard deviaiton values. sampleMean := sourceArray.avg() sampleDev := sourceArray.stdev() * multiplier // Calculate band values. float highBand = sampleMean + sampleDev float lowBand = sampleMean - sampleDev plot(sampleMean, "Basis", color.orange) plot(highBand, "Upper", color.lime) plot(lowBand, "Lower", color.red)

Se puede ver que PINE apoyaMethodsDespués, el código.array.avg(sourceArray)En el caso de los métodos, se puede escribir en la forma:sourceArray.avg()
Atención: FMZ no está disponible por el momentoarray.avgEs una llamada.

Métodos definidos por el usuario

El método de definición es esencialmente el mismo que la función de definición, pero con dos diferencias clave:

  1. La palabra clave method debe estar incluida antes del nombre de la función.
  2. Parámetros de un método, en los que el tipo del primer parámetro debe ser una declaración expresa, ya que indica el tipo de objeto al que el método se relacionará.

Por ejemplo, el siguiente código contiene el código para el cálculo de la medición de Bryn como un método personalizado por el usuario:

pine
//@version=5 indicator("Custom Sample BB", overlay = true) float sourceInput = input.source(close, "Source") int samplesInput = input.int(20, "Samples") int n = input.int(10, "Bars") float multiplier = input.float(2.0, "StdDev") var array<float> sourceArray = array.new<float>(samplesInput) var float sampleMean = na var float sampleDev = na // Identify if `n` bars have passed. if bar_index % n == 0 // Update the queue. sourceArray.push(sourceInput) sourceArray.shift() // Update the mean and standard deviaiton values. sampleMean := sourceArray.avg() sampleDev := sourceArray.stdev() * multiplier // Calculate band values. float highBand = sampleMean + sampleDev float lowBand = sampleMean - sampleDev plot(sampleMean, "Basis", color.orange) plot(highBand, "Upper", color.lime) plot(lowBand, "Lower", color.red)

Se ha modificado a:

pine
//@version=5 indicator("Custom Sample BB", overlay = true) float sourceInput = input.source(close, "Source") int samplesInput = input.int(20, "Samples") int n = input.int(10, "Bars") float multiplier = input.float(2.0, "StdDev") var array<float> sourceArray = array.new<float>(samplesInput) method maintainQueue(array<float> srcArray, float value, bool takeSample = true) => if takeSample srcArray.push(value) srcArray.shift() srcArray method calcBB(array<float> srcArray, float mult, bool calculate = true) => var float mean = na var float dev = na if calculate mean := srcArray.avg() dev := srcArray.stdev() * mult [mean, mean + dev, mean - dev] bool newSample = bar_index % n == 0 [sampleMean, highBand, lowBand] = sourceArray.maintainQueue(sourceInput, newSample).calcBB(multiplier, newSample) plot(sampleMean, "Basis", color.orange) plot(highBand, "Upper", color.lime) plot(lowBand, "Lower", color.red)

Se puede ver que el primer parámetro en la lista de parámetros de calcBB esarray<float>El tipo ≠ indica que el método esarray<float>El método de la variable de tipo, por lo que se puede ver la invocación del siguiente código para calcular el indicador de Brin.

pine
[sampleMean, highBand, lowBand] = sourceArray.maintainQueue(sourceInput, newSample).calcBB(multiplier, newSample)

Recarga de métodos

Los métodos definidos por el usuario pueden sobreponerse y sobrecargar métodos ya existentes con el mismo identificador y definidos por el usuario. Esta función permite a los usuarios definir, bajo el mismo nombre de método, varias rutinas asociadas con diferentes firmas de parámetros. Como un simple ejemplo, supongamos que queremos definir un método para identificar el tipo de variable.

pine
//@version=5 indicator("Type Inspection") // @function Identifies an object's type. // @param this Object to inspect. // @returns (string) A string representation of the type. method getType(int this) => na(this) ? "int(na)" : "int" method getType(float this) => na(this) ? "float(na)" : "float" method getType(bool this) => na(this) ? "bool(na)" : "bool" method getType(color this) => na(this) ? "color(na)" : "color" method getType(string this) => na(this) ? "string(na)" : "string" a = 1 // a.getType(): float b = 1.0 // b.getType(): float c = true // c.getType(): bool d = color.white // d.getType(): string(na) e = "1" // e.getType(): string runtime.log("a.getType():", a.getType()) runtime.log("b.getType():", b.getType()) runtime.log("c.getType():", c.getType()) runtime.log("d.getType():", d.getType()) runtime.log("e.getType():", e.getType()) runtime.error("stop")

Determinación del tipo básico de cada variablegetType()¿Qué tipo de carga se usará? En la plataforma FMZ, los tipos de valores se juzgan como datos de tipo flotante porque el substrato de los scripts PINE se implementa en el lenguaje Javascript.

Funciones integradas

Cuando se llama a una función se transmiten los parámetros, se puede especificar el nombre de la asignación de parámetros, se puede transmitir la variable directamente en la posición de los parámetros correspondientes, también se admite el uso mixto. Por ejemplo:

pine
plot(close, title="test plot") // 直接传参数 close ;指定参数 title ,赋值字符串"test plot"

Una vez asignado el nombre del parámetro, no se puede transmitir directamente la variable como parámetro, y los parámetros posteriores deben escribirse en forma de asignación del nombre del parámetro.

pine
// plot(close, title="test", color.red) // 虽然plot第三个参数是颜色值,但是这样写就会报错 plot(close, title="test", color=color.red) // 正确写法 plot(close, "test", color.red) // 正确写法

timeframe

timeframe.in_seconds

Se transmitirá atimeframeEl período de tiempo de los parámetros se convierte en segundos.

timeframe.in_seconds(timeframe)

Ejemplo

pine
// Get chart timeframe: i_tf = input.timeframe("1D") // Convert timeframe to the int value (number of seconds in 1 Day): tf = timeframe.in_seconds(i_tf) plot(tf)

Devuelve el valor
timeframeEl número de segundos en una línea K de int representa la forma ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠

parámetro

  • timeframe(simple string) Período de tiempo。 opcional。 el valor por defecto es timeframe.period。

Las notas
Para eltimeframe>= La función '1M' calcula el número de segundos en función de los 30.4167 (365/12) días de un mes.

Véase también
input.timeframe timeframe.period

ticker

ticker.heikinashi

La creación de un identificador de código solicita el valor de la línea K de la media lisa.

ticker.heikinashi(symbol)

Ejemplo

pine
heikinashi_close = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close) heikinashi_aapl_60_close = request.security(ticker.heikinashi(syminfo.tickerid), "60", close) plot(heikinashi_close) plot(heikinashi_aapl_60_close)

Devuelve el valor
El valor de la cadena de código de la acción puede ser proporcionado a la función request.security。

parámetro

  • symbol(simple string) Identificador de código de mercancía。

Véase también
syminfo.tickerid syminfo.ticker request.security

request

request.data

Solicitud de datos externos

request.data(url, attribute)

Ejemplo

pine
/*backtest start: 2024-09-01 16:00:00 end: 2024-10-10 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] args: [["RunMode",1,358374],["ZPrecision",0,358374]] */ var chart_data = "https://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/data" spotPrice = request.data(chart_data, "$.spot_close_price") futuresPrice = request.data(chart_data, "$.future_close_price") diff = futuresPrice - spotPrice plot(diff, "永续-现货差价") plot(futuresPrice, "期货价格", overlay=true) plot(spotPrice, "现货价格", overlay=true) if diff > 80 and strategy.position_size >= 0 runtime.log("diff > 80") strategy.entry("Enter Short", strategy.short) if diff < 60 and strategy.position_size <= 0 runtime.log("diff < 60") strategy.entry("Enter Short", strategy.long)

Devuelve el valor
parámetroattributeSerie de datos designada

parámetro

  • url(simple string) La url de la fuente de datos de la solicitud, el formato de datos de la respuesta de la fuente de datos debe cumplir con los requisitos (incluyendo al menos las propiedades time, data):{"data": [], "schema": ["time", "data"]}◦ Los formatos de datos de los ejemplos:

    json
    { "data": [ [1720051200000, "{\"spot_close_price\" : 57050.01, \"future_close_price\" : 57045.9}"], [1720137600000, "{\"spot_close_price\" : 56628.79, \"future_close_price\" : 56604.9}"], // ... ], "schema": ["time", "data"] }
  • attribute(simple string) Especifica el nombre de la propiedad y devuelve los datos requeridos. Por ejemplo:"$.spot_close_price",usar$.Como prefijo, los nombres de las propiedades coinciden con las propiedades en los campos de datos en los datos a los que se responde cuando se solicita la fuente de datos

Si el mensaje es incorrecto, hay que comprobarlo.request.dataSi el rango de tiempo de la solicitud coincide con el rango de tiempo de la configuración de retroceso, se producirá un error al no consultar los datos en la secuencia de tiempo de retroceso.

En este ejemplo, la instrucción data-data de la consulta de datos de la instrucción SQL:

sql
WITH latest_data AS ( SELECT klines.spot_1d.Time AS time, CONCAT('{\"spot_close_price\" : ', klines.spot_1d.Close, ', \"future_close_price\" : ', klines.future_1d.Close, '}') AS data FROM klines.spot_1d JOIN klines.future_1d ON klines.spot_1d.Time = klines.future_1d.Time WHERE klines.spot_1d.Symbol = 'btc_usdt' AND klines.future_1d.Symbol = 'btc_usdt.swap' AND klines.spot_1d.Exchange = 'Binance' AND klines.future_1d.Exchange = 'Binance' ORDER BY klines.spot_1d.Time DESC LIMIT 100 ) SELECT * FROM latest_data ORDER BY time ASC;

Se puede encontrar en FMZ.Exploración de datosConsultar páginas, crear enlaces de datos, como en el ejemplohttps://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/data

request.security

Se requiere otra variedad/resolución

request.security(symbol, timeframe, expression, gaps, lookahead, ignore_invalid_symbol, currency)

Ejemplo

pine
s = request.security(syminfo.tickerid, "D", close) // 1 Day plot(s) expr = ta.sma(close, 10) s1 = request.security(syminfo.tickerid, "240", expr) // 240 Minutes plot(s1) // To avoid difference in calculation on history/realtime you can request not latest values and use merge strategy flags as follows: s2 = request.security(syminfo.tickerid, "D", close[1], barmerge.gaps_off, barmerge.lookahead_on) plot(s2) f() => [open, high] [o, h] = request.security(syminfo.tickerid, "D", f()) [l, c] = request.security(syminfo.tickerid, "D", [low, close]) plot((o + h + l + c) / 4)

Devuelve el valor
Serie de requerimientos

parámetro

  • symbol(simple string) Código del producto.
  • timeframe(simple string) Período de tiempo △ La cadena vacía se interpretará como el período de tiempo actual de la tabla △
  • expression(series int/float/bool/color) se puede calcular y devolver una expresión desde la invocación request.security. Puede ser una serie o un subgrupo que contiene elementos que se pueden convertir en series.
  • gaps(barmerge_gaps) Da la estrategia de fusión de datos solicitada (que requiere que los datos se fusionen automáticamente con la serie principal de datos de OHLC). Valores posibles: barmerge.gaps_on, barmerge.gaps_off. barmerge.gaps_on - los datos solicitados se fusionan con los posibles huecos (valores na). barmerge.gaps_off - los datos solicitados se fusionan continuamente, todos los huecos se llenan con los valores existentes más recientes. El valor predeterminado es barmerge.gaps_off.
  • lookahead(barmerge_lookahead) Da la estrategia de fusión de datos solicitada. Valores posibles: barmerge.lookahead_on, barmerge.lookahead_off. Desde la versión 3, el valor por defecto es barmerge.lookahead_off. Tenga en cuenta que el comportamiento es el mismo que en tiempo real, solo que es diferente en el historial.
  • ignore_invalid_symbol(const bool) Un parámetro opcional. Si no se encuentra el producto especificado, determina el comportamiento de la función: si es false, el script se detiene y devuelve error al ejecutarse; si es true, la función devuelve na y continúa ejecutándose. El valor por defecto es false.
  • currency(simple string) Convierte el valor de referencia monetaria de la mercancía (por ejemplo, OHLC) en moneda. Luego calcula el valor después de la conversión (<unk>expression<unk>. La tasa de conversión utilizada se basa en el tipo de cambio diario del día anterior de la pareja FX_IDC (<unk>) con respecto a la línea K que se calcula).

Las notas
El código de PineScript que usa esta función puede hacer diferentes cálculos para el registro histórico y los datos en tiempo real.
Si desea especificar parámetros adicionales para la mercancía solicitada, como el tiempo de transacción o el tipo de ajuste, puede usar la función ticker.new ().
No se puede usar la variable 'ticker' para transmitir el diferencial a esta función. Se puede usar la variable 'ticker.new' o la representación en forma de una cadena de código de acciones, por ejemplo AAPL+MSFT*TSLA”。
En la actualidad, una secuencia de comandos puede tener un máximo de 40 invocaciones request.security.
Tenga en cuenta que el uso de esta variable/función puede causar que el indicador sea rediseñado.
Los parámetros de resolución permitidos son:
1S, 5S, 15S, 30S - Intervalo de segundos (el período de la gráfica debe ser menor o igual al período solicitado)
Desde 1 hasta 1440 minutos
Desde 1 D hasta 365 Días
Unas semanas de 1W a 52W
De 1M a 12M en unos meses

Véase también
syminfo.ticker syminfo.tickerid timeframe.period ta.correlation barmerge.lookahead_off barmerge.lookahead_on

str

str.contains

Si es asísourceLas cadenas contienenstrSi la secuencia de caracteres es una secuencia de caracteres, entonces devuelve true, y si no, devuelve false.

str.contains(source, str)

Ejemplo

pine
// If the current chart is a continuous futures chart, e.g “BTC1!”, then the function will return true, false otherwise. var isFutures = str.contains(syminfo.tickerid, "!") plot(isFutures ? 1 : 0)

Devuelve el valor
Si en elsourceEncontrado en la cadenastr, es verdadero, o es falso.

parámetro

  • source(series string) Fuente de la cadena
  • str(series string) La secuencia de caracteres que se quiere buscar.

Véase también
str.pos str.match

str.endswith

Si es asísourceLas cadenas sonstrSi la secuencia de caracteres se termina con un número determinado, se devuelve true, y si no, se devuelve false.

str.endswith(source, str)

Devuelve el valor
Si es asísourceLas cadenas sonstrLa secuencia de caracteres que se especifica en el extremo es verdadera o falsa.

parámetro

  • source(series string) Fuente de la cadena
  • str(series string) La secuencia de caracteres que se quiere buscar.

Véase también
str.startswith

str.startswith

Si es asísourceLas cadenas sonstrSi la secuencia de caracteres se inicia con un número determinado, se devuelve true, y si no, se devuelve false.

str.startswith(source, str)

Devuelve el valor
Si es asísourceLas cadenas sonstrLa secuencia de caracteres especificada en el substring comienza con true y termina con false.

parámetro

  • source(series string) Fuente de la cadena
  • str(series string) La secuencia de caracteres que se quiere buscar.

Véase también
str.endswith

str.substring

Regresa una nueva cadena, que essourceLas subcadenas de una cadena.begin_posComienza con un carácter en el índice designado y se extiende asourceEl 'end_pos - 1' de la cadena

str.substring(source, begin_pos)
str.substring(source, begin_pos, end_pos)

Ejemplo

pine
sym= "EXCHANGE_NAME:SYMBOL_NAME" pos = str.pos(sym, ":") // Get position of ":" character tkr= str.substring(sym, pos+1) // "SYMBOL_NAME" if barstate.islastconfirmedhistory runtime.log(tkr)

Devuelve el valor
Se extrae una subcadena de la cadena fuente.

parámetro

  • source(series string) La cadena de origen de la cual se extrae la cadena de subcadenas。
  • begin_pos(series int) La posición inicial de la subcadena extraída. Es exclusivo (la subcadena extraída incluye los caracteres de esa posición).
  • end_pos(series int) La posición de terminación。 es exclusiva (la cadena extraída no incluye los caracteres de esa posición)。 es opcional。 el valor por defecto essourceLa longitud de la cadena de caracteres.

Las notas
El índice de la cadena comienza en 0.begin_posigualend_pos, la función devuelve una cadena de caracteres en blanco.

Véase también
str.contains str.pos str.match

str.tonumber

str.tonumber(string)

Devuelve el valor
Si contiene números válidos, es el tipo de flotación de la cadena, de lo contrario es na。

parámetro

  • string(series string) Es una forma de representación de una cadena de int o float.

str.format

Convierte las cadenas de formato y los valores en cadenas de formato. Las cadenas de formato pueden contener texto y un paréntesis en los paréntesis {} de cada valor que se desea formatear. Cada paréntesis incluye el índice de los parámetros necesarios que se reemplazarán por él (comenzando por 0), y un indicador de formato opcional. El índice indica la ubicación del parámetro en la lista de parámetros str.format.

str.format(formatString, arg0, arg1, ...)

Ejemplo

pine
// The format specifier inside the curly braces accepts certain modifiers: // - Specify the number of decimals to display: s1 = str.format("{0,number,#.#}", 1.34) // returns: 1.3 runtime.log(s1) // - Round a float value to an integer: s2 = str.format("{0,number,integer}", 1.34) // returns: 1 runtime.log(s2) // - Display a number in currency: s3 = str.format("{0,number,currency}", 1.34) // returns: $1.34 runtime.log(s3) // - Display a number as a percentage: s4 = str.format("{0,number,percent}", 0.5) // returns: 50% runtime.log(s4) // EXAMPLES WITH SEVERAL ARGUMENTS // returns: Number 1 is not equal to 4 s5 = str.format("Number {0} is not {1} to {2}", 1, "equal", 4) runtime.log(s5) // returns: 1.34 != 1.3 s6 = str.format("{0} != {0, number, #.#}", 1.34) runtime.log(s6) // returns: 1 is equal to 1, but 2 is equal to 2 s7 = str.format("{0, number, integer} is equal to 1, but {1, number, integer} is equal to 2", 1.34, 1.52) runtime.log(s7) // returns: The cash turnover amounted to $1,340,000.00 s8 = str.format("The cash turnover amounted to {0, number, currency}", 1340000) runtime.log(s8) // returns: Expected return is 10% - 20% s9 = str.format("Expected return is {0, number, percent} - {1, number, percent}", 0.1, 0.2) runtime.log(s9)

Devuelve el valor
Las cadenas de caracteres formateadas.

parámetro

  • formatString(series string) El formato de la cadena de caracteres es .
  • arg0, arg1, ... (series int/float/bool/string/na/int[]/float[]/bool[]/string[]) Valor que se desea formatear.

Las notas
Todos los paréntesis en los estilos no citados deben mantenerse equilibrados. Por ejemplo, "ab {0} de" y "ab '}' de" son estilos válidos, pero "ab {0'}' de", "ab } de" y "''{''" no son estilos válidos.

str.length

Devuelve el número entero que corresponde al número de caracteres de la cadena.

str.length(string)

Devuelve el valor
Número de caracteres en la cadena de origen.

parámetro

  • string(series string) Fuente de la cadena

str.lower

Devuelve una nueva cadena en la que todas las letras se convierten en minúsculas.

str.lower(source)

Devuelve el valor
Todas las letras se convierten en una nueva cadena de letras minúsculas <unk>.

parámetro

  • source(series string) La cadena que se quiere convertir.

Véase también
str.upper

str.upper

Devuelve una nueva cadena en la que todas las letras se convierten en mayúsculas.

str.upper(source)

Devuelve el valor
Todas las letras se convierten en nuevas cadenas de letras mayúsculas.

parámetro

  • source(series string) La cadena que se quiere convertir.

Véase también
str.lower

str.match

Si coincideregexExpresiones regulares que se devuelvensourceLa nueva subcadena de la cadena, de lo contrario, devuelve 'na'。

str.match(source, regex)

Ejemplo

pine
s = input.string("It's time to sell some EXCHANGE_NAME:SYMBOL_NAME!") // finding first substring that matches regular expression "[\w]+:[\w]+" var string tickerid = str.match(s, "[\\w]+:[\\w]+") if barstate.islastconfirmedhistory runtime.log(tickerid) // "EXCHANGE_NAME:SYMBOL_NAME"

Devuelve el valor
sourceLa nueva subalterna de la cadena, si coincide con unaregexLa expresión regular, de lo contrario es 'na'.

parámetro

  • source(series string) Fuente de la cadena
  • regex(series string) Expresión regular que coincide con esta cadena de caracteres ≠

Las notas
Función devuelvesourceExpresión regular que aparece por primera vez en la cadena:
regexLos signos de contraseña <unk> en las cadenas requieren el uso de contraseñas adicionales para la traducción, por ejemplo, <unk>\d<unk> representa la expresión regular <unk>\d<unk>。

Véase también
str.contains str.substring

str.pos

RegresósourceAparece por primera vez en la cadenastrLa ubicación de la cadena, de lo contrario se devuelve 'na' <unk>

str.pos(source, str)

Devuelve el valor
strLa cadena está ensourcePosiciones en la cadena

parámetro

  • source(series string) Fuente de la cadena
  • str(series string) La secuencia de caracteres que se quiere buscar.

Las notas
El índice de la cadena comienza en 0.

Véase también
str.contains str.match str.substring

str.replace

Devuelve una nueva cadena en la que aparecen las primeras N+1targetLas secuencias de caracteres y las que aparecieron antestargetSe sustituye porreplacementLas cadenas, donde N está enoccurrenceSe especifica que .N es el índice de coincidencia que aparece en la cadena de origen de la cadena de destino a reemplazar.

str.replace(source, target, replacement, occurrence)

Ejemplo

pine
var source = "EXCHANGE1:SYMBOL1 / EXCHANGE1:SYMBOL2" // Replace first occurrence of "EXCHANGE1" with "EXCHANGE2" replacement string var newSource = str.replace(source, "EXCHANGE1", "EXCHANGE2", 0) if barstate.islastconfirmedhistory // Display "EXCHANGE2:SYMBOL1 / EXCHANGE1:SYMBOL2" runtime.log(newSource)

Devuelve el valor
Cuerdas tratadas

parámetro

  • source(series string) Fuente de la cadena
  • target(series string) es sustituido por una cadena
  • replacement(series string) La cadena que se inserta en lugar de la cadena de destino.
  • occurrence(series int) La cadena de destino a reemplazar es el índice de coincidencia que aparece en la cadena de origen. El primer índice de coincidencia comienza con 0.

Véase también
str.replace_all str.match

str.replace_all

Reemplaza las cadenas de destino que aparecen en cada una de las cadenas de origen.

str.replace_all(source, target, replacement)

Devuelve el valor
Cuerdas tratadas

parámetro

  • source(series string) Fuente de la cadena
  • target(series string) es sustituido por una cadena
  • replacement(series string) Cada vez que aparece la cadena de destino se sustituye por la cadena

str.split

Divide las cadenas en sub-arreglos y devuelve su ID de la matriz.

str.split(string, separator)

Devuelve el valor
El ID de la serie de cadenas de caracteres.

parámetro

  • string(series string) Fuente de la cadena
  • separator(series string) Las cadenas que separan cada una de las sub cadenas.

str.tostring

str.tostring(value)
str.tostring(value, format)
str.tostring(value[])
str.tostring(value[], format)

Devuelve el valor
valueLas cadenas de los parámetros se expresan en la forma:
Si es asívalueSi el parámetro es una cadena, se devuelve como es.
CuandovaluePara na, la función devuelve la cadena NaN<unk>.

parámetro

  • value (series int/float/bool/string/int[]/float[]/bool[]/string[]) Su elemento se convierte en el valor de la cadena o en el ID de la matriz.
  • format (series string) Format string. Accepts these format.* constants: format.mintick, format.percent, format.volume. Optional. The default value is '#.##########'.

Las notas
Los formatos con valores de punto flotante también se encuadran en estos valores cuando es necesario, por ejemplo, str.tostring ((3.99, '#') devolverá <unk>4<unk>。
Para mostrar el cero, utilice '0' en lugar de '#'. Por ejemplo, '#.000'.
Cuando se usa format.mintick, el valor se redondea hasta el número más cercano al que se puede dividir sin restes con syminfo.mintick. La secuencia de caracteres devuelta tiene un cero a continuación.
Si el valor de x es una cadena, se devuelve el mismo valor de la cadena.
Los parámetros de tipo Bool devuelven <unk>true<unk> o <unk>false<unk>.
Cuando x es na, la función devuelve <unk>NaN<unk>。

color

color.new

El color de la función especifica la transparencia aplicada al color dado.

color.new(color, transp)

Ejemplo

pine
plot(close, color=color.new(color.red, 50))

Devuelve el valor
El color tiene una cierta transparencia.

parámetro

  • color (series color)
  • transp(series int/float) Los valores disponibles van desde 0 (no transparente) hasta 100 (no visible)

Las notas
El uso de un número extraordinario de parámetros (por ejemplo, <unk>simple<unk>, <unk>input<unk> o <unk>series<unk>) afectará el color que se muestra en la página de etiquetas de configuración / estilo de la barra de script. Consulte el manual del usuario para obtener más información.

color.rgb

Utiliza el modelo de color RGB para crear nuevos colores con transparencia.

color.rgb(red, green, blue, transp)

Ejemplo

pine
plot(close, color=color.rgb(255, 0, 0, 50))

Devuelve el valor
El color tiene una cierta transparencia.

parámetro

  • red(series int/float) Tono rojo. Los valores posibles son desde 0 hasta 255
  • green(series int/float) Tono verde. Los valores posibles son desde 0 hasta 255
  • blue(series int/float) Tono azul. Los valores posibles son desde 0 hasta 255
  • transp(series int/float) opcional. El color es transparente. Los valores posibles van desde 0 (no transparente) hasta 100 (transparente). El valor predeterminado es 0 (transparente).

Las notas
El uso de un número extraordinario de parámetros (por ejemplo, <unk>simple<unk>, <unk>input<unk> o <unk>series<unk>) afectará el color que se muestra en la página de etiquetas de configuración / estilo de la barra de script. Consulte el manual del usuario para obtener más información.

runtime

runtime.debug

Imprimir la información de las variables en el mando.

FMZ PINE tiene una función específica para el lenguaje.runtime.debug(value), sólo tiene un parámetro.

runtime.log

La salida de contenido en el diario.

FMZ PINE tiene una función específica para el lenguaje.runtime.log(1, 2, 3, close, high, ...)Se puede pasar varios parámetros.

runtime.error

Cuando se llama, puede causar errores en el tiempo de ejecución y conlleva unamessageMensaje de error especificado en el parámetro.

runtime.error(message)

parámetro
mensaje (series string) mensaje de error

input

input

Añade input a la página de etiquetas de entrada de la configuración del script, lo que le permite a los usuarios del script ofrecer opciones de configuración. Esta función detecta automáticamente el tipo de parámetros para la barra de defval y utiliza el plugin de entrada correspondiente.

input(defval, title, tooltip, inline, group)
input(defval, title, inline, group, tooltip)

Ejemplo

pine
i_switch = input(true, "On/Off") // 设置true,默认勾选 plot(i_switch ? open : na) i_len = input(7, "Length") i_src = input(close, "Source") // 下拉框,默认选择close plot(ta.sma(i_src, i_len)) i_col = input(color.red, "Plot Color") plot(close, color=i_col) i_text = input("Hello!", "Message") runtime.log(i_text)

Devuelve el valor
Valor de la variable de entrada

parámetro

  • defval(const int/float/bool/string/color or source-type built-ins) Determina el valor predeterminado de la variable de entrada recomendada en la página de etiquetas de la barra de configuración / entrada de la barra de entrada del guión, desde la que los usuarios del guión pueden cambiarla. La función de inclusión de tipo de origen es una serie de variables de inclusión de la barra de flotación que especifica la fuente de cálculo:closehlc3Y así.
  • title(const string) Título de la entrada。 Si no se especifica, el nombre de la variable se utiliza como título de la entrada。 Si se especifica el título, pero el título es vacío, el nombre será una cadena de caracteres vacío。
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se cuelga en el icono de sugerencias de herramientas.
  • inline(const string) Combina todas las invocaciones de entrada que usan el mismo parámetro en una línea. No muestra las cadenas que se usan como parámetros. Se utiliza solo para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Utiliza la misma cadena numérica de parámetros combinados para crear encabezados por encima de todas las entradas. Esta cadena también se usa como texto de encabezado.

Las notas
El valor devuelto por la función de entrada siempre debe asignarse a la variable. Ver el ejemplo anterior

Véase también
input.bool input.color input.int input.float input.string input.timeframe input.source

input.source

Añade la entrada a la página de etiquetas de entrada de la configuración del script, que le permite proporcionar opciones de configuración al usuario del script. Esta función añade un menú de caída que permite al usuario seleccionar el origen de cálculo, por ejemplo, close, hl2 etc. Si el script contiene solo una llamada input.source (), el usuario también puede seleccionar otro indicador en la tabla como fuente de salida.

input.source(defval, title, tooltip, inline, group)

Ejemplo

pine
i_src = input.source(close, "Source") plot(i_src)

Devuelve el valor
Valor de la variable de entrada

parámetro

  • defval(series int/float) Determina el valor predeterminado de la variable de entrada recomendada en la etiqueta de configuración de la barra / barra de entrada del guión, desde la que el usuario puede cambiarla.
  • title(const string) Título de la entrada。 Si no se especifica, el nombre de la variable se utiliza como título de la entrada。 Si se especifica el título, pero el título es vacío, el nombre será una cadena de caracteres vacío。
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se cuelga en el icono de sugerencias de herramientas.
  • inline(const string) Combina todas las invocaciones de entrada que usan el mismo parámetro en una línea. No muestra las cadenas que se usan como parámetros. Se utiliza solo para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Utiliza la misma cadena numérica de parámetros combinados para crear encabezados por encima de todas las entradas. Esta cadena también se usa como texto de encabezado.

Las notas
El resultado de la función input.source siempre debe asignarse a una variable, como en el ejemplo anterior.

Véase también
input.bool input.int input.float input.string input.timeframe input.color input

input.string

Añade input a la tarjeta de opciones de entrada de la configuración del script, que le permite a los usuarios del script ofrecer opciones de configuración. Esta función agrega el campo de entrada de la cadena a la entrada del script.

input.string(defval, title, options, tooltip, inline, group, confirm)

Ejemplo

pine
i_text = input.string("Hello!", "Message") runtime.log(i_text)

Devuelve el valor
Valor de la variable de entrada

parámetro

  • defval(const string) Determina el valor predeterminado de la variable de entrada recomendada en la etiqueta de configuración de barra / barra de entrada del script, desde la que el usuario puede cambiarla. Cuando la lista de valores se corresponde conoptionsCuando los parámetros se usan juntos, el valor debe ser uno de ellos.
  • title(const string) Título de la entrada。 Si no se especifica, el nombre de la variable se utiliza como título de la entrada。 Si se especifica el título, pero el título es vacío, el nombre será una cadena de caracteres vacío。
  • options (List of constants: [<type>...]) una lista de opciones disponibles para elegir.
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se cuelga en el icono de sugerencias de herramientas.
  • inline(const string) Combina todas las invocaciones de entrada que usan el mismo parámetro en una línea. No muestra las cadenas que se usan como parámetros. Se utiliza solo para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Utiliza la misma cadena numérica de parámetros combinados para crear encabezados por encima de todas las entradas. Esta cadena también se usa como texto de encabezado.
  • confirm(const bool) Si es verdadero, se le pedirá al usuario que confirme el valor de entrada antes de agregar el indicador a la tabla. El valor predeterminado es falso.

Las notas
El resultado de la función input.string siempre debe asignarse a una variable, como en el ejemplo anterior.

Véase también
input.bool input.int input.float input.timeframe input.source input.color input

input.bool

Añade input a la página de etiquetas de entrada de la configuración del script, que le permite a los usuarios del script ofrecer opciones de configuración. Esta función añade una marca de selección a la entrada del script.

input.bool(defval, title, tooltip, inline, group, confirm)

Ejemplo

pine
i_switch = input.bool(true, "On/Off") plot(i_switch ? open : na)

Devuelve el valor
Valor de la variable de entrada

parámetro

  • defval(const bool) Determina el valor predeterminado de la variable de entrada recomendada en la etiqueta de configuración de barra / barra de entrada del script, desde la que el usuario puede cambiarla.
  • title(const string) Título de la entrada。 Si no se especifica, el nombre de la variable se utiliza como título de la entrada。 Si se especifica el título, pero el título es vacío, el nombre será una cadena de caracteres vacío。
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se cuelga en el icono de sugerencias de herramientas.
  • inline(const string) Combina todas las invocaciones de entrada que usan el mismo parámetro en una línea. No muestra las cadenas que se usan como parámetros. Se utiliza solo para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Utiliza la misma cadena numérica de parámetros combinados para crear encabezados por encima de todas las entradas. Esta cadena también se usa como texto de encabezado.
  • confirm(const bool) Si es verdadero, se le pedirá al usuario que confirme el valor de entrada antes de agregar el indicador a la tabla. El valor predeterminado es falso.

Las notas
El resultado de la función input.bool siempre debe asignarse a una variable, como en el ejemplo anterior.

Véase también
input.int input.float input.string input.timeframe input.source input.color input

input.int

Añade input a la página de etiquetas de entrada de la configuración del script, que le permite a los usuarios del script ofrecer opciones de configuración. Esta función agrega el campo de entrada entero a la entrada del script.

input.int(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.int(defval, title, options, tooltip, inline, group, confirm)

Ejemplo

pine
i_len1 = input.int(10, "Length 1", minval=5, maxval=21, step=1) plot(ta.sma(close, i_len1)) i_len2 = input.int(10, "Length 2", options=[5, 10, 21]) plot(ta.sma(close, i_len2))

Devuelve el valor
Valor de la variable de entrada

parámetro

  • defval(const int) Determina el valor predeterminado de la variable de entrada recomendada en la etiqueta de configuración de barra / barra de entrada del script, desde la cual el usuario del script puede cambiarla. Cuando la lista de valores es igual aoptionsCuando los parámetros se usan juntos, el valor debe ser uno de ellos.
  • title(const string) Título de la entrada。 Si no se especifica, el nombre de la variable se utiliza como título de la entrada。 Si se especifica el título, pero el título es vacío, el nombre será una cadena de caracteres vacío。
  • minval(const int) El valor mínimo posible de la variable de entrada。 opcional。
  • maxval(const int) El valor máximo posible de la variable de entrada。 opcional。
  • step(const int) La longitud de paso para aumentar/reducir la entrada es opcional. El valor por defecto es 1
  • options (tuple of const int values: [val1, val2, ...]) Lista de opciones seleccionadas desde el menú desplegable, separadas por comillas y rodeadas de paréntesis cuadradas:[val1, val2, ...] ≠ no se puede usar cuando se usa este parámetrominvalmaxvalystepParámetros
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se cuelga en el icono de sugerencias de herramientas.
  • inline(const string) Combina todas las invocaciones de entrada que usan el mismo parámetro en una línea. No muestra las cadenas que se usan como parámetros. Se utiliza solo para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Utiliza la misma cadena numérica de parámetros combinados para crear encabezados por encima de todas las entradas. Esta cadena también se usa como texto de encabezado.
  • confirm(const bool) Si es verdadero, se le pedirá al usuario que confirme el valor de entrada antes de agregar el indicador a la tabla. El valor predeterminado es falso.

Las notas
El resultado de la función input.int siempre debe asignarse a una variable, como en el ejemplo anterior.

Véase también
input.bool input.float input.string input.timeframe input.source input.color input

input.float

Añade input a la página de etiquetas de entrada de la configuración del script, que le permite a los usuarios del script ofrecer opciones de configuración. Esta función agrega el campo de entrada de flotación a la entrada del script.

input.float(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.float(defval, title, options, tooltip, inline, group, confirm)

Ejemplo

pine
i_angle1 = input.float(0.5, "Sin Angle", minval=-3.14, maxval=3.14, step=0.02) plot(math.sin(i_angle1) > 0 ? close : open, "sin", color=color.green) i_angle2 = input.float(0, "Cos Angle", options=[-3.14, -1.57, 0, 1.57, 3.14]) plot(math.cos(i_angle2) > 0 ? close : open, "cos", color=color.red)

Devuelve el valor
Valor de la variable de entrada

parámetro

  • defval(const int/float) Determina el valor predeterminado de la variable de entrada recomendada en la etiqueta de configuración de barra / barra de entrada del guión, desde el cual el usuario del guión puede cambiarlo. Cuando la lista de valores es igual aoptionsCuando los parámetros se usan juntos, el valor debe ser uno de ellos.
  • title(const string) Título de la entrada。 Si no se especifica, el nombre de la variable se utiliza como título de la entrada。 Si se especifica el título, pero el título es vacío, el nombre será una cadena de caracteres vacío。
  • minval(const int/float) El valor mínimo posible de la variable de entrada。 es opcional。
  • maxval(const int/float) El valor máximo posible de la variable de entrada。 opcional。
  • step(const int/float) Se usa para incrementar/reducir la longitud de paso de la entrada. Opcional. El valor predeterminado es 1
  • options (tuple of const int/float values: [val1, val2, ...]) Lista de opciones seleccionadas desde el menú desplegable, separadas por comillas y rodeadas de paréntesis cuadradas:[val1, val2, ...] ≠ no se puede usar cuando se usa este parámetrominvalmaxvalystepParámetros
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se cuelga en el icono de sugerencias de herramientas.
  • inline(const string) Combina todas las invocaciones de entrada que usan el mismo parámetro en una línea. No muestra las cadenas que se usan como parámetros. Se utiliza solo para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Utiliza la misma cadena numérica de parámetros combinados para crear encabezados por encima de todas las entradas. Esta cadena también se usa como texto de encabezado.
  • confirm(const bool) Si es verdadero, se le pedirá al usuario que confirme el valor de entrada antes de agregar el indicador a la tabla. El valor predeterminado es falso.

Las notas
El resultado de la función input.float siempre debe asignarse a una variable, como en el ejemplo anterior.

Véase también
input.bool input.int input.string input.timeframe input.source input.color input

input.color

Añade input a la página de etiquetas de entrada de la configuración del script, que le permite a los usuarios del script ofrecer opciones de configuración. Esta función agrega un selector de color que permite al usuario elegir el color y la transparencia del panel de colores o de los valores de decimoseis.

input.color(defval, title, tooltip, inline, group, confirm)

Ejemplo

pine
i_col = input.color(color.red, "Plot Color") plot(close, color=i_col)

Devuelve el valor
Valor de la variable de entrada

parámetro

  • defval(const color) Determina el valor predeterminado de la variable de entrada recomendada en la etiqueta de configuración de barra / barra de entrada del guión, desde la que el usuario puede cambiarla.
  • title(const string) Título de la entrada。 Si no se especifica, el nombre de la variable se utiliza como título de la entrada。 Si se especifica el título, pero el título es vacío, el nombre será una cadena de caracteres vacío。
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se cuelga en el icono de sugerencias de herramientas.
  • inline(const string) Combina todas las invocaciones de entrada que usan el mismo parámetro en una línea. No muestra las cadenas que se usan como parámetros. Se utiliza solo para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Utiliza la misma cadena numérica de parámetros combinados para crear encabezados por encima de todas las entradas. Esta cadena también se usa como texto de encabezado.
  • confirm(const bool) Si es verdadero, se le pedirá al usuario que confirme el valor de entrada antes de agregar el indicador a la tabla. El valor predeterminado es falso.

Las notas
El resultado de la función input.color siempre debe asignarse a una variable, como en el ejemplo anterior.

Véase también
input.bool input.int input.float input.string input.timeframe input.source input

input.price

Añade la entrada de precios a la etiqueta de configuración de la barra / entrada de la barra del guión.confirm = trueActiva el modo de entrada interactiva y selecciona el precio haciendo clic en el gráfico.

input.price(defval, title, tooltip, inline, group, confirm)

Ejemplo

pine
price1 = input.price(title="Date", defval=42) plot(price1) price2 = input.price(54, title="Date") plot(price2)

Devuelve el valor
Valor de la variable de entrada

parámetro

  • defval(const int/float) Determina el valor predeterminado de la variable de entrada recomendada en la etiqueta de configuración de barra / barra de entrada del guión, desde la que el usuario puede cambiarla.
  • title(const string) Título de la entrada。 Si no se especifica, el nombre de la variable se utiliza como título de la entrada。 Si se especifica el título, pero el título es vacío, el nombre será una cadena de caracteres vacío。
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se cuelga en el icono de sugerencias de herramientas.
  • inline(const string) Combina todas las invocaciones de entrada que usan el mismo parámetro en una línea. No muestra las cadenas que se usan como parámetros. Se utiliza solo para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Utiliza la misma cadena numérica de parámetros combinados para crear encabezados por encima de todas las entradas. Esta cadena también se usa como texto de encabezado.
  • confirm(const bool) Si es verdadero, se activa el modo de entrada interactiva y se realiza la selección haciendo clic en el gráfico al agregar el indicador a la tabla, o seleccionando el indicador y luego moviendo la selección. Opcional. El valor por defecto es falso.

Las notas
Cuando se usa el modo interactivo, si dos funciones se llaman a sí mismasinlineLos parámetros que usan el mismo parámetro se pueden combinar con la entrada de tiempo y la entrada de precio.

Véase también
input.bool input.int input.float input.string input.resolution input.source input.color input

input.timeframe

Añade input a la página de etiquetas de entrada de la configuración del script, que le permite proporcionar opciones de configuración a los usuarios del script. Esta función agrega una lista de descarga que permite al usuario seleccionar un período de tiempo específico a través del selector de períodos de tiempo y devolverlo como una cadena. El selector incluye períodos de tiempo personalizados que el usuario puede usar en el gráfico añadido por el menú de descarga.

input.timeframe(defval, title, options, tooltip, inline, group, confirm)

Ejemplo

pine
i_res = input.timeframe('D', "Resolution", options=['D', 'W', 'M']) s = request.security(syminfo.tickerid, i_res, close) plot(s)

Devuelve el valor
Valor de la variable de entrada

parámetro

  • defval(const string) Determina el valor predeterminado de la variable de entrada recomendada en la etiqueta de configuración de barra / barra de entrada del script, desde la que el usuario puede cambiarla. Cuando la lista de valores se corresponde conoptionsCuando los parámetros se usan juntos, el valor debe ser uno de ellos.
  • title(const string) Título de la entrada。 Si no se especifica, el nombre de la variable se utiliza como título de la entrada。 Si se especifica el título, pero el título es vacío, el nombre será una cadena de caracteres vacío。
  • options (tuple of const string values: [val1, val2, ...]) La lista de opciones disponibles para elegir.
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se cuelga en el icono de sugerencias de herramientas.
  • inline(const string) Combina todas las invocaciones de entrada que usan el mismo parámetro en una línea. No muestra las cadenas que se usan como parámetros. Se utiliza solo para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Utiliza la misma cadena numérica de parámetros combinados para crear encabezados por encima de todas las entradas. Esta cadena también se usa como texto de encabezado.
  • confirm(const bool) Si es verdadero, se le pedirá al usuario que confirme el valor de entrada antes de agregar el indicador a la tabla. El valor predeterminado es falso.

Las notas
El resultado de la función input.timeframe siempre debe asignarse a una variable, como en el ejemplo anterior.

Véase también
input.bool input.int input.float input.string input.source input.color input

input.integer

Por ahora

input.resolution

Por ahora

ta

ta.alma

La media móvil de Arnaud Legoux. Utiliza la distribución de Gauss como peso de las medias móviles.

ta.alma(series, length, offset, sigma)
ta.alma(series, length, offset, sigma, floor)

Ejemplo

pine
plot(ta.alma(close, 9, 0.85, 6)) // same on pine, but much less efficient pine_alma(series, windowsize, offset, sigma) => m = offset * (windowsize - 1) //m = math.floor(offset * (windowsize - 1)) // Used as m when math.floor=true s = windowsize / sigma norm = 0.0 sum = 0.0 for i = 0 to windowsize - 1 weight = math.exp(-1 * math.pow(i - m, 2) / (2 * math.pow(s, 2))) norm := norm + weight sum := sum + series[windowsize - i - 1] * weight sum / norm plot(pine_alma(close, 9, 0.85, 6))

Devuelve el valor
La media móvil de Arnaud Legoux

parámetro

  • series(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).
  • offset(simple int/float) Balance entre control de la suavidad ((más cerca de 1) y la capacidad de respuesta ((más cerca de 0)).
  • sigma(simple int/float) Cambia la suavidad de ALMA. Cuanto más grande es la sigma, más suave es ALMA.
  • floor(simple bool) Parámetros opcionales. Antes de calcular ALMA, especifique si el cálculo del desplazamiento es el límite inferior. El valor predeterminado es false.

Véase también
ta.sma ta.ema ta.rma ta.wma ta.vwma ta.swma

ta.sma

La función sma devuelve el promedio móvil, es decir, el último valor y de x, dividido por y。

ta.sma(source, length)

Ejemplo

pine
plot(ta.sma(close, 15)) // same on pine, but much less efficient pine_sma(x, y) => sum = 0.0 for i = 0 to y - 1 sum := sum + x[i] / y sum plot(pine_sma(close, 15))

Devuelve el valor
lengthLa línea K regresó.sourceEl promedio móvil simple de

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

Véase también
ta.ema ta.rma ta.wma ta.vwma ta.swma ta.alma

ta.cog

cog ((punto de enfoque) es un indicador basado en la estadística y la proporción de oro de Fibonacci.

ta.cog(source, length)

Ejemplo

pine
plot(ta.cog(close, 10)) // the same on pine pine_cog(source, length) => sum = math.sum(source, length) num = 0.0 for i = 0 to length - 1 price = source[i] num := num + price * (i + 1) -num / sum plot(pine_cog(close, 10))

Devuelve el valor
El centro de gravedad

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

Véase también
ta.stoch

ta.dev

Diferencias entre la serie de medidas y su ta.sma

ta.dev(source, length)

Ejemplo

pine
plot(ta.dev(close, 10)) // the same on pine pine_dev(source, length) => mean = ta.sma(source, length) sum = 0.0 for i = 0 to length - 1 val = source[i] sum := sum + math.abs(val - mean) dev = sum/length plot(pine_dev(close, 10))

Devuelve el valor
lengthLa línea K regresó.source¿Qué es lo que está pasando?

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

Véase también
ta.variance ta.stdev

ta.stdev

ta.stdev(source, length, biased)

Ejemplo

pine
plot(ta.stdev(close, 5)) //the same on pine isZero(val, eps) => math.abs(val) <= eps SUM(fst, snd) => EPS = 1e-10 res = fst + snd if isZero(res, EPS) res := 0 else if not isZero(res, 1e-4) res := res else 15 pine_stdev(src, length) => avg = ta.sma(src, length) sumOfSquareDeviations = 0.0 for i = 0 to length - 1 sum = SUM(src[i], -avg) sumOfSquareDeviations := sumOfSquareDeviations + sum * sum stdev = math.sqrt(sumOfSquareDeviations / length) plot(pine_stdev(close, 5))

Devuelve el valor
Diferencias en el estándar

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).
  • biased(series bool) Determina qué estimación debería usarse. Opcional. El valor por defecto es verdadero.

Las notas
Si es asíbiasedSi es verdadera, la función se calculará usando una estimación parcial de la totalidad, y si es falsa, una estimación no parcial de la muestra.

Véase también
ta.dev ta.variance

ta.ema

La función ema devuelve el promedio móvil ponderado exponencial. En ema, el factor de ponderación es decreciente exponencialmente. Se calcula con la siguiente fórmula: EMA = alpha * source + (1 - alpha) * EMA[1], donde alpha = 2 / (length + 1) 。

ta.ema(source, length)

Ejemplo

pine
plot(ta.ema(close, 15)) //the same on pine pine_ema(src, length) => alpha = 2 / (length + 1) sum = 0.0 sum := na(sum[1]) ? src : alpha * src + (1 - alpha) * nz(sum[1]) plot(pine_ema(close,15))

Devuelve el valor
sourceEl promedio móvil exponencial, alfa = 2 / (longitud + 1) ◦

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(simple int) K número de líneas (longitud).

Las notas
Tenga en cuenta que el uso de esta variable/función puede causar que el indicador sea rediseñado.

Véase también
ta.sma ta.rma ta.wma ta.vwma ta.swma ta.alma

ta.wma

La función wma que se devuelvelengthLa línea K.sourceEn wma, el factor de peso se reduce en grados aritméticos.

ta.wma(source, length)

Ejemplo

pine
plot(ta.wma(close, 15)) // same on pine, but much less efficient pine_wma(x, y) => norm = 0.0 sum = 0.0 for i = 0 to y - 1 weight = (y - i) * y norm := norm + weight sum := sum + x[i] * weight sum / norm plot(pine_wma(close, 15))

Devuelve el valor
lengthLa línea K regresó.sourceLas medias móviles ponderadas.

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

Véase también
ta.sma ta.ema ta.rma ta.vwma ta.swma ta.alma

ta.swma

Promedio Movimiento Simétrico-Ponderable de longitud fija: 4. Peso:[1/6,2 / 6,2 / 6,1 / 6]。

ta.swma(source)

Ejemplo

pine
plot(ta.swma(close)) // same on pine, but less efficient pine_swma(x) => x[3] * 1 / 6 + x[2] * 2 / 6 + x[1] * 2 / 6 + x[0] * 1 / 6 plot(pine_swma(close))

Devuelve el valor
Promedio móvil ponderado simétrico.

parámetro

  • source(series int/float) serie de origen

Véase también
ta.sma ta.ema ta.rma ta.wma ta.vwma ta.alma

ta.hma

La función hma devuelve el promedio móvil del casco HMA。

ta.hma(source, length)

Ejemplo

pine
src = input(defval=close, title="Source") length = input(defval=9, title="Length") hmaBuildIn = ta.hma(src, length) plot(hmaBuildIn, title="Hull MA", color=#674EA7)

Devuelve el valor
Retorna el promedio móvil del casco de la fuente en la columna 'length' Hull Moving Average。

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(simple int) Número de líneas K

Véase también
ta.ema ta.rma ta.wma ta.vwma ta.sma

ta.rma

El promedio móvil utilizado en el RSI. Es el promedio móvil ponderado por un índice, el valor ponderado alfa = 1 / longitud.

ta.rma(source, length)

Ejemplo

pine
plot(ta.rma(close, 15)) //the same on pine pine_rma(src, length) => alpha = 1/length sum = 0.0 sum := na(sum[1]) ? ta.sma(src, length) : alpha * src + (1 - alpha) * nz(sum[1]) plot(pine_rma(close, 15))

Devuelve el valor
sourceEl promedio móvil exponencial, alfa = 1 /length

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(simple int) K número de líneas (longitud).

Véase también
ta.sma ta.ema ta.wma ta.vwma ta.swma ta.alma ta.rsi

ta.rsi

El índice de intensidad relativa.lengthK en líneasourcelos cambios hacia arriba y hacia abajota.rma()Se calcula.

ta.rsi(source, length)

Ejemplo

pine
plot(ta.rsi(close, 7)) // same on pine, but less efficient pine_rsi(x, y) => u = math.max(x - x[1], 0) // upward ta.change d = math.max(x[1] - x, 0) // downward ta.change rs = ta.rma(u, y) / ta.rma(d, y) res = 100 - 100 / (1 + rs) res plot(pine_rsi(close, 7))

Devuelve el valor
Indicador de fuerza relativa (RSI)

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(simple int) K número de líneas (longitud).

Véase también
ta.rma

ta.tsi

El índice de fortalezas reales y de debilidades. Es un promedio móvil que utiliza la movilidad potencial de los instrumentos financieros.

ta.tsi(source, short_length, long_length)

Devuelve el valor
Indice de fuerza real y debilidad.[El valor en -1,1]

parámetro

  • source(series int/float) serie de origen
  • short_length(simple int) La longitud corta de la palabra <unk>.
  • long_length(simple int) longitud de la línea larga。

ta.roc

Se muestra la función roc (variabilidad)sourceEl valor actual desourceHace unos días.lengthDiferencias entre valores.
Es calculado por la siguiente fórmula: 100 * change (src, length) / src[length]。

ta.roc(source, length)

Devuelve el valor
lengthLa línea K regresó.sourceLa tasa de variación de las tasas de desempleo

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

ta.range

Devuelve la diferencia entre el valor mínimo y máximo de la secuencia.

ta.range(source, length)

Devuelve el valor
Diferencia entre el valor mínimo y máximo de la secuencia.

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

ta.macd

El MACD (Moving Asymmetric Average) debería revelar la fuerza, la dirección, la dinámica y la duración de las tendencias de los precios de las acciones.

ta.macd(source, fastlen, slowlen, siglen)

Ejemplo

pine
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9) plot(macdLine, color=color.blue) plot(signalLine, color=color.orange) plot(histLine, color=color.red, style=plot.style_histogram)

Si sólo necesita un valor, utilice un posicionador como '_':

Ejemplo

pine
[_, signalLine, _] = ta.macd(close, 12, 26, 9) plot(signalLine, color=color.orange)

Devuelve el valor
Los tres subconjuntos de la serie MACD son: línea MACD, línea de señal y línea de gráfico rectangular.

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • fastlen(simple int) Parámetros de línea rápida
  • slowlen(simple int) Parámetros de longitud lenta。
  • siglen(simple int) Parámetros de longitud de la señal。

Véase también
ta.sma ta.ema

ta.mode

Modelo de la secuencia. Si hay varios valores con la misma frecuencia, devuelve el valor mínimo.

ta.mode(source, length)

Devuelve el valor
Modelo de la secuencia

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

ta.median

Devuelve el promedio de la secuencia.

ta.median(source, length)

Devuelve el valor
Número medio de la secuencia.

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

ta.linreg

La curva de regresión lineal. Una línea que se ajusta mejor al precio especificado en el intervalo de tiempo definido por el usuario. Se calcula utilizando el método del mínimo de la binomial. Los resultados de esta función se calculan con la siguiente fórmula: linreg = intercept + slope * (length - 1 - offset), donde intercept y slope se utilizan.sourceEl valor calculado de la mínima bimetálica de la serie ≠

ta.linreg(source, length, offset)

Devuelve el valor
Curva de regresión lineal

parámetro

  • source(series int/float) serie de origen
  • length (series int)
  • offset(simple int) desplazamiento

ta.bb

La banda de Brin es una herramienta de análisis técnico definida por un conjunto de líneas que se encuentran a dos desviaciones estándar (positiva y negativa) de la media móvil simple (SMA) de los precios de los valores, pero que se pueden ajustar según las preferencias del usuario.

ta.bb(series, length, mult)

Ejemplo

pine
[middle, upper, lower] = ta.bb(close, 5, 4) plot(middle, color=color.yellow) plot(upper, color=color.yellow) plot(lower, color=color.yellow) // the same on pine f_bb(src, length, mult) => float basis = ta.sma(src, length) float dev = mult * ta.stdev(src, length) [basis, basis + dev, basis - dev] [pineMiddle, pineUpper, pineLower] = f_bb(close, 5, 4) plot(pineMiddle) plot(pineUpper) plot(pineLower)

Devuelve el valor
¿Qué es lo que está sucediendo?

parámetro

  • series(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).
  • mult(simple int/float) Factor de diferencia estándar

Véase también
ta.sma ta.stdev ta.kc

ta.bbw

La anchura de la banda de brote es la distancia de la vía superior y la vía inferior a la línea media.

ta.bbw(series, length, mult)

Ejemplo

pine
plot(ta.bbw(close, 5, 4), color=color.yellow) // the same on pine f_bbw(src, length, mult) => float basis = ta.sma(src, length) float dev = mult * ta.stdev(src, length) ((basis + dev) - (basis - dev)) / basis plot(f_bbw(close, 5, 4))

Devuelve el valor
La banda ancha de Brin.

parámetro

  • series(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).
  • mult(simple int/float) Factor de diferencia estándar

Véase también
ta.bb ta.sma ta.stdev

ta.cci

El método de cálculo del CCI es la diferencia entre el precio típico de una mercancía y su promedio móvil simple dividido por el promedio de la desviación absoluta del precio típico. El índice se escala a la inversa de 0.015 para proporcionar un número más legible.

ta.cci(source, length)

Devuelve el valor
El índice de canales de mercancía de la fuente que regresa la línea lengthK.

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

ta.change

Diferencia entre el valor actual y el anterior, source - source[length]。

ta.change(source, length)
ta.change(source)

Devuelve el valor
Resultados de la reducción de la ley.

parámetro

  • source(series int/float) serie de origen
  • length(series int) se desplaza desde la línea k actual a la línea k anterior. Es opcional, si no se da, usar length = 1 ≠

Véase también
ta.mom ta.cross

ta.mom

sourcePrecios ysourceEl preciolengthEl motor antes de la línea K. Esto es sólo una diferencia: source - source[length]。

ta.mom(source, length)

Devuelve el valor
sourcePrecios ysourceEl preciolengthLa potencia antes de la línea K.

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) se desplaza desde la línea k actual a la línea k anterior.

Véase también
ta.change

ta.cmo

El indicador de fluctuación de la dinámica de Chandi. Calcula la suma de los puntos de alza más recientes con la suma de los puntos de caída más recientes, luego reduce ambos y luego divide el resultado por la suma de todos los cambios de precios en el mismo período

ta.cmo(series, length)

Ejemplo

pine
plot(ta.cmo(close, 5), color=color.yellow) // the same on pine f_cmo(src, length) => float mom = ta.change(src) float sm1 = math.sum((mom >= 0) ? mom : 0.0, length) float sm2 = math.sum((mom >= 0) ? 0.0 : -mom, length) 100 * (sm1 - sm2) / (sm1 + sm2) plot(f_cmo(close, 5))

Devuelve el valor
Indicador de movimiento de Chandra

parámetro

  • series(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

Véase también
ta.rsi ta.stoch math.sum

ta.percentile_linear_interpolation

El porcentaje se calcula utilizando el método de inserción lineal entre las dos clasificaciones más recientes.

ta.percentile_linear_interpolation(source, length, percentage)

Devuelve el valor
lengthLa línea K regresó.sourceEl primer porcentaje P de la serie ≠

parámetro

  • source(series int/float) Valor de la serie a ejecutar ((fuente))
  • length(Series int) Número de líneas K pasadas (la longitud)
  • percentage(simple int/float) porcentaje, un número en el rango de 0 a 100

Las notas
Tenga en cuenta que los porcentajes calculados con este método no son todos miembros del conjunto de datos de entrada.

Véase también
ta.percentile_nearest_rank

ta.percentile_nearest_rank

Porcentaje calculado según la clasificación más reciente.

ta.percentile_nearest_rank(source, length, percentage)

Devuelve el valor
lengthLa línea K regresó.sourceEl primer porcentaje P de la serie ≠

parámetro

  • source(series int/float) Valor de la serie a ejecutar ((fuente))
  • length(Series int) Número de líneas K pasadas (la longitud)
  • percentage(simple int/float) porcentaje, un número en el rango de 0 a 100

Las notas
El uso de la clasificación más reciente con menos de los últimos 100 k de longitud de línea puede dar lugar a que el mismo número se use en varios porcentajes.
El porcentaje calculado por la clasificación más reciente es parte del conjunto de datos de entrada.
El punto porcentual número 100 se define como el valor máximo en el conjunto de datos de entrada.

Véase también
ta.percentile_linear_interpolation

ta.percentrank

El grado porcentual es el porcentaje de los valores anteriores que son menores o iguales a los valores actuales de una serie dada.

ta.percentrank(source, length)

Devuelve el valor
lengthLa línea K regresó.sourcePorcentaje de las clasificaciones.

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

ta.variance

La diferencia es un valor esperado (ta.sma) de una serie de desviaciones cuadradas de su promedio, que mide informalmente la distancia de un conjunto de números a su promedio.

ta.variance(source, length, biased)

Devuelve el valor
lengthLa línea K regresó.sourceLa diferencia entre los dos

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).
  • biased(series bool) Determina qué estimación debería usarse. Opcional. El valor por defecto es verdadero.

Las notas
Si es asíbiasedSi es verdadera, la función se calculará usando una estimación parcial de la totalidad, y si es falsa, una estimación no parcial de la muestra.

Véase también
ta.dev ta.stdev

ta.tr

ta.tr(handle_na)

Devuelve el valor
El verdadero alcance es math.max (high - low, math.abs (high - close)[1]), math.abs(low - close[1]))。

parámetro

  • handle_na(simple bool) cómo se maneja el valor NaN. Si es true y el cierre del día anterior es NaN, tr se calcula como el punto más alto y más bajo del día. De lo contrario (((si es false) tr en ese caso se devolverá NaN. También tenga en cuenta que ta.atr utiliza ta.true)

Las notas
ta.tr(false)yta.trExactamente lo mismo.

Véase también
ta.atr

ta.mfi

El índice de flujo de capital es un indicador técnico que utiliza el precio y el volumen de transacciones para determinar el estado de sobrecompra o sobreventa en un activo.

ta.mfi(series, length)

Ejemplo

pine
plot(ta.mfi(hlc3, 14), color=color.yellow) // the same on pine pine_mfi(src, length) => float upper = math.sum(volume * (ta.change(src) <= 0.0 ? 0.0 : src), length) float lower = math.sum(volume * (ta.change(src) >= 0.0 ? 0.0 : src), length) mfi = 100.0 - (100.0 / (1.0 + upper / lower)) mfi plot(pine_mfi(hlc3, 14))

Devuelve el valor
Indicadores de flujo de capital

parámetro

  • series(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

Véase también
ta.rsi math.sum

ta.kc

El canal de Kentner. El canal de Kentner es un indicador técnico que contiene el promedio móvil intermedio y el canal ascendente y descendente.

ta.kc(series, length, mult)
ta.kc(series, length, mult, useTrueRange)

Ejemplo

pine
[middle, upper, lower] = ta.kc(close, 5, 4) plot(middle, color=color.yellow) plot(upper, color=color.yellow) plot(lower, color=color.yellow) // the same on pine f_kc(src, length, mult, useTrueRange) => float basis = ta.ema(src, length) float span = (useTrueRange) ? ta.tr : (high - low) float rangeEma = ta.ema(span, length) [basis, basis + rangeEma * mult, basis - rangeEma * mult] [pineMiddle, pineUpper, pineLower] = f_kc(close, 5, 4, true) plot(pineMiddle) plot(pineUpper) plot(pineLower)

Devuelve el valor
El paso de Kettner

parámetro

  • series(series int/float) Valor de la serie a ejecutar
  • length(simple int) K número de líneas (longitud).
  • mult(simple int/float) Factor de diferencia estándar
  • useTrueRange(simple bool) Parámetros opcionales. Especifique si se usa un rango verdadero; es de default true. Si el valor es false, se usará la expresión ((high-low) para calcular el rango.

Véase también
ta.ema ta.atr ta.bb

ta.kcw

La anchura del canal de Kent es la diferencia entre el canal superior y inferior dividida por el canal intermedio.

ta.kcw(series, length, mult)
ta.kcw(series, length, mult, useTrueRange)

Ejemplo

pine
plot(ta.kcw(close, 5, 4), color=color.yellow) // the same on pine f_kcw(src, length, mult, useTrueRange) => float basis = ta.ema(src, length) float span = (useTrueRange) ? ta.tr : (high - low) float rangeEma = ta.ema(span, length) ((basis + rangeEma * mult) - (basis - rangeEma * mult)) / basis plot(f_kcw(close, 5, 4, true))

Devuelve el valor
La anchura del canal de Kentner.

parámetro

  • series(series int/float) Valor de la serie a ejecutar
  • length(simple int) K número de líneas (longitud).
  • mult(simple int/float) Factor de diferencia estándar
  • useTrueRange(simple bool) Parámetros opcionales. Especifique si se usa un rango verdadero; es de default true. Si el valor es false, se usará la expresión ((high-low) para calcular el rango.

Véase también
ta.kc ta.ema ta.atr ta.bb

ta.correlation

Coeficientes correlativos que describen el grado en que dos series tienden a desviarse de su valor de ta.sma.

ta.correlation(source1, source2, length)

Devuelve el valor
Coeficientes relacionados

parámetro

  • source1(series int/float) serie de origen
  • source2(series int/float) La serie objetivo。
  • length(series int) longitud (número de líneas K)

Véase también
request.security

ta.cross

ta.cross(source1, source2)

Devuelve el valor
Si las dos series se cruzan entre sí es verdadero, si no es falso.

parámetro

  • source1(series int/float) La primera serie de datos。
  • source2(series int/float) Segunda serie de datos

Véase también
ta.change

ta.crossover

source1-series se define como un crucesource2-series, si en la línea K actual,source1Es más grande quesource2Y en la primera línea K,source2El valor de source1小于source2`El valor de

ta.crossover(source1, source2)

Devuelve el valor
Si es asísource1A través desource2Es verdadero o falso.

parámetro

  • source1(series int/float) La primera serie de datos。
  • source2(series int/float) Segunda serie de datos

ta.crossunder

source1-series se define como en source2-series debajo de la cruz, si en la línea K actual,source1es menor quesource2Y en la primera línea K,source1Es más grande quesource2El valor de

ta.crossunder(source1, source2)

Devuelve el valor
Si es asísource1existirsource2Si se cruza debajo, es verdadero, si no es falso.

parámetro

  • source1(series int/float) La primera serie de datos。
  • source2(series int/float) Segunda serie de datos

ta.atr

La función ATR (valor medio de la amplitud real) devuelve RMA de la amplitud real. La amplitud real es max (alta - baja, abs (alta - cercana)[1]), abs(low - close[1]))。

ta.atr(length)

Ejemplo

pine
plot(ta.atr(14)) //the same on pine pine_atr(length) => trueRange = na(high[1])? high-low : math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1])) //true range can be also calculated with ta.tr(true) ta.rma(trueRange, length) plot(pine_atr(14))

Devuelve el valor
El promedio de fluctuaciones reales (ATR)

parámetro
length (simple int) longitud (número de líneas K)

Véase también
ta.tr ta.rma

ta.sar

La línea paralela de giro (en inglés: parabolic line shift, en inglés: parabolic line stop and reversal) es un método diseñado por J. Welles Wilder, Jr. para encontrar una potencial reversión en la dirección de los precios en el mercado de operaciones.

ta.sar(start, inc, max)

Ejemplo

pine
plot(ta.sar(0.02, 0.02, 0.2), style=plot.style_cross, linewidth=3) // The same on Pine pine_sar(start, inc, max) => var float result = na var float maxMin = na var float acceleration = na var bool isBelow = na bool isFirstTrendBar = false if bar_index == 1 if close > close[1] isBelow := true maxMin := high result := low[1] else isBelow := false maxMin := low result := high[1] isFirstTrendBar := true acceleration := start result := result + acceleration * (maxMin - result) if isBelow if result > low isFirstTrendBar := true isBelow := false result := math.max(high, maxMin) maxMin := low acceleration := start else if result < high isFirstTrendBar := true isBelow := true result := math.min(low, maxMin) maxMin := high acceleration := start if not isFirstTrendBar if isBelow if high > maxMin maxMin := high acceleration := math.min(acceleration + inc, max) else if low < maxMin maxMin := low acceleration := math.min(acceleration + inc, max) if isBelow result := math.min(result, low[1]) if bar_index > 1 result := math.min(result, low[2]) else result := math.max(result, high[1]) if bar_index > 1 result := math.max(result, high[2]) result plot(pine_sar(0.02, 0.02, 0.2), style=plot.style_cross, linewidth=3)

Devuelve el valor
La línea de parálisis gira hacia el indicador.

parámetro

  • start(simple int/float) comienza
  • inc(simple int/float) Se añade
  • max(simple int/float) máximo

ta.barssince

Calcule el número de líneas K desde la última condición verdadera.

ta.barssince(condition)

Ejemplo

pine
// get number of bars since last color.green bar plot(ta.barssince(close >= open))

Devuelve el valor
Número de líneas k si la condición es verdadero.

Las notas
Si la condición nunca se ha cumplido antes de la línea K actual, la función devuelve na。
Tenga en cuenta que el uso de esta variable/función puede causar que el indicador sea rediseñado.

Véase también
ta.lowestbars ta.highestbars ta.valuewhen ta.highest ta.lowest

ta.cum

sourceEn otras palabras, essourceLa suma de todos los elementos de .

ta.cum(source)

Devuelve el valor
Resumen de la serie.

parámetro

  • source (series int/float)

Véase también
math.sum

ta.dmi

La función dmi devuelve el índice dinámico DMI。

ta.dmi(diLength, adxSmoothing)

Ejemplo

pine
len = input.int(17, minval=1, title="DI Length") lensig = input.int(14, title="ADX Smoothing", minval=1, maxval=50) [diplus, diminus, adx] = ta.dmi(len, lensig) plot(adx, color=color.red, title="ADX") plot(diplus, color=color.blue, title="+DI") plot(diminus, color=color.orange, title="-DI")

Devuelve el valor
Los tres subgrupos de la serie DMI son: el movimiento en dirección positiva ((+DI), el movimiento en dirección negativa ((-DI) y el índice de movimiento en dirección media ((ADX) <unk>).

parámetro

  • diLength (simple int) DI Period。
  • adxSmoothing(simple int) ADX ciclo de suavizado

Véase también
ta.rsi ta.tsi ta.mfi

ta.falling

Las pruebas.sourceSerie paralength¿La línea Klong está bajando?

ta.falling(source, length)

Devuelve el valor
Si en la actualidadsourceVale menos quelengthLa línea K devuelve cualquier anterior.sourceEl valor es verdadero o falso.

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

Véase también
ta.rising

ta.rising

Las pruebas.sourceSerie paralength¿Está aumentando el número de K-linelongs?

ta.rising(source, length)

Devuelve el valor
Si en la actualidadsourceEs mucho más que eso.lengthLa línea K devuelve cualquier anterior.sourceEl valor es verdadero o falso.

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

Véase también
ta.falling

ta.pivothigh

Esta función devuelve el precio del punto más alto del eje. Si no hay un punto más alto del eje, devuelve <unk>NaN<unk>.

ta.pivothigh(source, leftbars, rightbars)
ta.pivothigh(leftbars, rightbars)

Ejemplo

pine
leftBars = input(2) rightBars=input(2) ph = ta.pivothigh(leftBars, rightBars) plot(ph, style=plot.style_cross, linewidth=3, color= color.red, offset=-rightBars)

Devuelve el valor
El precio en este punto es 'NaN'.

parámetro

  • source(series int/float) Parámetros seleccionables. Valor de cálculo de la serie de datos. Valor predeterminado 'High'
  • leftbars(series int/float) Fuerza de la izquierda。
  • rightbars(series int/float) longitud a la derecha

Las notas
Si los parámetros 'leftbars' o 'rightbars' son series, deberías usar la función max_bars_back como la variable 'source'

ta.pivotlow

Esta función devuelve el precio del punto más bajo del eje. Si no hay un punto más bajo del eje, devuelve <unk>NaN<unk>.

ta.pivotlow(source, leftbars, rightbars)
ta.pivotlow(leftbars, rightbars)

Ejemplo

pine
leftBars = input(2) rightBars=input(2) pl = ta.pivotlow(close, leftBars, rightBars) plot(pl, style=plot.style_cross, linewidth=3, color= color.blue, offset=-rightBars)

Devuelve el valor
El precio en este punto es 'NaN'.

parámetro

  • source(series int/float) Parámetros seleccionables ◦ Valor de cálculo de la serie de datos ◦ Default <unk> Low<unk> ◦
  • leftbars(series int/float) Fuerza de la izquierda。
  • rightbars(series int/float) longitud a la derecha

Las notas
Si los parámetros 'leftbars' o 'rightbars' son series, deberías usar la función max_bars_back como la variable 'source'

ta.highest

El máximo de un número dado de líneas k pasadas.

ta.highest(source, length)
ta.highest(length)

Devuelve el valor
El valor más alto de la serie.

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

Las notas
Hay dos versiones de args:sourceEs una serie de fotos de la película.lengthEs el número de líneas K devueltas.
Una versión arg:lengthEs el número de líneas K que se devuelve. El algoritmo usa high como sourceLa serie.

Véase también
ta.lowest ta.lowestbars ta.highestbars ta.valuewhen ta.barssince

ta.highestbars

El desplazamiento máximo de un número dado de la línea k pasada.

ta.highestbars(source, length)
ta.highestbars(length)

Devuelve el valor
Se desplaza hacia la línea k más alta.

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

Las notas
Hay dos versiones de args:sourceEs una serie de fotos de la película.lengthEs el número de líneas K devueltas.
Una versión arg:lengthEs el número de líneas K que se devuelve. El algoritmo usa high como sourceLa serie.

Véase también
ta.lowest ta.highest ta.lowestbars ta.barssince ta.valuewhen

ta.stoch

Indicador aleatorio. Equación de cálculo: 100 * (cerca - más bajo, más bajo) / (más alto, más alto, más largo) - más bajo, más bajo).

ta.stoch(source, high, low, length)

Devuelve el valor
El azar

parámetro

  • source(series int/float) serie de origen
  • high(series int/float) Serie alta
  • low(series int/float) Baja serie
  • length(series int) longitud (número de líneas K)

Véase también
ta.cog

ta.supertrend

Un indicador de tendencia súper. Un indicador de tendencia súper es un indicador que sigue una tendencia.

ta.supertrend(factor, atrPeriod)

Ejemplo

pine
//@version=5 indicator("Pine Script™ Supertrend") [supertrend, direction] = ta.supertrend(3, 10) plot(direction < 0 ? supertrend : na, "Up direction", color = color.green, style=plot.style_linebr) plot(direction > 0 ? supertrend : na, "Down direction", color = color.red, style=plot.style_linebr) // The same on Pine Script™ pine_supertrend(factor, atrPeriod) => src = hl2 atr = ta.atr(atrPeriod) upperBand = src + factor * atr lowerBand = src - factor * atr prevLowerBand = nz(lowerBand[1]) prevUpperBand = nz(upperBand[1]) lowerBand := lowerBand > prevLowerBand or close[1] < prevLowerBand ? lowerBand : prevLowerBand upperBand := upperBand < prevUpperBand or close[1] > prevUpperBand ? upperBand : prevUpperBand int direction = na float superTrend = na prevSuperTrend = superTrend[1] if na(atr[1]) direction := 1 else if prevSuperTrend == prevUpperBand direction := close > upperBand ? -1 : 1 else direction := close < lowerBand ? 1 : -1 superTrend := direction == -1 ? lowerBand : upperBand [superTrend, direction] [pineSupertrend, pineDirection] = pine_supertrend(3, 10) plot(pineDirection < 0 ? pineSupertrend : na, "Up direction", color = color.green, style=plot.style_linebr) plot(pineDirection > 0 ? pineSupertrend : na, "Down direction", color = color.red, style=plot.style_linebr)

Devuelve el valor
Dos subgrupos de la serie de hipertrend: la línea de hipertrend y la dirección de la tendencia. Los valores posibles son 1 (en dirección descendente) y -1 (en dirección ascendente).

parámetro

  • factor(series int/float) ATR se multiplicará por el múltiplo de。
  • atrPeriod(simple int) longitud de onda real promedio

Véase también
ta.macd

ta.lowest

El valor mínimo de un número dado de líneas k pasadas.

ta.lowest(source, length)
ta.lowest(length)

Devuelve el valor
El valor más bajo de la serie.

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

Las notas
Hay dos versiones de args:sourceEs una serie de fotos de la película.lengthEs el número de líneas K devueltas.
Una versión arg:lengthes el número de líneas K devuelto. El algoritmo utiliza low comosourceLa serie.

Véase también
ta.highest ta.lowestbars ta.highestbars ta.valuewhen ta.barssince

ta.lowestbars

La desviación mínima de un número dado de la línea k pasada.

ta.lowestbars(source, length)
ta.lowestbars(length)

Devuelve el valor
Desviación a la línea k más baja.

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) devuelve el número de la línea K。

Las notas
Hay dos versiones de args:sourceEs una serie de fotos de la película.lengthEs el número de líneas K devueltas.
Una versión arg:lengthes el número de líneas K devuelto. El algoritmo utiliza low comosourceLa serie.

Véase también
ta.lowest ta.highest ta.highestbars ta.barssince ta.valuewhen

ta.valuewhen

Devuelve el valor de la serie de fuentes de fuentes de K de la línea K en la que la condición de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes de fuentes

ta.valuewhen(condition, source, occurrence)

Ejemplo

pine
slow = ta.sma(close, 7) fast = ta.sma(close, 14) // Get value of `close` on second most recent cross plot(ta.valuewhen(ta.cross(slow, fast), close, 1))

parámetro

  • condition(series bool) Condiciones para buscar
  • source(series int/float/bool/color) El valor que se debe devolver desde la línea K que cumple con las condiciones.
  • occurrenceLa aparición de la condición (simple int) ≠ comienza en 0 y retrocede en el tiempo, por lo que ≠ 0 es la condición más reciente, ≠ 1 es la segunda más reciente, y así sucesivamente ≠ debe ser un número entero >= 0 ≠

Las notas
Esta función debe ejecutarse en cada línea K. No se recomienda su uso en estructuras de ciclo for o while, ya que su comportamiento puede ser inesperado. Tenga en cuenta que el uso de esta función puede causar un rediseño del indicador.

Véase también
ta.lowestbars ta.highestbars ta.barssince ta.highest ta.lowest

ta.vwap

Precio medio ponderado por volumen de ventas

ta.vwap(source)

Devuelve el valor
Promedio de transacciones ponderadas

parámetro

  • source(series int/float) serie de origen

Véase también
ta.vwap

ta.vwma

La función vwma que se devuelvelengthLa línea K.sourceEl promedio móvil ponderado del volumen de transacciones es igual a: sma (fuente * volumen, longitud) / sma (volumen, longitud)

ta.vwma(source, length)

Ejemplo

pine
plot(ta.vwma(close, 15)) // same on pine, but less efficient pine_vwma(x, y) => ta.sma(x * volume, y) / ta.sma(volume, y) plot(pine_vwma(close, 15))

Devuelve el valor
lengthLa línea K regresó.sourceEl promedio móvil ponderado del volumen de transacciones.

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

Véase también
ta.sma ta.ema ta.rma ta.wma ta.swma ta.alma

ta.wpr

El indicador Williams %R. El indicador de oscilación muestra la relación entre el precio de cierre actual y el precio alto/bajo de un período de tiempo pasado.

ta.wpr(length)

Ejemplo

pine
plot(ta.wpr(14), title="%R", color=color.new(#ff6d00, 0))

Devuelve el valor
Williams %R。

parámetro

  • length(series int) Número de líneas K。

Véase también
ta.mfi ta.cmo

plot

plot

Dibujar una serie de datos en un gráfico.

plot(series, title, color, linewidth, style, trackprice, histbase, offset, join, editable, show_last, display)

Ejemplo

pine
plot(high+low, title='Title', color=color.new(#00ffaa, 70), linewidth=2, style=plot.style_area, offset=15, trackprice=true) // You may fill the background between any two plots with a fill() function: p1 = plot(open) p2 = plot(close) fill(p1, p2, color=color.new(color.green, 90))

Devuelve el valor
Objetos de dibujo que se pueden usar para llenar.

parámetro

  • series(series int/float) La serie de datos que se quiere dibujar.
  • title(const string) Título del dibujo。
  • color(series color) El color del dibujo. Puedes usar constantes como color = red o color = #ff001a, y expresiones complejas como color = close >= open ? green: red. Parámetros opcionales.
  • linewidth(input int) La anchura de la línea de dibujo ≠ 1 ≠ no se aplica a todos los estilos ≠
  • style(plot_style) tipo de trama ❚ los valores posibles son: trama.estilo_línea, trama.estilo_escalón, trama.estilo_escalón_diamond, trama.estilo_histograma, trama.estilo_cross, trama.estilo_área, trama.estilo_columnas, trama.estilo_circulos, trama.estilo_líneabr, trama.estilo_areabr ❚ el valor por defecto es trama.estilo_línea
  • trackprice(input bool) Si es verdad, la línea de precios horizontal se mostrará en el nivel del último valor del indicador. Por defecto, false.
  • histbase(input int/float) Cuando se traza un gráfico en el estilo plot.style_histogram, plot.style_columns o plot.style_area, se usa el valor del nivel de referencia 。 el valor predeterminado es 0.0。
  • offset(series int) Mueve el dibujo a la izquierda o a la derecha en un número determinado de líneas k. El valor predeterminado es 0
  • join(input bool) Si es verdadero, el punto de trazado se conectará con la línea, sólo para los estilos plot.style_cross y plot.style_circles. El valor por defecto es falso.
  • editable(const bool) Si es verdadero, el estilo del dibujo se puede editar en el cuadro de diálogo de formato. El valor por defecto es verdadero.
  • show_last(input int) Si está configurado, define el número de líneas k dibujadas en la tabla ((desde la última línea k hacia atrás) <unk>)
  • display(plot_display) El control muestra la ubicación del trazado. Los valores posibles son: display.none, display.all. El valor predeterminado es display.all.
  • overlay(const bool) Parámetro de extensión de la plataforma FMZ, usado para establecer la función actual en el gráfico principal (const true) o en el gráfico secundario (const false). El valor por defecto es false. Si no se especifica este parámetro, se obtiene la siguiente configuración:strategyoindicatorEnoverlayLa configuración del parámetro,strategyoindicatorNo está configuradooverlayLos parámetros se tratan de acuerdo a los parámetros por defecto.

Véase también
plotshape plotchar bgcolor

plotshape

Trazar las formas visibles en el gráfico.

plotshape(series, title, style, location, color, offset, text, textcolor, editable, size, show_last, display)

Ejemplo

pine
data = close >= open plotshape(data, style=shape.xcross)

parámetro

  • series(series bool) Una serie de datos dibujados como una forma 。 La serie es considerada como una serie de valores bool de todos los valores de posición excepto location.absolute 。 Parámetros necesarios 。
  • title(const string) Título del dibujo。
  • style(input string) Tipo de dibujo。 Los valores posibles son: shape.xcross, shape.cross, shape.triangleup, shape.triangledown, shape.flag, shape.circle, shape.arrowup, shape.arrowdown, shape.labelup, shape.labeldown, shape.square, shape.diamond。 El valor por defecto es shape.xcross。
  • location(input string) La forma de la ubicación en el gráfico. Los valores posibles son: ubicación.abovebar, ubicación.belowbar, ubicación.top, ubicación.bottom, ubicación.absolute. El valor predeterminado es ubicación.abovebar.
  • color(series color) color de la forma . Puedes usar constantes como color = red o color = #ff001a y expresiones complejas como color = close >= open ? green: red . Parámetros opcionales .
  • offset(series int) Movimiento a la izquierda o a la derecha en un número determinado de líneas k. El valor predeterminado es 0
  • text(const string) El texto se muestra en forma. Puedes usar varias líneas de texto separadas por una secuencia de traducción '\n' Ejemplo: 'line one\nline two'
  • textcolor(series color) El color de la letra. Puedes usar constantes como 'textcolor=red' o 'textcolor=#ff001a' y expresiones complejas como 'textcolor = close >= open ? green: red'. Parámetros opcionales.
  • editable(const bool) Si es verdadero, el estilo de plotshape se puede editar en el cuadro de diálogo de formato. Por defecto es verdadero.
  • show_last(input int) Si está configurado, define el número de formas dibujadas en la tabla ((de la última línea k hacia el pasado))
  • size(const string) El tamaño de los caracteres en la tabla. Los valores posibles son: size.auto, size.tiny, size.small, size.normal, size.large, size.huge. El valor predeterminado es size.auto.
  • display(plot_display) El control muestra la ubicación del trazado. Los valores posibles son: display.none, display.all. El valor predeterminado es display.all.
  • overlay(const bool) Parámetro de extensión de la plataforma FMZ, usado para establecer la función actual en el gráfico principal (const true) o en el gráfico secundario (const false). El valor por defecto es false. Si no se especifica este parámetro, se obtiene la siguiente configuración:strategyoindicatorEnoverlayLa configuración del parámetro,strategyoindicatorNo está configuradooverlayLos parámetros se tratan de acuerdo a los parámetros por defecto.

Véase también
plot plotchar bgcolor

plotchar

En el gráfico se pueden usar cualquier caracteres de Unicode para dibujar formas visibles.

plotchar(series, title, char, location, color, offset, text, textcolor, editable, size, show_last, display)

Ejemplo

pine
data = close >= open plotchar(data, char='❄')

parámetro

  • series(series bool) Una serie de datos dibujados como una forma 。 La serie es considerada como una serie de valores bool de todos los valores de posición excepto location.absolute 。 Parámetros necesarios 。
  • title(const string) Título del dibujo。
  • char(input string) Caracteres usados como formas visuales
  • location(input string) La forma de la ubicación en el gráfico. Los valores posibles son: ubicación.abovebar, ubicación.belowbar, ubicación.top, ubicación.bottom, ubicación.absolute. El valor predeterminado es ubicación.abovebar.
  • color(series color) color de la forma . Puedes usar constantes como color = red o color = #ff001a y expresiones complejas como color = close >= open ? green: red . Parámetros opcionales .
  • offset(series int) Movimiento a la izquierda o a la derecha en un número determinado de líneas k. El valor predeterminado es 0
  • text(const string) El texto se muestra en forma. Puedes usar varias líneas de texto separadas por una secuencia de traducción '\n' Ejemplo: 'line one\nline two'
  • textcolor(series color) El color de la letra. Puedes usar constantes como 'textcolor=red' o 'textcolor=#ff001a' y expresiones complejas como 'textcolor = close >= open ? green: red'. Parámetros opcionales.
  • editable(const bool) Si es verdadero, el estilo de plotchar se puede editar en el cuadro de diálogo de formato. Por defecto es verdadero.
  • show_last(input int) Si está configurado, define el número de gráficos dibujados en la tabla ((desde la última línea k hacia el pasado))
  • size(const string) El tamaño de los caracteres en la tabla. Los valores posibles son: size.auto,size.tiny,size.small,size.normal,size.large,size.huge. El valor predeterminado es size.auto.
  • display(plot_display) El control muestra la ubicación del trazado. Los valores posibles son: display.none, display.all. El valor predeterminado es display.all.
  • overlay(const bool) Parámetro de extensión de la plataforma FMZ, usado para establecer la función actual en el gráfico principal (const true) o en el gráfico secundario (const false). El valor por defecto es false. Si no se especifica este parámetro, se obtiene la siguiente configuración:strategyoindicatorEnoverlayLa configuración del parámetro,strategyoindicatorNo está configuradooverlayLos parámetros se tratan de acuerdo a los parámetros por defecto.

Véase también
plot plotshape bgcolor

plotcandle

Dibujo de la tabla.

plotcandle(open, high, low, close, title, color, wickcolor, editable, show_last, bordercolor, display)

Ejemplo

pine
indicator("plotcandle example", overlay=true) plotcandle(open, high, low, close, title='Title', color = open < close ? color.green : color.red, wickcolor=color.black)

parámetro

  • open(series int/float) La serie de datos abierta se utiliza como el valor de apertura de la barra.
  • high(series int/float) La serie alta de datos se usa como el valor de la columna de la serie alta.
  • low(series int/float) Los datos de la serie baja se usan como valores bajos de la columna.
  • close(series int/float) Cierre de la serie de datos como el valor de la línea de cierre k。 Parámetros necesarios。
  • title(const string) el título de la plotcandle. Parámetros opcionales.
  • color(series color) El color de la matriz. Puedes usar constantes como color = red o color = #ff001a y expresiones complejas como color = close >= open ? green: red. Parámetros opcionales.
  • wickcolor(series color) El color del núcleo de la lámpara de aluminio.
  • editable(const bool) Si es verdadero, el estilo de plotcandle se puede editar en el cuadro de diálogo de formato. El valor por defecto es verdadero.
  • show_last(input int) Si está configurado, define el número de vertientes dibujadas en la tabla ((retrocede desde la última línea k) }}.
  • bordercolor(series color) El color del borde de la barra. Un parámetro opcional.
  • display(plot_display) El control muestra la ubicación del trazado. Los valores posibles son: display.none, display.all. El valor predeterminado es display.all.
  • overlay(const bool) Parámetro de extensión de la plataforma FMZ, usado para establecer la función actual en el gráfico principal (const true) o en el gráfico secundario (const false). El valor por defecto es false. Si no se especifica este parámetro, se obtiene la siguiente configuración:strategyoindicatorEnoverlayLa configuración del parámetro,strategyoindicatorNo está configuradooverlayLos parámetros se tratan de acuerdo a los parámetros por defecto.

Las notas
Si el NaN es el máximo y el mínimo, entonces la línea K no tiene que aparecer.
Los valores máximos de A, B, C y D se establecerán como A + B y los mínimos se establecerán como B + B.

Véase también
plotbar

plotarrow

Trazar las flechas hacia arriba y hacia abajo en el gráfico: la flecha hacia arriba se traza en cada indicador positivo, mientras que la flecha hacia abajo se traza en cada indicador negativo. Si el indicador devuelve na, no se traza la flecha. Las flechas tienen diferentes alturas, y cuanto mayor sea el valor absoluto del indicador, más larga será la flecha.

plotarrow(series, title, colorup, colordown, offset, minheight, maxheight, editable, show_last, display)

Ejemplo

codiff = close - open plotarrow(codiff, colorup=color.new(color.teal,40), colordown=color.new(color.orange, 40), overlay=true)

parámetro

  • series(series int/float) Para dibujar una serie de datos en flecha ❚ Los parámetros necesarios ❚
  • title(const string) Título del dibujo。
  • colorup(series color) El color de la flecha hacia arriba.
  • colordown(series color) El color de la flecha hacia abajo.
  • offset(series int) Mueve la flecha hacia la izquierda o hacia la derecha en un número determinado de líneas K. El valor predeterminado es 0
  • minheight(input int) La altura de la flecha más pequeña posible en píxeles. El valor predeterminado es 5
  • maxheight(input int) La máxima altura de la flecha posible en píxeles. El valor por defecto es 100
  • editable(const bool) Si es verdadero, el estilo de la trama se puede editar en el cuadro de diálogo de formato. El valor por defecto es verdadero.
  • show_last(input int) Si está configurado, define el número de flechas dibujadas en la tabla ((retrocede desde la última línea k) }}.
  • display(plot_display) El control muestra la ubicación del trazado. Los valores posibles son: display.none, display.all. El valor predeterminado es display.all.
  • overlay(const bool) Parámetro de extensión de la plataforma FMZ, usado para establecer la función actual en el gráfico principal (const true) o en el gráfico secundario (const false). El valor por defecto es false. Si no se especifica este parámetro, se obtiene la siguiente configuración:strategyoindicatorEnoverlayLa configuración del parámetro,strategyoindicatorNo está configuradooverlayLos parámetros se tratan de acuerdo a los parámetros por defecto.

Véase también
plot plotshape plotchar barcolor bgcolor

array

array.pop

La función elimina el último elemento de la matriz y devuelve su valor.

array.pop(id)

Ejemplo

pine
// array.pop example a = array.new_float(5,high) removedEl = array.pop(a) plot(array.size(a)) plot(removedEl)

Devuelve el valor
El valor del elemento eliminado.

parámetro

  • id(any array type) Objetos de la matriz

Véase también
array.new_float array.set array.push array.remove array.insert array.shift

array.shift

La función elimina el primer elemento de la matriz y devuelve su valor.

array.shift(id)

Ejemplo

pine
// array.shift example a = array.new_float(5,high) removedEl = array.shift(a) plot(array.size(a)) plot(removedEl)

Devuelve el valor
El valor del elemento eliminado.

parámetro

  • id(any array type) Objetos de la matriz

Véase también
array.unshift array.set array.push array.remove array.includes

array.unshift

La función inserta los valores en la posición inicial de la matriz.

array.unshift(id, value)

Ejemplo

pine
// array.unshift example a = array.new_float(5, 0) array.unshift(a, open) plot(array.get(a, 0))

parámetro

  • id(any array type) Objetos de la matriz
  • value (series <type of the array's elements>Se añade el valor a la posición inicial de la matriz.

Véase también
array.shift array.set array.insert array.remove array.indexof

array.size

La función devuelve el número de elementos en la matriz.

array.size(id)

Ejemplo

pine
// array.size example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) // note that changes in slice also modify original array slice = array.slice(a, 0, 5) array.push(slice, open) // size was changed in slice and in original array plot(array.size(a)) plot(array.size(slice))

Devuelve el valor
El número de elementos en la matriz.

parámetro

  • id(any array type) Objetos de la matriz

Véase también
array.new_float array.sum array.slice array.sort

array.slice

Esta función crea fragmentos de una matriz existente. Si los objetos de la fragmentación cambian, los cambios se aplicarán a la nueva matriz y a la matriz original al mismo tiempo.

array.slice(id, index_from, index_to)

Ejemplo

pine
// array.slice example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) // take elements from 0 to 4 // *note that changes in slice also modify original array slice = array.slice(a, 0, 5) plot(array.sum(a) / 10) plot(array.sum(slice) / 5)

Devuelve el valor
Es una copia superficial de la fragmentación de la matriz.

parámetro

  • id(any array type) Objetos de la matriz
  • index_from(series int) Indice que comienza desde cero para comenzar la extracción.
  • index_to(series int) El índice que comienza desde cero antes de que se complete la extracción. La función extrae los elementos anteriores a este índice.

Véase también
array.new_float array.get array.sort

array.abs

Devuelve una matriz que contiene los valores absolutos de cada elemento de la matriz original.

array.abs(id)

parámetro

  • id (int[]/float[Objeto de la matriz.

Véase también
array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.binary_search

La función devuelve el índice de un valor, y si no se encuentra ese valor, devuelve −1. La matriz que se busca debe ordenarse en orden ascendente.

array.binary_search(id, val)

Ejemplo

pine
// array.binary_search a = array.from(5, -2, 0, 9, 1) array.sort(a) // [-2, 0, 1, 5, 9] position = array.binary_search(a, 0) // 1 plot(position)

parámetro

  • id (int[]/float[Objeto de la matriz.
  • val(series int/float) El valor buscado en el array.

Las notas
La búsqueda binaria se aplica a las matrices preordenadas en orden ascendente. Compara primero los elementos en el medio de la matriz con los valores objetivo. Si los elementos coinciden con los valores objetivo, devuelve su posición en la matriz. Si el valor del elemento es mayor que el valor objetivo, continúa la búsqueda en la mitad inferior de la matriz. Si el valor del elemento es menor que el valor objetivo, continúa la búsqueda en la mitad superior de la matriz.

Véase también
array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.binary_search_leftmost

Si se encuentra un valor, la función devuelve el índice de ese valor. Cuando no se encuentra el valor, la función devuelve el índice del siguiente elemento más pequeño, si está en la matriz, a la izquierda de la ubicación del valor. La matriz que se busca debe ordenarse en orden ascendente.

array.binary_search_leftmost(id, val)

Ejemplo

pine
// array.binary_search_leftmost a = array.from(5, -2, 0, 9, 1) array.sort(a) // [-2, 0, 1, 5, 9] position = array.binary_search_leftmost(a, 3) // 2 plot(position)

parámetro

  • id (int[]/float[Objeto de la matriz.
  • val(series int/float) El valor buscado en el array.

Las notas
La búsqueda binaria se aplica a las matrices preordenadas en orden ascendente. Compara primero los elementos en el medio de la matriz con los valores objetivo. Si los elementos coinciden con los valores objetivo, devuelve su posición en la matriz. Si el valor del elemento es mayor que el valor objetivo, continúa la búsqueda en la mitad inferior de la matriz. Si el valor del elemento es menor que el valor objetivo, continúa la búsqueda en la mitad superior de la matriz.

Véase también
array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.binary_search_rightmost

Si se encuentra el valor, la función devuelve el índice de ese valor. Cuando no se encuentra el valor, la función devuelve el índice de los elementos a la derecha de su posición en la matriz. La matriz debe ordenarse en orden ascendente.

array.binary_search_rightmost(id, val)

Ejemplo

pine
// array.binary_search_rightmost a = array.from(5, -2, 0, 9, 1) array.sort(a) // [-2, 0, 1, 5, 9] position = array.binary_search_rightmost(a, 3) // 3 plot(position)

parámetro

  • id (int[]/float[Objeto de la matriz.
  • val(series int/float) El valor buscado en el array.

Las notas
La búsqueda binaria actúa en orden ascendente sobre una matriz ordenada. Compara primero los elementos en el medio de la matriz con los valores de la meta. Si los elementos coinciden con los valores de la meta, devuelve su posición en la matriz. Si el valor del elemento es mayor que el valor de la meta, continúa la búsqueda en la mitad inferior de la matriz. Si el valor del elemento es menor que el valor de la meta, continúa la búsqueda en la mitad superior de la matriz.

Véase también
array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.sort

La función ordena los elementos de la matriz.

array.sort(id, order)

Ejemplo

pine
// array.sort example a = array.new_float(0,0) for i = 0 to 5 array.push(a, high[i]) array.sort(a, order.descending) if barstate.islast runtime.log(str.tostring(a))

parámetro

  • id (int[]/float[]/string[Objeto de la matriz.
  • order(sort_order) Orden de orden: order.ascending ((default) o order.descending。

Véase también
array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.sort_indices

Devuelve una matriz de índice que, cuando se utiliza para indexar la matriz original, se accede a sus elementos en el orden en que se ordenan. No modifica la matriz original.

array.sort_indices(id, order)

Ejemplo

pine
// array.sort_indices a = array.from(5, -2, 0, 9, 1) sortedIndices = array.sort_indices(a) // [1, 2, 4, 0, 3] indexOfSmallestValue = array.get(sortedIndices, 0) // 1 smallestValue = array.get(a, indexOfSmallestValue) // -2 plot(smallestValue)

parámetro

  • id (int[]/float[]/string[Objeto de la matriz.
  • order(sort_order) Orden de orden: order.ascending o order.descending. Por defecto el valor es order.ascending.

Véase también
array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.clear

La función elimina todos los elementos de la matriz.

array.clear(id)

Ejemplo

pine
// array.clear example a = array.new_float(5,high) array.clear(a) array.push(a, close) plot(array.get(a,0)) plot(array.size(a))

parámetro

  • id(any array type) Objetos de la matriz

Véase también
array.new_float array.insert array.push array.remove array.pop

array.concat

Esta función se utiliza para combinar dos matrices. Impulsará todos los elementos de la segunda matriz a la primera matriz y luego regresará a la primera matriz.

array.concat(id1, id2)

Ejemplo

pine
// array.concat example a = array.new_float(0,0) b = array.new_float(0,0) for i = 0 to 4 array.push(a, high[i]) array.push(b, low[i]) c = array.concat(a,b) plot(array.size(a)) plot(array.size(b)) plot(array.size(c))

Devuelve el valor
La primera matriz tiene elementos combinados de la segunda matriz.

parámetro

  • id1(any array type) Objeto de la primera matriz <unk>
  • id2(any array type) Objeto de la segunda matriz <unk>

Véase también
array.new_float array.insert array.slice

array.copy

Esta función crea una copia de una matriz existente.

array.copy(id)

Ejemplo

pine
// array.copy example length = 5 a = array.new_float(length, close) b = array.copy(a) a := array.new_float(length, open) plot(array.sum(a) / length) plot(array.sum(b) / length)

Devuelve el valor
Copias de las filas.

parámetro

  • id(any array type) Objetos de la matriz

Véase también
array.new_float array.get array.slice array.sort

array.stdev

La función devuelve la diferencia estándar de los elementos de la matriz.

array.stdev(id, biased)

Ejemplo

pine
// array.stdev example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) plot(array.stdev(a))

Devuelve el valor
El estándar de los elementos de la matriz es diferente.

parámetro

  • id (int[]/float[Objeto de la matriz.
  • biased(series bool) Determina qué estimación debería usarse. Opcional. El valor por defecto es verdadero.

Las notas
Si es asíbiasedSi es verdadera, la función se calculará usando una estimación parcial de la totalidad, y si es falsa, una estimación no parcial de la muestra.

Véase también
array.new_float array.max array.min array.avg

array.standardize

La función devuelve una matriz de elementos estandarizados.

array.standardize(id)

Ejemplo

pine
// array.standardize example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) b = array.standardize(a) plot(array.min(b)) plot(array.max(b))

Devuelve el valor
Array de elementos estandarizados

parámetro

  • id (int[]/float[Objeto de la matriz.

Véase también
array.max array.min array.mode array.avg array.variance array.stdev

array.variance

La función devuelve la diferencia entre los elementos de la matriz.

array.variance(id, biased)

Ejemplo

pine
// array.variance example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) plot(array.variance(a))

Devuelve el valor
Diferenciación de los elementos de la matriz.

parámetro

  • id (int[]/float[Objeto de la matriz.
  • biased(series bool) Determina qué estimación debería usarse. Opcional. El valor por defecto es verdadero.

Las notas
Si es asíbiasedSi es verdadera, la función se calculará usando una estimación parcial de la totalidad, y si es falsa, una estimación no parcial de la muestra.

Véase también
array.new_float array.stdev array.min array.avg array.covariance

array.covariance

La función devuelve la diferencia de coeficientes de las dos matrices.

array.covariance(id1, id2, biased)

Ejemplo

pine
// array.covariance example a = array.new_float(0) b = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) array.push(b, open[i]) plot(array.covariance(a, b))

Devuelve el valor
La congruencia entre las dos matrices es:

parámetro

  • id1 (int[]/float[Objeto de la matriz.
  • id2 (int[]/float[Objeto de la matriz.
  • biased(series bool) Determina qué estimación debería usarse. Opcional. El valor por defecto es verdadero.

Las notas
Si es asíbiasedSi es verdadera, la función se calculará usando una estimación parcial de la totalidad, y si es falsa, una estimación no parcial de la muestra.

Véase también
array.new_float array.max array.stdev array.avg array.variance

array.fill

Esta función configura los elementos de la matriz como valores individuales. Si no se especifica el índice, se configura todos los elementos. Si solo se proporciona el índice inicial (default es 0), se configura el elemento que comienza en ese índice. Si se usan dos parámetros de indexación al mismo tiempo, se configura el elemento que se indexa desde el inicio hasta el final, pero no incluye el índice final (default es na).

array.fill(id, value, index_from, index_to)

Ejemplo

pine
// array.fill example a = array.new_float(10) array.fill(a, close) plot(array.sum(a))

parámetro

  • id(any array type) Objetos de la matriz
  • value (series <type of the array's elements>) para rellenar las matrices.
  • index_from(series int) índice inicial, 0 ≠ por defecto
  • index_to(series int) El índice final, por defecto na。 debe ser mayor que el índice del último elemento que se quiere establecer。

Véase también
array.new_float array.set array.slice

array.includes

Si se encuentra en la matriz, la función devuelve true, y si no, false.

array.includes(id, value)

Ejemplo

pine
// array.includes example a = array.new_float(5,high) p = close if array.includes(a, high) p := open plot(p)

Devuelve el valor
Si se encuentra en la matriz, es verdadero, de lo contrario es falso.

parámetro

  • id(any array type) Objetos de la matriz
  • value (series <type of the array's elements>Los valores a buscar en la matriz son:

Véase también
array.new_float array.indexof array.shift array.remove array.insert

array.insert

La función cambia el contenido de la matriz añadiendo nuevos elementos en el lugar apropiado.

array.insert(id, index, value)

Ejemplo

pine
// array.insert example a = array.new_float(5, close) array.insert(a, 0, open) plot(array.get(a, 5))

parámetro

  • id(any array type) Objetos de la matriz
  • index(series int) El índice de los valores insertados.
  • value (series <type of the array's elements>Los valores a agregar a la matriz son:

Véase también
array.new_float array.set array.push array.remove array.pop array.unshift

array.join

La función construye y devuelve nuevas cadenas mediante la conexión de todos los elementos de la matriz, separados por las cadenas de separadores especificadas.

array.join(id, separator)

Ejemplo

pine
// array.join example a = array.new_float(5, 5) runtime.log(array.join(a, ","))

parámetro

  • id (int[]/float[]/string[Objeto de la matriz.
  • separator(series string) Se usa para separar los elementos de cada serie.

Véase también
array.new_float array.set array.insert array.remove array.pop array.unshift

array.lastindexof

Esta función devuelve el índice de la última vez que el valor apareció. Si no encuentra ese valor, devuelve -1.

array.lastindexof(id, value)

Ejemplo

pine
// array.lastindexof example a = array.new_float(5,high) index = array.lastindexof(a, high) plot(index)

Devuelve el valor
Indice de los elementos

parámetro

  • id(any array type) Objetos de la matriz
  • value (series <type of the array's elements>Los valores a buscar en la matriz son:

Véase también
array.new_float array.set array.push array.remove array.insert

array.max

La función devuelve el valor máximo, o el nto máximo, de la matriz dada.

array.max(id, nth)

Ejemplo

pine
// array.max a = array.from(5, -2, 0, 9, 1) secondHighest = array.max(a, 2) // 1 plot(secondHighest)

Devuelve el valor
El valor máximo de la matriz o el nto máximo de la matriz.

parámetro

  • id (int[]/float[Objeto de la matriz.
  • nth(series int) devuelve el n-ésimo valor máximo, donde 0 es el valor máximo. Opcional. Default es cero.

Véase también
array.new_float array.min array.sum

array.min

La función devuelve el valor mínimo, o el n-ésimo mínimo, de una secuencia dada.

array.min(id, nth)

Ejemplo

pine
// array.min a = array.from(5, -2, 0, 9, 1) secondLowest = array.min(a, 1) // 0 plot(secondLowest)

Devuelve el valor
El valor mínimo de la matriz o el n-ésimo mínimo.

parámetro

  • id (int[]/float[Objeto de la matriz.
  • nth(series int) El n-ésimo mínimo que se devuelve, donde 0 es el mínimo. Opcional. Default es cero.

Véase también
array.new_float array.max array.sum

array.median

La función devuelve el promedio de los elementos de la matriz.

array.median(id)

Ejemplo

pine
// array.median example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) plot(array.median(a))

Devuelve el valor
El promedio de los elementos de la matriz.

parámetro

  • id (int[]/float[Objeto de la matriz.

Véase también
array.avg array.variance array.min

array.mode

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

Ejemplo

pine
// array.mode example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) plot(array.mode(a))

Devuelve el valor
El patrón de los elementos de la matriz.

parámetro

  • id (int[]/float[Objeto de la matriz.

Véase también
array.new_float array.avg array.variance array.min

array.percentile_linear_interpolation

Devuelve el porcentaje especificado de los valores de la matriz que es menor o igual a su valor, usando el intervalo lineal.

array.percentile_linear_interpolation(id, percentage)

parámetro

  • id (int[]/float[Objeto de la matriz.
  • percentage(series int/float) debe ser igual o menor que el porcentaje de los valores devueltos.

Las notas
En estadística, un porcentaje es el porcentaje de un ranking que aparece en un determinado puntaje o por debajo de un determinado puntaje. Esta medida muestra el porcentaje de porcentajes en la distribución de frecuencia estándar que está por debajo del porcentaje que usted mide. El intervalo lineal estima el valor entre dos clasificaciones.

Véase también
array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.percentile_nearest_rank

El método de clasificación más reciente devuelve el valor de la matriz del porcentaje especificado (el dígito porcentual) menor o igual a su valor.

array.percentile_nearest_rank(id, percentage)

parámetro

  • id (int[]/float[Objeto de la matriz.
  • percentage(series int/float) debe ser igual o menor que el porcentaje de los valores devueltos.

Las notas
En estadística, un porcentaje es el porcentaje de un ranking que aparece en un determinado porcentaje o por debajo de un determinado porcentaje. Esta medida muestra el porcentaje de cientos por debajo de la distribución de frecuencia estándar del ranking porcentual que estás midiendo.

Véase también
array.new_float array.insert array.slice array.reverse order.ascending order.descending

array.percentrank

Regresa el orden de porcentaje de los valores medios de la matriz.

array.percentrank(id, index)

parámetro

  • id (int[]/float[Objeto de la matriz.
  • index(series int) Calcula el valor de su orden porcentual.

Las notas
El orden porcentual es el porcentaje de cuántos elementos hay en la matriz que son menores o iguales a los valores de referencia.

Véase también
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 máximo de un conjunto dado.

array.range(id)

Ejemplo

pine
// array.range example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) plot(array.range(a))

Devuelve el valor
Diferencia entre el valor mínimo y máximo de la matriz.

parámetro

  • id (int[]/float[Objeto de la matriz.

Véase también
array.new_float array.min array.max array.sum

array.remove

La función cambia el contenido de la matriz eliminando los elementos con el índice especificado.

array.remove(id, index)

Ejemplo

pine
// array.remove example a = array.new_float(5,high) removedEl = array.remove(a, 0) plot(array.size(a)) plot(removedEl)

Devuelve el valor
El valor del elemento eliminado.

parámetro

  • id(any array type) Objetos de la matriz
  • index(series int) El índice del elemento a eliminar.

Véase también
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)

Ejemplo

pine
// 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ámetro

  • id(any array type) Objetos de la matriz

Véase también
array.new_float array.sort array.push array.set array.avg

array.from

La función adopta un número variable de parámetros de uno de los siguientes tipos: int, float, bool, string, line, color, linefill, y devuelve una matriz del tipo correspondiente.

array.from(arg0, arg1, ...)

Ejemplo

pine
// array.from_example arr = array.from("Hello", "World!") // arr (string[]) will contain 2 elements: {Hello}, {World!}. plot(close)

Devuelve el valor
El valor de los elementos de la matriz.

parámetro

  • arg0, arg1, ...(series int/float/bool/color/string/line/linefill) Parámetros del conjunto de números。

array.new

La función crea un nuevo<type>Objetos de una matriz de elementos.

array.new(size, initial_value)

Ejemplo

pine
// array.new<string> example a = array.new<string>(1, "Hello, World!") runtime.log(array.get(a, 0))

Ejemplo

pine
// 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))

Ejemplo

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

Ejemplo

pine
// 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)

Devuelve el valor
Identificación de un objeto de una matriz que se puede usar con otras matrices.*Función () <unk>

parámetro

  • sizeEl tamaño inicial de la secuencia (series int) es opcional. El valor predeterminado es 0
  • initial_value(series <type>) El valor inicial de todos los elementos de la serie。 es opcional。 el valor predeterminado es <unk>na<unk>。

Las notas
El índice de la matriz comienza en 0.
Si se quiere initializar una matriz y especificar todos sus elementos al mismo tiempo, utilice la función array.from。

Véase también
array.from array.push array.get array.size array.remove array.shift array.sum

array.new_bool

Esta función crea un nuevo objeto de la matriz compuesto por elementos de tipo bool。

array.new_bool(size, initial_value)

Ejemplo

pine
// array.new_bool example length = 5 a = array.new_bool(length, close > open) plot(array.get(a, 0) ? close : open)

Devuelve el valor
Identificación de un objeto de una matriz que se puede usar con otras matrices.*Función () <unk>

parámetro

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

Las notas
El índice de la matriz comienza en 0.

Véase también
array.new_float array.get array.slice array.sort

array.new_float

Esta función crea un nuevo objeto de una matriz de elementos tipo punto flotante.

array.new_float(size, initial_value)

Ejemplo

pine
// array.new_float example length = 5 a = array.new_float(length, close) plot(array.sum(a) / length)

Devuelve el valor
Identificación de un objeto de una matriz que se puede usar con otras matrices.*Función () <unk>

parámetro

  • sizeEl tamaño inicial de la secuencia (series int) es opcional. El valor predeterminado es 0
  • initial_value(series int/float) El valor inicial de todos los elementos de la serie。 es opcional。 el valor predeterminado es <unk>na<unk>。

Las notas
El índice de la matriz comienza en 0.

Véase también
array.new_bool array.get array.slice array.sort

array.new_int

La función crea un nuevo objeto de la matriz compuesto por elementos de tipo int。

array.new_int(size, initial_value)

Ejemplo

pine
// array.new_int example length = 5 a = array.new_int(length, int(close)) plot(array.sum(a) / length)

Devuelve el valor
Identificación de un objeto de una matriz que se puede usar con otras matrices.*Función () <unk>

parámetro

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

Las notas
El índice de la matriz comienza en 0.

Véase también
array.new_float array.get array.slice array.sort

array.new_string

Esta función crea un nuevo objeto de la matriz de un elemento de tipo de cadena ≠

array.new_string(size, initial_value)

Ejemplo

pine
// array.new_string example length = 5 a = array.new_string(length, "text") runtime.log(array.get(a, 0))

Devuelve el valor
Identificación de un objeto de una matriz que se puede usar con otras matrices.*Función () <unk>

parámetro

  • sizeEl tamaño inicial de la secuencia (series int) es opcional. El valor predeterminado es 0
  • initial_value(series string) El valor inicial de todos los elementos de la secuencia。 es opcional。 el valor predeterminado es <unk>na<unk>。

Las notas
El índice de la matriz comienza en 0.

Véase también
array.new_float array.get array.slice

array.get

La función devuelve el valor de un elemento en el índice especificado.

array.get(id, index)

Ejemplo

pine
// 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))

Devuelve el valor
El valor de los elementos de la matriz.

parámetro

  • id(any array type) Objetos de la matriz
  • index(series int) Para devolver el índice de los elementos cuyo valor es .

Véase también
array.new_float array.set array.slice array.sort

array.push

Esta función añade un valor a la matriz <unk>.

array.push(id, value)

Ejemplo

pine
// array.push example a = array.new_float(5, 0) array.push(a, open) plot(array.get(a, 5))

parámetro

  • id(any array type) Objetos de la matriz
  • value (series <type of the array's elements>Se añade el valor del elemento al final de la matriz.

Véase también
array.new_float array.set array.insert array.remove array.pop array.unshift

array.set

Esta función establece el valor del elemento como el índice especificado.

array.set(id, index, value)

Ejemplo

pine
// 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ámetro

  • id(any array type) Objetos de la matriz
  • index(series int) Modificar el índice de los elementos.
  • value (series <type of the array's elements>Los nuevos valores que se deben establecer.

Véase también
array.new_float array.get array.slice

array.sum

La función devuelve la suma de los elementos de la matriz.

array.sum(id)

Ejemplo

pine
// array.sum example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) plot(array.sum(a))

Devuelve el valor
La suma de los elementos de la matriz.

parámetro

  • id (int[]/float[Objeto de la matriz.

Véase también
array.new_float array.max array.min

array.avg

La función devuelve el promedio de los elementos de la matriz.

array.avg(id)

Ejemplo

pine
// array.avg example a = array.new_float(0) for i = 0 to 9 array.push(a, close[i]) plot(array.avg(a))

Devuelve el valor
El promedio de los elementos de la matriz.

parámetro

  • id (int[]/float[Objeto de la matriz.

Véase también
array.new_float array.max array.min array.stdev

array.indexof

Esta función devuelve el índice de la primera aparición de un valor. Si no se encuentra, devuelve -1.

array.indexof(id, value)

Ejemplo

pine
// array.indexof example a = array.new_float(5,high) index = array.indexof(a, high) plot(index)

Devuelve el valor
Indice de los elementos

parámetro

  • id(any array type) Objetos de la matriz
  • value (series <type of the array's elements>Los valores a buscar en la matriz son:

Véase también
array.lastindexof array.get array.lastindexof array.remove array.insert

strategy

existirstrategyEn la función de construcción correspondiente, el número de puntos de pérdida y el número de puntos de parada se definen como el múltiplo de un salto en el precio. Por ejemplo:strategy.exitLa función deprofitlossLos parámetros se indican en puntos como pérdida, parada, parámetrosprofitSe establece como 10, es decir, un salto de precio multiplicado por 10 como diferencia de parada, un salto de precio es una variable internasyminfo.mintick

strategy

Esta función tiene varias propiedades de política:
Nota: Las citas son sólo para apoyartitleshorttitleoverlaypyramidingdefault_qty_typedefault_qty_valueLos otros parámetros se pueden configurar a través de los parámetros de 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)

Ejemplo

pine
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ámetro

  • title(const string) El título del indicador que se verá en el complemento de indicadores/estrategias.
  • shorttitle(const string) El título corto del indicador que se verá en el gráfico de la figura. El parámetro es opcional.
  • overlay(const bool) Si es verdadero, el indicador se añade a la superposición de la serie principal. Si es falso, se añade a una ventana de gráficos separada. Falso por defecto.
  • format(const string) Los tipos de valores posibles para el formato de los valores de los indicadores en el eje de precios son: format.inherit, format.price, format.volume. Por defecto, format.inherit。
  • precision(const int) El número de dígitos después del número de puntos flotantes de los valores indicadores en el eje de precios. Debe ser un número entero no negativo y no mayor a 16. Si se omite, se usa el formato de la serie de padres. Si el formato es format.inherit y se establece este parámetro, el formato se cambia a format.price.
  • scale(scale_type) El indicador debe seguir las coordenadas del precio. Los valores posibles son: scale.right, scale.left, scale.none. El valor scale.none solo se puede usar solo en combinación con la configuración 'overlay=true'.
  • pyramiding(const int) El máximo número de entradas permitidas 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. El valor por defecto es 0。
  • calc_on_order_fills(const bool) Cálculo de órdenes intrabar adicionales. Si el parámetro está configurado en <unk>true<unk>, la política se volverá a calcular una vez que la línea K se llene después de la orden (no solo cuando se cierra la línea k). El valor predeterminado es <unk>false<unk>.
  • calc_on_every_tick(const bool) Cálculo adicional de la estrategia intrabar. Si el parámetro es <unk>true<unk>, la estrategia calculará cada minuto en tiempo real, sin cerrar la línea k. El parámetro no afecta el cálculo de la estrategia de datos históricos. El valor predeterminado es <unk>false<unk>.
  • max_bars_back(const int) El número máximo de bits que se puede usar para la estrategia de referencia histórica. Si se cita el historial de las variables en el código de la secuencia de comandos, se utiliza '[]' operador), entonces este parámetro se aplicará a cada variable incorporada o variable de usuario en el script. El tamaño de la zona de amortiguación variable en los scripts de Pine generalmente se detecta automáticamente. Sin embargo, en algunos casos esto es imposible, y es por eso que el parámetro permite al usuario configurar manualmente el límite inferior de este valor. Nota: Es óptimo usar la función max_bars_back en lugar del parámetro, ya que solo se aplica a una variable.
  • backtest_fill_limits_assumption(const int) Presunción de ejecución de la oferta de precio límite. La oferta de precio límite se negocia en el intrabar solo cuando el precio de mercado supera el número de ticks especificado para el nivel de la oferta de precio límite.
  • default_qty_type(const string) está definido paraqtyLos valores de los parámetros se expresan en la función estrategia.entry o estrategia.order. Los posibles valores son: estrategia. fijo para el contrato / acción / número de horas, estrategia. efectivo para el monto monetario, o estrategia. porcentaje de_equidad para el porcentaje de derechos de propiedad disponibles.
  • default_qty_value(const int/float) Número de transacciones por defecto de la función strategy.entry o strategy.order cuya unidad, cuando su parámetro 'qty' no está definido, está determinada por el parámetro utilizado junto con el parámetro 'default_qty_type'
  • currency(const string) La moneda de la cuenta de esta estrategia。 es opcional。 el valor predeterminado es la moneda de la mercancía 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) El punto de deslizamiento con tick como unidad de la oferta, se agregará / restará del precio de transacción de la orden de compra / venta o de la orden de parada. Si mintick = 0.01 y el punto de deslizamiento = 5, el punto de deslizamiento total será de 5 * 0.01 = 0.05。
  • commission_type(const string) Tipo de comisión por cada pedido. Los valores permitidos son: strategy.commission.percent (porcentaje del monto en efectivo del pedido), strategy.commission.cash_per_contract (el monto en la moneda de la cuenta por cada contrato), strategy.commission.cash_per_order (el monto en la moneda de la cuenta por cada pedido).
  • commission_value(const int/float) Valor de la comisión del pedido. Dependiendo del tipo de comisión elegido, incluye porcentaje o cantidad.
  • ~~process_orders_on_close~~Cuando (const bool) está configurado para ser true generará otros intentos de ejecución de órdenes después de seleccionar el cierre del gráfico y completar el cálculo de la estrategia. Si las órdenes son órdenes de precio de mercado, el simulador de corredores las ejecutará antes de abrir el siguiente gráfico. Si las órdenes son precios de límite, las órdenes solo se ejecutarán si se cumplen las condiciones de precio.
  • close_entries_rule(const string) Determina el orden de cierre de la orden. Los valores permitidos son: 'FIFO' o 'ANY'. FIFO significa que cuando se abren varias operaciones, se debe cerrar la primera. Esta regla se aplica a acciones, futuros y divisas estadounidenses (de acuerdo con la regla NFA 2-43b). 'ANY' significa que las operaciones se pueden cerrar en cualquier orden; esto está permitido en operaciones de divisas no estadounidenses. El valor predeterminado es 'FIFO'.
  • max_lines_count(const int) Muestra el número de barras más recientes. El valor predeterminado es 50, el 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, el valor máximo permitido es 500.
  • max_boxes_count(const int) El número de dibujos de la última caja que se muestran. El valor predeterminado es 50, el valor máximo permitido es 500.
  • margin_long(const int/float) La garantía múltiple es el porcentaje del precio de compra de un título cuya posición múltiple debe estar cubierta con efectivo o fianza. Debe ser un número no negativo. Opcional. El valor predeterminado es 100.
  • margin_short(const int/float) La garantía a flote es el porcentaje del precio de compra de un título cuya posición a flote debe estar cubierta con efectivo o fianza. Debe ser un número no negativo. Opcional. El valor predeterminado es 100.
  • explicit_plot_zorder(const bool) Especifica el orden de trazado, relleno y presentación de las líneas horizontales de los indicadores. Si es verdadero, se trazará la tabla según el orden en que aparezcan en el código del indicador, y cada tabla más reciente se trazará sobre la anterior. Esto solo se aplica a plot*Funciones () fill y hline. Opcional. El valor por defecto es false.
  • initial_capital(const int/float) La cantidad de dinero inicialmente disponible para el comercio de estrategias, expresada en la moneda definida en la barra de monedas de la moneda. Opcional. El valor predeterminado es 1000000
  • risk_free_rate(const int/float) La tasa de rentabilidad sin riesgo es el cambio anual porcentual del valor de la inversión con el menor riesgo o cero, para calcular los ratios Sharpe y Sortino. El valor predeterminado es 2

Las notas
Cada guión de estrategia debe tener una llamada de estrategia.
El código PineScript que usa el parámetro calc_on_every_tick = true puede hacer diferentes cálculos para el registro histórico y el dato en tiempo real.
Cuando se utiliza un tipo de gráfico no estándar como base de la estrategia, se necesita saber que los resultados pueden variar. Los pedidos se ejecutarán al precio de la tabla (por ejemplo, para Heikin Ashi se utilizará el precio de Heikin Ashi (el promedio) no es el verdadero precio de mercado). Por lo tanto, se recomienda encarecidamente que utilice el tipo de gráfico estándar en su estrategia.

Véase también
indicator

strategy.entry

Se trata de una orden de entrada en el mercado. Si una orden con el mismo ID ya está en suspenso, se puede modificar la orden. Si no hay una orden con el ID especificado, se emitirá una nueva orden. Para suspender la orden de entrada, se debe usar la orden 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)

Ejemplo

pine
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ámetro

  • id(series string) Parámetros requeridos。 Identificador de pedido。 Se puede cancelar o modificar un pedido haciendo referencia a su identificación。
  • direction(strategy_direction) Un parámetro necesario. Dirección de la posición del mercado: 'strategy.long' es el extremo y 'strategy.short' es el extremo.
  • qty(series int/float) Parámetros seleccionables  Número de contratos/acciones/horas/unidades negociadas  Valor predeterminado 'NaN' 
  • limit(series int/float) Parámetros opcionales. El precio límite de la orden. Si se especifica, el tipo de orden es "limit" o "stop-limit". Otros tipos de orden son "NaN".
  • stop(series int/float) Parámetros opcionales. El precio de parada de la orden. Si se ha especificado, el tipo de orden es "stop" o "stop-limit". Otros tipos de orden son "NaN".
  • oca_name(series string) Parámetros opcionales. El pedido pertenece al nombre del grupo OCA. Si el pedido 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 órdenes OCA ❚ Valores permitidos: strategy.oca.none - el pedido no debe pertenecer a ningún grupo de OCA específico; strategy.oca.cancel - el pedido debe pertenecer al grupo OCA, una vez que el pedido es entregado, todos los demás pedidos en el mismo grupo serán cancelados; strategy.oca.reduce - el pedido debe pertenecer al grupo OCA, si se ha colocado un número X de contratos de pedidos, el número de otros contratos de pedidos en el mismo grupo OCA disminuye X ❚Nota: FMZ no admite este parámetro.
  • comment(series string) Parámetros opcionales。 Otras instrucciones del pedido。
  • when(series bool) Parámetros opcionales。 el estado del pedido。 si es "true", el pedido se coloca。 si es "false", no ocurre nada ((el pedido con el mismo ID colocado anteriormente no se revocó)。 el valor predeterminado es "true"。
  • alert_message(series string) Un parámetro opcional cuando se utiliza el símbolo {{strategy.order.alert_message}} en el campo de la barra de mensajes de la barra de mensajes de la barra de diálogo de creación de la barra de alarmas.

strategy.close

Se trata de una orden de salida con un ID designado. Si hay varias órdenes de entrada con el mismo ID, todas se retirarán al mismo tiempo. Si no hay una orden de apertura con un ID designado al activar la orden, la orden no tendrá efecto.

strategy.close(id, when, comment, qty, qty_percent, alert_message)

Ejemplo

pine
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ámetro

  • id(series string) Parámetros requeridos。 Identificador del pedido。 Se puede cerrar el pedido haciendo referencia a su identificación。
  • when(series bool) Parámetros seleccionables ◦ Condiciones del comando ◦
  • qty(series int/float) Parámetros seleccionables. Número de contratos/acciones/horas/unidades de salida de la operación. El valor predeterminado es 'NaN'
  • qty_percent(series int/float) define el porcentaje de posición en la línea de paridad entre ((0-100) ◦ que tiene una prioridad inferior a la prioridad del parámetro 'qty' ◦ opcional ◦ el valor por defecto es 100 ◦
  • comment(series string) Parámetros opcionales。 Otras instrucciones del pedido。
  • alert_message(series string) Un parámetro opcional cuando se utiliza el símbolo {{strategy.order.alert_message}} en el campo de la barra de mensajes de la barra de mensajes de la barra de diálogo de creación de la barra de alarmas.

strategy.close_all

La salida de la posición actual del mercado para mantenerla estable.

strategy.close_all(when, comment, alert_message)

Ejemplo

pine
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ámetro

  • when(series bool) Parámetros seleccionables ◦ Condiciones del comando ◦
  • comment(series string) Parámetros opcionales。 Otras instrucciones del pedido。
  • alert_message(series string) Un parámetro opcional cuando se utiliza el símbolo {{strategy.order.alert_message}} en el campo de la barra de mensajes de la barra de mensajes de la barra de diálogo de creación de la barra de alarmas.

strategy.exit

Esta es una orden de salida de una posición de entrada o de todo el mercado. Si una orden de entrada con el mismo ID ya está en suspenso, puede modificarse. Si una orden de entrada no se negocia, pero aparece una orden de salida, la orden de salida se mantendrá en suspenso hasta que la orden de salida pueda ser colocada por la parte posterior a la orden de entrada. Para suspender una orden de salida, se debe usar la orden estrategia. cancelar o estrategia. cancelar_todo. Si la función estrategia.exit se invoca una vez, solo se retirará una vez.

strategy.exit(id, from_entry, qty, qty_percent, profit, limit, loss, stop, trail_price, trail_points, trail_offset, oca_name, comment, when, alert_message)

Ejemplo

pine
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ámetro

  • id(series string) Parámetros requeridos。 Identificador de pedido。 Se puede cancelar o modificar un pedido haciendo referencia a su identificación。
  • from_entry(series string) Parámetros opcionales ❚ Exit para especificar el identificador de instrucciones de entrada ❚ Exit para todas las posiciones, debe utilizar una cadena en blanco ❚ El valor predeterminado es una cadena en blanco ❚
  • qty(series int/float) Parámetros seleccionables. Número de contratos/acciones/horas/unidades de salida de la operación. El valor predeterminado es 'NaN'
  • qty_percent(series int/float) define el porcentaje de posición en la línea de paridad entre ((0-100) ◦ que tiene una prioridad inferior a la prioridad del parámetro 'qty' ◦ opcional ◦ el valor por defecto es 100 ◦
  • profit(series int/float) Parámetros opcionales ◦ Objetivo de ganancias (indicado en puntos) ◦ Si se ha especificado, salga de la posición en el mercado con una orden de precio límite cuando se alcance el monto de ganancias especificado (en puntos) ◦ El valor predeterminado es <unk>NaN<unk>
  • limit(series int/float) Parámetros opcionales. Objetivo de ganancias (se requiere especificar el precio). Si se ha especificado, se retira de la posición del mercado con el precio especificado (o mejor). El parámetro 'limit' tiene prioridad superior a la prioridad del parámetro 'profit' (si el valor no es 'NaN', entonces 'limit' reemplaza 'profit').
  • loss(series int/float) parámetros opcionales <unk> Stop loss (indicado en puntos) <unk> Si se ha especificado, cuando se alcanza el monto de pérdidas especificado (puntos), se retira de la posición de mercado con una sola parada de pérdidas <unk> El valor predeterminado es <unk> NaN <unk>
  • stop(series int/float) parámetros opcionales ≠ stop loss (precisa precio) ≠ si se ha especificado, se saldrá de la posición en el mercado al precio especificado (o peor) ≠ si el parámetro 'stop loss' tiene prioridad superior a la del parámetro 'loss' (si el valor no es 'NaN', entonces 'stop loss' sustituye a 'loss') ≠ el valor predeterminado es <unk>NaN<unk>
  • trail_price(series int/float) Parámetros opcionales ◦ seguimiento del nivel de activación del stop loss ◦ precio especificado ◦ si se especifica, se colocará el stop loss de seguimiento cuando se alcance el nivel de precio especificado ◦ desviación especificada en el parámetro de la barra trail_offset para determinar el precio inicial del stop loss de seguimiento ◦ en puntos: 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 nada ◦ el valor predeterminado es ◦ NaN ◦
  • trail_points(series int/float) Parámetros opcionales ❚ seguimiento del nivel de activación de la parada de pérdidas ◦ ganancias expresadas en puntos ◦ si se especifica, se colocará una orden de parada de seguimiento cuando se alcance el nivel de precio calculado ◦ cantidad de ganancias especificadas ◦ desviación especificada en el parámetro de la barra de trail_offset para determinar el movimiento del precio inicial de la barra de pérdidas ◦ en puntos: 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 <unk>NaN<unk>
  • trail_offset(series int/float) parámetros opcionales ❚ seguimiento de nivel de activación de stop loss (... en puntos) ❚ desviación en puntos utilizada para determinar el precio inicial de seguimiento de stop loss: X puntos por debajo de 'trail_price' o 'trail_points' para salir de la multitud; X puntos por encima de 'trail_price' o 'trail_points' para salir de la caída ❚ el valor predeterminado es <unk>NaN<unk>。
  • oca_name(series string) Parámetros opcionales. Nombre del grupo OCA (oca_type = strategy.oca.reduce) Objetivo de ganancias, stop loss / tracking stop loss. Si no se especifica el nombre, se generará automáticamente.Nota: FMZ no admite este parámetro.
  • comment(series string) Parámetros opcionales。 Otras instrucciones del pedido。
  • when(series bool) Parámetros opcionales。 el estado del pedido。 si es "true", el pedido se coloca。 si es "false", no ocurre nada ((el pedido con el mismo ID colocado anteriormente no se revocó)。 el valor predeterminado es "true"。
  • alert_message(series string) Un parámetro opcional cuando se utiliza el símbolo {{strategy.order.alert_message}} en el campo de la barra de mensajes de la barra de mensajes de la barra de diálogo de creación de la barra de alarmas.

strategy.cancel

Se trata de un comando que utiliza el nombre para cancelar/desactivar todas las listas de preinstalación, generado por las siguientes funciones: strategy.order, strategy.entry y strategy.exit。

strategy.cancel(id, when)

Ejemplo

pine
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ámetro

  • id(series string) Parámetros obligatorios。 identificación de la orden。 ubicación de la identificación para revocar una orden。
  • when(series bool) Parámetros opcionales. Cancelar una orden según el ID. Si es "true", la orden será cancelada. El valor predeterminado es "true".

strategy.cancel_all

Se trata de cancelar/desactivar todos los comandos de la lista de preinstalación, generados por las siguientes funciones: strategy.order, strategy.entry y strategy.exit.

strategy.cancel_all(when)

Ejemplo

pine
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ámetro

  • when(series bool) Parámetros opcionales ◦ cancelar todas las órdenes de condiciones ◦ cancelar todas las órdenes de actividad si la condición es verdadera ◦ el valor por defecto es <unk>true<unk>

strategy.order

Esta es la orden de la siguiente orden. Si una orden con el mismo ID ya está pendiente, se puede modificar la orden. Si no hay una orden con el ID especificado, se emitirá una nueva orden. Para detener la orden, se debe usar la orden strategy.cancel o strategy.cancel_all. En comparación con la función strategy.entry, la función strategy.order no se ve afectada por la forma de la pirámide.

strategy.order(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)

Ejemplo

strategy(title = "simple strategy order example") strategy.order("buy", strategy.long, 1, when = open > high[1]) // buy by market if current open great then previous high strategy.order("sell", strategy.short, 1, when = open < low[1]) // sell by market if current open less then previous low

parámetro

  • id(series string) Parámetros requeridos。 Identificador de pedido。 Se puede cancelar o modificar un pedido haciendo referencia a su identificación。
  • direction(strategy_direction) Un parámetro necesario. Dirección de la orden: 'strategy.long' para comprar, 'strategy.short' para vender
  • qty(series int/float) Parámetros seleccionables  Número de contratos/acciones/horas/unidades negociadas  Valor predeterminado 'NaN' 
  • limit(series int/float) Parámetros opcionales. El precio límite de la orden. Si se especifica, el tipo de orden es "limit" o "stop-limit". Otros tipos de orden son "NaN".
  • stop(series int/float) Parámetros opcionales. El precio de parada de la orden. Si se ha especificado, el tipo de orden es "stop" o "stop-limit". Otros tipos de orden son "NaN".
  • oca_name(series string) Parámetros opcionales. El pedido pertenece al nombre del grupo OCA. Si el pedido 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 órdenes OCA ❚ Valores permitidos: strategy.oca.none - el pedido no debe pertenecer a ningún grupo de OCA específico; strategy.oca.cancel - el pedido debe pertenecer al grupo OCA, una vez que el pedido es entregado, todos los demás pedidos en el mismo grupo serán cancelados; strategy.oca.reduce - el pedido debe pertenecer al grupo OCA, si se ha colocado un número X de contratos de pedidos, el número de otros contratos de pedidos en el mismo grupo OCA disminuye X ❚Nota: FMZ no admite este parámetro.
  • comment(series string) Parámetros opcionales。 Otras instrucciones del pedido。
  • when(series bool) Parámetros opcionales。 el estado del pedido。 si es "true", el pedido se coloca。 si es "false", no ocurre nada ((el pedido con el mismo ID colocado anteriormente no se revocó)。 el valor predeterminado es "true"。
  • alert_message(series string) Un parámetro opcional cuando se utiliza el símbolo {{strategy.order.alert_message}} en el campo de la barra de mensajes de la barra de mensajes de la barra de diálogo de creación de la barra de alarmas.

strategy.opentrades.entry_bar_index

Regresa el bar_index de la entrada en una posición no equilibrada.

strategy.opentrades.entry_bar_index(trade_num)

Esperar 10 líneas K y cerrar la posición.

Ejemplo

pine
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ámetro

  • trade_num(series int) Número de transacción de la operación sin liquidar 。 Número de la primera operación es cero 。

Véase también
strategy.closedtrades.entry_bar_index strategy.closedtrades.exit_bar_index

strategy.opentrades.entry_id

ID de la entrada que regresa a la operación sin liquidar.

strategy.opentrades.entry_id(trade_num)

Ejemplo

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

Devuelve el valor
ID de la entrada que regresa a la operación sin liquidar.

parámetro

  • trade_num(series int) Número de transacción de la operación sin liquidar 。 Número de la primera operación es cero 。

Las notas
Si trade_num no está dentro del rango, la función devuelve na:0 a strategy.opentrades-1。

Véase también
strategy.opentrades.entry_bar_index strategy.opentrades.entry_time

strategy.opentrades.entry_price

El precio de entrada de las operaciones de devolución de posiciones no liquidadas.

strategy.opentrades.entry_price(trade_num)

Ejemplo

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

Cálculo del precio promedio de las posiciones sin liquidar

Ejemplo

pine
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ámetro

  • trade_num(series int) Número de transacción de la operación sin liquidar 。 Número de la primera operación es cero 。

Véase también
strategy.closedtrades.exit_price

strategy.opentrades.entry_time

Regresar a la hora UNIX de entrada en una operación sin liquidar.

strategy.opentrades.entry_time(trade_num)

Ejemplo

pine
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ámetro

  • trade_num(series int) Número de transacción de la operación sin liquidar 。 Número de la primera operación es cero 。

Véase también
strategy.closedtrades.entry_time strategy.closedtrades.exit_time

strategy.opentrades.profit

Las pérdidas que se devuelven a las operaciones sin liquidar. Las pérdidas se expresan como negativas.

strategy.opentrades.profit(trade_num)

Regreso a las ganancias de la última posición abierta

Ejemplo

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

Cálculo de las ganancias de todas las operaciones no liquidadas

Ejemplo

pine
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ámetro

  • trade_num(series int) Número de transacción de la operación sin liquidar 。 Número de la primera operación es cero 。

Véase también
strategy.closedtrades.profit strategy.openprofit strategy.netprofit strategy.grossprofit

strategy.opentrades.size

Devuelve la dirección de la operación y el número de contratos en la operación de posición no liquidada. Si este valor es > 0, la posición de mercado es de más cabeza. Si este valor es < 0, la posición de mercado es de cabeza vacía.

strategy.opentrades.size(trade_num)

Ejemplo

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

Cálculo del porcentaje de ganancias promedio de las operaciones sin liquidar

Ejemplo

pine
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ámetro

  • trade_num(series int) Número de transacción de la operación sin liquidar 。 Número de la primera operación es cero 。

Véase también
strategy.closedtrades.size strategy.position_size strategy.opentrades strategy.closedtrades

strategy.closedtrades.entry_bar_index

Regresa el bar_index de la entrada en una operación que se ha liquidado.

strategy.closedtrades.entry_bar_index(trade_num)

Ejemplo

pine
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ámetro

  • trade_num(series int) Número de transacción de la operación que se ha liquidado. El número de la primera transacción es cero.

Véase también
strategy.closedtrades.exit_bar_index strategy.opentrades.entry_bar_index

strategy.closedtrades.exit_price

Regresar al precio de salida de una operación que se haya liquidado.

strategy.closedtrades.exit_price(trade_num)

Ejemplo

pine
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

Ejemplo

pine
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ámetro

  • trade_num(series int) Número de transacción de la operación que se ha liquidado. El número de la primera transacción es cero.

Véase también
strategy.closedtrades.entry_price

strategy.closedtrades.exit_bar_index

Regresa el bar_index de la salida de la operación que ha sido liquidada.

strategy.closedtrades.exit_bar_index(trade_num)

Ejemplo

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

Calcula el número promedio de líneas K por transacción.

Ejemplo

pine
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ámetro

  • trade_num(series int) Número de transacción de la operación que se ha liquidado. El número de la primera transacción es cero.

Véase también
bar_index

strategy.closedtrades.entry_id

El id de la entrada que devuelve la operación que ha sido liquidada.

strategy.closedtrades.entry_id(trade_num)

Ejemplo

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

Devuelve el valor
El id de la entrada que devuelve la operación que ha sido liquidada.

parámetro

  • trade_num(series int) Número de transacción de la operación que se ha liquidado. El número de la primera transacción es cero.

Las notas
Si trade_num no está en el rango, la función devuelve na:0 a strategy.closedtrades-1。

Véase también
strategy.closedtrades.entry_bar_index strategy.closedtrades.entry_time

strategy.closedtrades.entry_price

El precio de entrada de las operaciones que han sido liquidadas.

strategy.closedtrades.entry_price(trade_num)

Ejemplo

pine
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

Ejemplo

pine
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ámetro

  • trade_num(series int) Número de transacción de la operación que se ha liquidado. El número de la primera transacción es cero.

Véase también
strategy.closedtrades.exit_price strategy.closedtrades.size strategy.closedtrades

strategy.closedtrades.entry_time

Regresar a la hora de entrada de UNIX en el que se ha liquidado la posición.

strategy.closedtrades.entry_time(trade_num)

Ejemplo

pine
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ámetro

  • trade_num(series int) Número de transacción de la operación que se ha liquidado. El número de la primera transacción es cero.

Véase también
strategy.opentrades.entry_time strategy.closedtrades.exit_time time

strategy.closedtrades.profit

Las pérdidas que se devuelven a las operaciones que se han liquidado. Las pérdidas se expresan como negativas.

strategy.closedtrades.profit(trade_num)

Ejemplo

pine
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ámetro

  • trade_num(series int) Número de transacción de la operación que se ha liquidado. El número de la primera transacción es cero.

Véase también
strategy.opentrades.profit strategy.closedtrades.commission

strategy.closedtrades.size

Devuelve la dirección de la operación y el número de contratos en la operación que se ha liquidado. Si este valor es > 0, la posición de mercado es de más cabeza. Si este valor es < 0, la posición de mercado es de cabeza vacía.

strategy.closedtrades.size(trade_num)

Ejemplo

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

Cálculo del porcentaje de ganancias promedio de las operaciones en posición cerrada

Ejemplo

pine
strategy("`strategy.closedtrades.size` Example 2") // Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars. if bar_index % 15 == 0 strategy.entry("Long", strategy.long) if bar_index % 20 == 0 strategy.close("Long") // Calculate profit for both closed trades. profitPct = 0.0 for tradeNo = 0 to strategy.closedtrades - 1 entryP = strategy.closedtrades.entry_price(tradeNo) exitP = strategy.closedtrades.exit_price(tradeNo) profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100 // Calculate average profit percent for both closed trades. avgProfitPct = nz(profitPct / strategy.closedtrades) plot(avgProfitPct)

parámetro

  • trade_num(series int) Número de transacción de la operación que se ha liquidado. El número de la primera transacción es cero.

Véase también
strategy.opentrades.size strategy.position_size strategy.closedtrades strategy.opentrades

strategy.closedtrades.exit_time

Regreso a la hora UNIX de salida de la operación de liquidación.

strategy.closedtrades.exit_time(trade_num)

Ejemplo

pine
strategy("strategy.closedtrades.exit_time Example 1") // Enter long trades on three rising bars; exit on two falling bars. if ta.rising(close, 3) strategy.entry("Long", strategy.long) if ta.falling(close, 2) strategy.close("Long") // Calculate the average trade duration. avgTradeDuration() => sumTradeDuration = 0 for i = 0 to strategy.closedtrades - 1 sumTradeDuration += strategy.closedtrades.exit_time(i) - strategy.closedtrades.entry_time(i) result = nz(sumTradeDuration / strategy.closedtrades) // Display average duration converted to seconds and formatted using 2 decimal points. if barstate.islastconfirmedhistory label.new(bar_index, high, str.tostring(avgTradeDuration() / 1000, "#.##") + " seconds")

Reabrir una posición cerrada después de X segundos

Ejemplo

strategy("strategy.closedtrades.exit_time Example 2") // Strategy calls to emulate a single long trade at the first bar. if bar_index == 0 strategy.entry("Long", strategy.long) reopenPositionAfter(timeSec) => if strategy.closedtrades > 0 if time - strategy.closedtrades.exit_time(strategy.closedtrades - 1) >= timeSec * 1000 strategy.entry("Long", strategy.long) // Reopen last closed position after 120 sec. reopenPositionAfter(120) if ta.change(strategy.opentrades) strategy.exit("Long", stop = low * 0.9, profit = high * 2.5)

parámetro

  • trade_num(series int) Número de transacción de la operación que se ha liquidado. El número de la primera transacción es cero.

Véase también
strategy.closedtrades.entry_time

strategy.risk.allow_entry_in

Esta función se puede usar para especificar en qué dirección de mercado la función strategy.entry permite abrir posiciones.

strategy.risk.allow_entry_in(value)

Ejemplo

pine
strategy("strategy.risk.allow_entry_in") strategy.risk.allow_entry_in(strategy.direction.long) strategy.entry("Long", strategy.long, when = open > close) // Instead of opening a short position with 10 contracts, this command will close long entries. strategy.entry("Short", strategy.short, when = open < close, qty = 10)

parámetro

strategy.risk.max_position_size

El objetivo de esta regla es determinar el valor máximo de una posición en el mercado. La regla afecta a las siguientes funciones:strategy.entryEl número de entradas puede reducirse (si es necesario) a contratos/acciones/mano/unidad, por lo que el valor total de la posición no excede el valor indicado en 'strategy.risk.max_position_size'. Si la cantidad mínima sigue siendo una violación de la regla, no se colocarán órdenes.

strategy.risk.max_position_size(contracts)

Ejemplo

pine
strategy("risk.max_position_size Demo", default_qty_value = 100) strategy.risk.max_position_size(10) strategy.entry("buy", strategy.long, when = open > close) plot(strategy.position_size) // max plot value will be 10

parámetro

  • contracts(simple int/float) Parámetros requeridos ◦ Número máximo de contratos/acciones/manos/unidades de posición ◦

math

math.abs

¿Cuál es el problema?number >= 0,numberEl valor absoluto es numberSi no es así,number

math.abs(number)

Devuelve el valor
numberEl valor absoluto de .

math.acos

La función acos devuelve el eje inverso de la cifra ((en forma de arco), tal como cos ((acos ((y)) = y en el rango de y[-1, 1]。

math.acos(angle)

Devuelve el valor
El valor de la contra-resonancia. Si y está fuera del alcance[-1,1], el ángulo de retorno está en[En el rango de 0, Pi] o na.

math.random

Devuelve un valor pseudoaleatorio. Esta función generará una secuencia de valores diferente para cada ejecución de un script. El uso del mismo valor para los parámetros de semilla elegibles generará una secuencia de valores repetible.

math.random(min, max, seed)

Devuelve el valor
Un valor aleatorio.

parámetro

  • min(series int/float) El límite inferior de un rango de valores aleatorios. El valor no está incluido en el rango. El valor predeterminado es 0
  • max(series int/float) Limite superior de un rango de valores aleatorios. El valor no está incluido en el rango. El valor predeterminado es 1
  • seed(input int) Parámetros seleccionables. Cuando se usa la misma semilla, se permite la invocación consecutiva de la función para generar un conjunto de valores repetibles.

math.asin

La función asin devuelve el antinuclear de la cifra ((en arco), sincronía ((asin ((y)) = y en el rango y[-1, 1]。

math.asin(angle)

Devuelve el valor
El valor de la antitronsonalidad. Si y está fuera del alcance[-1,1], el ángulo de retorno está en[-Pi / 2, Pi / 2] o en el rango de na.

math.atan

La función atan devuelve el recto inverso de la cifra ((expresado en arco), tan (((atan ((y)) = cualquier y de y。

math.atan(angle)

Devuelve el valor
El valor de corte inverso; el ángulo de retorno está en[-Pi / 2, en el rango de Pi / 2].

math.ceil

La función de toma de enteros hacia arriba devuelve el número entero más pequeño (el más cercano a la infinidad negativa) mayor o igual al número entero de los argumentos.

math.ceil(number)

Devuelve el valor
Menos o igual al número entero más pequeño de un número dado

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

math.cos

La función cos retorna el ángulo de la arista del triángulo.

math.cos(angle)

Devuelve el valor
Las cuerdas triangulares de los cuernos.

parámetro

  • angle(series int/float) ángulo, en arco

math.exp

numberLa función exp de e es numberEl segundo lado, donde e es el número de Euler.

math.exp(number)

Devuelve el valor
Una de las representaciones de e, que es number¿Qué es esto?

Véase también
math.pow

math.floor

math.floor(number)

Devuelve el valor
Menos o igual al mayor número entero de un número dado.

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

math.log

¿Cuál es el problema?numberEl logaritmo natural de > 0 es el único y que hace que e^y = number

math.log(number)

Devuelve el valor
numberEl número natural de .

Véase también
math.log10

math.log10

numberEl uso común (o el de base 10) de la logaritmos es que hay que elevar el 10 para obtener el cubo.number。10^y = number

math.log10(number)

Devuelve el valor
numberEl logaritmo de base 10 de .

Véase también
math.log

math.pow

Funciones de la barra de matemáticas

math.pow(base, exponent)

Ejemplo

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

Devuelve el valor
baseSe elevó aexponent¿Cuál es el problema?baseEs una serie que se calcula por elementos.

parámetro

  • base(series int/float) Especifica la base que se quiere usar.
  • exponent(series int/float) Especifica el índice.

Véase también
math.sqrt math.exp

math.sign

Si el número de pilas es cero, el símbolo (signum) del número de pilas es cero, si el número de pilas es mayor que 0, es 1.0, si el número de pilas es menor que 0, es -1.0。

math.sign(number)

Devuelve el valor
El símbolo de los parámetros.

math.sin

La función cosine devuelve la cosine de un ángulo del triángulo.

math.sin(angle)

Devuelve el valor
La síntesis triangular de los ángulos.

parámetro

  • angle(series int/float) ángulo, en arco

math.sqrt

Cualquiera.numberLa raíz cuadrada de >=0 es la única vez que y >=0 hace que y al cuadrado sea igual a y.number

math.sqrt(number)

Devuelve el valor
numberLa raíz cuadrada de

Véase también
math.pow

math.tan

El triángulo cuyo ángulo de retorno es tan es el diagonal.

math.tan(angle)

Devuelve el valor
El triángulo de las esquinas es rectangular.

parámetro

  • angle(series int/float) ángulo, en arco

math.round

El regreso.numberSi se utiliza el número de enteros, se recorta hasta el número entero más cercano y se completa hacia arriba.precisionEl parámetro, a su vez, devuelve un cuadriculado de cinco dígitos en el punto flotante.

math.round(number)
math.round(number, precision)

Devuelve el valor
numberLos valores de los cuadrados de cinco en el número entero más cercano, o según la precisión.

parámetro

  • number(series int/float) Se debe rodear el valor de la línea de flotación.
  • precision(series int) Es opcional.numberLos dígitos pequeños que se cuadraran. Cuando no se proporcionan los parámetros, se cuadraran al número entero más cercano.

Las notas
Tenga en cuenta que para el valor 'na', la función devuelve 'na' <unk>.

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

math.max

Devuelve el mayor de varios valores.

math.max(number0, number1, ...)

Ejemplo

pine
// math.max plot(math.max(close, open)) plot(math.max(close, math.max(open, 42)))

Devuelve el valor
El mayor de varios valores dados.

Véase también
math.min

math.min

Devuelve el menor de varios valores.

math.min(number0, number1, ...)

Ejemplo

pine
// math.min plot(math.min(close, open)) plot(math.min(close, math.min(open, 42)))

Devuelve el valor
El valor más pequeño entre varios valores dados.

Véase también
math.max

math.avg

Calcula el promedio de todas las series ((elementos correspondientes) <unk>

math.avg(number0, number1, ...)

Devuelve el valor
El promedio

Véase también
math.sum ta.cum ta.sma

math.round_to_mintick

Devuelve el valor de mintick cuadrados en el producto, es decir, se puede dividir por el valor más cercano de syminfo.mintick, sin restes, y redondear hacia arriba.

math.round_to_mintick(number)

Devuelve el valor
numberEl juego se ha hecho de cuatro cuartos y cinco entradas para llegar a tick.

parámetro

  • number(series int/float) Se debe rodear el valor de la línea de flotación.

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

math.sum

La función sum devuelve el resumen deslizante de la última y de x.

math.sum(source, length)

Devuelve el valor
lengthLa línea K regresó.sourceResumen:

parámetro

  • source(series int/float) Valor de la serie a ejecutar
  • length(series int) K número de líneas (la longitud).

Véase también
ta.cum for

math.todegrees

Desde el ángulo en unidades de arco, regresa el ángulo equivalente aproximado en unidades de grado.

math.todegrees(radians)

Devuelve el valor
Se mide en unidades de ángulo.

parámetro

  • radians(series int/float) el ángulo en unidades de arco.

math.toradians

Desde el ángulo en unidades de medida, regresa el ángulo de aproximación equivalente en unidades de arco.

math.toradians(degrees)

Devuelve el valor
El ángulo en unidades de arco.

parámetro

  • degrees(series int/float) es el ángulo medido en unidades de medida.

others

fixnan

Para la serie dada, sustituye el valor NaN por el valor no NaN anterior.

fixnan(source)

Devuelve el valor
Una serie sin interrupciones.

parámetro

  • source (series int/float/bool/color)

Véase también
na nz

nz

Sustituya el valor NaN por cero (o número especificado) en la serie.

nz(source, replacement)
nz(source)

Ejemplo

pine
// nz plot(nz(ta.sma(close, 100)))

Devuelve el valor
sourceEl valor de si no esnaSi es así.sourceEl valor denaSi se utiliza 1, se devuelve 0.replacementParámetros

parámetro

  • source(series int/float/bool/color) Valor de la serie a ejecutar
  • replacement(series int/float/bool/color) sustituye el valor de todos los valores de la barra de la fuente de la barra.

Véase también
na fixnan

na

Si es NaN, entonces el valor de prueba es <unk>.

na(x)

Devuelve el valor
Si x no es un número válido, entonces es verdadero (x es NaN), y si no es cierto, es falso.

Véase también
fixnan nz

int

Convierta na o corte el valor de float por int。

int(x)

Devuelve el valor
Convierte el valor de los parámetros después de int.

Véase también
float bool color string

float

Si el valor de na es variable, entonces el valor de na es variable.

float(x)

Devuelve el valor
Convierte el valor del parámetro en float

Véase también
int bool color string

alert

Trigger alertas de eventos cuando se llaman durante la línea K en tiempo real, y anteriormente se crearon alertas basadas en eventos de la función de alerta como indicadores o estrategias mediante el cuadro de diálogo Crear cuadro de alertas.

alert(message, freq)

Ejemplo

pine
// alert() example ma = ta.sma(close, 14) xUp = ta.crossover(close, ma) if xUp // Trigger the alert the first time a cross occurs during the real-time bar. alert("Price (" + str.tostring(close) + ") crossed over MA (" + str.tostring(ma) + ").", alert.freq_once_per_bar) plot(ma) plotchar(xUp, "xUp", "▲", location.top, size = size.tiny)

parámetro

  • message(series string) El mensaje que se envía cuando se activa la alarma.
  • freq(input string) Trigger frequency。 los valores posibles son: alert.freq_all (todas las funciones se llaman para activar la alerta), alert.freq_once_per_bar (la primera función en la línea K se llama para activar la alerta), alert.freq_once_per_bar_close (la función se llama sólo durante la última secuencia de comandos de la línea K en tiempo real y se activa la alerta al cerrar) el valor predeterminado es alert.freq_once_per_bar。

Las notas
El Centro de ayuda explica cómo crear una alerta de este tipo.
En contraste con alertcondition, la llamada alert no se considera como un dibujo adicional.
Las llamadas de funciones pueden ser tanto globales como locales.
Las llamadas a funciones no muestran nada en el gráfico.
El parámetro <unk>freq<unk> solo afecta la frecuencia de activación en la que se utiliza esta función.

Véase también
alertcondition

alertcondition

Creación de condiciones de alerta, en el cuadro de diálogo Creación de alertas. Tenga en cuenta que alertcondition no crea alertas, sólo le da más opciones en el cuadro de diálogo Creación de alertas. Además, el efecto alertcondition no se ve en el gráfico.

alertcondition(condition, title, message)

Ejemplo

pine
// alertcondition alertcondition(close >= open, title='Alert on Green Bar', message='Green Bar!')

parámetro

  • condition(series bool) Es el valor de una serie de boole para una alerta. El valor de True representa el disparo de la alerta, y el de False, no hay alerta.
  • title(const string) Título de la condición de la alerta. Parámetros opcionales.
  • message(const string) Mostrar el mensaje cuando se activa la alarma.

Las notas
Tenga en cuenta que en Pine v4 la invocación de la condición de alerta genera un gráfico adicional. Todas estas invocaciones se tienen en cuenta cuando se calcula el número de series de salida de cada script.

Véase también
alert

indicator

Para la compatibilidad.Trading ViewEl código de la estrategia, que en realidad no necesita ser invocado.

Véase también
strategy

time

La función time devuelve la hora de UNIX de la línea K actual de un rango de tiempo especificado y el momento de la transacción, y devuelve NaN si el punto de tiempo no está en el momento de la transacción. Nota: No es compatible con FMZsessionParámetros

time(timeframe, session, timezone)

time(timeframe, session)

time(timeframe)

Ejemplo

pine
timeinrange(res, sess) => not na(time(res, sess, "America/New_York")) ? 1 : 0 plot(timeinrange("1", "1300-1400"), color=color.red) // This plots 1.0 at every start of 10 minute bar on a 1 minute chart: newbar(res) => ta.change(time(res)) == 0 ? 0 : 1 plot(newbar("10"))

Al configurar una sesión, puede especificar no solo la hora y el minuto, sino también el día de la semana.
Si no se especifica la fecha, se considera que el horario de negociación está establecido desde el domingo (1) hasta el sábado (7), es decir, 1100-2000 TL es el mismo que 1100-1200 TL: 1234567 TL.
Puede cambiarlo especificando una fecha. Por ejemplo, para productos que se negocian 7 días a la semana y que se negocian 24 horas al día, el siguiente script no se coloreará para los sábados y domingos:

Ejemplo

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

Uno de ellos.sessionLos parámetros pueden contener varios períodos de transacción diferentes, separados por commas. Por ejemplo, el siguiente script resaltará el gráfico K de 10:00 a 11:00 y de 14:00 a 15:00 (sólo los días laborables):

Ejemplo

pine
// Time t1 = time(timeframe.period, "1000-1100,1400-1500:23456") bgcolor(t1 ? color.new(color.blue, 90) : na)

Devuelve el valor
Tiempo de Unix.

parámetro

  • timeframe(simple string) Período de tiempo。 La cadena vacía se interpreta como el período de tiempo actual de la gráfica。
  • session(simple string) Especificación de horario de transacción。 Parámetros opcionales, por defecto se utiliza horario de transacción de mercancías。 Las cadenas en blanco se interpretan como horario de transacción de mercancías。 FMZ no es compatible。
  • timezone (simple string) sessionLa zona horaria del parámetro。 solo se puede usar cuando se especifica la zona de sesión de la barra。 es opcional。 el valor predeterminado es syminfo.timezone。 se puede especificar con la expresión GMT ((por ejemplo, la zona GMT-5) o el nombre de la base de datos de la zona horaria de IANA ((por ejemplo, la zona America/New_York)).

Las notas
El tiempo UNIX es el número de milisegundos que han pasado desde el 1 de enero de 1970 UTC 00:00:00.

year

year(time)
year(time, timezone)

Devuelve el valor
El año en el que se proporciona el tiempo UNIX ((zona horaria de intercambio) <unk>).

parámetro

  • time(series int) el tiempo de Unix en milisegundos.
  • timezone(series string) Se puede elegir el parámetro ◦ zona horaria ◦

Las notas
La hora de UNIX es el número de milisegundos desde el 1 de enero de 1970 UTC 00:00:00. Por defecto, la zona horaria es syminfo.timezone. Puede usar el timestamp para comprobar los posibles valores.
Tenga en cuenta que esta función devuelve el año en función de la hora de apertura de la línea K. Para el horario de negociación nocturna (por ejemplo, el horario de negociación del lunes de EURUSD comienza el domingo a las 17:00 UTC-4), este valor puede ser menor que el año del día de negociación.

Véase también
year time month dayofmonth dayofweek hour minute second

month

month(time)
month(time, timezone)

Devuelve el valor
Los meses que proporcionan el tiempo de UNIX ((zona horaria de intercambio) }}.

parámetro

  • time(series int) el tiempo de Unix en milisegundos.
  • timezone(series string) Se puede elegir el parámetro ◦ zona horaria ◦

Las notas
La hora de UNIX es el número de milisegundos desde el 1 de enero de 1970 UTC 00:00:00. Por defecto, la zona horaria es syminfo.timezone. Puede usar el timestamp para comprobar los posibles valores.
Tenga en cuenta que esta función devuelve el mes en función de la hora de apertura de la línea K. Para el período de negociación nocturna (por ejemplo, el período de negociación de EURUSD el lunes comienza el domingo a las 17:00 UTC-4), el valor puede ser 1 inferior al mes del día de negociación.

Véase también
month time year dayofmonth dayofweek hour minute second

hour

hour(time)
hour(time, timezone)

Devuelve el valor
Las horas que proporcionan la hora de UNIX ((zona horaria de intercambio) }}.

parámetro

  • time(series int) el tiempo de Unix en milisegundos.
  • timezone(series string) Se puede elegir el parámetro ◦ zona horaria ◦

Las notas
La hora de UNIX es el número de milisegundos desde el 1 de enero de 1970 UTC 00:00:00. Por defecto, la zona horaria es syminfo.timezone. Puede usar el timestamp para comprobar los posibles valores.

Véase también
hour time year month dayofmonth dayofweek minute second

minute

minute(time)
minute(time, timezone)

Devuelve el valor
Minutos que proporcionan el tiempo de UNIX ((zona horaria de intercambio) }}.

parámetro

  • time(series int) el tiempo de Unix en milisegundos.
  • timezone(series string) Se puede elegir el parámetro ◦ zona horaria ◦

Las notas
La hora de UNIX es el número de milisegundos desde el 1 de enero de 1970 UTC 00:00:00. Por defecto, la zona horaria es syminfo.timezone. Puede usar el timestamp para comprobar los posibles valores.

Véase también
minute time year month dayofmonth dayofweek hour second

second

second(time)
second(time, timezone)

Devuelve el valor
El número de segundos que proporciona el tiempo de UNIX ((zona horaria de intercambio) }}.

parámetro

  • time(series int) el tiempo de Unix en milisegundos.
  • timezone(series string) Se puede elegir el parámetro ◦ zona horaria ◦

Las notas
La hora de UNIX es el número de milisegundos desde el 1 de enero de 1970 UTC 00:00:00. Por defecto, la zona horaria es syminfo.timezone. Puede usar el timestamp para comprobar los posibles valores.

Véase también
second time year month dayofmonth dayofweek hour minute

weekofyear

weekofyear(time)
weekofyear(time, timezone)

Devuelve el valor
El ciclo que proporciona el tiempo UNIX ((zona horaria de intercambio) }}.

parámetro

  • time(series int) el tiempo de Unix en milisegundos.
  • timezone(series string) Se puede elegir el parámetro ◦ zona horaria ◦

Las notas
La hora de UNIX es el número de milisegundos desde el 1 de enero de 1970 UTC 00:00:00. Por defecto, la zona horaria es syminfo.timezone. Puede usar el timestamp para comprobar los posibles valores.
Tenga en cuenta que la función devuelve la semana en función de la hora de apertura de la línea K. Para las horas de negociación nocturnas (por ejemplo, EURUSD, cuya hora de negociación del lunes comienza a las 17:00 del domingo), este valor puede ser menor que la semana del día de negociación.

Véase también
weekofyear time year month dayofmonth dayofweek hour minute second

dayofweek

dayofweek(time)
dayofweek(time, timezone)

Devuelve el valor
La fecha de la semana que proporciona el tiempo de UNIX ((zona horaria de intercambio) }}.

parámetro

  • time(series int) el tiempo de Unix en milisegundos.
  • timezone(series string) Se puede elegir el parámetro ◦ zona horaria ◦

Las notas
Tenga en cuenta que esta función devuelve la fecha en función de la hora de apertura de la línea K. Para las horas de negociación nocturnas (por ejemplo, las horas de negociación del lunes de EURUSD comienzan a las 17:00 del domingo), este valor puede ser menor que la fecha del día de negociación.
La hora de UNIX es el número de milisegundos desde el 1 de enero de 1970 UTC 00:00:00. Por defecto, la zona horaria es syminfo.timezone. Puede usar el timestamp para comprobar los posibles valores.

Véase también
time dayofmonth

dayofmonth

dayofmonth(time)
dayofmonth(time, timezone)

Devuelve el valor
La fecha de cada mes que proporciona el tiempo de UNIX ((zona horaria de intercambio) }}.

parámetro

  • time(series int) el tiempo de Unix en milisegundos.
  • timezone(series string) Se puede elegir el parámetro ◦ zona horaria ◦

Las notas
La hora de UNIX es el número de milisegundos desde el 1 de enero de 1970 UTC 00:00:00. Por defecto, la zona horaria es syminfo.timezone. Puede usar el timestamp para comprobar los posibles valores.
Tenga en cuenta que esta función devuelve la fecha en función de la hora de apertura de la línea K. Para las horas de negociación nocturnas (por ejemplo, el EURUSD comienza el domingo a las 17:00 UTC-4 en las horas de negociación de lunes), este valor puede ser menor que la fecha del día de negociación.

Véase también
time dayofweek

timestamp

La función de la barra de tiempo devuelve la fecha y hora especificadas en la hora de UNIX.

timestamp(dateString)
timestamp(year, month, day, hour, minute, second)
timestamp(timezone, year, month, day, hour, minute, second)

Ejemplo

pine
// timestamp plot(timestamp(2016, 01, 19, 09, 30), linewidth=3, color=color.green) plot(timestamp(syminfo.timezone, 2016, 01, 19, 09, 30), color=color.blue) plot(timestamp(2016, 01, 19, 09, 30), color=color.yellow) plot(timestamp("GMT+6", 2016, 01, 19, 09, 30)) plot(timestamp(2019, 06, 19, 09, 30, 15), color=color.lime) plot(timestamp("GMT+3", 2019, 06, 19, 09, 30, 15), color=color.fuchsia) plot(timestamp("Feb 01 2020 22:10:05")) plot(timestamp("2011-10-10T14:48:00")) plot(timestamp("04 Dec 1995 00:12:00 GMT+5"))

Devuelve el valor
Tiempo de Unix.

parámetro

  • timezone(series string) Zona horaria。 es opcional。 el valor por defecto es syminfo.timezone。 puede ser especificado con la representación GMT (por ejemplo, <unk>GMT-5<unk>) o con el nombre de la base de datos de la zona horaria de IANA (por ejemplo, <unk>America/New_York<unk>).
  • year(series int) año
  • month(series int) el mes.
  • day(series int) el día.
  • hour(series int) (parámetros opcionales) hora ≠ 0 ≠ 0
  • minute(series int) (parámetros opcionales) minutos. El valor predeterminado es 0
  • second(series int) (parámetros opcionales) Segundo. El valor predeterminado es 0
  • dateString(const string) Una cadena de caracteres que contiene la fecha y una opción de hora y zona horaria. El formato debe cumplir con los estándares IETF RFC 2822 o ISO 8601 ((<unk>DD MMM YYYY hh:mm:ss±hhmm<unk> o<unk>YYYYY-MM-DDThh:mm:ss±hh:mm<unk>, por lo que es<unk>20 Feb 2020<unk> o<unk>2020-02-20<unk>) <unk> Si no se proporciona la hora, se usa<unk>00:00<unk>. Si no se proporciona ninguna zona horaria, se usa GMT+0‬. Tenga en cuenta que esto es diferente al comportamiento habitual de la función, que devuelve la hora de la zona horaria en la que se encuentra el mercado de valores <unk>

Las notas
El tiempo UNIX es el número de milisegundos que han pasado desde el 1 de enero de 1970 UTC 00:00:00.

Véase también
time timenow syminfo.timezone

fill

Utiliza el color proporcionado para llenar el fondo entre dos dibujos o hline.

fill(hline1, hline2, color, title, editable, fillgaps, display)
fill(plot1, plot2, color, title, editable, show_last, fillgaps, display)

Ejemplo

pine
h1 = hline(20) h2 = hline(10) fill(h1, h2, color=color.new(color.blue, 90)) p1 = plot(open) p2 = plot(close) fill(p1, p2, color=color.new(color.green, 90))

parámetro

  • hline1(hline) El primer objeto de hline. Parámetros necesarios.
  • hline2(hline) El segundo objeto de hline.
  • plot1(plot) El primer objeto de dibujo. Parámetros necesarios.
  • plot2(plot) El segundo objeto de la gráfica.
  • color(series color) El color del dibujo. Puedes usar constantes como color = red o color = #ff001a, y expresiones complejas como color = close >= open ? green: red. Parámetros opcionales.
  • title(const string) se ha creado un título para llenar el objeto.
  • editable(const bool) Si es verdadero, el estilo de relleno se puede editar en el cuadro de diálogo de formato. Por defecto es verdadero.
  • show_last(input int) Si está configurado, define el número de líneas k que llenan el gráfico (( desde la última línea k hacia el pasado) [2].
  • fillgaps(const bool) Controla el relleno continuo de la brecha, es decir, cuando una de las llamadas de la trama () devuelve un valor de na. Si se configura como verdadero, el último relleno continuará llenando la brecha.
  • display(plot_display) Controla la ubicación de la pantalla que se llena. Los valores posibles son: display.none, display.all. Por defecto display.all.

Véase también
plot barcolor bgcolor hline

hline

La línea horizontal se presenta en un nivel de precio fijo dado.

hline(price, title, color, linestyle, linewidth, editable, display)

Ejemplo

pine
// input.hline hline(3.14, title='Pi', color=color.blue, linestyle=hline.style_dotted, linewidth=2) // You may fill the background between any two hlines with a fill() function: h1 = hline(20) h2 = hline(10) fill(h1, h2, color=color.new(color.green, 90))

Devuelve el valor
Objetos hline que se pueden usar para llenar.

parámetro

  • price(input int/float) el valor que el objeto mostrará.
  • titleTítulo del objeto (const string)
  • color(input color) El color de la línea de rendimiento. Debe ser constante (no expresado). Parámetros opcionales
  • linestyle(hline_style) Estilo de la línea de retoque. Los valores posibles son: solid, dotted, dotted. Los parámetros son opcionales.
  • linewidth(input int) La anchura de la línea de renderizado. El valor por defecto es 1 <unk>.
  • editable(const bool) Si es verdadero, el estilo hline puede ser editado en el cuadro de diálogo de formato. Por defecto es verdadero.
  • display(plot_display) La posición de la línea de control. Posibles valores son: display.none, display.all. Por defecto, display.all.
  • overlay(const bool) Parámetro de extensión de la plataforma FMZ, usado para establecer la función actual en el gráfico principal (const true) o en el gráfico secundario (const false). El valor por defecto es false. Si no se especifica este parámetro, se obtiene la siguiente configuración:strategyoindicatorEnoverlayLa configuración del parámetro,strategyoindicatorNo está configuradooverlayLos parámetros se tratan de acuerdo a los parámetros por defecto.

bgcolor

El fondo de la línea K se llena con el color especificado.

bgcolor(color, offset, editable, show_last, title, display, overlay)

Ejemplo

pine
// bgcolor example bgcolor(close < open ? color.new(color.red,70) : color.new(color.green, 70))

parámetro

  • color(series color) Color que llena el fondo. Puedes usar constantes como <unk>red<unk> o <unk>#ff001a<unk> y expresiones complejas como 'close >= open ? green: red'.
  • offset(series int) Movimiento de series de colores a la izquierda o a la derecha en un número determinado de líneas k. El valor predeterminado es 0
  • editable(const bool) Si es verdadero, el estilo bgcolor se puede editar en el cuadro de diálogo de formato. Por defecto es verdadero.
  • show_last(input int) Si está configurado, define el número de líneas k que llenan el gráfico (( desde la última línea k hacia el pasado) [2].
  • titleEl título de bgcolor (const string). Los parámetros son opcionales.
  • display(plot_display) Controla la ubicación de la pantalla de bgcolor. Los valores posibles son: display.none, display.all. Por defecto, display.all.
  • overlay(const bool) Parámetro de extensión de la plataforma FMZ, usado para establecer la función actual en el gráfico principal (const true) o en el gráfico secundario (const false). El valor por defecto es false. Si no se especifica este parámetro, se obtiene la siguiente configuración:strategyoindicatorEnoverlayLa configuración del parámetro,strategyoindicatorNo está configuradooverlayLos parámetros se tratan de acuerdo a los parámetros por defecto.

Véase también
plot

barcolor

Ajuste el color de la línea K

barcolor(color, offset, editable, show_last, title, display)

Ejemplo

pine
barcolor(close < open ? color.black : color.white)

parámetro

  • color(series color) Color de la línea K。 Puedes usar constantes como <unk>red<unk> o <unk>#ff001a<unk>, así como expresiones complejas como 'close >= open ? green: red‛。 Los parámetros necesarios。
  • offset(series int) Movimiento de series de colores a la izquierda o a la derecha en un número determinado de líneas k. El valor predeterminado es 0
  • editable(const bool) Si es verdadero, el estilo barcolor puede ser editado en el cuadro de diálogo de formato. Por defecto es verdadero.
  • show_last(input int) Si está configurado, define el número de líneas k que llenan el gráfico (( desde la última línea k hacia el pasado) [2].
  • title(const string) Título de Barcolor。 Parámetros opcionales。
  • display(plot_display) Controla el color de la línea K. Los valores posibles son: display.none, display.all. Por defecto display.all.

Véase también
bgcolor plot fill

error

Compatible con las versiones de PINE v4errorFunciones yruntime.error¿Qué hay de nuevo?

Variables incluidas

order

order.ascending

Determine el orden de orden de la matriz de menor a mayor.

tipo
sort_order

Véase también
array.new_float array.sort

order.descending

Determina el orden de orden de la matriz de mayor a menor.

tipo
sort_order

Véase también
array.new_float array.sort

timeframe

timeframe.isdaily

Si la resolución actual es la resolución diaria, devuelve true, de lo contrario devuelve false.

tipo
simple bool

Véase también
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isweekly timeframe.ismonthly

timeframe.isdwm

Si la resolución actual es diaria o semanal o mensual, devuelve true; si no, devuelve false.

tipo
simple bool

Véase también
timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.isweekly timeframe.ismonthly

timeframe.isintraday

Si el ciclo actual es un ciclo de días (minutos o segundos), devuelve true, de lo contrario devuelve false。

tipo
simple bool

Véase también
timeframe.isminutes timeframe.isseconds timeframe.isdwm timeframe.isdaily timeframe.isweekly timeframe.ismonthly

timeframe.isminutes

Si el ciclo actual es el ciclo de minutos, devuelve true, de lo contrario devuelve false.

tipo
simple bool

Véase también
timeframe.isdwm timeframe.isintraday timeframe.isseconds timeframe.isdaily timeframe.isweekly timeframe.ismonthly

timeframe.ismonthly

Si la resolución actual es la resolución mensual, devuelve true, de lo contrario devuelve false.

tipo
simple bool

Véase también
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.isweekly

timeframe.isseconds

Si el ciclo actual es de segundos, devuelve true, si no, devuelve false.

tipo
simple bool

Véase también
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isdaily timeframe.isweekly timeframe.ismonthly

timeframe.isweekly

Si la resolución actual es la resolución semanal, devuelve true, de lo contrario devuelve false.

tipo
simple bool

Véase también
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.ismonthly

timeframe.multiplier

Los períodos de tiempo se multiplican, por ejemplo, '60' - 60, 'D' - 1, '5D' - 5, '12M' - 12。

tipo
simple int

Véase también
syminfo.ticker syminfo.tickerid timeframe.period

timeframe.period

Por ejemplo, '60' - 60 minutos, 'D' - día, 'W' - semana, 'M' - mes, '5D' - 5 días, '12M' - 1 año, '3M' - 1 trimestre.

tipo
simple string

Véase también
syminfo.ticker syminfo.tickerid timeframe.multiplier

display

display.none

Una constante de nombramiento que especifica la posición de visualización del dibujo. No se muestra en ningún lugar. Se puede usar en el mensaje de la plantilla de alertas.

tipo
plot_display

Véase también
plot plotshape plotchar

display.all

Una constante de nombre que especifica el lugar donde se muestra el dibujo. Mostrar cualquier lugar.

tipo
plot_display

Véase también
plot plotshape plotchar plotarrow plotbar plotcandle

shape

shape.xcross

El estilo de forma de la función plotshape.

tipo
const string

Véase también
plotshape

shape.cross

El estilo de forma de la función plotshape.

tipo
const string

Véase también
plotshape

shape.triangleup

El estilo de forma de la función plotshape.

tipo
const string

Véase también
plotshape

shape.triangledown

El estilo de forma de la función plotshape.

tipo
const string

Véase también
plotshape

shape.flag

El estilo de forma de la función plotshape.

tipo
const string

Véase también
plotshape

shape.circle

El estilo de forma de la función plotshape.

tipo
const string

Véase también
plotshape

shape.arrowup

El estilo de forma de la función plotshape.

tipo
const string

Véase también
plotshape

shape.arrowdown

El estilo de forma de la función plotshape.

tipo
const string

Véase también
plotshape

shape.labelup

El estilo de forma de la función plotshape.

tipo
const string

Véase también
plotshape

shape.labeldown

El estilo de forma de la función plotshape.

tipo
const string

Véase también
plotshape

shape.square

El estilo de forma de la función plotshape.

tipo
const string

Véase también
plotshape

shape.diamond

El estilo de forma de la función plotshape.

tipo
const string

Véase también
plotshape

color

color.aqua

Es la constante de denominación del color #00BCD4.

tipo
const color

color.black

Es la constante de denominación del color #363A45.

tipo
const color

color.blue

Es la constante de denominación del color #2962ff.

tipo
const color

color.fuchsia

Es la constante de nombre del color #E040FB.

tipo
const color

color.gray

Es la constante de nombre del color #787B86.

tipo
const color

color.green

Es la constante de denominación del color #4 CAF50.

tipo
const color

color.lime

Es la constante de nombre del color #00E676.

tipo
const color

color.maroon

La constante de nombre del color #880E4F.

tipo
const color

color.navy

Es la constante de nombre del color # 311B92 <unk> .

tipo
const color

color.olive

Es la constante de nombre del color #808000.

tipo
const color

color.orange

Es la constante de nombre del color #FF9800 <unk>.

tipo
const color

color.purple

Es la constante de denominación del color #9C27B0.

tipo
const color

color.red

Es la constante de nombre del color #FF5252.

tipo
const color

color.silver

La constante de nombre del color #B2B5BE.

tipo
const color

color.teal

color.teal

Es la constante de nombre del color #00897B.

tipo
const color

color.white

Es la constante de denominación del color #FFFFFF.

tipo
const color

color.yellow

Es la constante de nombre del color #FFEB3B.

tipo
const color

plot

plot.style_line

Las constantes de denominación del estilo 'Line', usadas como funciones de plotstyleLos parámetros de los parámetros.

tipo
plot_style

Véase también
plot plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles

plot.style_linebr

Las constantes de nombre del estilo 'Line With Breaks', usadas como función de plotstyleLos parámetros de los parámetros. Es similar a plot.style_line, excepto que los espacios en los datos no se llenan.

tipo
plot_style

Véase también
plot plot.style_line plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles

plot.style_histogram

Constantes de denominación del estilo 'histogram', usadas como función de plotstyleLos parámetros de los parámetros.

tipo
plot_style

Véase también
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles

plot.style_columns

Las constantes de denominación del estilo 'Columns', usadas como constantes de la función plotstyleLos parámetros de los parámetros.

tipo
plot_style

Véase también
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_circles

plot.style_circles

Las constantes de denominación del estilo 'Circles', usadas como constantes de la función plotstyleLos parámetros de los parámetros.

tipo
plot_style

Véase también
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns

plot.style_area

Constantes de nombre del estilo 'Area', usadas en la función plotstyleLos parámetros de los parámetros.

tipo
plot_style

Véase también
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_areabr plot.style_cross plot.style_columns plot.style_circles

plot.style_areabr

Constantes de nombre del estilo 'Area With Breaks', usadas en la función plotstyleLos parámetros de los parámetros. Es similar a plot.style_area, excepto que los espacios en los datos no se llenan.

tipo
plot_style

Véase también
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_cross plot.style_area plot.style_columns plot.style_circles

plot.style_cross

Las constantes de denominación del estilo 'Cross', usadas como funciones de plotstyleLos parámetros de los parámetros.

tipo
plot_style

Véase también
plot plot.style_line plot.style_linebr plot.style_stepline plot.style_stepline_diamond plot.style_histogram plot.style_area plot.style_areabr plot.style_columns plot.style_circles

plot.style_stepline

Las constantes de denominación del estilo 'Step Line', usadas como funciones de plotstyleLos parámetros de los parámetros.

tipo
plot_style

Véase también
plot plot.style_stepline_diamond plot.style_linebr plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles

plot.style_stepline_diamond

Las constantes de denominación del estilo 'Step Line With Diamonds', usadas como una función de plotstyleLos parámetros de los parámetros 。 son similares a los de plot.style_stepline, excepto que los cambios de datos también se marcan en forma de constelación 。

tipo
plot_style

Véase también
plot plot.style_line plot.style_linebr plot.style_histogram plot.style_cross plot.style_area plot.style_areabr plot.style_columns plot.style_circles

location

location.abovebar

location.abovebar

plotshape, el valor de la posición de la función plotchar. La forma se traza por encima de la línea de la serie principal k.

tipo
const string

Véase también
plotshape plotchar location.belowbar location.top location.bottom location.absolute

location.belowbar

plotshape, el valor de la posición de la función plotchar. La forma se traza por debajo de la línea de la serie principal k.

tipo
const string

Véase también
plotshape plotchar location.abovebar location.top location.bottom location.absolute

location.top

Plotshape, el valor de ubicación de la función plotchar. La forma se traza cerca del borde del gráfico superior.

tipo
const string

Véase también
plotshape plotchar location.abovebar location.belowbar location.bottom location.absolute

location.bottom

plotshape, el valor de ubicación de la función plotchar. La forma se dibuja en la parte inferior del gráfico, cerca del borde.

tipo
const string

Véase también
plotshape plotchar location.abovebar location.belowbar location.top location.absolute

location.absolute

Plotshape, el valor de posición de la función plotchar. La forma se traza en un gráfico, utilizando el valor del indicador como coordenadas de precio.

tipo
const string

Véase también
plotshape plotchar location.abovebar location.belowbar location.top location.bottom

size

size.auto

size.auto

El tamaño de la forma se adapta automáticamente al tamaño de la línea k.

tipo
const string

Véase también
plotshape plotchar size.tiny size.small size.normal size.large size.huge

size.tiny

El tamaño de la función plotshape, plotchar.

tipo
const string

Véase también
plotshape plotchar size.auto size.small size.normal size.large size.huge

size.small

El tamaño de la función plotshape, plotchar.

tipo
const string

Véase también
plotshape plotchar size.auto size.tiny size.normal size.large size.huge

size.normal

El tamaño de la función plotshape, plotchar.

tipo
const string

Véase también
plotshape plotchar size.auto size.tiny size.small size.large size.huge

size.large

El tamaño de la función plotshape, plotchar.

tipo
const string

Véase también
plotshape plotchar size.auto size.tiny size.small size.normal size.huge

size.huge

El tamaño de la función plotshape, plotchar.

tipo
const string

Véase también
plotshape plotchar size.auto size.tiny size.small size.normal size.large

alert

alert.freq_once_per_bar

Constante de denominación utilizada junto con el parámetro 'freq' de la función alert ().
La primera llamada de la función en la línea K dispara la alarma.

tipo
const string

Véase también
alert

alert.freq_all

Constante de denominación utilizada junto con el parámetro 'freq' de la función alert ().
Todas las llamadas a funciones activan la alarma.

tipo
const string

Véase también
alert

alert.freq_once_per_bar_close

Constante de denominación utilizada junto con el parámetro 'freq' de la función alert ().
La llamada de esta función sólo se produce durante la última secuencia de comandos de la línea K en tiempo real, lo que provoca una alarma al cierre.

tipo
const string

Véase también
alert

format

format.inherit

Es una constante de nombre.

tipo
const string

Véase también
format.price format.volume

format.price

Es una constante de nombre.

tipo
const string

Las notas
Si el formato es format.price, se establece el valor de precisión por defecto. Puede usar el parámetro de precisión de la función indicador para cambiar el valor de precisión.

Véase también
format.inherit format.volume

format.volume

Es una constante de nombre.

tipo
const string

Véase también
format.inherit format.price

syminfo

syminfo.ticker

Código de mercancía sin prefijo de bolsa, por ejemplo 'MSFT'。

tipo
simple string

Véase también
syminfo.tickerid timeframe.period timeframe.multiplier

syminfo.tickerid

El código de la mercancía con el prefijo de la bolsa, por ejemplo, <unk>BATS:<unk>MSFT<unk>, <unk>NASDAQ:<unk>MSFT<unk>.

tipo
simple string

Véase también
syminfo.ticker timeframe.period timeframe.multiplier

syminfo.basecurrency

La moneda base de la mercancía. Para el código de la mercancía, la moneda BTCUSD.

tipo
simple string

Véase también
syminfo.currency syminfo.ticker

syminfo.currency

La moneda de la mercancía en el momento de la devolución. Código de devolución: <unk> USD <unk> EUR <unk> <unk> <unk> <unk>

tipo
simple string

Véase también
syminfo.basecurrency syminfo.ticker

syminfo.type

El tipo de código de mercancía actual. Los valores posibles son stock, futures, index, forex, crypto, fund, dr.

tipo
simple string

Véase también
syminfo.ticker

syminfo.mintick

El valor mínimo de calibración de la variedad actual. Parámetros de la plantilla en la biblioteca de clases de intercambio de lenguaje Pine en la interfaz de disco/retroalimentación en FMZPrecisión de la moneda de fijación de preciosEste valor puede ser controlado.Precisión de la moneda de fijación de preciosLa configuración 2 es que el precio se negocia con precisión a la segunda decimal, y la unidad de cambio mínimo en el precio es 0.01 <unk> . El valor de syminfo.mintick es 0.01 <unk> .

tipo
simple float

Véase también
syminfo.pointvalue

syminfo.pointvalue

Valores puntuales de las mercancías actuales

tipo
simple float

Véase también
syminfo.mintick

syminfo.timezone

Las zonas horarias de intercambio de la serie principal de gráficos.

tipo
simple string

Véase también
timestamp

barstate

barstate.islastconfirmedhistory

Si el guión se ejecuta en la última línea K del conjunto de datos al cierre del mercado, o si el guión se ejecuta en la línea K anterior a la línea K real, devuelve true si el mercado está abierto. De lo contrario, devuelve false.

tipo
series bool

Las notas
El código PineScript de esta variable permite realizar diferentes cálculos para el registro histórico y los datos en tiempo real.
Tenga en cuenta que el uso de esta variable/función puede causar que el indicador sea rediseñado.

Véase también
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew

barstate.isnew

Si la secuencia de comandos se calcula actualmente en la nueva línea k, devuelve true, de lo contrario devuelve false.

tipo
series bool

Las notas
El código PineScript de esta variable permite realizar diferentes cálculos para el registro histórico y los datos en tiempo real.
Tenga en cuenta que el uso de esta variable/función puede causar que el indicador sea rediseñado.

Véase también
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isconfirmed barstate.islastconfirmedhistory

barstate.isfirst

Si la línea k actual es la primera línea k del grupo de líneas k, devuelve true, de lo contrario devuelve false。

tipo
series bool

Las notas
El código PineScript de esta variable permite realizar diferentes cálculos para el registro histórico y los datos en tiempo real.
Tenga en cuenta que el uso de esta variable/función puede causar que el indicador sea rediseñado.

Véase también
barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory

barstate.islast

Si la línea k actual es la última línea k de la serie k, devuelve true, de lo contrario devuelve false。

tipo
series bool

Las notas
El código PineScript de esta variable permite realizar diferentes cálculos para el registro histórico y los datos en tiempo real.
Tenga en cuenta que el uso de esta variable/función puede causar que el indicador sea rediseñado.

Véase también
barstate.isfirst barstate.ishistory barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory

barstate.ishistory

Si la línea k actual es la línea k histórica, devuelve true, de lo contrario devuelve false.

tipo
series bool

Las notas
El código PineScript de esta variable permite realizar diferentes cálculos para el registro histórico y los datos en tiempo real.
Tenga en cuenta que el uso de esta variable/función puede causar que el indicador sea rediseñado.

Véase también
barstate.isfirst barstate.islast barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory

barstate.isconfirmed

Si el script está calculando la última actualización de la línea k actual, devuelve true. El siguiente script se calculará con los datos de la nueva línea K.

tipo
series bool

Las notas
El código PineScript de esta variable permite realizar diferentes cálculos para el registro histórico y los datos en tiempo real.
No se recomienda el uso de barstate.isconfirmed en las expresiones request.security. Es impredecible el valor de la solicitud de request.security.
Tenga en cuenta que el uso de esta variable/función puede causar que el indicador sea rediseñado.

Véase también
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew barstate.islastconfirmedhistory

barstate.isrealtime

Si la línea k actual es la línea k en tiempo real, devuelve true, de lo contrario devuelve false.

tipo
series bool

Las notas
El código PineScript de esta variable permite realizar diferentes cálculos para el registro histórico y los datos en tiempo real.
Tenga en cuenta que el uso de esta variable/función puede causar que el indicador sea rediseñado.

Véase también
barstate.isfirst barstate.islast barstate.ishistory barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory

barstate.time

Por ahora

ta

ta.accdist

Indice acumulado/distribuido

tipo
series float

ta.iii

Indicador de intensidad en el disco.

tipo
series float

Ejemplo

pine
// Intraday Intensity Index plot(ta.iii, color=color.yellow) // the same on pine f_iii() => (2 * close - high - low) / ((high - low) * volume) plot(f_iii())

ta.nvi

Indicador de peso negativo

tipo
series float

Ejemplo

pine
// Negative Volume Index plot(ta.nvi, color=color.yellow) // the same on pine f_nvi() => float ta_nvi = 1.0 float prevNvi = (nz(ta_nvi[1], 0.0) == 0.0) ? 1.0: ta_nvi[1] if nz(close, 0.0) == 0.0 or nz(close[1], 0.0) == 0.0 ta_nvi := prevNvi else ta_nvi := (volume < nz(volume[1], 0.0)) ? prevNvi + ((close - close[1]) / close[1]) * prevNvi : prevNvi result = ta_nvi plot(f_nvi())

ta.pvi

Indicador de peso.

tipo
series float

Ejemplo

pine
// Positive Volume Index plot(ta.pvi, color=color.yellow) // the same on pine f_pvi() => float ta_pvi = 1.0 float prevPvi = (nz(ta_pvi[1], 0.0) == 0.0) ? 1.0: ta_pvi[1] if nz(close, 0.0) == 0.0 or nz(close[1], 0.0) == 0.0 ta_pvi := prevPvi else ta_pvi := (volume > nz(volume[1], 0.0)) ? prevPvi + ((close - close[1]) / close[1]) * prevPvi : prevPvi result = ta_pvi plot(f_pvi())

ta.obv

Indicador de la marea de energía.

tipo
series float

Ejemplo

pine
// On Balance Volume plot(ta.obv, color=color.yellow) // the same on pine f_obv() => ta.cum(math.sign(ta.change(close)) * volume) plot(f_obv())

ta.pvt

Indicador de tendencias de los precios.

tipo
series float

Ejemplo

pine
// Price-Volume Trend plot(ta.pvt, color=color.yellow) // the same on pine f_pvt() => ta.cum((ta.change(close) / close[1]) * volume) plot(f_pvt())

ta.wad

La línea de fuerza aérea de Guillermo.

tipo
series float

Ejemplo

pine
// Williams Accumulation/Distribution plot(ta.wad, color=color.yellow) // the same on pine f_wad() => trueHigh = math.max(high, close[1]) trueLow = math.min(low, close[1]) mom = ta.change(close) gain = (mom > 0) ? close - trueLow : (mom < 0) ? close - trueHigh : 0 ta.cum(gain) plot(f_wad())

ta.wvad

La dispersión de la variante William.

tipo
series float

Ejemplo

pine
// Williams Variable Accumulation/Distribution plot(ta.wvad, color=color.yellow) // the same on pine f_wvad() => (close - open) / (high - low) * volume plot(f_wvad())

math

math.e

Es la constante de nombre del número de euros. Es igual a 2.7182818284590452.

tipo
const float

Véase también
math.phi math.pi math.rphi

math.phi

Es la constante nominal de la división en oro ≠ 1.6180339887498948.

tipo
const float

Véase también
math.e math.pi math.rphi

math.pi

Es la constante nominal de la constante de Archimedes. Es igual a 3.1415926535897932.

tipo
const float

Véase también
math.e math.phi math.rphi

math.rphi

Es la constante nominal de la división del oro. Es igual a 0.6180339887498948.

tipo
const float

Véase también
math.e math.pi math.phi

strategy

strategy.equity

Los intereses actuales son los siguientes: [strategy.initial_capital + strategy.netprofit + strategy.openprofit]

tipo
series float

Véase también
strategy.netprofit strategy.openprofit strategy.position_size

strategy.position_size

La dirección y el tamaño de las posiciones en el mercado actual. Si el valor es > 0, las posiciones en el mercado son más largas. Si el valor es < 0, las posiciones en el mercado son más cortas. El valor absoluto es el número de contratos / acciones / manos / unidades en transacción (tamaño de la posición).

tipo
series float

Véase también
strategy.position_avg_price

strategy.position_avg_price

La posición del mercado actual es el precio de entrada promedio. Si la posición del mercado se suaviza, el aluminio NaN se retira.

ilustrar
El precio promedio en FMZ PINE Script es el precio que incluye los honorarios. Por ejemplo: el precio de pedido es de 8000, la dirección de venta, la cantidad de 1 mano (un, una hoja), el precio promedio después de la transacción no es de 8000, es inferior a 8000 (incluye los honorarios en el costo).

tipo
series float

Véase también
strategy.position_size

strategy.long

¿Qué es la dirección?

tipo
strategy_direction

Véase también
strategy.entry strategy.exit

strategy.short

Dirección de la cabeza en blanco.

tipo
strategy_direction

Véase también
strategy.entry strategy.exit

strategy.closedtrades

Número de transacciones cerradas durante el intervalo de operaciones entero.

tipo
series int

Véase también
strategy.position_size strategy.opentrades

strategy.opentrades

Número de operaciones que no se han cerrado o que continúan siendo mantenidas. Si no lo hay, se muestra 0

tipo
series int

Véase también
strategy.position_size

strategy.netprofit

El valor monetario total de todas las transacciones realizadas.

tipo
series float

Véase también
strategy.openprofit strategy.position_size strategy.grossprofit

strategy.grossprofit

El valor monetario total de todas las transacciones ganadoras que se han completado.

tipo
series float

Véase también
strategy.netprofit

strategy.openprofit

Las pérdidas no realizadas de las posiciones no cerradas actualmente.

tipo
series float

Véase también
strategy.netprofit strategy.position_size

strategy.direction.long

Las estrategias para hacer más

tipo
const string

Véase también
strategy.risk.allow_entry_in

strategy.direction.short

Las estrategias que no funcionan

tipo
const string

Véase también
strategy.risk.allow_entry_in

strategy.direction.all

Las estrategias que permiten tanto hacer más como hacer menos

tipo
const string

Véase también
strategy.risk.allow_entry_in

dayofweek

dayofweek

La semana de la línea de tiempo k actual de la zona horaria de cambio.

tipo
series int

Las notas
Tenga en cuenta que esta variable devuelve el día según el horario de apertura de la línea K. Para el horario de transacción nocturno (por ejemplo, EURUSD, cuyo horario de transacción del lunes comienza a las 17:00 del domingo), este valor puede ser menor que el día del día de transacción.
Puede usar las variables día de semana.sunday, día de semana.monday, día de semana.tuesday, día de semana.wednesday, día de semana.thursday, día de semana.friday y día de semana.saturday para comparar.

Véase también
time dayofmonth

dayofweek.sunday

Es la constante de nominación del valor de la función dayofweek y el valor de la variable dayofweek.

tipo
const int

Véase también
dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday

dayofweek.monday

Es la constante de nominación del valor de la función dayofweek y el valor de la variable dayofweek.

tipo
const int

Véase también
dayofweek.sunday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday

dayofweek.tuesday

Es la constante de nominación del valor de la función dayofweek y el valor de la variable dayofweek.

tipo
const int

Véase también
dayofweek.sunday dayofweek.monday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday

dayofweek.wednesday

Es la constante de nominación del valor de la función dayofweek y el valor de la variable dayofweek.

tipo
const int

Véase también
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.thursday dayofweek.friday dayofweek.saturday

dayofweek.thursday

Es la constante de nominación del valor de la función dayofweek y el valor de la variable dayofweek.

tipo
const int

Véase también
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.friday dayofweek.saturday

dayofweek.friday

Es la constante de nominación del valor de la función dayofweek y el valor de la variable dayofweek.

tipo
const int

Véase también
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.saturday

dayofweek.saturday

Es la constante de nominación del valor de la función dayofweek y el valor de la variable dayofweek.

tipo
const int

Véase también
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday

hline

hline.style_dashed

Es la constante de denominación de la forma de trazado punteado de la función Hline.

tipo
hline_style

Véase también
hline.style_solid hline.style_dotted

hline.style_dotted

hline.style_dotted

Es la constante de denominación de la forma lineal puntual de la función Hline.

tipo
hline_style

Véase también
hline.style_solid hline.style_dashed

hline.style_solid

Es la constante de denominación del tipo lineal de la función Hline.

tipo
hline_style

Véase también
hline.style_dotted hline.style_dashed

barmerge

barmerge.gaps_on

Se da la estrategia de fusión de datos solicitada. La fusión de datos con la diferencia posible (valor na).

tipo
barmerge_gaps

Véase también
request.security barmerge.gaps_off

barmerge.gaps_off

Estrategia para los datos solicitados por la fusión. Los datos se fusionan de forma ininterrumpida, y todas las brechas se llenan con los valores existentes más recientes anteriores.

tipo
barmerge_gaps

Véase también
request.security barmerge.gaps_on

barmerge.lookahead_on

La estrategia de la ubicación de los datos solicitados por la fusión. La barra solicitada se combina con la barra actual de acuerdo con el tiempo de apertura de la línea k. Esta estrategia de fusión puede tener un impacto negativo en el historial de cálculo de la obtención de datos de la barra futura. Esto no se acepta en la estrategia de prueba de retroceso, pero se puede usar en el indicador.

tipo
barmerge_lookahead

Véase también
request.security barmerge.lookahead_off

barmerge.lookahead_off

La estrategia de la ubicación de los datos solicitados por la fusión. La barra solicitada se combina con la barra actual según el tiempo de cierre de la línea k. Esta estrategia de fusión prohíbe el impacto de la historia de cálculo de la obtención de datos de la barra futura.

tipo
barmerge_lookahead

Véase también
request.security barmerge.lookahead_on

others

hl2

Es la tecla rápida de [el precio más alto + el precio más bajo]/2

tipo
series float

Véase también
open high low close volume time hlc3 hlcc4 ohlc4

hlc3

Es la tecla rápida de: precio más alto + precio más bajo + precio de cierre) / 3

tipo
series float

Véase también
open high low close volume time hl2 hlcc4 ohlc4

hlcc4

Es la tecla rápida de [Alto + Bajo + Cierre + Cierre]/4.

tipo
series float

Véase también
open high low close volume time hl2 hlc3 ohlc4

ohlc4

Es la tecla rápida de: precio de apertura + precio máximo + precio mínimo + precio de cierre

tipo
series float

Véase también
open high low close volume time hl2 hlc3 hlcc4

na

Double.NaN valor (no numérico) 。

tipo
simple na

Ejemplo

pine
// na plot(bar_index < 10 ? na : close) // CORRECT plot(close == na ? close[1] : close) // INCORRECT! plot(na(close) ? close[1] : close) // CORRECT

Las notas
Sólo se utiliza para devolver valores. No intente comparar con ellos. Si desea comprobar si un valor es NaN, utilice la función na.

Véase también
na

bar_index

El índice de barras de precios actuales. El número comienza con cero y el índice de la primera línea es 0 .

tipo
series int

Ejemplo

pine
// bar_index plot(bar_index) plot(bar_index > 5000 ? close : 0)

Las notas
Tenga en cuenta que bar_index ha reemplazado a la variable n en la versión 4.
Tenga en cuenta que el índice de K se calcula como 0 ≠ 0 desde la primera línea de historia de K.
Tenga en cuenta que el uso de esta variable/función puede causar que el indicador sea rediseñado.

Véase también
barstate.isfirst barstate.islast barstate.isrealtime

last_bar_index

El índice de la última línea K de la gráfica. El índice K comienza con la primera línea K como cero.

tipo
series int

Ejemplo

strategy("Mark Last X Bars For Backtesting", overlay = true, calc_on_every_tick = true) lastBarsFilterInput = input.int(100, "Bars Count:") // Here, we store the 'last_bar_index' value that is known from the beginning of the script's calculation. // The 'last_bar_index' will change when new real-time bars appear, so we declare 'lastbar' with the 'var' keyword. var lastbar = last_bar_index // Check if the current bar_index is 'lastBarsFilterInput' removed from the last bar on the chart, or the chart is traded in real-time. allowedToTrade = (lastbar - bar_index <= lastBarsFilterInput) or barstate.isrealtime bgcolor(allowedToTrade ? color.new(color.green, 80) : na)

Devuelve el valor
El índice de K histórico final de cierre, o el índice de K en tiempo real de apertura.

Las notas
Tenga en cuenta que el uso de esta variable puede causar un rediseño del indicador.

Véase también
bar_index last_bar_time barstate.ishistory barstate.isrealtime

time

La hora de la línea k actual en el formato UNIX. Es el número de milisegundos desde el 1 de enero de 1970 a las 00:00:00 UTC.

timenow

La hora actual en formato UNIX. Es el número de milisegundos desde el 1 de enero de 1970 a las 00:00:00 UTC.

tipo
series int

Las notas
Tenga en cuenta que el uso de esta variable/función puede causar que el indicador sea rediseñado.

Véase también
timestamp time dayofmonth dayofweek

tipo
series int

Las notas
Tenga en cuenta que esta variable devolverá el valor de la hora en función de la hora de apertura de la línea K. Por lo tanto, para el período de negociación nocturna (por ejemplo, EURUSD, cuyo período de lunes comienza a partir de las 17:00 horas del domingo), esta variable puede devolver el tiempo antes de la fecha designada para el día de negociación. Por ejemplo, en EURUSD, el valor de la hora (dayofmonth) puede ser menor que la fecha del día de negociación 1, ya que la línea K de la fecha actual estaba realmente abierta el día anterior.

Véase también
time dayofmonth dayofweek

year

La línea k del año actual del cambio de zona horaria.

tipo
series int

Las notas
Tenga en cuenta que esta variable devuelve el año en función de la hora de apertura de la línea K. Para el horario de transacciones nocturnas (por ejemplo, EURUSD, cuyo horario de transacciones del lunes comienza a las 17:00 del domingo), el valor puede ser inferior al año del día de transacción.

Véase también
year time month weekofyear dayofmonth dayofweek hour minute second

month

La línea de la luna actual k en la zona horaria de la bolsa.

tipo
series int

Las notas
Tenga en cuenta que esta variable devuelve el mes en función de la hora de apertura de la línea K. Para el horario de negociación nocturna (por ejemplo, EURUSD, cuya hora de negociación del lunes comienza a las 17:00 del domingo), el valor puede ser inferior al del mes del día de negociación.

Véase también
month time year weekofyear dayofmonth dayofweek hour minute second

hour

La hora actual en la zona horaria de la bolsa es la línea k.

tipo
series int

Véase también
hour time year month weekofyear dayofmonth dayofweek minute second

minute

La línea k de los minutos actuales de la zona horaria de la bolsa.

tipo
series int

Véase también
minute time year month weekofyear dayofmonth dayofweek hour second

second

La línea de segundos k de la zona horaria actual de la bolsa.

tipo
series int

Véase también
second time year month weekofyear dayofmonth dayofweek hour minute

open

El precio de apertura actual.

tipo
series float

Las notas
Se puede usar el operador de paréntesis de cuadrado[] para acceder a los valores anteriores, por ejemplo: <unk> open[1],open[2]。

Véase también
high low close volume time hl2 hlc3 hlcc4 ohlc4

high

El precio más alto en la actualidad.

tipo
series float

Las notas
Se puede usar el operador de paréntesis de cuadrado[] para acceder a los valores anteriores, por ejemplo: high[1],high[2]。

Véase también
open low close volume time hl2 hlc3 hlcc4 ohlc4

low

El precio mínimo actual.

tipo
series float

Las notas
Se puede usar el operador de paréntesis de cuadrado[] para acceder a un valor anterior, por ejemplo ≠ low.[1],low[2]。

Véase también
open high close volume time hl2 hlc3 hlcc4 ohlc4

close

El precio de cierre de la línea K actual, o el precio de la última transacción de la línea K en tiempo real que aún no se ha completado.

tipo
series float

Las notas
Se puede usar el operador de paréntesis de cuadrado[] para acceder a un valor anterior, por ejemplo: <unk> close[1],close[2]。

Véase también
open high low volume time hl2 hlc3 hlcc4 ohlc4

volume

El tráfico actual de la línea K.

tipo
series float

Las notas
Se puede usar el operador de paréntesis de cuadrado[] para acceder a los valores anteriores, por ejemplo: ◦ volume[1],volume[2]。

Véase también
open high low close time hl2 hlc3 hlcc4 ohlc4

weekofyear

El número de semanas en la línea de tiempo k actual de la zona horaria de intercambio.

tipo
series int

Las notas
Tenga en cuenta que esta variable regresa a la semana según el horario de apertura de la línea K. Para el horario de transacción nocturno (por ejemplo, EURUSD, cuyo horario de transacción del lunes comienza a las 17:00 del domingo), este valor puede ser inferior a la semana del día de negociación.

Véase también
weekofyear time year month dayofmonth dayofweek hour minute second

dayofmonth

La fecha de la línea de tiempo k actual de la zona horaria de cambio.

tipo
series int

Las notas
Tenga en cuenta que esta variable devuelve el día según el horario de apertura de la línea K. Para el horario de transacción nocturno (por ejemplo, EURUSD, cuyo horario de transacción del lunes comienza a las 17:00 del domingo), este valor puede ser menor que el día del día de transacción.

Véase también
time dayofweek

Related Recommendations
Comment
All comments (24)

    你好,我想用同一账户资金然后开多个实盘交易多品种,有持仓的时候其他实盘无法开仓,这个可以解决吗

    4 months ago

    您好,PINE语言只是单品种、单账户策略,您这个需求只能用Javascript/python/c++ 编写策略。

    4 months ago

    好吧,写了Java scripts和python的效果却不一样。。。。

    4 months ago

    PINE只能单品种、单账户。可以多用几个账户隔离运行。

    4 months ago

    好的,只能这样了谢谢

    4 months ago

    不客气。

    4 months ago

    想要币安u合约多个交易对同时运行怎么搞

    3 years ago

    PINE语言只能做单品种策略,多品种策略最好还是用python , javascript , c++编写设计。

    3 years ago

    请教下,pine能多交易对吗? 也是和JS一样遍历交易对吗??谢谢。

    4 years ago

    您好,暂时PINE语言策略只能做单品种。

    4 years ago

    以后会考虑多品种吗?收盘价每个品种遍历就行

    4 years ago

    这个多品种的架构问题不好解决,因为每个交易所接口不一样,对接口频率限定也不一样,会产生很多问题。

    4 years ago

    感觉最好能和JS混编,JS可以更好的适应各种交易方式。

    4 years ago

    好的,感谢云总提出建议,这边报下这个需求。

    4 years ago

    好的,谢谢梦大。

    4 years ago

    謝謝提供詳細的文檔

    4 years ago

    不客气,感谢您的支持。文档还会继续完善。

    4 years ago

    大佬!这 pine script 怎么在平台上使用 okex 的模拟盘?

    4 years ago

    用不了okx模拟盘。。。。。[捂脸]

    4 years ago

    嗯,是的,OKX比较特殊,他们的模拟环境和实盘环境是一样的地址,只是在其它地方做了区别。所以没办法用切换基地址,去切换到模拟盘。

    4 years ago

    PINE模版类库,参数上可以设置切换交易所基地址。文档开头的:PINE语言交易类库模版参数。

    4 years ago

    这等于是 tradingview平台的策略直接copy到发明者平台就可以使用了吧!

    4 years ago

    是的。

    4 years ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)