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

FMZ PINE Script documentación

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

CeArray =array.newEl valor de las emisiones de gases de efecto invernadero es el valor de las emisiones de gases de efecto invernadero. método mantenerQueue(array srcArray, valor de float, bool takeSample = true) => si se toma muestra SrcArray.push (valor) srcArray.shift ()) SrcArray

método calcBB(array srcArray, float mult, bool calcula = true) => el valor medio de la variable var = na var float dev = na si se calcula el valor de la cantidad de datos que se requieren para el cálculo de la * mult: = srcArray.stdev() [medio, medio + dev, medio - dev]

bool newSample = bar_index % n == 0

[sampleMean, highBand, lowBand] = fuenteArray.maintainQueue ((sourceInput, newSample).calcBB ((multiplicador, newSample)

gráfico ((muestraMedio, Base, color.naranja) gráfico ((alta banda, Upper, color.cal) gráfico (Banda baja, Baja ,color.red)


可以看到使用关键字method声明的用户自定义方法:maintainQueue、calcBB的参数列表中第一个参数都是```array<float>```类型。表示该method是```array<float>```类型变量的方法,所以可以看到调用以下代码来计算布林指标。

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

Métodos de recarga

Los métodos definidos por el usuario pueden superponerse y sobrecargar los métodos existentes, tanto los integrados como los definidos por el usuario, que tienen la misma identificación. Esta función permite al usuario definir varios casos asociados con firmas de parámetros diferentes bajo el mismo nombre de método. Como ejemplo simple, supongamos que queremos definir un método para identificar el tipo de variable.

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

El tipo de base de cada variable es determinadogetType()¿Qué tipo de carga se usará?. En la plataforma FMZ, los tipos de valores se juzgan como datos flotantes (float) debido a que la base del script de PINE se implementa en el lenguaje JavaScript.

Funciones integradas

Cuando se llama a una función, se puede transferir parámetros, se puede asignar un valor de nombre de parámetro, se puede transferir variables directamente en la posición correspondiente de los parámetros, también se admite el uso mixto. Por ejemplo:

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

Una vez que se especifica la asignación de nombres de parámetros, ya no se puede transmitir directamente las variables como parámetros, y todas las siguientes transmisiones deben escribirse en forma de asignación de nombres de parámetros.

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

plazo de tiempo

tiempo.en_segundos

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

timeframe.in_seconds(timeframe)

Ejemplos

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

El valor de retorno timeframeEl número de segundos en una línea K de int se representa en la forma.

Parámetros

  • timeframe(simple string) Período de tiempo↑ opcional↑ por defecto timeframe.period↑

Nota: el nombre de la ciudad esEn cuanto atimeframe>= 1 M Función de calculada según el número de segundos de 30.4167 (365/12) días en un mes.

Hasta luego. input.timeframe timeframe.period

el ticker

ticker.heikinashi

Crear un identificador de código que solicite el valor de la línea K media suavizada.

ticker.heikinashi(symbol)

Ejemplos

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)

El valor de retorno 股票代码的字符串值,可以提供给request.security函数。

Parámetros

  • symbol(Simple string) Identificador del código de la mercancía.

Hasta luego. syminfo.tickerid syminfo.ticker request.security

petición

request.data

Solicitar datos externos.

request.data(url, attribute)

Ejemplos

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

El valor de retornoParámetrosattributeLa serie de datos especificada.

Parámetros

  • url(simple string) La url de la fuente de datos solicitada, el formato de los datos a los que responde la fuente de datos debe cumplir con los requisitos (incluye al menos el atributo time、data):{"data": [], "schema": ["time", "data"]}Los formatos de datos en los ejemplos pueden ser:

    {
        "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 que desea; por ejemplo:"$.spot_close_price"¿Cómo se usa?$.Como prefijo, el nombre de la propiedad coincide con la propiedad en el campo de datos de la fuente de datos solicitada cuando se responde

Si se muestra un error, hay que comprobarlo.request.dataSi el rango de tiempo de la solicitud coincide con el rango de tiempo de la configuración de repetición, los datos retornarán un error si no se consultan en la secuencia de tiempo de repetición.

En este caso, la consulta de datos de datos de datos de la instrucción 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;

En la plataforma de FMZ.Exploración de datosPara hacer consultas de páginas, para crear enlaces de datos, como en el ejemplo anterior.https://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) 

Ejemplos

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)

El valor de retornoRequiere series

Parámetros

  • 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 del gráfico.
  • expression(series int/float/bool/color) puede ser llamado desde request.security y devolver una expresión. Puede ser una serie o un conjunto de elementos que pueden ser convertidos a una serie.
  • gaps(barmerge_gaps) Política de combinación de datos solicitada (requiere que los datos se combinen automáticamente con la serie principal de datos OHLC). Valores posibles: barmerge.gaps_on, barmerge.gaps_off.., barmerge.gaps_on - Combinación de datos solicitados con posibles diferencias (valor na).., barmerge.gaps_off - Combinación continua de datos solicitados sin interrupción, todos los espacios se llenan con el valor anterior más reciente existente. El valor predeterminado es barmerge.gaps_off..,
  • lookahead(barmerge_lookahead) para la política de combinación de datos solicitada. Los valores posibles: barmerge.lookahead_on, barmerge.lookahead_off. Desde la versión 3, el valor predeterminado 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 falso, el script se detendrá y regresará al error al ejecutarse; si es verdad, la función regresará a na y continuará ejecutándose.
  • currency(simple string) Convierte el valor de la moneda correspondiente (por ejemplo, OHLC) en la moneda en la que se convierte el producto. Luego, se calcula el valor después de la conversión en función del valor de la expresión . La tasa de conversión utilizada se basa en el tipo de cambio diario del día anterior del par FX_IDC (por ejemplo, en relación con la línea K que se calcula). Opcional. El valor predeterminado es syminfo.currency. Posible: una cadena de tres letras con un código de moneda en formato ISO 4217 (por ejemplo, USD).

Nota: el nombre de la ciudad esEl código de PineScript que utiliza esta función puede realizar diferentes cálculos sobre registros históricos y datos en tiempo real.Si desea especificar parámetros adicionales para el producto solicitado, como plazos de transacción o tipo de ajuste, puede utilizar el código de configuración.您可以使用ticker.newLa función () también funciona así. No se puede transmitir un error a esta función con la variable ticker tick.ticker.newLa forma en que se representa una cadena de variables o un código de acciones, por ejemplo, AAPL+MSFT*TSLA.En la actualidad, un script puede tener hasta 40 llamadas de requisito.security. Tenga en cuenta que el uso de esta variable/función puede causar que el indicador se rediseñe. Los parámetros de resolución permiten valores como: 1S, 5S, 15S, 30S - intervalos de segundos (el ciclo del gráfico debe ser menor o igual al período solicitado) Desde 1 hasta 1440 minutos Desde 1D hasta 365D De 1W a 52W en pocas semanas De 1M a 12M en unos pocos meses

Hasta luego. syminfo.ticker syminfo.tickerid timeframe.period ta.correlation barmerge.lookahead_off barmerge.lookahead_on

el

str.contains

¿Qué pasa sisourceLas cadenas contienenstrSi el valor de la secuencia de comandos es igual al valor de la secuencia de comandos, entonces el valor de la secuencia de comandos es igual al valor de la secuencia de comandos, y el valor de la secuencia de comandos es igual al valor de la secuencia de comandos.

str.contains(source, str)

Ejemplos

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

El valor de retornoSi está ensourceEncontrado en la cadenastrSi el valor de un error es 0, entonces el valor de un error es 0, y si el valor de un error es 0, entonces el valor de un error es 0, y si el valor de un error es 0, entonces el valor de un error es 0, y si el valor de un error es 0, entonces el valor de un error es 0, y si el valor de un error es 0, entonces el valor de un error es 0,

Parámetros

  • source(series string) La cadena de origen
  • str(series string) La substring que se busca.

Hasta luego. str.pos str.match

str.endswith

¿Qué pasa sisourceEs una cadena destrEl final de la substring que se especifica en el medio, devuelve true, o de lo contrario, false.

str.endswith(source, str)

El valor de retorno¿Qué pasa sisourceEs una cadena destrEl final de la substring que se especifica en el punto es true o false.

Parámetros

  • source(series string) La cadena de origen
  • str(series string) La substring que se busca.

Hasta luego. str.startswith

str.startswith

¿Qué pasa sisourceEs una cadena destrEl inicio de la substringa especificada en el punto de partida devuelve true o false.

str.startswith(source, str)

El valor de retorno¿Qué pasa sisourceEs una cadena destrEl inicio de la substring que se especifica en el medio es verdadero, de lo contrario es falso.

Parámetros

  • source(series string) La cadena de origen
  • str(series string) La substring que se busca.

Hasta luego. str.endswith

str.substring

Devolver una nueva cadena, que essourceLas sub-string de las cadenas. Las sub-string de las cadenas se componen de:begin_posLos caracteres que comienzan en el índice indicado y se extienden asourceEl end_pos de la cadena es 1 .

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

Ejemplos

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)

El valor de retornoUna substring extraída de la cadena de origen.

Parámetros

  • source(series string) Extraer la cadena de origen de la que se obtiene la substring.
  • begin_pos(series int) es la posición inicial de la substring extraída. Es exclusiva (la substring extraída incluye los caracteres de esa posición).
  • end_pos(series int) terminación de la posición. Es exclusivo. La extracción de la cadena no incluye los caracteres de la posición. Opcional.sourceLa longitud de la cadena.

Nota: el nombre de la ciudad esEl índice de la cadena comienza en 0; sibegin_poses igual aend_pos, la función devuelve una cadena vacía.

Hasta luego. str.contains str.pos str.match

str.tonumber

str.tonumber(string)

El valor de retornoSi contiene un número válido, es el tipo de punto flotante de la cadena, de lo contrario es na.

Parámetros

  • string(series string) forma de expresión de la cadena int o float.

str.format

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

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

Ejemplos

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

El valor de retornoLas cadenas formateadas.

Parámetros

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

Nota: el nombre de la ciudad esTodos los paréntesis no citados en el estilo 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 un número entero correspondiente al número de caracteres de la cadena.

str.length(string)

El valor de retornoEl número de caracteres en la cadena de origen.

Parámetros

  • string(series string) La cadena de origen

str.lower

Devuelve una nueva cadena donde todas las letras se convierten en letras pequeñas.

str.lower(source)

El valor de retornoTodas las letras se han convertido en nuevas cadenas de letras pequeñas.

Parámetros

  • source(series string) La cadena a convertir.

Hasta luego. str.upper

str.upper

Devuelve una nueva cadena donde todas las letras se han convertido en mayúsculas.

str.upper(source)

El valor de retornoTodas las letras se han convertido en nuevas cadenas de letras mayúsculas.

Parámetros

  • source(series string) La cadena a convertir.

Hasta luego. str.lower

str.match

Si es una coincidencia.regexLa expresión normal regresa.sourceLa nueva substring de la cadena, de lo contrario, regresa na.

str.match(source, regex) 

Ejemplos

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"

El valor de retorno sourceLa nueva substring de la cadena, si coincide con unaregexLa expresión normal, de lo contrario, es na.

Parámetros

  • source(series string) La cadena de origen
  • regex(series string) Expresión regular que corresponde a esta cadena.

Nota: el nombre de la ciudad esLa función regresa.sourceLa primera expresión regular que aparece en una cadena.regexEl símbolo de contraescala \ en una cadena requiere la transformación con el uso de una contraescala adicional, por ejemplo, el símbolo de contraescala \d representa la expresión regular \d.

Hasta luego. str.contains str.substring

str.pos

Volver hacia atrássourceApareció por primera vez en la cadena.strLa ubicación de la cadena, de lo contrario, regresa na.

str.pos(source, str)

El valor de retorno strLa cadena está ensourceLa posición en la cadena.

Parámetros

  • source(series string) La cadena de origen
  • str(series string) La substring que se busca.

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

Hasta luego. str.contains str.match str.substring

str.replace

Devuelve una nueva cadena en la que aparecen N + 1 veces.targetLas cadenas y las que aparecieron antestargetSe sustituye porreplacementUna cadena en la que N está enoccurrenceN 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)

Ejemplos

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)

El valor de retornoSe ha procesado la cadena

Parámetros

  • source(series string) La cadena de origen
  • target(series string) Se ha reemplazado una cadena
  • replacement(series string) la cadena a insertar en lugar de la cadena de destino.
  • occurrence(series int) El índice de coincidencia de la cadena de destino a reemplazar aparece en la cadena de origen. El primer índice de coincidencia comienza en 0. Opcional. El valor predeterminado es 0.

Hasta luego. str.replace_all str.match

¿Qué está pasando?

Con la sustitución de la cadena, sustituye la cadena de destino que aparece cada vez que aparece en la cadena de origen.

str.replace_all(source, target, replacement)

El valor de retornoSe ha procesado la cadena

Parámetros

  • source(series string) La cadena de origen
  • target(series string) Se ha reemplazado una cadena
  • replacement(series string) Cada vez que aparece la cadena de destino, se sustituye la cadena

str.split

Separar una cadena en una serie de sub-stras y devolver su ID de matriz.

str.split(string, separator)

El valor de retornoEl ID de la matriz de strings.

Parámetros

  • string(series string) La cadena de origen
  • separator(series string) La cadena que separa cada una de las subestructuras.

str.tostring

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

El valor de retorno valueLa forma en que se representa la cadena de los parámetros. ¿Qué pasa sivalueLos parámetros son una cadena y se devuelven de la misma manera. CuandovaluePara na, la función devuelve el número de la cadena NaN.

Parámetros

  • value(series int/float/bool/string/int[]/float[]/bool[]/string[]) cuyos elementos se convierten en valores de la cadena o ID de la matriz.
  • format(serie de cadenas) Formatar cadena. Acepta estos formatos.* constantes: format.mintick, format.percento, format.volume. Opcional. El valor predeterminado es #.##########.

Nota: el nombre de la ciudad esEl formato de los valores de punto flotante también se cuadratura en estos valores cuando es necesario, por ejemplo, str.tostring ((3.99, #) devolverá 4. Para mostrar el siguiente cero, utilice 0 en lugar de #. Por ejemplo, #.000. Cuando se usa format.mintick, este valor se cuadra en cinco hasta el número más cercano al que se pueda dividir sin residuos con syminfo.mintick. La cadena que se devuelve tiene un final cero. Si el argumento x es una cadena, se devuelve el mismo valor de la cadena. Los parámetros de tipo Bool devuelven el parámetro true o false. Cuando x es na, la función devuelve NaN.

el color

color.new

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

color.new(color, transp)

Ejemplos

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

El valor de retornoLos colores tienen una transparencia específica.

Parámetros

  • color(color de la serie)
  • transp(series int/float) Los valores disponibles van desde 0 (invisible) hasta 100 (invisible)

Nota: el nombre de la ciudad esEl uso de un gran número de parámetros (por ejemplo, el parámetro simple, el parámetro de entrada o el parámetro de serie) afectará el color que se muestra en la página de etiquetas de los parámetros de configuración / estilo del guión del guión. Consulte el manual del usuario para obtener más información.

color.rgb

El modelo de color RGB se utiliza para crear nuevos colores con transparencia.

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

Ejemplos

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

El valor de retornoLos colores tienen una transparencia específica.

Parámetros

  • red(series int/float) Tono rojo. Los valores posibles van desde 0 hasta 255.
  • green(series int/float) Tono verde. Los valores posibles van desde 0 hasta 255.
  • blue(series int/float) Tono azul. Los valores posibles van desde 0 hasta 255.
  • transp(series int/float) opcional. ⇒ transparencia de color. ⇒ los valores posibles van desde 0 hasta 100. ⇒ transparencia. ⇒ el valor predeterminado es 0.

Nota: el nombre de la ciudad esEl uso de un gran número de parámetros (por ejemplo, el parámetro simple, el parámetro de entrada o el parámetro de serie) afectará el color que se muestra en la página de etiquetas de los parámetros de configuración / estilo del guión del guión. Consulte el manual del usuario para obtener más información.

tiempo de ejecución

runtime.debug

Imprimir información sobre las variables en el mando.

El lenguaje FMZ PINE tiene una función especial.runtime.debug(value), sólo hay un parámetro.

runtime.log

El contenido se exporta en el diario.

El lenguaje FMZ PINE tiene una función especial.runtime.log(1, 2, 3, close, high, ...), puede transmitir varios parámetros.

runtime.error

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

runtime.error(message)

ParámetrosMessage (series string) mensaje de error.

entrada

entrada

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

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

Ejemplos

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)

El valor de retornoValores de las variables de entrada

Parámetros

  • 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 configuración de float/input float de un script, desde donde el usuario del script puede cambiarla.closehlc3Y luego.
  • title(const string) título de la entrada. Si no se especifica, el nombre de la variable se usa como título de la entrada. Si se especifica el título, pero el título es vacío, el nombre será una cadena vacía.
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se detiene en el icono de sugerencia de herramientas.
  • inline(const string) Combina todas las llamadas de entrada con el mismo parámetro en una sola línea. No muestra la cadena utilizada como parámetro. Solo se utiliza para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Crea el encabezado por encima de todas las entradas con la misma cadena de parámetros de conjunto. Esta cadena también se usa como texto del encabezado.

Nota: el nombre de la ciudad esEl valor de retorno de la función de entrada siempre debe ser asignado a la variable.

Hasta luego. 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 guión, que le permite proporcionar opciones de configuración al usuario del guión. Esta función agrega un menú desplegable que permite al usuario elegir la fuente de cálculo, por ejemplo, close, hl2, etc. Si el guión contiene solo una llamada de input.source (), el usuario también puede elegir la salida de otro indicador en el gráfico como fuente.

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

Ejemplos

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

El valor de retornoValores de las variables de entrada

Parámetros

  • defval(series int/float) Determina el valor predeterminado de la variable de entrada sugerida en la página de configuración/etiqueta de serie del script, desde donde el usuario puede cambiarla.
  • title(const string) título de la entrada. Si no se especifica, el nombre de la variable se usa como título de la entrada. Si se especifica el título, pero el título es vacío, el nombre será una cadena vacía.
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se detiene en el icono de sugerencia de herramientas.
  • inline(const string) Combina todas las llamadas de entrada con el mismo parámetro en una sola línea. No muestra la cadena utilizada como parámetro. Solo se utiliza para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Crea el encabezado por encima de todas las entradas con la misma cadena de parámetros de conjunto. Esta cadena también se usa como texto del encabezado.

Nota: el nombre de la ciudad es input.source函数的结果总是应该分配给一个变量,见上面的例子。

Hasta luego. input.bool input.int input.float input.string input.timeframe input.color input

input.string

Añade la entrada a la tabla de opciones de entrada de la configuración del guión, que le permite proporcionar opciones de configuración al usuario del guión. Esta función agrega un campo de entrada de cadena a la entrada del guión.

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

Ejemplos

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

El valor de retornoValores de las variables de entrada

Parámetros

  • defval(const string) Determina el valor predeterminado de la variable de entrada sugerida en la configuración de la barra de guiones / entrada de la barra de etiquetas, desde la cual el usuario puede cambiarla.optionsCuando los parámetros se usan juntos, este valor debe ser uno de ellos.
  • title(const string) título de la entrada. Si no se especifica, el nombre de la variable se usa como título de la entrada. Si se especifica el título, pero el título es vacío, el nombre será una cadena vacía.
  • options(Lista de constantes: [...]) Lista de opciones para elegir.
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se detiene en el icono de sugerencia de herramientas.
  • inline(const string) Combina todas las llamadas de entrada con el mismo parámetro en una sola línea. No muestra la cadena utilizada como parámetro. Solo se utiliza para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Crea el encabezado por encima de todas las entradas con la misma cadena de parámetros de conjunto. Esta cadena también se usa como texto del encabezado.
  • confirm(const bool) Si es true, se le pedirá al usuario que confirme el valor de entrada antes de agregar el indicador al gráfico. El valor predeterminado es false.

Nota: el nombre de la ciudad es input.string函数的结果总是应该分配给一个变量,见上面的例子。

Hasta luego. input.bool input.int input.float input.timeframe input.source input.color input

input.bool

Añade la entrada a la página de etiquetas de entrada de la configuración del guión, que le permite proporcionar opciones de configuración a los usuarios del guión. Esta función agrega una etiqueta de selección a la entrada del guión.

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

Ejemplos

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

El valor de retornoValores de las variables de entrada

Parámetros

  • defval(const bool) Determina el valor predeterminado de la variable de entrada sugerida en la configuración de la barra de guiones / entrada de la barra de etiquetas de la página, desde donde el usuario puede cambiarla.
  • title(const string) título de la entrada. Si no se especifica, el nombre de la variable se usa como título de la entrada. Si se especifica el título, pero el título es vacío, el nombre será una cadena vacía.
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se detiene en el icono de sugerencia de herramientas.
  • inline(const string) Combina todas las llamadas de entrada con el mismo parámetro en una sola línea. No muestra la cadena utilizada como parámetro. Solo se utiliza para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Crea el encabezado por encima de todas las entradas con la misma cadena de parámetros de conjunto. Esta cadena también se usa como texto del encabezado.
  • confirm(const bool) Si es true, se le pedirá al usuario que confirme el valor de entrada antes de agregar el indicador al gráfico. El valor predeterminado es false.

Nota: el nombre de la ciudad es input.bool函数的结果总是应该分配给一个变量,见上面的例子。

Hasta luego. input.int input.float input.string input.timeframe input.source input.color input

input.int

Añade la entrada a la página de etiquetas de entrada de la configuración del guión, que le permite ofrecer opciones de configuración a los usuarios del guión. Esta función añade campos de entrada enteros a la entrada del guión.

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

Ejemplos

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

El valor de retornoValores de las variables de entrada

Parámetros

  • defval(const int) Determina el valor predeterminado de la variable de entrada sugerida en la configuración de la barra de guiones / entrada de la barra de etiquetas de la página, desde donde el usuario del guión puede cambiarla.optionsCuando los parámetros se usan juntos, este valor debe ser uno de ellos.
  • title(const string) título de la entrada. Si no se especifica, el nombre de la variable se usa como título de la entrada. Si se especifica el título, pero el título es vacío, el nombre será una cadena vacía.
  • 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) se utiliza para aumentar o disminuir el valor de la longitud de paso de la entrada. Opcional. El valor predeterminado es 1
  • options(tuple of const int values: [val1, val2,...]) Lista de opciones seleccionadas desde el menú desplegable, separadas por comas y envueltas en paréntesis: [val1, val2,...]. No se puede usar cuando se usa este parámetro.minvalmaxvalystepLos parámetros.
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se detiene en el icono de sugerencia de herramientas.
  • inline(const string) Combina todas las llamadas de entrada con el mismo parámetro en una sola línea. No muestra la cadena utilizada como parámetro. Solo se utiliza para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Crea el encabezado por encima de todas las entradas con la misma cadena de parámetros de conjunto. Esta cadena también se usa como texto del encabezado.
  • confirm(const bool) Si es true, se le pedirá al usuario que confirme el valor de entrada antes de agregar el indicador al gráfico. El valor predeterminado es false.

Nota: el nombre de la ciudad es input.int函数的结果总是应该分配给一个变量,见上面的例子。

Hasta luego. input.bool input.float input.string input.timeframe input.source input.color input

input.float

Añade la entrada a la página de etiquetas de entrada de la configuración del guión, que le permite ofrecer opciones de configuración a los usuarios del guión. Esta función añade un campo de entrada flotante a la entrada del guión.

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

Ejemplos

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)

El valor de retornoValores de las variables de entrada

Parámetros

  • defval(const int/float) Determina el valor predeterminado de la variable de entrada recomendada en la página de configuración/input float del script, desde donde el usuario del script puede cambiarla.optionsCuando los parámetros se usan juntos, este valor debe ser uno de ellos.
  • title(const string) título de la entrada. Si no se especifica, el nombre de la variable se usa como título de la entrada. Si se especifica el título, pero el título es vacío, el nombre será una cadena vacía.
  • minval(const int/float) El valor mínimo posible de las variables de entrada. Opcional.
  • maxval(const int/float) El valor máximo posible de las variables de entrada. Opcional.
  • step(const int/float) se utiliza para aumentar/reducir el valor de paso de la entrada. Opcional. El valor predeterminado es 1
  • options(tuple of const int/float values: [val1, val2,...]) Lista de opciones seleccionadas desde el menú desplegable, separadas por comas y envueltas en paréntesis: [val1, val2,...]; no se puede usar cuando se usa este parámetrominvalmaxvalystepLos parámetros.
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se detiene en el icono de sugerencia de herramientas.
  • inline(const string) Combina todas las llamadas de entrada con el mismo parámetro en una sola línea. No muestra la cadena utilizada como parámetro. Solo se utiliza para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Crea el encabezado por encima de todas las entradas con la misma cadena de parámetros de conjunto. Esta cadena también se usa como texto del encabezado.
  • confirm(const bool) Si es true, se le pedirá al usuario que confirme el valor de entrada antes de agregar el indicador al gráfico. El valor predeterminado es false.

Nota: el nombre de la ciudad es input.float函数的结果总是应该分配给一个变量,见上面的例子。

Hasta luego. input.bool input.int input.string input.timeframe input.source input.color input

input.color

Añade la entrada a la página de etiquetas de entrada de la configuración del guión, que le permite proporcionar opciones de configuración al usuario del guió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 los sesenta dígitos.

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

Ejemplos

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

El valor de retornoValores de las variables de entrada

Parámetros

  • defval(const color) define la configuración de la barra del guión / el valor predeterminado de la variable de entrada sugerida en la página de etiquetas de la barra de entrada, desde donde el usuario puede cambiarla.
  • title(const string) título de la entrada. Si no se especifica, el nombre de la variable se usa como título de la entrada. Si se especifica el título, pero el título es vacío, el nombre será una cadena vacía.
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se detiene en el icono de sugerencia de herramientas.
  • inline(const string) Combina todas las llamadas de entrada con el mismo parámetro en una sola línea. No muestra la cadena utilizada como parámetro. Solo se utiliza para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Crea el encabezado por encima de todas las entradas con la misma cadena de parámetros de conjunto. Esta cadena también se usa como texto del encabezado.
  • confirm(const bool) Si es true, se le pedirá al usuario que confirme el valor de entrada antes de agregar el indicador al gráfico. El valor predeterminado es false.

Nota: el nombre de la ciudad es input.color函数的结果总是应该分配给一个变量,见上面的例子。

Hasta luego. input.bool input.int input.float input.string input.timeframe input.source input

input.price

Para añadir la entrada de precio a la configuración del guión del guión / usar la página de etiquetas de entrada de guión.confirm = trueActivar el modo de entrada interactiva para seleccionar precios con el clic en el gráfico.

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

Ejemplos

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

price2 = input.price(54, title="Date")
plot(price2)

El valor de retornoValores de las variables de entrada

Parámetros

  • defval(const int/float) Determina el valor predeterminado de la variable de entrada sugerida en la configuración de la barra de guiones / página de etiquetas de la barra de entrada, desde la cual el usuario puede cambiarla.
  • title(const string) título de la entrada. Si no se especifica, el nombre de la variable se usa como título de la entrada. Si se especifica el título, pero el título es vacío, el nombre será una cadena vacía.
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se detiene en el icono de sugerencia de herramientas.
  • inline(const string) Combina todas las llamadas de entrada con el mismo parámetro en una sola línea. No muestra la cadena utilizada como parámetro. Solo se utiliza para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Crea el encabezado por encima de todas las entradas con la misma cadena de parámetros de conjunto. Esta cadena también se usa como texto del encabezado.
  • confirm(const bool) Si es verdad, permite el modo de entrada interactiva y completa la selección haciendo clic en el gráfico cuando se agrega el indicador al gráfico, o haciendo la selección haciendo clic en el indicador de selección y luego moviendo la selección. Opcional. El valor predeterminado es falso.

Nota: el nombre de la ciudad esCuando se usa el modo interactivo, si dos funciones se llaman en el mismoinlineLos parámetros utilizan los mismos parámetros, por lo que puede utilizarse la entrada de tiempo en combinación con la entrada de precio.

Hasta luego. input.bool input.int input.float input.string input.resolution input.source input.color input

input.timeframe

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

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

Ejemplos

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

El valor de retornoValores de las variables de entrada

Parámetros

  • defval(const string) Determina el valor predeterminado de la variable de entrada sugerida en la configuración de la barra de guiones / entrada de la barra de etiquetas, desde la cual el usuario puede cambiarla.optionsCuando los parámetros se usan juntos, este valor debe ser uno de ellos.
  • title(const string) título de la entrada. Si no se especifica, el nombre de la variable se usa como título de la entrada. Si se especifica el título, pero el título es vacío, el nombre será una cadena vacía.
  • options(tuple of const string values: [val1, val2,...]) Lista de opciones que se pueden elegir.
  • tooltip(const string) Esta cadena se muestra al usuario cuando el ratón se detiene en el icono de sugerencia de herramientas.
  • inline(const string) Combina todas las llamadas de entrada con el mismo parámetro en una sola línea. No muestra la cadena utilizada como parámetro. Solo se utiliza para identificar las entradas que pertenecen a la misma línea.
  • group(const string) Crea el encabezado por encima de todas las entradas con la misma cadena de parámetros de conjunto. Esta cadena también se usa como texto del encabezado.
  • confirm(const bool) Si es true, se le pedirá al usuario que confirme el valor de entrada antes de agregar el indicador al gráfico. El valor predeterminado es false.

Nota: el nombre de la ciudad es input.timeframe函数的结果总是应该分配给一个变量,见上面的例子。

Hasta luego. input.bool input.int input.float input.string input.source input.color input

input.integer

Por ahora

input.resolution

Por ahora

el

ta.alma

Arnaud Legoux media móvil. Utiliza la distribución de Gauss como un peso para la media móvil.

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

Ejemplos

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

El valor de retornoArnaud Legoux movimiento de la media

Parámetros

  • series(series int/float) el valor de la serie a ejecutar.
  • length(series int) Número de líneas K (length).
  • offset(simple int/float) controla el equilibrio entre la suavidad (más cerca de 1) y la respuesta (más cerca de 0).
  • sigma(simple int/float) cambia la suavidad de ALMA. Mientras más grande es Sigma, más suave es ALMA.
  • floor(simple bool) Parámetros opcionales. Antes de calcular ALMA, especifique si el cálculo de la desviación es inferior. El valor predeterminado es false.

Hasta luego. ta.sma ta.ema ta.rma ta.wma ta.vwma ta.swma

ta.sma

La función sma devuelve la media móvil, es decir, el valor final de y de x, dividido por y.

ta.sma(source, length) 

Ejemplos

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

El valor de retorno lengthLa línea K regresasourceLa media móvil simple de las cifras de los países en desarrollo es la media móvil simple de los países en desarrollo.

Parámetros

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

Hasta luego. ta.ema ta.rma ta.wma ta.vwma ta.swma ta.alma

ta.cog

El cog es un indicador basado en la estadística y el Fibonacci ratio.

ta.cog(source, length) 

Ejemplos

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

El valor de retornoLa atención

Parámetros

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

Hasta luego. ta.stoch

ta.dev

衡量系列与其ta.sma之间的差异

ta.dev(source, length) 

Ejemplos

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

El valor de retorno lengthLa línea K regresasourceEl gobierno de los Estados Unidos está en contra de la ley.

Parámetros

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

Hasta luego. ta.variance ta.stdev

ta.stdev

ta.stdev(source, length, biased) 

Ejemplos

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

El valor de retornoDesventaja estándar

Parámetros

  • source(series int/float) el valor de la serie a ejecutar.
  • length(series int) Número de líneas K (length).
  • biased(series bool) Determina qué estimación debe usarse. Opcional. El valor predeterminado es true.

Nota: el nombre de la ciudad es¿Qué pasa sibiasedSi es true, la función calcula con un estimado parcial del total, si es false - un estimado imparcial de la muestra.

Hasta luego. ta.dev ta.variance

ta.ema

La función ema devuelve la media móvil ponderada por el índice. En ema, el factor de ponderación es la disminución del índice. Se calcula con la siguiente fórmula: EMA = alfa * fuente + (1 - alfa) * EMA[1], donde alfa = 2 / (longitud + 1) ≠ 0.

ta.ema(source, length) 

Ejemplos

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

El valor de retorno sourceEl índice de la media móvil, alfa = 2 / (longitud + 1) ≠ 1 {\displaystyle \alpha =2/ (length + 1) }

Parámetros

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

Nota: el nombre de la ciudad esTenga en cuenta que el uso de esta variable/función puede causar que el indicador sea rediseñado.

Hasta luego. ta.sma ta.rma ta.wma ta.vwma ta.swma ta.alma

ta.wma

Función de retorno de wmalengthLa línea KsourceEn wma, el factor de ponderación se reduce en números de grado aritmético.

ta.wma(source, length) 

Ejemplos

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

El valor de retorno lengthLa línea K regresasourceLas medias móviles ponderadas.

Parámetros

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

Hasta luego. ta.sma ta.ema ta.rma ta.vwma ta.swma ta.alma

ta.swma

Es una media móvil simétrica ponderada con una longitud fija. Peso: [1/6,2 / 6,2 / 6,1 / 6].

ta.swma(source)

Ejemplos

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

El valor de retornoLas medias móviles ponderadas son simétricas.

Parámetros

  • source(series int/float) La serie de origen.

Hasta luego. ta.sma ta.ema ta.rma ta.wma ta.vwma ta.alma

ta.hma

La función hma devuelve la media móvil HMA de la nave.

ta.hma(source, length)

Ejemplos

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

El valor de retornoRetorno a la media móvil del casco del casco del casco de la columna de longitud del casco.

Parámetros

  • source(series int/float) el valor de la serie a ejecutar.
  • length(simple int) K de líneas

Hasta luego. ta.ema ta.rma ta.wma ta.vwma ta.sma

ta.rma

La media móvil utilizada en el RSI. Es una media móvil ponderada por índices, con alfa más un peso = 1 / longitud.

ta.rma(source, length)

Ejemplos

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

El valor de retorno sourceEl índice de la media móvil, alfa = 1 /length

Parámetros

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

Hasta luego. ta.sma ta.ema ta.wma ta.vwma ta.swma ta.alma ta.rsi

ta.rsi

El índice de intensidad relativa.lengthEn línea KsourceEl cambio hacia arriba y hacia abajota.rma()El nombre de la ciudad es el siguiente:

ta.rsi(source, length)

Ejemplos

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

El valor de retornoIndicador de fuerza y debilidad relativa (RSI)

Parámetros

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

Hasta luego. ta.rma

ta.tsi

El índice de fortaleza y de debilidad real. Utiliza una media móvil de movimientos potenciales de los instrumentos financieros.

ta.tsi(source, short_length, long_length)

El valor de retornoEl índice de fortaleza y de debilidad real.

Parámetros

  • source(series int/float) La serie de origen.
  • short_length(simple int) Corto de longitud.
  • long_length(simple int) longitud de la línea larga.

ta.roc

La función roc ((cantidad de variación) muestrasourceEl valor actual ysourceHace unos díaslengthLa diferencia entre los valores. Se calcula por la siguiente fórmula: 100 * change (src, length) / src (length) ⋅

ta.roc(source, length)

El valor de retorno lengthLa línea K regresasourceLa tasa de variación de las cifras es de:

Parámetros

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

ta.range

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

ta.range(source, length)

El valor de retornoDiferencia entre el valor mínimo y el valor máximo de la secuencia.

Parámetros

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

ta.macd

El MACD (Línea de media heterogénea lisa) ; debe revelar la fuerza, dirección, impulso y duración de los cambios en la tendencia del precio de las acciones.

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

Ejemplos

[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 solo necesitas un valor, usa un símbolo de posición como este:

Ejemplos

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

El valor de retornoLos tres componentes de la serie MACD: la línea MACD, la línea de señal y la línea de gráfico recta.

Parámetros

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

Hasta luego. ta.sma ta.ema

ta.mode

Devuelve el patrón de la secuencia. Si hay varios valores con la misma frecuencia, devuelve el valor mínimo.

ta.mode(source, length)

El valor de retornoEl patrón de la secuencia.

Parámetros

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

ta.median

Devuelve el número medio de la secuencia.

ta.median(source, length) 

El valor de retornoEl número medio de la secuencia.

Parámetros

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

ta.linreg

Curva de regresión lineal. Una línea que más se ajusta al precio especificado en el intervalo de tiempo definido por el usuario. Se calcula utilizando el mínimo de doblaje. El resultado de esta función se calcula utilizando la siguiente fórmula: linreg = intercept + slope * (length - 1 - offset), donde se utilizan el intercept y el slope.sourceEl valor de la serie para calcular el doble mínimo de la serie.

ta.linreg(source, length, offset) 

El valor de retornoCurva de retorno lineal

Parámetros

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

ta.bb

El bracket es una herramienta de análisis técnico definida por un conjunto de líneas que se diferencian de la media móvil simple (SMA) del precio de un activo por dos desviaciones estándar (positiva y negativa), pero que pueden ajustarse según las preferencias de los usuarios.

ta.bb(series, length, mult) 

Ejemplos

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

El valor de retornoEl cinturón azul.

Parámetros

  • series(series int/float) Sección en ejecución

Más.

¡Qué bueno!¿Cómo se puede hacer para que varios contratos de bitcoins funcionen simultáneamente?

Nube ligeraPor favor, ¿puede Pine hacer más transacciones? ¿Puede JS hacer más transacciones?

- ¿Qué quieres decir?Gracias por los detalles.

el arte¿Cómo es que el script de pine usa la placa de simulación de okex en la plataforma?

el arteEsto equivale a copiar las estrategias de tradingview directamente a las plataformas de los inventores para usarlas.

Los inventores cuantifican - sueños pequeñosEl lenguaje PINE sólo puede hacer una política de variedad única, la política de variedades múltiples es mejor o escribir el diseño en Python, JavaScript, C ++.

Los inventores cuantifican - sueños pequeñosOh, sí, OKX es muy especial, su entorno analógico y su entorno de disco real tienen la misma dirección, sólo que hay una diferencia en otro lugar.

Nube ligeraNo se puede usar el simulador okx.....

Los inventores cuantifican - sueños pequeñosEste problema de la arquitectura de la variedad no se resuelve bien, ya que cada interfaz es diferente y no se limita a la frecuencia de las interfaces, lo que genera muchos problemas.

Los inventores cuantifican - sueños pequeñosBien, gracias por la sugerencia de Cloudways, por favor informe este requerimiento.

Nube ligeraMe siento mejor mezclado con JS, JS puede adaptarse mejor a todo tipo de transacciones.

La tendencia de los cazadoresEl precio de cierre es para cada variedad, y el precio de cierre es para cada variedad.

Los inventores cuantifican - sueños pequeñosNo es muy amable.

Nube ligeraBien, gracias muchachos.

Los inventores cuantifican - sueños pequeñosHola, la política de lenguaje de PINE sólo funciona con una variedad por el momento.

Los inventores cuantifican - sueños pequeñosGracias por su apoyo. La documentación seguirá mejorando.

Los inventores cuantifican - sueños pequeñosSí, es cierto.

Los inventores cuantifican - sueños pequeñosPINE es una biblioteca de modelos, en la que los parámetros permiten configurar la dirección de base de los intercambios.