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
if,for,whileoswitchEstructura 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 un
local 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.
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".
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, y
javascriptLlamadas 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 especificarlimit、stopPará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áneamente
limit、stopPará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.var、varipLas 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.var、varipLas 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.var、varipLas 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:var、varipLas 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_then0,var_decl_then1Si la condición es false, se usa el bloque de sentencias.else ifoelseLa lógica envar_decl_else0,var_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))
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.
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
- usar
typeTipo 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:
- La palabra clave method debe estar incluida antes del nombre de la función.
- 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 cadenastr(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 cadenastr(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 cadenastr(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 cadenaregex(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 cadenastr(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 cadenatarget(series string) es sustituido por una cadenareplacement(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 cadenatarget(series string) es sustituido por una cadenareplacement(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 cadenaseparator(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 255green(series int/float) Tono verde. Los valores posibles son desde 0 hasta 255blue(series int/float) Tono azul. Los valores posibles son desde 0 hasta 255transp(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:close、hlc3Y 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 1options(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ámetrominval、maxvalystepParámetrostooltip(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 1options(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ámetrominval、maxvalystepParámetrostooltip(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 ejecutarlength(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 ejecutarlength(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 ejecutarlength(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 ejecutarlength(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 ejecutarlength(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 ejecutarlength(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 ejecutarlength(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 ejecutarlength(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 ejecutarlength(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 ejecutarlength(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 origenshort_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 ejecutarlength(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 ejecutarlength(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 ejecutarfastlen(simple int) Parámetros de línea rápidaslowlen(simple int) Parámetros de longitud lenta。siglen(simple int) Parámetros de longitud de la señal。
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 ejecutarlength(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 ejecutarlength(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 origenlength(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 ejecutarlength(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 ejecutarlength(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 ejecutarlength(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 origenlength(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 ≠
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 ejecutarlength(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 ejecutarlength(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 ejecutarlength(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 ejecutarlength(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.
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 ejecutarlength(series int) K número de líneas (la longitud).
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 ejecutarlength(simple int) K número de líneas (longitud).mult(simple int/float) Factor de diferencia estándaruseTrueRange(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 ejecutarlength(simple int) K número de líneas (longitud).mult(simple int/float) Factor de diferencia estándaruseTrueRange(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 origensource2(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)
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) comienzainc(simple int/float) Se añademax(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 ejecutarlength(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 ejecutarlength(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 ejecutarlength(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 ejecutarlength(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 origenhigh(series int/float) Serie altalow(series int/float) Baja serielength(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 ejecutarlength(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 ejecutarlength(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 buscarsource(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 ejecutarlength(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。
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íneatrackprice(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 0join(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 0text(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 visualeslocation(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 0text(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 0minheight(input int) La altura de la flecha más pequeña posible en píxeles. El valor predeterminado es 5maxheight(input int) La máxima altura de la flecha posible en píxeles. El valor por defecto es 100editable(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 matrizvalue(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 matrizindex_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 matrizvalue(series <type of the array's elements>) para rellenar las matrices.index_from(series int) índice inicial, 0 ≠ por defectoindex_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 matrizvalue(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 matrizindex(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 matrizvalue(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 matrizindex(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 0initial_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 0initial_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 0initial_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 0initial_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 0initial_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 matrizindex(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 matrizvalue(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 matrizindex(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 matrizvalue(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 deprofit、lossLos 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 apoyartitle,shorttitle,overlay,pyramiding,default_qty_type,default_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.(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。format(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.precision(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'.scalepyramiding(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。(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_order_fills(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>.calc_on_every_tick(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.max_bars_back(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.backtest_fill_limits_assumptiondefault_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'(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。currency(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。slippage(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_type(const int/float) Valor de la comisión del pedido. Dependiendo del tipo de comisión elegido, incluye porcentaje o cantidad.commission_value- ~~
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. (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'.close_entries_rule(const int) Muestra el número de barras más recientes. El valor predeterminado es 50, el máximo permitido es 500.max_lines_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_labels_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.max_boxes_count(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_long(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.margin_short(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.explicit_plot_zorder(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 1000000initial_capital(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 2risk_free_rate
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".(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_name(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.oca_typecomment(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>。(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.oca_namecomment(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 venderqty(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".(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_name(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.oca_typecomment(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
value(simple string) Dirección permitida ≠ los valores posibles:strategy.direction.all、strategy.direction.long、strategy.direction.short
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 0max(series int/float) Limite superior de un rango de valores aleatorios. El valor no está incluido en el rango. El valor predeterminado es 1seed(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 ejecutarlength(series int) K número de líneas (la longitud).
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)
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 ejecutarreplacement(series int/float/bool/color) sustituye el valor de todos los valores de la barra de la fuente de la barra.
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.
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。(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。sessiontimezone(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.
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ñomonth(series int) el mes.day(series int) el día.hour(series int) (parámetros opcionales) hora ≠ 0 ≠ 0minute(series int) (parámetros opcionales) minutos. El valor predeterminado es 0second(series int) (parámetros opcionales) Segundo. El valor predeterminado es 0dateString(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 opcionaleslinestyle(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 0editable(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 0editable(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.
- 1





