Palavras-chave, gramática e configuração
Estrutura do código
A estrutura geral que o código do Pine segue:
<version>
<declaration_statement>
<code>
Comentários
Sinal de comentário para a linguagem Pine do FMZ: comentário de linha única//Comentários múltiplos/* */Por exemplo, a forma de escrever a nota no exemplo a seguir:
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')
Edição
A seguinte forma de instrução de compilador diz ao compilador em qual versão do script o Pine foi escrito:
pine
//@version=5
A versão padrão é a versão v5, que pode ser omitida no código//@version=5。
Declaração
A declaração define o tipo de script, que determina o que é permitido nele, e como é usado e executado. Define os atributos-chave do script, como seu nome, onde ele aparecerá quando for adicionado ao gráfico, a precisão e o formato dos valores que ele exibirá, e os valores que gerenciam certas ações quando ele for executado, como o número máximo de objetos de gráfico que ele exibirá no gráfico.indicator()oustrategy()Declaração.
Código
As linhas de um script que não são comentários ou instruções do compilador são sentenças, que implementam o algoritmo do script. Uma sentença pode ser um desses conteúdos.
- Declaração de variáveis
- Reatribuição de variáveis
- Declaração de função
- Chamadas de funções embutidas, chamadas de funções definidas pelo usuário
if,for,whileouswitchEstrutura de equivalência
As frases podem ser organizadas de várias maneiras.
- Algumas declarações podem ser expressas em uma única linha, como a maioria das declarações de variáveis, que contêm apenas uma linha de chamada de função ou uma declaração de função de uma única linha. Outras, como as estruturas, sempre precisam de várias linhas, pois precisam de um bloco local.
- As declarações de âmbito global do script (ou seja, as partes que não pertencem ao bloco local) não podem ser consideradas como
空格ou制表符Comece (tabulação) <unk> O primeiro caractere deles também deve ser o primeiro caractere da linha <unk> As linhas que começam na primeira posição da linha, por definição, fazem parte do alcance global do script <unk> - Uma estrutura ou uma declaração de função de várias linhas sempre requer um
local blockUm bloco local deve ser encolhido em um marcador ou em quatro espaços (caso contrário, será analisado como uma sequência da linha anterior de código, ou seja, julgado como um contínuo da linha anterior de código), e cada bloco local define um alcance local diferente. - Várias frases de uma linha podem ser seqüenciadas em uma linha usando a vírgula ((,) como separador.
- Uma linha pode conter comentários ou apenas comentários.
- As linhas também podem ser fechadas (continua em linhas múltiplas).
Por exemplo, incluindo três blocos locais, um na declaração de função personalizada e dois usando a estrutura if na declaração de variável, com o seguinte código:
pine
indicator("", "", true) // 声明语句(全局范围),可以省略不写
barIsUp() => // 函数声明(全局范围)
close > open // 本地块(本地范围)
plotColor = if barIsUp() // 变量声明 (全局范围)
color.green // 本地块 (本地范围)
else
color.red // 本地块 (本地范围)
runtime.log("color", color = plotColor) // 调用一个内置函数输出日志 (全局范围)
Código de mudança de linha
As linhas longas podem ser divididas em várias linhas, ou "enroladas". As linhas enroladas devem ser encolhidas em qualquer número de espaços, desde que não sejam múltiplos de 4.
pine
a = open + high + low + close
Pode ser embalado como ((observe que o número de espaços em cada linha não é um múltiplo de 4):
pine
a = open +
high +
low +
close
Uma chamada longa de plot ((() pode ser embalada 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)
A frase na declaração de função definida pelo usuário também pode ser empacotada. No entanto, como o bloco local deve começar gramaticalmente com uma contração (((4 espaços ou 1 símbolo), quando dividido para a linha seguinte, a parte de continuação da frase deve começar com uma contração ou mais (((não é igual ao múltiplo de 4 espaços)).
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")
Sequência de tempo
A sequência de tempo não é um tipo ou formato de dados, mas um conceito de estrutura básica na linguagem PINE. Usado para armazenar valores que variam continuamente no tempo, cada valor correspondendo a um ponto de tempo. A estrutura desse conceito de sequência de tempo é adequada para ser aplicada ao processamento e registro de uma série de dados que mudam com o tempo.
Com variáveis embutidasopenPor exemplo:openA variável embutida registra o preço de abertura de cada linha K BAR, se estaopenEntão, esse é o número de 5 minutos de um ciclo de K.openA variável registrada é o preço de abertura de cada linha K BAR ((coluna) por 5 minutos. Quando o seu programa de estratégia é executado, o código faz referênciaopenIsto é, o preço de abertura da linha BAR em que o K está atualmente. Para referir o valor anterior na sequência de tempo (valor anterior), usamos[]O operador histórico, quando a estratégia é executada em uma linha KBAR,open[1]O que significa que o preço de abertura de uma linha K BAR anterior à linha K BAR atual.
EmboraSequência de tempoÉ fácil lembrar a estrutura de dados "array", embora a linguagem PINE também tenha tipos de arrays. No entanto, eles são conceitos completamente diferentes da sequência temporal.
A linguagem PINE concebeu uma sequência de tempo que permite calcular facilmente o valor acumulado do preço de fechamento no código da estratégia, sem a necessidade de usar uma estrutura circular como for, usando apenas funções embutidas na linguagem PINE.ta.cum(close)Por outro exemplo, precisamos calcular o valor médio do diferencial entre o valor máximo e o valor mínimo das últimas 14 linhas K BAR (ou seja, as 14 linhas K BAR mais próximas no momento atual de execução do código) que podem ser escritas como:ta.sma(high - low, 14)
O resultado da chamada de uma função na sequência de tempo também deixa uma marca na sequência de tempo.[]O operador histórico cita o valor anterior. Por exemplo, para testar se o valor de fechamento do atual K-line BAR excede o valor máximo do valor máximo dos últimos 10 K-lines BAR (excluindo o atual K-line BAR). Podemos escrever:breach = close > ta.highest(close, 10)[1]Também pode ser escritobreach = close > ta.highest(close[1], 10)Por isso.ta.highest(close, 10)[1]eta.highest(close[1], 10)É equivalente.
A verificação pode ser feita com o seguinte código:
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)
O código de teste acima irá expor a e b em cada BAR em seus valores de sequência de tempo correspondentes, e você verá que a e b são sempre iguais, então os dois métodos de representação são equivalentes.
História de referência
O Trading View tem um limite máximo de itens para referências de dados históricos (até 5.000 itens), como o seguinte 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")
A política de linguagem Pine em FMZ é chamada de "Configuração de transações" no "Pine Language Transaction Classroom", com o parâmetro: "Numero de períodos mais longos de variáveis" define especificamente o número máximo de itens de dados que podem ser citados.
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")
O parâmetro "Mais longo período de variação" não deve ser definido como muito grande, e pode ser usado para referenciar dados em uma política apropriada.
Parâmetros de modelagem da biblioteca de classes de transação da linguagem Pine
Configuração de parâmetros para o modelo embutido da política PINE, o "Pine Language Exchange Repository".
Configurações de transação
- Execução
Modelo de preço de fechamento: executa o modelo até o final do BAR atual e executa a transação quando o BAR inferior começa.
Modelagem de preços em tempo real: executa o modelo a cada mudança de preço e executa a transação imediatamente com o sinal. - Número de mãos de posição aberta por defeito: se a instrução de negociação não especificar o número de negociações, execute a negociação de acordo com o número definido.
- Máximo número de pedidos por transação única: De acordo com a liquidação real, em combinação com a configuração deste parâmetro, determine o número máximo de pedidos por transação, evitando o impacto no disco.
- Ponto de deslizamento:
定价货币精度O parâmetro e esse parâmetro determinam o preço de deslizamento no momento do pedido. Por exemplo, a precisão de precificação da moeda é definida como 2, ou seja, exata para o segundo lugar da minúscula, exata para 0,01. Então, cada ponto de deslizamento representa 0,01 unidades de precificação. - Número de ciclos mais longos da variável: número de BARs de linhas K do gráfico afetado, com
javascriptChamadas na estratégiaSetMaxBarLenA função é a mesma.
Opções de Futuros
- Código de variedade: Código de contrato, que só precisa ser definido quando o objeto da bolsa é um objeto de bolsa não-local.
- Número mínimo de contratos: O número mínimo de transações do contrato no momento da encomenda.
Opções reais
- Progresso de recuperação automática: recuperação automática do estado antes da interrupção da última estratégia.
- Número de tentativas de reencaminhamento: se a ordem não for executada, a ordem será cancelada e a transação será reencaminhada. Este parâmetro é usado para limitar o número máximo de tentativas de reencaminhamento.
- Intervalo de pesquisa da rede ((milliseconds): válido apenas para o protocolo REST, controle do intervalo de solicitação da rede, evite solicitações muito frequentes, além dos limites da bolsa.
- Tempo de sincronização das contas (segundos): período de tempo para sincronizar os dados das contas.
- Tempo de sincronização de posições após a abertura da posição (milliseconds): apenas para a abertura de posições repetidas causadas por atrasos de dados de algumas exchanges, a configuração de tempo de sincronização maior pode mitigar esse tipo de problema.
- Multiplice de alavancagem: configure o multiplicador de alavancagem.
Negociação em dinheiro, outras configurações
- Volume de transação de uma mão: o volume de transação de uma mão padrão, válido apenas para o dinheiro.
- Número mínimo de transações: Número mínimo de transações
- Precificação monetária: Precificação do preço, ou seja, o número de dígitos do preço.
- Precisão da variedade de transação: a precisão da quantidade seguinte, ou seja, o número menor da quantidade seguinte.
- Taxa de processamento: 0,002 indica 2 milésimos para alguns dados calculados de acordo com essa configuração.
- Intervalos de perda e prejuízo: somente em disco rígido.
- Falha de repetição ((ms): intervalo de repetição quando a solicitação da rede falha.
- Agente de uso: válido apenas para o protocolo REST.
- Esconde erros comuns na rede: Esconde erros comuns na área de registro.
- O endereço de base de comutação é válido apenas para o protocolo REST.
- Notificações de envio: envio de mensagens para a caixa de correio, etc.
Faça um pedido
Abrir uma posição
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) // 指定(较低的)价格,计划下买单订单,等待成交开仓,限价开仓
Posições equilibradas
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 negociação
O mecanismo de posicionamento da linguagem PINE é semelhante ao de um posicionamento unidirecional. Por exemplo, quando se detém uma posição em direção a várias posições, se houver ordens de venda de operações, planos, etc. em sentido oposto em relação à direção da posição, as ordens de execução são acionadas, em seguida, as ordens acionadas são acionadas em sentido oposto em relação à posição anterior.
Planilha
Quando o comando de encomenda é usado, a lista de preços é assumida por defeito se não for especificado qualquer preço. Além da lista de preços, a lista de planos também pode ser encomendada por meio da lista de planos, mas a lista de planos não opera a lista de planos imediatamente. A lista de planos pode ser incluída na cota de encomendas de planos que não existem no processo ao ser acionada.Disco rígido / retrospectivaA informação de estado de tempo (ou seja, o estado da estratégia em execução) é visto na seção de páginas do formulário "Ordens planejadas". Quando o preço do mercado em tempo real atende às condições, o sistema só faz um pedido real quando esses planos são acionados. Portanto, esses pedidos são normais se houver um ligeiro desvio no preço de transação.strategy.entryQuando uma função é encomendada, 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
-
Ordem de limite
O preço limite de um pedido é definido quando o pedido é pago (ou seja,
directionOs parâmetros sãostrategy.longA ordem é acionada apenas quando o preço atual do mercado é inferior a esse preço.
Quando a encomenda é para venda por encomenda (ou seja,directionOs parâmetros sãostrategy.shortA ordem só é acionada quando o preço atual do mercado é superior a esse preço. -
Pedido de stop
Estabelecer um preço de parada de uma ordem, quando a ordem é uma compra, a ordem só será acionada se o preço atual do mercado for superior a esse preço.
Quando um pedido é um pedido de venda, o pedido só é acionado quando o preço atual do mercado é inferior a esse preço. -
Ordem de stop-limit
Pode ser configurado simultaneamente
limit、stopParâmetro: A ordem é acionada pelo preço mais qualificado.
Percentagem de direitos
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)
Especificaçãodefault_qty_type=strategy.percent_of_equityDepois, configuraçãodefault_qty_valuePor exemplo: a conta atual tem 10.000 USDT, e a ordem de 1% é a ordem de compra com o tamanho de 100 USDT (calculada com o preço atual no momento da venda).
Declaração, palavras-chave estrutura lógica
var
var é a palavra-chave usada para a distribuição e a inicialização de variáveis.
Normalmente, a sintaxe de atribuição de variáveis que não contém a palavra-chave var faz com que o valor da variável seja coberto sempre que os dados são atualizados. Por outro lado, quando as variáveis são atribuídas com a palavra-chave var, elas podem ser mantidas na barra de estado apesar da atualização dos dados, e somente alteradas se as condições das if-expressions forem atendidas.
var variable_name = expression
Explicação:
variable_name- Qualquer nome de variável de usuário permitido no Pine Script, que pode conter letras latinas maiúsculas e minúsculas, números e sublinhados_), mas não começa com um número).expression- Qualquer expressão aritmética, tal como a definição de uma variável regular.
Exemplo
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")
A variável 'a' mantém o valor de fechamento do primeiro pilar de cada linha da série.
A variável 'b' mantém o preço de fechamento da primeira barra de preço de alumínio verde da série.
A variável 'c' mantém o preço de fechamento da décima chiclete verde da série.
No FMZ, os modelos de preços são os modelos de preços em tempo real, os modelos de preços de fechamento e os modelos de preços de fechamento.var、varipA variável da declaração é testada com o seguinte 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 preço em tempo real
O código de teste acima foi dividido em duas fases: 1) Histórico K-linha 2.) Real K-linha 3.) Quando o modelo de preço em tempo real, a fase histórica K-linhavar、varipAs variáveis i, ii da declaração executam uma operação incremental em cada rodada de execução do código da estratégia, porqueif truePortanto, execute o bloco de código condicional correspondente). Assim, pode-se ver que os números exibidos na linha BAR do resultado do teste K são incrementados em 1 cada um. Quando o estágio da linha K histórica termina, o estágio da linha K em tempo real começa.var、varipAs variáveis declaradas começam a mudar de forma diferente. Como é um modelo de preço em tempo real, o código de estratégia é executado uma vez por cada mudança de preço dentro de uma linha KBAR.i := i + 1eii := ii + 1A diferença é que ii é modificado a cada vez. Embora i seja modificado a cada vez, o valor de i é restabelecido na próxima rodada de execução da lógica da estratégia, até que o atual K line BAR seja concluído para atualizar o valor de i. Portanto, você pode ver que a variável i continua a aumentar 1 por BAR. Mas a variável ii acumula várias vezes por BAR. -
Modelo de preço de fechamento
Como o modelo de preço de fechamento executa uma lógica de estratégia para cada K-line BAR. Assim, no modelo de preço de fechamento, a fase de linha K histórica e a fase de linha K em tempo real são separadas.var、varipAs variáveis declaradas são exatamente as mesmas em cada K line BAR incrementado de 1 <unk>.
varip
varip ((var intrabar persist) é uma palavra-chave usada para a distribuição e inicialização de variáveis de uma só vez. É semelhante à palavra-chave var, mas a variável que usa a declaração varip mantém seu valor entre as atualizações de linha K em tempo real.
varip variable_name = expression
Explicação:
variable_name- Qualquer nome de variável de usuário permitido no Pine script que possa conter letras maiúsculas e minúsculas, números e sublinhados_), mas não começa com um número).expression- Qualquer expressão aritmética, como quando se define uma variável regular. Na primeira linha K, a expressão é calculada apenas uma vez e é atribuída à variável uma vez.
Exemplo
pine
// varip
varip int v = -1
v := v + 1
plot(v)
Usando var, o gráfico retorna o valor de bar_index. Usando varip, o mesmo acontece na linha K histórica, mas na linha K em tempo real, o gráfico retorna um valor que aumenta para cada tick.
Nota:
Só pode ser usado com tipos simples, como float, int, bool, string, e com arrays desses tipos.
true
Representar um valor de uma variável de tipo Boole, ou quando a expressão é usadaComparaçãoouLógicaValores que podem ser calculados no operador.
Nota:
Veja tambémComparaçãoO operador eLógicaDescrição do operador:
Veja também
bool
false
Indica o valor de uma variável de tipo Boole, e o resultado de operações de comparação e operações lógicas.
Nota:
Veja tambémComparaçãoO operador eLógicaDescrição do operador:
Veja também
bool
if
Uma sentença if define um bloco de sentenças que deve ser executado para satisfazer uma condição de expressão. A linguagem de scripting Pine, em sua 4a edição, permite que você use a sintaxe de <unk>else if<unk>.
Código genérico:
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
Nota:
var_declarationX- Esta variável obtém o valor da frase if
condition- Use bloco de declarações se a condição for verdadeirathenA lógica no interiorvar_decl_then0,var_decl_then1Se a condição for false, use o bloco de sentenças.else ifouelseA lógica no interiorvar_decl_else0,var_decl_else1E assim por diante.
return_expression_then , return_expression_else- A última expressão no módulo ou a expressão do bloco else retornará o valor final da frase. Se a declaração da variável estiver no final, seu valor será o valor resultante.
O tipo de retorno de um valor de uma declaração if depende dereturn_expression_thenereturn_expression_elseQuando executado no TradingView, seus tipos devem coincidir: quando você tem um valor de string no bloco else, é impossível retornar um valor inteiro do bloco then. Quando executado no FMZ, o exemplo a seguir não comete erros, quando o valor y é "open", o valor do gráfico de plot é n/a.
Exemplo
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)
Pode ser omitidoelseBloco <unk> Neste caso, se a condição for false, a variável var_declarationX será atribuída a um valor <unk>empty (na, false ou <unk>):
Exemplo
pine
// if
x = if close > open
close
// If current close > current open, then x = close.
// Otherwise the x = na.
plot(x)
Pode-se usar vários blocos de <unk>else if<unk> ou não usar nenhum. Os blocos de <unk>then<unk>, <unk>else if<unk> e <unk>else<unk> são movidos em quatro espaços:
Exemplo
pine
// if
x = if open > close
5
else if high > low
close
else
open
plot(x)
Pode ser ignorado.ifO valor de resultado da expressão ((<unk>var_declarationX=<unk> pode ser omitido)). Pode ser útil se você precisar de efeitos colaterais da expressão, por exemplo, em estratégias de negociação:
Exemplo
pine
if (ta.crossover(high, low))
strategy.entry("BBandLE", strategy.long, stop=low)
else
strategy.cancel(id="BBandLE")
As sentenças If podem ser incluídas:
Exemplo
pine
// if
float x = na
if close > open
if close > close[1]
x := close
else
x := close[1]
else
x := open
plot(x)
for
A estrutura 'for' permite a execução repetida de várias frases:
[var_declaration =] for counter = from_num to to_num [by step_num]
statements | continue | break
return_expression
var_declaration- Uma declaração de variável selecionável, que será atribuída ao valor da expressão return_expression do loop.
counter- A variável que guarda o valor do contador de volta, aumentando/diminuindo 1 ou o valor step_num em cada iterativa da volta.
from_num- Valores iniciais do contador. Permite o uso de thresholds int/float series/expressões.
to_num- o valor final do contador. O ciclo é interrompido quando o contador é maior do que to_num (ou menor do que to_num no caso de from_num > to_num). O uso de thresholds int/float thresholds/expressions é permitido, mas eles são avaliados apenas na primeira iteração do ciclo.
step_num- O valor de acréscimo/decaimento do contador. É opcional. O valor padrão é +1 ou -1, dependendo do maior de from_num ou to_num.
statements | continue | break- Escreva um número arbitrário de frases, ou palavras-chave 'continue' ou 'break', em 4 espaços ou uma tabulação.
return_expression- O valor de retorno do loop, se existir, é atribuído a uma variável na declaração var. Se o loop for retirado devido à palavra-chave <unk>continue<unk> ou <unk>break<unk>, o valor de retorno do loop é o valor de retorno da última variável a ser atribuída antes da saída do loop.
continue- Palavras-chave que só podem ser usadas no loop. Isso faz com que a próxima iterativa do loop seja executada.
break- Palavras-chave para sair do círculo.
Exemplo
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...inA estrutura permite executar várias instruções repetidas para cada elemento da matriz. Pode ser usada com qualquer dos seguintes parâmetros:array_element, ou com dois argumentos:[index, array_element]A segunda forma não afeta a função do ciclo. Ela segue o índice da iteração atual na primeira variável do módulo.
[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- uma declaração de variável selecionável, que será atribuída ao cicloreturn_expressionValor de
index- Variavel opcional que acompanha o índice de iteração atual. O índice começa em 0. A variável é imutável no corpo circular. Quando usada, ela deve ser incluída em um que também seja incluído.array_elementSubgrupo de
array_element- Contém a variável de cada elemento da matriz contínua a ser processado no ciclo. Esta variável é imutável no corpo do ciclo.
array_id- ID de matriz para a repetição do círculo.
statements | continue | break- Escreva um número arbitrário de frases, ou palavras-chave 'continue' ou 'break', em 4 espaços ou uma tabulação.
return_expression- O valor de retorno do loop é atribuído avar_declarationA variável, se existir. Se o loop sair devido a palavras-chave 'continue' ou 'break', o valor de retorno do loop será o último valor atribuído antes do loop sair.
continue- Palavras-chave que só podem ser usadas no loop. Isso faz com que a próxima iterativa do loop seja executada.
break- Palavras-chave para sair do círculo.
É permitido modificar o elemento ou o tamanho da matriz no loop.
Aqui, usamosfor...inA forma monoparametrica para determinar, em cada linha K, quantos valores de OHLC da linha K são maiores do que os valores de 'close' do SMA:
Exemplo
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))
Aqui, nós usamos a forma de dois parâmetros de for...in para fazer o nossoisPosO valor da matriz é trueQuando eles estão em nosso.valuesArrayO valor correspondente na matriz é a hora correta:
Exemplo
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))
Veja também
for while array.sum array.min array.max
while
whileO enunciado permite a iteração condicional de blocos de código locais.
variable_declaration = while boolean_expression
...
continue
...
break
...
return_expression
Explicação:
variable_declaration- Declarações de variáveis opcionais.return expressionPode-se fornecer um valor de inicialização para esta variável.
boolean_expression- Execute se for verdadewhileSe for false, então emwhileO texto é executado após a frase.
continue - continueAs palavras-chave levam o ciclo a se ramificar para a próxima geração.
break - breakA palavra-chave que causa o fim do ciclo.whileA frase é seguida de uma recuperação.
return_expression- Oferta.whileUma linha opcional que retorna o valor de uma frase.
Exemplo
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)
Nota:
Inicialmente.whileO bloco de código local após a linha deve ser comprimido em quatro espaços ou um marcador.whileO ciclo.whileA expressão de Boole posterior tem de ser false, ou tem de ser executada.break。
switch
O operador switch transfere o controle para uma das várias sentenças de acordo com o valor da condição e da expressão.
[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
A expressão "switch":
Exemplo
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)
Switch sem expressão:
Exemplo
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)
Devolver valores
O valor da última expressão no bloco de declarações locais executado.
Nota:
Só pode ser executadolocal_blockExemplos oudefault_local_blockUm deles.default_local_blockApenas com=>O marcador é introduzido juntamente e executado somente se o bloco anterior não for executado. SeswitchO resultado da sentença é atribuído a uma variável e não é especificadodefault_local_blockSe não houver execução,local_block, então a frase voltanaNão, não.switchQuando o resultado de uma sentença é atribuído a uma variável, todas aslocal_blockA instância deve retornar valores do mesmo tipo.
series
series é uma palavra-chave que indica o tipo de série de dados.seriesAs palavras-chave geralmente não são necessárias.
Operador
=
É usado para atribuir valores a variáveis, mas apenas quando as variáveis são declaradas.
:=
O operador de atribuição atribui a variável à esquerda. É usado para atribuir a variável declarada anteriormente.
!=
Não é igual a ≠ ≠ ≠ ≠ ≠ ≠
expr1 != expr2
Devolver valores
Um valor de bur, ou uma série de valores de bur.
%
Número modulo ((número inteiro excedente) [2]. Aplica-se a expressões de valor numérico [2].
expr1 % expr2
Devolver valores
Um valor inteiro ou um valor de ponto flutuante, ou uma série de valores.
Nota:
No script Pine, quando o saldo de números inteiros é calculado, o negócio será interrompido. Ou seja, o valor recebido terá o mesmo símbolo que o dividendo.
Exemplo: -1 % 9 = -1 - 9 * truncate ((-1/9) = -1 - 9 * truncate ((-0.111) = -1 - 9 * 0 = -1 ◦
%=
Definição de módulo. Aplica-se a expressões numéricas.
expr1 %= expr2
Exemplo
pine
// Equals to expr1 = expr1 % expr2.
a = 3
b = 3
a %= b
// Result: a = 0.
plot(a)
Devolver valores
Um valor inteiro ou um valor de ponto flutuante, ou uma série de valores.
*
Multiplicação. Aplica-se a expressões numéricas.
expr1 * expr2
Devolver valores
Um valor inteiro ou um valor de ponto flutuante, ou uma série de valores.
*=
A multiplicação é designada. Aplica-se a expressões numéricas.
expr1 *= expr2
Exemplo
pine
// Equals to expr1 = expr1 * expr2.
a = 2
b = 3
a *= b
// Result: a = 6.
plot(a)
Devolver valores
Um valor inteiro ou um valor de ponto flutuante, ou uma série de valores.
+
Adição ou um número positivo. Aplica-se a expressões numéricas ou strings.
expr1 + expr2
+ expr
Devolver valores
Binário de Strings+Retorna a fusão de express1 e express2
O número retorna um inteiro ou um valor de ponto flutuante, ou uma série de valores:
O binário '+' retorna expressão 1 mais expressão 2.
1 yuan + 1 yuan retorna expr ((Não adicione nada ao operador de 1 yuan de simetria) ▽
Nota:
Você pode usar operadores de aritmética com números, bem como um conjunto de variáveis. No caso de usar um conjunto de variáveis, os operadores são aplicados aos elementos.
+=
A designação de adição <unk> aplica-se a expressões numéricas ou strings <unk>.
expr1 += expr2
Exemplo
pine
// Equals to expr1 = expr1 + expr2.
a = 2
b = 3
a += b
// Result: a = 5.
plot(a)
Devolver valores
Para uma string, retorne a sequência de expressões expr1 e expr2. Para números, retorne um inteiro ou um valor de ponto flutuante, ou uma série de valores.
Nota:
Você pode usar operadores de aritmética com números, bem como um conjunto de variáveis. No caso de usar um conjunto de variáveis, os operadores são aplicados aos elementos.
-
O método de subtração ou umitero-negativo. Aplica-se a expressões numéricas.
expr1 - expr2
- expr
Devolver valores
Retorna um valor inteiro ou um valor de ponto flutuante, ou uma série de valores:
O binário '+' retorna expressão 1 menos expressão 2.
Um dólar.-Retorna a expressão negativa de ∂.
Nota:
Você pode usar operadores de aritmética com números, bem como um conjunto de variáveis. No caso de usar um conjunto de variáveis, os operadores são aplicados aos elementos.
-=
Designação de subtração. Aplica-se a expressões numéricas.
expr1 -= expr2
Exemplo
pine
// Equals to expr1 = expr1 - expr2.
a = 2
b = 3
a -= b
// Result: a = -1.
plot(a)
Devolver valores
Um valor inteiro ou um valor de ponto flutuante, ou uma série de valores.
/
Exclusão: aplica-se a expressões numéricas.
expr1 / expr2
Devolver valores
Um valor inteiro ou um valor de ponto flutuante, ou uma série de valores.
/=
Designação de exclusão. Aplica-se a expressões numéricas.
expr1 /= expr2
Exemplo
pine
// Equals to expr1 = expr1 / expr2.
a = 3
b = 3
a /= b
// Result: a = 1.
plot(a)
Devolver valores
Um valor inteiro ou um valor de ponto flutuante, ou uma série de valores.
<
Menor que ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠
expr1 < expr2
Devolver valores
Um valor de bur, ou uma série de valores de bur.
<=
Menor ou igual a ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠
expr1 <= expr2
Devolver valores
Um valor de bur, ou uma série de valores de bur.
==
É igual a . . . Aplica-se a qualquer tipo de expressão . . .
expr1 == expr2
Devolver valores
Um valor de bur, ou uma série de valores de bur.
=>
O operador '=>' é usado para declarar funções definidas pelo usuário eswitchNa frase:
A sintaxe da declaração de função é:
<identifier>([<parameter_name>[=<default_value>]], ...) =>
<local_block>
<function_result>
Um.<local_block>São zero ou mais frases de Pine.
<function_result>É uma variável, uma expressão ou um grupo.
Exemplo
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))
Nota:
Você pode obter mais informações sobre funções definidas pelo usuário nas páginas de declarações de funções e biblioteca de scripts do manual do usuário.
>
Maior do que <unk> aplica-se a expressões numéricas
expr1 > expr2
Devolver valores
Um valor de bur, ou uma série de valores de bur.
>=
Maior que ou igual a. Aplica-se a expressões numéricas.
expr1 >= expr2
Devolver valores
Um valor de bur, ou uma série de valores de bur.
?:
O operador de condição triangular。
expr1 ? expr2 : expr3
Exemplo
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)
Devolver valores
Se expr1 for avaliado como verdadeiro, expr2 será, caso contrário, expr3. Os valores de zero ((0 e NaN +, Infinity, -Infinity) são considerados falsos, os outros valores são verdadeiros.
Nota:
Se você não precisar, use na como uma ramificação de naelse.
Você pode combinar dois ou mais operadores ?: para implementar uma frase semelhante à da supressão de um parênquima (veja o exemplo acima).
Você pode usar operadores de aritmética com números, bem como um conjunto de variáveis. No caso de usar um conjunto de variáveis, os operadores são aplicados aos elementos.
Veja também
na
[]
Subsérie ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠
expr1[expr2]
Exemplo
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)
Devolver valores
Uma série de valores.
Veja também
math.floor
and
A lógica AND <unk> aplica-se às expressões de Boole <unk>.
expr1 and expr2
Devolver valores
Um valor de bur, ou uma série de valores de bur.
or
A lógica OR ≠ aplica-se às expressões de Boole ≠
expr1 or expr2
Devolver valores
Um valor de bur, ou uma série de valores de bur.
not
A inversão lógica ((NOT) <unk> aplica-se às expressões de Boole<unk>.
not expr1
Devolver valores
Um valor de bur, ou uma série de valores de bur.
Tipo de dados Palavras-chave
bool
A palavra-chave do tipo bool <unk> ((Bool)) usada para declarar explicitamente uma variável ou um parâmetro. O valor da variável "Bool" pode ser verdadeiro, falso ou na.
Exemplo
pine
// bool
bool b = true // Same as `b = true`
b := na
plot(b ? open : close)
Nota:
É opcional mencionar o tipo explicitamente na declaração da variável, a menos que seja iniciado com na. Para mais informações sobre o tipo Pine, consulte a página do manual do usuário do sistema de tipos.
Veja também
var varip int float color string true false
int
Palavras-chave do tipo <unk>int <unk> ((inteiro)) para variáveis ou parâmetros declarados explicitamente.
Exemplo
pine
// int
int i = 14 // Same as `i = 14`
i := na
plot(i)
Nota:
É opcional mencionar o tipo explicitamente na declaração da variável, a menos que seja iniciado com na. Para mais informações sobre o tipo Pine, consulte a página do manual do usuário do sistema de tipos.
Veja também
var varip float bool color string
float
Palavras-chave do tipo float () para variáveis ou parâmetros declarados explicitamente.
Exemplo
pine
// float
float f = 3.14 // Same as `f = 3.14`
f := na
plot(f)
Nota:
É opcional mencionar o tipo explicitamente na declaração da variável, a menos que seja iniciado com na.
Veja também
var varip int bool color string
string
Palavras-chave do tipo "string" para variáveis ou parâmetros declarados explicitamente.
Exemplo
pine
// string
string s = "Hello World!" // Same as `s = "Hello world!"`
// string s = na // same as ""
plot(na, title=s)
Nota:
É opcional mencionar o tipo explicitamente na declaração da variável, a menos que seja iniciado com na. Para mais informações sobre o tipo Pine, consulte a página do manual do usuário do sistema de tipos.
Veja também
var varip int float bool str.tostring str.format
color
Palavras-chave do tipo "color" usadas para declarar variáveis ou parâmetros de expressões.
Exemplo
pine
// color
color textColor = color.green
if barstate.islastconfirmedhistory
runtime.log("test", textcolor = textColor)
Nota:
Os caracteres de cor têm o seguinte formato: #RRGGBB ou #RRGGBBAA. Os pares de letras representam os valores de dezesseis dígitos de 00 a FF ((de dezesseis dígitos de 0 a 255), onde RR, GG e BB são os valores das proporções de vermelho, verde e azul das cores. AA é o valor opcional da transparência da cor (ou a proporção alfa), onde 00 é invisível e FF não é transparente.
É opcional mencionar o tipo explicitamente na declaração da variável, a menos que seja iniciado com na. Para mais informações sobre o tipo Pine, consulte a página do manual do usuário do sistema de tipos.
Veja também
var varip int float string color.rgb color.new
array
Palavras-chave para o tipo de array de arrays de variáveis ou parâmetros declarados explicitamente. Pode ser usadoarray.new<type>,array.fromA função cria um objeto de matriz ((ou ID) }}.
Exemplo
pine
// array
array<float> a = na
a := array.new<float>(1, close)
plot(array.get(a, 0))
Nota:
Os objetos da matriz são sempre em forma de conjuntos de conjuntos.
Veja também
var array.new array.from
Objects
Os objetos da linguagem PINE são exemplos de tipos definidos pelo usuário (UDT), que podem ser entendidos como classes sem métodos, permitindo que o usuário crie tipos personalizados em uma política para organizar diferentes valores em uma entidade.
Definição de tipo
Vamos definir um tipo de ordem para armazenar a informação do pedido:
pine
type order
float price
float amount
string symbol
- usar
typeTipo de declaração da palavra-chave <unk> - A palavra-chave type é seguida pelo nome do tipo.
- A primeira linha type define o nome do tipo, e depois, em quatro espaços, define os campos que o tipo contém.
- Cada campo precisa declarar seu tipo de dados, como int, float, string.
Objeto de criação
Utilize o tipo declarado, chamadanew()Objeto de criação da função:
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)
Também é possível criar objetos vazios:
pine
order order1 = na
Vejamos um exemplo prático:
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"}
O exemplo é esta frase:
pine
order1 = order.new(strategy.opentrades.entry_price(strategy.opentrades - 1), strategy.opentrades.size(strategy.opentrades - 1), syminfo.ticker)
A expressão pode também ser escrita da seguinte 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 o uso da palavra-chave 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")
Quando uma variável é atribuída a um objeto do tipo definido pelo usuário, a declaração da palavra-chave var é aplicada automaticamente a todos os campos desse objeto. Isso significa que um objeto declarado com a palavra-chave var manterá seu estado entre cada iteração, sem a necessidade de reiniciar seus valores de campo em cada iteração.
- O objeto firstBar é declarado com a palavra-chave var, então seu campo ((index, price, vol) manterá seu valor em cada iterativa, desde o primeiro item até o fim do último.
- O objeto currentBar não usa a declaração de palavra-chave var, então seus campos serão reinicializados em cada entrada e haverá um novo objeto em cada interação.
Ao mapear os campos de índice de dois objetos, você pode comparar as diferenças entre eles. firstBar.index manterá o valor previamente definido em cada iterativa, enquanto que currentBar.index será reinicializado em cada iterativa como o valor bar_index do item atual.
Tipo de objeto para uso de 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)
Em Pine, o uso da palavra-chave varip pode indicar que o campo do objeto persiste durante toda a execução do script, sem rolar dentro da coluna não confirmada.
Em uma declaração do tipo Counter, o campo bars não usa a palavra-chave varip e, portanto, rola dentro de cada coluna não confirmada. O campo ticks usa a palavra-chave varip e, portanto, não rola dentro da coluna não confirmada.
O objeto counter é declarado com a palavra-chave var, então ele persistirá durante toda a execução do script.
Em cada iterativa, os campos de barras e ticks são adicionados 1 ≠. Os campos de barras são revertidos dentro de cada coluna não confirmada, enquanto os campos de ticks não são.
Finalmente, pode-se comparar as diferenças entre eles através do mapeamento dos campos counter.bars e counter.ticks. O valor de counter.bars será revertido dentro de cada coluna não confirmada, enquanto o valor de counter.ticks será aumentado continuamente até o fim da execução do script.
Alteração de valores de 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")
Disponível:=O operador de reavaliação altera o valor do campo objeto.
Coleção de objetos
O exemplo declara um array em branco que guarda objetos do tipo order definido pelo usuário:
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")
ou
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 cópia
Em Pine, os objetos são atribuídos por referência. Quando um objeto existente é atribuído a uma nova variável, ambos apontam para o mesmo 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)
No exemplo a seguir, criamos um objeto pivot1 e definimos seu campo x como 1000。 Em seguida, declaramos que um pivot2 contém uma variável que faz referência a esse objeto pivot1 e, portanto, ambos apontam para a mesma instância。 Portanto, alterar o pivot2.x também altera o pivot1.x, pois ambos fazem referência a um campo x do mesmo objeto。
Para criar uma cópia independente do objeto original, neste caso podemos usar o método de copiar embutido (). Neste exemplo, declaramos que o pivot2 faz referência a uma variável da instância de replicação do objeto pivot1. Agora, alterar o pivot2.x não altera o pivot1.x, pois refere-se a um campo de x um objeto separado:
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)
Note-se que o método de cópia do TradingView é uma cópia superficial. Se um objeto tiver campos de tipos especiais (array, etc.), esses campos na cópia superficial do objeto apontarão para a mesma instância do objeto.
A plataforma FMZ permite a cópia profunda diretamente, sem necessidade de processamento adicional. Veja os exemplos a seguir:
Cópia profunda
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")
O resultado do teste, labelInfo.copy ((labelInfo1) é executado como uma cópia profunda, modificando qualquer campo do labelInfo1 não afetará o labelInfo2。
Methods
Os métodos da linguagem Pine são funções especializadas associadas a tipos embutidos ou definidos pelo usuário em uma instância específica. Em muitos aspectos, eles são basicamente os mesmos que as funções regulares, mas oferecem uma gramática mais curta e mais conveniente. Os usuários podem acessar os métodos diretamente em variáveis usando símbolos de ponto, assim como acessam os campos de objetos Pine.
Métodos embutidos
Por exemplo, um trecho de um script que diz:
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)
O equivalente pode ser reescrito 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)
O PINE está a apoiá-lo.MethodsDepois, o código.array.avg(sourceArray)O que é que eu tenho a dizer?sourceArray.avg()。
Atenção: FMZ temporariamente não suportadoarray.avgA chamada é assim.
Métodos definidos pelo usuário
O Pine permite que o usuário defina métodos personalizados para uso com qualquer tipo de objeto embutido ou definido pelo usuário. Os métodos de definição são essencialmente os mesmos que as funções de definição, mas com duas diferenças importantes:
1, a palavra-chave method deve ser incluída antes do nome da função.
2. Parâmetros de um método, onde o tipo do primeiro parâmetro deve ser declarado explicitamente, pois ele indica o tipo de objeto ao qual o método será associado.
Por exemplo, o código a seguir para calcular o indicador de Bryn é encapsulado como um método personalizado para o usuário:
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)
Modificado para:
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)
Pode-se ver que os métodos personalizados do usuário que usam a declaração de método da palavra-chave:maintainQueue, o primeiro parâmetro da lista de parâmetros do calcBB éarray<float>Tipo: Indica que o método éarray<float>Métodos de variáveis de tipo, para que se possa ver a invocação do seguinte código para calcular o indicador de Bryn.
pine
[sampleMean, highBand, lowBand] = sourceArray.maintainQueue(sourceInput, newSample).calcBB(multiplier, newSample)
Recarregar métodos
Métodos definidos pelo usuário podem ser sobrepostos e sobrecarregados por métodos existentes com o mesmo identificador e métodos definidos pelo usuário. Esta funcionalidade permite que o usuário defina vários procedimentos associados a diferentes assinaturas de parâmetros sob o mesmo nome de método. Como um exemplo simples, suponha que queremos definir um método para identificar o tipo de variável.
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")
Determinação do tipo básico de cada variávelgetType()Que tipo de sobrecarga será usado? Na plataforma FMZ, os tipos de valores são julgados como dados de tipo ponto flutuante (float) devido à implementação de Javascript como linguagem de base do script PINE.
Funções embutidas
Quando uma função é chamada, pode-se transmitir um parâmetro, pode-se especificar o nome do parâmetro atribuído, pode-se transmitir uma variável diretamente na posição do parâmetro correspondente, também é possível usar o uso de mistura. Por exemplo:
pine
plot(close, title="test plot") // 直接传参数 close ;指定参数 title ,赋值字符串"test plot"
Após a atribuição do nome do parâmetro, não é possível transmitir diretamente a variável como um parâmetro, e os parâmetros subsequentes devem ser escritos na forma de atribuição do nome do 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
Será transmitido atimeframeConverte o período de tempo do parâmetro para segundos.
timeframe.in_seconds(timeframe)
Exemplo
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)
Devolver valores
timeframeO número de segundos em uma linha K de int representa a forma ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ ≠ .
parâmetro
timeframe(simple string) Período de tempo。 opcional。 o valor padrão é timeframe.period。
Nota:
Para otimeframe>= A função '1M' calcula o número de segundos baseado em 30.4167 (365/12) dias de um mês.
Veja também
input.timeframe timeframe.period
ticker
ticker.heikinashi
Criação de um código de identificação de solicitação para suavizar o valor da linha média de K。
ticker.heikinashi(symbol)
Exemplo
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)
Devolver valores
O código de ações pode ser fornecido para a função request.security.
parâmetro
symbol(simple string) Identificador de código de mercadoria。
Veja também
syminfo.tickerid syminfo.ticker request.security
request
request.data
Pedimos dados externos.
request.data(url, attribute)
Exemplo
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)
Devolver valores
parâmetroattributeUma série de dados definida.
parâmetro
-
url(simple string) O url da fonte de dados solicitada e o formato de dados respondido pela fonte de dados precisam atender aos requisitos (incluindo pelo menos o atributo time, data):{"data": [], "schema": ["time", "data"]}Os formatos de dados podem ser consultados no exemplo: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 o nome da propriedade e retorna os dados necessários. Por exemplo:"$.spot_close_price",usar$.Como um prefixo, o nome da propriedade e a propriedade no campo data do data que foi respondida quando a fonte de dados foi solicitada são consistentes
Se o aviso for errado, é necessário verificar.request.dataSe o intervalo de tempo solicitado coincide com o intervalo de tempo de configuração de ressonância, a pesquisa de dados não encontrados na sequência de tempo de ressonância pode gerar um erro.
A instrução data-data para a consulta de dados do SQL neste exemplo é:
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;
A partir da plataforma FMZExploração de dadosPerguntas de página, criação de links de dados, como no exemplohttps://www.datadata.com/api/v1/query/ebe46218-c5c6-4366-8c72-413694417976/data。
request.security
Requer outra variedade/resolução.
request.security(symbol, timeframe, expression, gaps, lookahead, ignore_invalid_symbol, currency)
Exemplo
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)
Devolver valores
Série de Requisitos
parâmetro
symbol(simple string) Código de mercadoria。timeframe(simple string) Período de tempo ≠ a string em branco será interpretada como o período de tempo atual do gráfico ≠expression(series int/float/bool/color) pode ser calculado a partir da invocação request.security e retornar uma expressão. Pode ser uma série ou um módulo que contém elementos que podem ser convertidos em uma série.gaps(barmerge_gaps) dá a estratégia de fusão de dados solicitados (exige que os dados sejam automaticamente combinados com os dados da série principal do OHLC). Valores possíveis: barmerge.gaps_on, barmerge.gaps_off. barmerge.gaps_on - os dados solicitados são combinados com possíveis lacunas (valores na). barmerge.gaps_off - os dados solicitados são combinados de forma contínua, todos os lacunas são preenchidos com os últimos valores existentes anteriormente.lookahead(barmerge_lookahead) A estratégia de fusão de dados solicitada. Valores possíveis: barmerge.lookahead_on, barmerge.lookahead_off. A partir da versão 3, o valor padrão é barmerge.lookahead_off. Observe que o comportamento é o mesmo que no tempo real, apenas diferente no histórico.ignore_invalid_symbol(const bool) Um parâmetro opcional. Determina o comportamento da função se o produto especificado não for encontrado: se for false, o script será parado e retornará um erro; se for true, a função retornará na e continuará a executar. O valor padrão é false.currency(simple string) Converte o valor de referência monetária do produto (... por exemplo, OHLC) para a moeda <unk>. Depois, calcule o valor após a conversão <unk>expression <unk>. A taxa de conversão usada é baseada na taxa de câmbio diária do dia anterior do par FX_IDC <unk> (em relação à linha K calculada) <unk> opcional <unk>. O valor padrão é syminfo.currency <unk>. Valores possíveis: uma string de três letras com o código monetário no formato ISO 4217 <unk> (por exemplo, <unk>USD <unk>) ou currency.* Uma das constantes no namespace, por exemplo, currency.USD <unk>
Nota:
O código de PineScript com esta função pode fazer diferentes cálculos para o histórico e os dados em tempo real.
Se você quiser especificar parâmetros adicionais para o produto solicitado, como o tempo de transação ou o tipo de ajuste, você pode usar a função ticker.new ().
Não é possível usar a variável 'ticker' para passar a diferença de pontos para esta função. Você pode usar a variável 'ticker.new' ou a representação de cadeia de caracteres do código de ações, como AAPL+MSFT*TSLA”。
Atualmente, um script pode ter no máximo 40 requests.security.
Por favor, note que o uso desta variável/função pode resultar em um redesenho do indicador.
Os parâmetros de resolução permitidos são:
1S, 5S, 15S, 30S - intervalo de segundos (o período de gráfico deve ser menor ou igual ao período solicitado)
De 1 a 1440 minutos
De 1D a 365D dias
De 1W a 52W em semanas.
De 1M a 12M em alguns meses
Veja também
syminfo.ticker syminfo.tickerid timeframe.period ta.correlation barmerge.lookahead_off barmerge.lookahead_on
str
str.contains
SesourceConter uma stringstrSe for uma sequência de caracteres, retorna true, caso contrário retorna false.
str.contains(source, str)
Exemplo
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)
Devolver valores
Se emsourceEncontrado em uma stringstr, então é verdadeiro, ou então é falso.
parâmetro
source(series string) string de origemstr(series string) A sequência de caracteres a ser pesquisada.
str.endswith
SesourceA sequência éstrA sequência de caracteres especificada no final da sequência de caracteres é devolvida para true, caso contrário para false.
str.endswith(source, str)
Devolver valores
SesourceA sequência éstrA sequência de caracteres especificada no final é verdadeira ou falsa.
parâmetro
source(series string) string de origemstr(series string) A sequência de caracteres a ser pesquisada.
Veja também
str.startswith
str.startswith
SesourceA sequência éstrA sequência de caracteres especificada no início da sequência retorna true, caso contrário retorna false.
str.startswith(source, str)
Devolver valores
SesourceA sequência éstrA sequência de caracteres especificada começa com true ou false.
parâmetro
source(series string) string de origemstr(series string) A sequência de caracteres a ser pesquisada.
Veja também
str.endswith
str.substring
Retorna uma nova string, que ésourceSubstringente de uma string. Substringente de uma string. Substringente de uma stringbegin_posOs caracteres começam no índice especificado e se estendem atésource'end_pos - 1' da sequência de caracteres.
str.substring(source, begin_pos)
str.substring(source, begin_pos, end_pos)
Exemplo
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)
Devolver valores
Substring extraído da string de origem.
parâmetro
source(series string) A string de origem da qual se extrai a substring.begin_pos(series int) a posição inicial da substring extraída。 é exclusiva ((a substring extraída inclui os caracteres da posição)。end_pos(series int) End position。 é exclusivo ((a sequência extraída não inclui caracteres da posição)。 é opcional。 o valor padrão ésourceO comprimento da string.
Nota:
O índice da string começa em 0.begin_posigualend_pos, a função retorna uma sequência de caracteres em branco.
Veja também
str.contains str.pos str.match
str.tonumber
str.tonumber(string)
Devolver valores
Se contém números válidos, é o tipo de floating-point da string, senão é na。
parâmetro
string(series string) representação de uma string int ou float.
str.format
Converte uma string de formato e um valor para uma string de formatação. A string de formato pode conter texto e um ponto entre parênteses largos {} para cada valor a ser formatado. Cada ponto inclui um índice para o parâmetro necessário que irá substituí-lo (a partir de 0), e um indicador de formato opcional. O índice indica a posição do parâmetro na lista de parâmetros str.format.
str.format(formatString, arg0, arg1, ...)
Exemplo
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)
Devolver valores
Formatação de strings.
parâmetro
formatString(series string) String de formato。arg0, arg1, ...(series int/float/bool/string/na/int[]/float[]/bool[]/string[]) Valor a ser formatado.
Nota:
Todos os parênteses em estilos não citados devem ser equilibrados. Por exemplo, "ab {0} de" e "ab '}' de" são estilos válidos, mas "ab {0'}' de", "ab } de" e "'{''" não são estilos válidos.
str.length
Retorna um número inteiro correspondente ao número de caracteres na string.
str.length(string)
Devolver valores
Número de caracteres na sequência de origem.
parâmetro
string(series string) string de origem
str.lower
Retorna uma nova string em que todas as letras são convertidas em minúsculas.
str.lower(source)
Devolver valores
Todos os caracteres são convertidos em uma nova sequência de caracteres em minúsculas.
parâmetro
source(series string) A sequência de caracteres a converter.
Veja também
str.upper
str.upper
Retorna uma nova string em que todas as letras são maiúsculas.
str.upper(source)
Devolver valores
Todos os caracteres são convertidos em uma nova sequência de caracteres em maiúsculas.
parâmetro
source(series string) A sequência de caracteres a converter.
Veja também
str.lower
str.match
Se corresponderregexRegular Expressions, retornasourceUma nova substring de uma string, ou retorna 'na'。
str.match(source, regex)
Exemplo
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"
Devolver valores
sourceUma nova substring de uma string, se ela coincide com umaregexA expressão normal é 'na'。
parâmetro
source(series string) string de origemregex(series string) A expressão regular que corresponde a esta sequência de caracteres。
Nota:
Função RetornasourceA expressão regular que aparece pela primeira vez na sequência de caracteres:
regexOs símbolos de contra-acréscimo <unk> na string necessitam de ser traduzidos usando contra-acréscimos adicionais, como <unk>\d<unk> representa a expressão regular <unk>\d<unk>。
Veja também
str.contains str.substring
str.pos
Regresso.sourceAparece pela primeira vez na stringstrA posição da string, caso contrário, retorna 'na'。
str.pos(source, str)
Devolver valores
strA sequência de caracteressourcePosição na string.
parâmetro
source(series string) string de origemstr(series string) A sequência de caracteres a ser pesquisada.
Nota:
O índice da string começa em 0。
Veja também
str.contains str.match str.substring
str.replace
Devolve uma nova sequência de caracteres com a primeira ocorrência de N+1targetStrings e outras versões anteriorestargetA sequência de caracteres é substituída porreplacementString, onde N está emoccurrenceN é o índice de correspondência que ocorre na cadeia de origem da cadeia de destino a ser substituída.
str.replace(source, target, replacement, occurrence)
Exemplo
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)
Devolver valores
Estrelas tratadas
parâmetro
source(series string) string de origemtarget(series string) substituído por stringreplacement(series string) A string a ser inserida em vez da string alvo.occurrence(series int) O índice de correspondência da cadeia de destino a ser substituída aparece na cadeia de origem. O primeiro índice de correspondência começa em 0. É opcional. O valor por defeito é 0.
Veja também
str.replace_all str.match
str.replace_all
Substitua as cadeias de caracteres por cadeias de caracteres de destino que aparecem em cada uma das cadeias de caracteres de origem.
str.replace_all(source, target, replacement)
Devolver valores
Estrelas tratadas
parâmetro
source(series string) string de origemtarget(series string) substituído por stringreplacement(series string) A sequência de caracteres que será substituída por cada sequência de caracteres que aparecer
str.split
Divide uma string em uma sub-array e retorna a sua ID de array.
str.split(string, separator)
Devolver valores
ID da sequência de caracteres.
parâmetro
string(series string) string de origemseparator(series string) Uma sequência de caracteres que separa cada substring.
str.tostring
str.tostring(value)
str.tostring(value, format)
str.tostring(value[])
str.tostring(value[], format)
Devolver valores
valueAs strings dos parâmetros são representadas pela forma:
SevalueSe o parâmetro for uma string, ele é retomado como tal.
QuandovaluePara na, a função retorna a sequência de caracteres NaN<unk>.
parâmetro
value(series int/float/bool/string/int[]/float[]/bool[]/string[]) O elemento é convertido em um valor de uma string ou um ID de array.format(series string) Format string. Accepts these format.* constants: format.mintick, format.percent, format.volume. Optional. The default value is '#.##########'.
Nota:
Os formatos com valores de ponto flutuante também são inseridos quando necessário, por exemplo, str.tostring ((3.99, '#') retornará <unk>4<unk>。
Para mostrar o zero, use '0' em vez de '#'. Por exemplo, '#.000'.
Usando format.mintick, o valor é colocado em círculos até o número mais próximo que pode ser dividido sem um número a mais com siminfo.mintick. A sequência de caracteres retornada é seguida de zero.
Se o argumento x for uma string, o mesmo string será retornado.
O tipo Bool retorna <unk>true<unk> ou <unk>false<unk>
Quando x é na, a função retorna <unk>NaN<unk>。
color
color.new
A cor da função especifica a transparência aplicada a uma determinada cor.
color.new(color, transp)
Exemplo
pine
plot(close, color=color.new(color.red, 50))
Devolver valores
As cores têm uma certa transparência.
parâmetro
color(series color)transp(series int/float) Os valores disponíveis são de 0 (transparente) a 100 (invisível)
Nota:
O uso de um número exorbitante de parâmetros (por exemplo, <unk>simple<unk>, <unk>input<unk> ou <unk>series<unk>) afetará a cor exibida na página de etiquetas de configuração/estilo da barra do script. Consulte o manual do usuário para obter mais informações.
color.rgb
Criar novas cores com transparência usando o modelo RGB.
color.rgb(red, green, blue, transp)
Exemplo
pine
plot(close, color=color.rgb(255, 0, 0, 50))
Devolver valores
As cores têm uma certa transparência.
parâmetro
red(series int/float) Tons vermelhos. Os valores possíveis são de 0 a 255green(series int/float) Tono verde. Os valores possíveis são de 0 a 255blue(series int/float) Tono azul. Os valores possíveis são de 0 a 255transp(series int/float) opcional. A cor é transparente. Os valores possíveis são de 0 (não transparente) a 100 (transparente). O valor padrão é 0 (transparente).
Nota:
O uso de um número exorbitante de parâmetros (por exemplo, <unk>simple<unk>, <unk>input<unk> ou <unk>series<unk>) afetará a cor exibida na página de etiquetas de configuração/estilo da barra do script. Consulte o manual do usuário para obter mais informações.
runtime
runtime.debug
Imprimir informações de variáveis no console.
A linguagem FMZ PINE tem funções específicas.runtime.debug(value), apenas um parâmetro.
runtime.log
Exportação do conteúdo do diário.
A linguagem FMZ PINE tem funções específicas.runtime.log(1, 2, 3, close, high, ...), pode passar vários parâmetros.
runtime.error
Quando é chamada, pode causar erros de operação e trazer problemas de segurança.messageMensagem de erro especificada no parâmetro.
runtime.error(message)
parâmetro
Message (series string) mensagem de erro
input
input
Adicione o input à página de etiquetas de entrada das configurações do script, que permite que você forneça opções de configuração aos usuários do script. Esta função detecta automaticamente o tipo de parâmetro usado para a barra de defval e usa o plug-in de entrada correspondente.
input(defval, title, tooltip, inline, group)
input(defval, title, inline, group, tooltip)
Exemplo
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)
Devolver valores
Valor de variável de entrada
parâmetro
defval(const int/float/bool/string/color or source-type built-ins) Determina o valor padrão de uma variável de entrada sugerida na página de configuração de caixa do script/tabela de caixa de entrada, a partir da qual o usuário do script pode alterá-la. A função de inserção do tipo de fonte é a variável de ponto de inserção da série de flote de uma fonte de cálculo especificada:close、hlc3E assim por diante.title(const string) O título da entrada. Se não for especificado, use o nome da variável como título da entrada. Se o título for especificado, mas o título for vazio, o nome será uma string de caracteres em branco.tooltip(const string) Esta sequência de caracteres será exibida ao usuário quando o mouse estiver suspenso no ícone de sugestão da ferramenta.inline(const string) Combina todas as chamadas de entrada que usam o mesmo parâmetro em uma linha. Não mostra as strings usadas como parâmetros. É usado apenas para identificar as entradas que pertencem à mesma linha.group(const string) Cria um cabeçalho acima de todas as entradas usando a mesma string de parâmetros numéricos. Esta string também é usada como texto do cabeçalho.
Nota:
O valor de retorno de uma função de entrada deve ser sempre atribuído a uma variável. Veja o exemplo acima
Veja também
input.bool input.color input.int input.float input.string input.timeframe input.source
input.source
Adicione o input à página de etiquetas de entrada das configurações do script, que permite que você forneça opções de configuração ao usuário do script. Esta funcionalidade adicionou um menu de descolagem que permite ao usuário escolher o fonte de cálculo, por exemplo, close, hl2 etc. Se o script contém apenas uma chamada de input.source (), o usuário também pode escolher outro indicador no gráfico como fonte de saída.
input.source(defval, title, tooltip, inline, group)
Exemplo
pine
i_src = input.source(close, "Source")
plot(i_src)
Devolver valores
Valor de variável de entrada
parâmetro
defval(series int/float) Determina o valor padrão de uma variável de entrada recomendada na página de etiquetas de configuração de barra / barra de entrada do script, a partir da qual o usuário pode alterá-la.title(const string) O título da entrada. Se não for especificado, use o nome da variável como título da entrada. Se o título for especificado, mas o título for vazio, o nome será uma string de caracteres em branco.tooltip(const string) Esta sequência de caracteres será exibida ao usuário quando o mouse estiver suspenso no ícone de sugestão da ferramenta.inline(const string) Combina todas as chamadas de entrada que usam o mesmo parâmetro em uma linha. Não mostra as strings usadas como parâmetros. É usado apenas para identificar as entradas que pertencem à mesma linha.group(const string) Cria um cabeçalho acima de todas as entradas usando a mesma string de parâmetros numéricos. Esta string também é usada como texto do cabeçalho.
Nota:
O resultado da função input.source sempre deve ser atribuído a uma variável, como no exemplo acima.
Veja também
input.bool input.int input.float input.string input.timeframe input.color input
input.string
Adicione o input à barra de opções de entrada do script, que permite que você forneça opções de configuração ao usuário do script. Esta função adiciona o campo de entrada de string à entrada do script.
input.string(defval, title, options, tooltip, inline, group, confirm)
Exemplo
pine
i_text = input.string("Hello!", "Message")
runtime.log(i_text)
Devolver valores
Valor de variável de entrada
parâmetro
defval(const string) Determina o valor padrão de uma variável de entrada sugerida na página de configuração de barra de script / barra de entrada, a partir da qual o usuário pode alterá-la. Quando a lista de valores éoptionsQuando os parâmetros são usados juntos, o valor deve ser um deles.title(const string) O título da entrada. Se não for especificado, use o nome da variável como título da entrada. Se o título for especificado, mas o título for vazio, o nome será uma string de caracteres em branco.options(List of constants: [<type>...]) uma lista de opções disponíveis.tooltip(const string) Esta sequência de caracteres será exibida ao usuário quando o mouse estiver suspenso no ícone de sugestão da ferramenta.inline(const string) Combina todas as chamadas de entrada que usam o mesmo parâmetro em uma linha. Não mostra as strings usadas como parâmetros. É usado apenas para identificar as entradas que pertencem à mesma linha.group(const string) Cria um cabeçalho acima de todas as entradas usando a mesma string de parâmetros numéricos. Esta string também é usada como texto do cabeçalho.confirm(const bool) Se for true, o usuário será solicitado a confirmar o valor de entrada antes de adicionar o indicador ao gráfico. O valor padrão é false.
Nota:
O resultado da função input.string deve sempre ser atribuído a uma variável, como no exemplo acima.
Veja também
input.bool input.int input.float input.timeframe input.source input.color input
input.bool
Adicione o input à página de etiquetas de entrada do script, que permite que você forneça opções de configuração ao usuário do script. Esta função adiciona um marcador de seleção para a entrada do script.
input.bool(defval, title, tooltip, inline, group, confirm)
Exemplo
pine
i_switch = input.bool(true, "On/Off")
plot(i_switch ? open : na)
Devolver valores
Valor de variável de entrada
parâmetro
defval(const bool) Determina o valor padrão da variável de entrada sugerida na página de etiquetas de configuração de barra / barra de entrada do script, a partir da qual o usuário pode alterá-la.title(const string) O título da entrada. Se não for especificado, use o nome da variável como título da entrada. Se o título for especificado, mas o título for vazio, o nome será uma string de caracteres em branco.tooltip(const string) Esta sequência de caracteres será exibida ao usuário quando o mouse estiver suspenso no ícone de sugestão da ferramenta.inline(const string) Combina todas as chamadas de entrada que usam o mesmo parâmetro em uma linha. Não mostra as strings usadas como parâmetros. É usado apenas para identificar as entradas que pertencem à mesma linha.group(const string) Cria um cabeçalho acima de todas as entradas usando a mesma string de parâmetros numéricos. Esta string também é usada como texto do cabeçalho.confirm(const bool) Se for true, o usuário será solicitado a confirmar o valor de entrada antes de adicionar o indicador ao gráfico. O valor padrão é false.
Nota:
O resultado da função input.bool deve sempre ser atribuído a uma variável, como no exemplo acima.
Veja também
input.int input.float input.string input.timeframe input.source input.color input
input.int
Adicione o input à página de etiquetas de entrada das configurações do script, que permite que você forneça opções de configuração ao usuário do script. Esta função adiciona o campo de entrada de números inteiros à entrada do script.
input.int(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.int(defval, title, options, tooltip, inline, group, confirm)
Exemplo
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))
Devolver valores
Valor de variável de entrada
parâmetro
defval(const int) Determina o valor padrão da variável de entrada recomendada na página de etiquetas de configuração de barra / barra de entrada do script, a partir da qual o usuário do script pode alterá-la. Quando a lista de valores é igual aoptionsQuando os parâmetros são usados juntos, o valor deve ser um deles.title(const string) O título da entrada. Se não for especificado, use o nome da variável como título da entrada. Se o título for especificado, mas o título for vazio, o nome será uma string de caracteres em branco.minval(const int) O valor mínimo possível para a variável de entrada。 opcional。maxval(const int) O valor máximo possível da variável de entrada。 opcional。step(const int) O valor de comprimento de passo usado para aumentar/reduzir a entrada. Opcional. O valor padrão é 1options(tuple of const int values: [val1, val2, ...]) A lista de opções selecionadas no menu de download, separadas por vírgula e fechadas em parênteses quadrados:[val1, val2, ...] <unk> não pode ser usado quando este parâmetro é usadominval、maxvalestepParâmetrostooltip(const string) Esta sequência de caracteres será exibida ao usuário quando o mouse estiver suspenso no ícone de sugestão da ferramenta.inline(const string) Combina todas as chamadas de entrada que usam o mesmo parâmetro em uma linha. Não mostra as strings usadas como parâmetros. É usado apenas para identificar as entradas que pertencem à mesma linha.group(const string) Cria um cabeçalho acima de todas as entradas usando a mesma string de parâmetros numéricos. Esta string também é usada como texto do cabeçalho.confirm(const bool) Se for true, o usuário será solicitado a confirmar o valor de entrada antes de adicionar o indicador ao gráfico. O valor padrão é false.
Nota:
O resultado da função input.int deve sempre ser atribuído a uma variável, como no exemplo acima.
Veja também
input.bool input.float input.string input.timeframe input.source input.color input
input.float
Adicione o input à página de etiquetas de entrada das configurações do script, que permite que você forneça opções de configuração aos usuários do script. Esta função adiciona o campo de entrada de ponto flutuante à entrada do script.
input.float(defval, title, minval, maxval, step, tooltip, inline, group, confirm)
input.float(defval, title, options, tooltip, inline, group, confirm)
Exemplo
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)
Devolver valores
Valor de variável de entrada
parâmetro
defval(const int/float) Determina o valor padrão da variável de entrada recomendada na página de etiquetas de configuração de barra / barra de entrada do script, a partir da qual o usuário do script pode alterá-la. Quando a lista de valores é igual aoptionsQuando os parâmetros são usados juntos, o valor deve ser um deles.title(const string) O título da entrada. Se não for especificado, use o nome da variável como título da entrada. Se o título for especificado, mas o título for vazio, o nome será uma string de caracteres em branco.minval(const int/float) O valor mínimo possível da variável de entrada。 opcional。maxval(const int/float) O valor máximo possível da variável de entrada。 opcional。step(const int/float) O valor de extensão de passo usado para aumentar/reduzir a entrada. Opcional. O valor padrão é 1options(tuple of const int/float values: [val1, val2, ...]) A lista de opções selecionadas no menu de download, separadas por vírgula e fechadas em parênteses quadrados:[val1, val2, ...] <unk> não pode ser usado quando este parâmetro é usadominval、maxvalestepParâmetrostooltip(const string) Esta sequência de caracteres será exibida ao usuário quando o mouse estiver suspenso no ícone de sugestão da ferramenta.inline(const string) Combina todas as chamadas de entrada que usam o mesmo parâmetro em uma linha. Não mostra as strings usadas como parâmetros. É usado apenas para identificar as entradas que pertencem à mesma linha.group(const string) Cria um cabeçalho acima de todas as entradas usando a mesma string de parâmetros numéricos. Esta string também é usada como texto do cabeçalho.confirm(const bool) Se for true, o usuário será solicitado a confirmar o valor de entrada antes de adicionar o indicador ao gráfico. O valor padrão é false.
Nota:
O resultado da função input.float sempre deve ser atribuído a uma variável, como no exemplo acima.
Veja também
input.bool input.int input.string input.timeframe input.source input.color input
input.color
Adicione o input à página de etiquetas de entrada do script, que permite que você forneça opções de configuração para o usuário do script. Esta função adiciona um selector de cores, permitindo que o usuário escolha a cor e a transparência a partir de um painel de cores ou de dezesseis dígitos.
input.color(defval, title, tooltip, inline, group, confirm)
Exemplo
pine
i_col = input.color(color.red, "Plot Color")
plot(close, color=i_col)
Devolver valores
Valor de variável de entrada
parâmetro
defval(const color) Determina o valor padrão da variável de entrada sugerida na página de etiquetas de configuração de barra / barra de entrada do script, a partir da qual o usuário pode alterá-la.title(const string) O título da entrada. Se não for especificado, use o nome da variável como título da entrada. Se o título for especificado, mas o título for vazio, o nome será uma string de caracteres em branco.tooltip(const string) Esta sequência de caracteres será exibida ao usuário quando o mouse estiver suspenso no ícone de sugestão da ferramenta.inline(const string) Combina todas as chamadas de entrada que usam o mesmo parâmetro em uma linha. Não mostra as strings usadas como parâmetros. É usado apenas para identificar as entradas que pertencem à mesma linha.group(const string) Cria um cabeçalho acima de todas as entradas usando a mesma string de parâmetros numéricos. Esta string também é usada como texto do cabeçalho.confirm(const bool) Se for true, o usuário será solicitado a confirmar o valor de entrada antes de adicionar o indicador ao gráfico. O valor padrão é false.
Nota:
O resultado da função input.color deve sempre ser atribuído a uma variável, como no exemplo acima.
Veja também
input.bool input.int input.float input.string input.timeframe input.source input
input.price
Adicione a entrada de preço à página de etiquetas de configuração de barra/entrada de barra do script.confirm = trueAtivar o modo de entrada interativa e selecionar o preço clicando no gráfico.
input.price(defval, title, tooltip, inline, group, confirm)
Exemplo
pine
price1 = input.price(title="Date", defval=42)
plot(price1)
price2 = input.price(54, title="Date")
plot(price2)
Devolver valores
Valor de variável de entrada
parâmetro
defval(const int/float) Determina o valor padrão da variável de entrada recomendada na página de etiquetas de configuração de barra / barra de entrada do script, a partir da qual o usuário pode alterá-la.title(const string) O título da entrada. Se não for especificado, use o nome da variável como título da entrada. Se o título for especificado, mas o título for vazio, o nome será uma string de caracteres em branco.tooltip(const string) Esta sequência de caracteres será exibida ao usuário quando o mouse estiver suspenso no ícone de sugestão da ferramenta.inline(const string) Combina todas as chamadas de entrada que usam o mesmo parâmetro em uma linha. Não mostra as strings usadas como parâmetros. É usado apenas para identificar as entradas que pertencem à mesma linha.group(const string) Cria um cabeçalho acima de todas as entradas usando a mesma string de parâmetros numéricos. Esta string também é usada como texto do cabeçalho.confirm(const bool) Se for true, o modo de entrada interativa é ativado e a seleção é feita clicando no gráfico ao adicionar o indicador ao gráfico, ou selecionando o indicador e depois movendo a seleção. Opcional. O valor padrão é false.
Nota:
Quando se usa o modo interactivo, se duas funções são chamadasinlineOs parâmetros usam os mesmos parâmetros e podem ser usados em combinação com a entrada de tempo e a entrada de preço.
Veja também
input.bool input.int input.float input.string input.resolution input.source input.color input
input.timeframe
Adicione o input para a página de etiquetas de entrada do script, que permite que você forneça opções de configuração para o usuário do script. Esta função adiciona uma lista de downloads, permitindo que o usuário selecione um período de tempo específico através do selector de períodos de tempo e devolvê-lo como uma string. O selector inclui períodos de tempo que o usuário pode usar no gráfico e períodos de tempo personalizados adicionados no menu de downloads.
input.timeframe(defval, title, options, tooltip, inline, group, confirm)
Exemplo
pine
i_res = input.timeframe('D', "Resolution", options=['D', 'W', 'M'])
s = request.security(syminfo.tickerid, i_res, close)
plot(s)
Devolver valores
Valor de variável de entrada
parâmetro
defval(const string) Determina o valor padrão de uma variável de entrada sugerida na página de configuração de barra de script / barra de entrada, a partir da qual o usuário pode alterá-la. Quando a lista de valores éoptionsQuando os parâmetros são usados juntos, o valor deve ser um deles.title(const string) O título da entrada. Se não for especificado, use o nome da variável como título da entrada. Se o título for especificado, mas o título for vazio, o nome será uma string de caracteres em branco.options(tuple of const string values: [Val1, val2, ...]) Lista de opções disponíveis.tooltip(const string) Esta sequência de caracteres será exibida ao usuário quando o mouse estiver suspenso no ícone de sugestão da ferramenta.inline(const string) Combina todas as chamadas de entrada que usam o mesmo parâmetro em uma linha. Não mostra as strings usadas como parâmetros. É usado apenas para identificar as entradas que pertencem à mesma linha.group(const string) Cria um cabeçalho acima de todas as entradas usando a mesma string de parâmetros numéricos. Esta string também é usada como texto do cabeçalho.confirm(const bool) Se for true, o usuário será solicitado a confirmar o valor de entrada antes de adicionar o indicador ao gráfico. O valor padrão é false.
Nota:
O resultado da função input.timeframe sempre deve ser atribuído a uma variável, como no exemplo acima.
Veja também
input.bool input.int input.float input.string input.source input.color input
input.integer
Não há.
input.resolution
Não há.
ta
ta.alma
A média móvel de Arnaud Legoux. Ela usa a distribuição de Gauss como o peso da média móvel.
ta.alma(series, length, offset, sigma)
ta.alma(series, length, offset, sigma, floor)
Exemplo
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))
Devolver valores
Arnaud Legoux média móvel
parâmetro
series(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).offset(simple int/float) Balanceamento entre controle de suavidade ((mais perto de 1) e responsividade ((mais perto de 0)).sigma(simple int/float) Altera a suavidade do ALMA. Quanto maior o sigma, mais suave o ALMA.floor(simple bool) Parâmetros opcionais. Antes de calcular o ALMA, especifique se o cálculo do desvio é o limite inferior. O valor padrão é false.
Veja também
ta.sma ta.ema ta.rma ta.wma ta.vwma ta.swma
ta.sma
A função sma retorna a média móvel, ou seja, o último valor de y de x, dividido por y。
ta.sma(source, length)
Exemplo
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))
Devolver valores
lengthA linha K retornasourceA média móvel simples.
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
Veja também
ta.ema ta.rma ta.wma ta.vwma ta.swma ta.alma
ta.cog
A cog é um indicador baseado na estatística e na proporção de ouro de Fibonacci.
ta.cog(source, length)
Exemplo
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))
Devolver valores
O foco.
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
Veja também
ta.stoch
ta.dev
Diferenças entre as séries de medida e as suas ta.sma
ta.dev(source, length)
Exemplo
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))
Devolver valores
lengthA linha K retornasourceDesvios.
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
Veja também
ta.variance ta.stdev
ta.stdev
ta.stdev(source, length, biased)
Exemplo
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))
Devolver valores
Diferença de padrão
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).biased(series bool) Determine qual estimativa deve ser usada.
Nota:
SebiasedSe for true, a função será calculada usando uma estimativa parcial do conjunto, e se for false - uma estimativa não parcial da amostra.
Veja também
ta.dev ta.variance
ta.ema
A função ema retorna uma média móvel ponderada por índice. Em ema, o fator de ponderação é decrescente por índice. Ela é calculada usando a seguinte fórmula: EMA = alpha * source + (1 - alpha) * EMA[1], onde alpha = 2 / (length + 1) ◦
ta.ema(source, length)
Exemplo
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))
Devolver valores
sourceA média móvel exponencial, alfa = 2 / (longitude + 1) ◦
parâmetro
source(series int/float) Valor da série a ser executado。length(simple int) K número de linhas (longitude).
Nota:
Por favor, note que o uso desta variável/função pode resultar em um redesenho do indicador.
Veja também
ta.sma ta.rma ta.wma ta.vwma ta.swma ta.alma
ta.wma
Retorna a função wmalengthA linha K.sourceNa wma, o fator de ponderação é decrescente em grau aritmético.
ta.wma(source, length)
Exemplo
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))
Devolver valores
lengthA linha K retornasourceA média móvel ponderada.
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
Veja também
ta.sma ta.ema ta.rma ta.vwma ta.swma ta.alma
ta.swma
Média móvel simetricamente ponderada de comprimento fixo: 4. Peso:[1/6,2 / 6,2 / 6,1 / 6]。
ta.swma(source)
Exemplo
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))
Devolver valores
As médias móveis ponderadas simétricas.
parâmetro
source(series int/float) Série de origem。
Veja também
ta.sma ta.ema ta.rma ta.wma ta.vwma ta.alma
ta.hma
A função hma retorna a média móvel do casco HMA。
ta.hma(source, length)
Exemplo
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)
Devolver valores
Hull Moving Average que retorna a coluna 'length' da coluna 'source'
parâmetro
source(series int/float) Valor da série a ser executado。length(simple int) Número de linhas K
Veja também
ta.ema ta.rma ta.wma ta.vwma ta.sma
ta.rma
A média móvel usada no RSI. É a média móvel ponderada por índice, com o valor ponderado alfa = 1 / comprimento.
ta.rma(source, length)
Exemplo
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))
Devolver valores
sourceA média móvel exponencial, alfa = 1/length。
parâmetro
source(series int/float) Valor da série a ser executado。length(simple int) K número de linhas (longitude).
Veja também
ta.sma ta.ema ta.wma ta.vwma ta.swma ta.alma ta.rsi
ta.rsi
O índice de intensidade relativa.lengthK on-linesourceAs mudanças para cima e para baixota.rma()Calculado.
ta.rsi(source, length)
Exemplo
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))
Devolver valores
Indicador de fraqueza relativa (RSI)
parâmetro
source(series int/float) Valor da série a ser executado。length(simple int) K número de linhas (longitude).
Veja também
ta.rma
ta.tsi
O índice de força e fraqueza reais. É uma média móvel da dinâmica potencial dos instrumentos financeiros.
ta.tsi(source, short_length, long_length)
Devolver valores
Índice de Forças e Fraquezas Reais.[Valor em -1,1]
parâmetro
source(series int/float) Série de origem。short_length(simple int) Duração curta。long_length(simple int) comprimento da linha longa。
ta.roc
A função roc{\displaystyle roc{\mathrm {c}}} é mostrada.sourceO valor atual desourceHá alguns dias atrás.lengthDiferença entre os valores.
Calculado pela seguinte fórmula: 100 * change ((src, length) / src[length]。
ta.roc(source, length)
Devolver valores
lengthA linha K retornasourceA taxa de variação
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
ta.range
Retorna a diferença entre o valor mínimo e o valor máximo da sequência.
ta.range(source, length)
Devolver valores
Diferença entre o valor mínimo e o valor máximo da sequência.
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
ta.macd
O MACD (Moving Average Asymmetric Index) deve revelar a força, a direção, a dinâmica e a duração das tendências dos preços das ações.
ta.macd(source, fastlen, slowlen, siglen)
Exemplo
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)
Se você só precisa de um valor, use um símbolo de posicionamento como '_':
Exemplo
pine
[_, signalLine, _] = ta.macd(close, 12, 26, 9)
plot(signalLine, color=color.orange)
Devolver valores
Os três módulos da série MACD: linha MACD, linha de sinal e linha de gráfico rectangular.
parâmetro
source(series int/float) Valor da série a ser executado。fastlen(simple int) Parâmetros de linha rápidaslowlen(simple int) Parâmetro de comprimento lento。siglen(simple int) Parâmetro de comprimento do sinal ≠
ta.mode
Retorna o valor mínimo se houver vários valores com a mesma frequência.
ta.mode(source, length)
Devolver valores
Padrões de sequência.
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
ta.median
Retorna o número médio da sequência.
ta.median(source, length)
Devolver valores
Número médio da sequência.
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
ta.linreg
A curva de regressão linear. Uma linha que corresponde melhor ao preço especificado no intervalo de tempo definido pelo usuário. É calculada usando o método de menor quadruplicidade. O resultado da função é calculado usando a seguinte fórmula: linreg = intercept + slope * (length - 1 - offset), onde intercept e slope são usados.sourceO valor de cálculo da menor bimetallicidade da série.
ta.linreg(source, length, offset)
Devolver valores
Curva de regressão linear
parâmetro
source(series int/float) Série de origem。length(series int)offset(simple int) desvio
ta.bb
A Brincadeira Brincadeira é uma ferramenta de análise técnica, definida por um conjunto de linhas que são duas desvios padrão (positivos e negativos) da média móvel simples (SMA) do preço de uma ação, mas que podem ser ajustadas de acordo com as preferências do usuário.
ta.bb(series, length, mult)
Exemplo
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)
Devolver valores
Brincadeira
parâmetro
series(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).mult(simple int/float) Fator de diferença padrão ≠
Veja também
ta.sma ta.stdev ta.kc
ta.bbw
A largura da faixa de rolamento. A largura da faixa de rolamento é a distância entre a linha central do trem superior e inferior.
ta.bbw(series, length, mult)
Exemplo
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))
Devolver valores
Bandwidth de Brin.
parâmetro
series(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).mult(simple int/float) Fator de diferença padrão ≠
Veja também
ta.bb ta.sma ta.stdev
ta.cci
O CCI é calculado dividindo a diferença entre o preço típico de uma mercadoria e a sua média móvel simples pelo desvio absoluto médio do preço típico. O índice é escalado em inverso de 0,015 para fornecer mais números legíveis.
ta.cci(source, length)
Devolver valores
Índice de canais de mercadorias da fonte que a linha de length K retorna.
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
ta.change
Diferença entre o valor atual e o valor anterior, source - source[length]。
ta.change(source, length)
ta.change(source)
Devolver valores
Resultado da redução.
parâmetro
source(series int/float) Série de origem。length(series int) Desviação da linha k atual para a linha k anterior. Opcional, se não for dada, use length = 1 ◦
ta.mom
sourcePreços esourcePreçolengthA tensão antes da linha K. Isso é apenas uma diferença: source - source[length]。
ta.mom(source, length)
Devolver valores
sourcePreços esourcePreçolengthMotor antes da linha K.
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) desviação da linha k atual para a linha k anterior ≠
Veja também
ta.change
ta.cmo
Calcule a soma dos pontos de alta mais recentes com a soma dos pontos de queda mais recentes, depois subtraia os dois e divida o resultado pela soma de todas as variações de preços no mesmo período
ta.cmo(series, length)
Exemplo
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))
Devolver valores
Indicador de oscilação da dinâmica de Chand
parâmetro
series(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
Veja também
ta.rsi ta.stoch math.sum
ta.percentile_linear_interpolation
A percentagem é calculada usando o método de inserção linear entre as duas classificações mais recentes.
ta.percentile_linear_interpolation(source, length, percentage)
Devolver valores
lengthA linha K retornasourceO primeiro percentual P da série.
parâmetro
source(series int/float) Valor de série a ser executado ((fonte) <unk>)length(series int) número de linhas K passadas (longitude)percentage(simple int/float) Percentagem, um número na faixa de 0 a 100
Nota:
Observe que as percentagens calculadas com este método não são todas do conjunto de dados de entrada.
Veja também
ta.percentile_nearest_rank
ta.percentile_nearest_rank
Porcentagem calculada de acordo com o método de classificação mais recente.
ta.percentile_nearest_rank(source, length, percentage)
Devolver valores
lengthA linha K retornasourceO primeiro percentual P da série.
parâmetro
source(series int/float) Valor de série a ser executado ((fonte) <unk>)length(series int) número de linhas K passadas (longitude)percentage(simple int/float) Percentagem, um número na faixa de 0 a 100
Nota:
O uso de classificações mais recentes com menos do que os últimos 100 k de comprimento de linha pode levar a que o mesmo número seja usado em vários percentuais.
A percentagem calculada pelo ranking mais recente é parte de um conjunto de dados de entrada.
O 100o ponto percentual é definido como o valor máximo no conjunto de dados de entrada.
Veja também
ta.percentile_linear_interpolation
ta.percentrank
O grau percentual é a porcentagem do valor anterior menor ou igual ao valor atual da série dada.
ta.percentrank(source, length)
Devolver valores
lengthA linha K retornasourcePorcentagem
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
ta.variance
O diferencial é um valor esperado (ta.sma) de uma série de desvios quadrados de seu valor médio, que mede informalmente a distância de um conjunto de números de seu valor médio.
ta.variance(source, length, biased)
Devolver valores
lengthA linha K retornasourceA diferença entre os dois.
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).biased(series bool) Determine qual estimativa deve ser usada.
Nota:
SebiasedSe for true, a função será calculada usando uma estimativa parcial do conjunto, e se for false - uma estimativa não parcial da amostra.
ta.tr
ta.tr(handle_na)
Devolver valores
O real é math.max (high - low, math.abs (high - close)[1]), math.abs(low - close[1]))。
parâmetro
handle_na(simple bool) como lidar com o valor NaN. Se for true, e o fechamento do dia anterior for NaN, tr será calculado como o ponto alto-baixo do dia. Se for false, tr retornará NaN. Observe também que ta.atr usa ta.true.
Nota:
ta.tr(false)eta.trA mesma coisa.
Veja também
ta.atr
ta.mfi
O índice de fluxo de caixa é um indicador técnico que usa o preço e o volume de transações para determinar o estado de sobrecompra ou sobrevenda em um ativo.
ta.mfi(series, length)
Exemplo
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))
Devolver valores
Indicadores de fluxo de capital
parâmetro
series(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
ta.kc
O canal de Kentner. O canal de Kentner é um indicador técnico que contém uma média móvel no meio e um canal para cima e para baixo.
ta.kc(series, length, mult)
ta.kc(series, length, mult, useTrueRange)
Exemplo
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)
Devolver valores
Passagem de Kentner
parâmetro
series(series int/float) Valor da série a ser executado。length(simple int) K número de linhas (longitude).mult(simple int/float) Fator de diferença padrão ≠useTrueRange(simple bool) opcional. Especifique se o alcance é verdadeiro; é assumido como verdadeiro. Se o valor for falso, o alcance será calculado usando a expressão ((high-low)).
Veja também
ta.ema ta.atr ta.bb
ta.kcw
A largura do canal de Kentner. A largura do canal de Kentner é a diferença entre o canal superior e inferior dividido pelo valor do canal intermediário.
ta.kcw(series, length, mult)
ta.kcw(series, length, mult, useTrueRange)
Exemplo
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))
Devolver valores
A largura do canal de Kentner.
parâmetro
series(series int/float) Valor da série a ser executado。length(simple int) K número de linhas (longitude).mult(simple int/float) Fator de diferença padrão ≠useTrueRange(simple bool) opcional. Especifique se o alcance é verdadeiro; é assumido como verdadeiro. Se o valor for falso, o alcance será calculado usando a expressão ((high-low)).
Veja também
ta.kc ta.ema ta.atr ta.bb
ta.correlation
Coeficiente de correlação. Descreve o grau em que duas séries tendem a se desviar de seus valores de ta.sma.
ta.correlation(source1, source2, length)
Devolver valores
Coeficiente relevante.
parâmetro
source1(series int/float) Série de origem。source2(series int/float) Série alvo。length(series int) comprimento (número de linhas K)
Veja também
request.security
ta.cross
ta.cross(source1, source2)
Devolver valores
Se as duas séries se cruzam entre si, então é true, caso contrário é false.
parâmetro
source1(series int/float) Primeira série de dados。source2(series int/float) Segunda série de dados。
Veja também
ta.change
ta.crossover
source1-series é definido como uma travessiasource2-series, se estiver na linha K atual,source1é maior do quesource2E na primeira linha K,source2O valor de source1小于source2`Valor de
ta.crossover(source1, source2)
Devolver valores
Sesource1Atravessandosource2A resposta é "true" ou "false".
parâmetro
source1(series int/float) Primeira série de dados。source2(series int/float) Segunda série de dados。
ta.crossunder
source1-series é definido como em source2-series subcross, se na linha K atual,source1é menor quesource2E na primeira linha K,source1é maior do quesource2Valor de
ta.crossunder(source1, source2)
Devolver valores
Sesource1existirsource2Cruzado abaixo, é verdadeiro, caso contrário é falso.
parâmetro
source1(series int/float) Primeira série de dados。source2(series int/float) Segunda série de dados。
ta.atr
A função ATR (Média da amplitude de flutuação real) retorna um RMA de uma amplitude real. A amplitude de flutuação real é max (high - low, abs (high - close)[1]), abs(low - close[1]))。
ta.atr(length)
Exemplo
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))
Devolver valores
Média da amplitude real de flutuação (ATR)
parâmetro
length (simple int) comprimento (número de linhas K)
ta.sar
A paralelotização (ou paralelotização) é um método concebido por J. Welles Wilder, Jr. para identificar uma potencial reversão na direção dos preços no mercado de negociação.
ta.sar(start, inc, max)
Exemplo
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)
Devolver valores
A linha de paralelo gira para o indicador.
parâmetro
start(simple int/float) começa 。inc(simple int/float) adiçãomax(simple int/float) máximo.
ta.barssince
Calcule o número de linhas K a partir da última condição verdadeira.
ta.barssince(condition)
Exemplo
pine
// get number of bars since last color.green bar
plot(ta.barssince(close >= open))
Devolver valores
Número de linhas k, se a condição for verdadeira.
Nota:
A função retorna na。 se esta condição nunca foi satisfeita antes da linha K atual.
Por favor, note que o uso desta variável/função pode resultar em um redesenho do indicador.
Veja também
ta.lowestbars ta.highestbars ta.valuewhen ta.highest ta.lowest
ta.cum
sourceA soma de todos os números é a soma de todos os números.sourceA soma de todos os elementos de .
ta.cum(source)
Devolver valores
Resumo da série.
parâmetro
source(series int/float)
Veja também
math.sum
ta.dmi
A função dmi retorna o índice dinâmico DMI。
ta.dmi(diLength, adxSmoothing)
Exemplo
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")
Devolver valores
Três subgrupos da série DMI: movimento de direção positiva ((+DI), movimento de direção negativa ((-DI) e índice de movimento de direção média ((ADX)) [2].
parâmetro
diLength(simple int) DI Period。adxSmoothing(simple int) ADX ciclo de suavização
Veja também
ta.rsi ta.tsi ta.mfi
ta.falling
Teste.sourceSérie paralengthA linha Klong está a cair?
ta.falling(source, length)
Devolver valores
Se você estiver atualmente...sourceMenos delengthQualquer antecedente de uma linha K.sourceValor, então é verdadeiro, ou então é falso.
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
Veja também
ta.rising
ta.rising
Teste.sourceSérie paralengthO Klinelong está em ascensão.
ta.rising(source, length)
Devolver valores
Se você estiver atualmente...sourceÉ mais do que isso.lengthQualquer antecedente de uma linha K.sourceValor, então é verdadeiro, ou então é falso.
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
Veja também
ta.falling
ta.pivothigh
Esta função retorna o preço do ponto mais alto do eixo central. Se não houver um ponto mais alto do eixo central, retorna <unk>NaN<unk>.
ta.pivothigh(source, leftbars, rightbars)
ta.pivothigh(leftbars, rightbars)
Exemplo
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)
Devolver valores
O preço neste ponto, ou NaN.
parâmetro
source(series int/float) Parâmetros selecionáveis. Valor de cálculo da sequência de dados. Valor predefinido 'High'leftbars(series int/float) Força à esquerda。rightbars(series int/float) O comprimento à direita.
Nota:
Se o parâmetro 'leftbars' ou 'rightbars' for um parâmetro de série, você deve usar a função max_bars_back como a variável 'source' [2].
ta.pivotlow
Esta função retorna o preço do ponto mais baixo do eixo central. Se não houver um ponto mais baixo do eixo central, ela retorna <unk>NaN<unk>.
ta.pivotlow(source, leftbars, rightbars)
ta.pivotlow(leftbars, rightbars)
Exemplo
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)
Devolver valores
O preço neste ponto, ou NaN.
parâmetro
source(series int/float) Parâmetros selecionáveis. Valor de cálculo da série de dados.leftbars(series int/float) Força à esquerda。rightbars(series int/float) O comprimento à direita.
Nota:
Se o parâmetro 'leftbars' ou 'rightbars' for um parâmetro de série, você deve usar a função max_bars_back como a variável 'source' [2].
ta.highest
O valor máximo de um dado número de linhas k passadas.
ta.highest(source, length)
ta.highest(length)
Devolver valores
O valor mais alto da série.
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
Nota:
Duas versões do args:sourceÉ uma série de livros.lengthé o número de linhas K retornadas.
Uma versão arg:lengthé o número de linhas K que é retornado. O algoritmo usa high comosourceSérie
Veja também
ta.lowest ta.lowestbars ta.highestbars ta.valuewhen ta.barssince
ta.highestbars
O desvio máximo de um número dado de passagens k.
ta.highestbars(source, length)
ta.highestbars(length)
Devolver valores
Desviação para a linha k mais alta.
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
Nota:
Duas versões do args:sourceÉ uma série de livros.lengthé o número de linhas K retornadas.
Uma versão arg:lengthé o número de linhas K que é retornado. O algoritmo usa high comosourceSérie
Veja também
ta.lowest ta.highest ta.lowestbars ta.barssince ta.valuewhen
ta.stoch
Indicador aleatório. Equação de cálculo: 100 * (close - lowest, low, length)) / (highest, high, length) - lowest, long))
ta.stoch(source, high, low, length)
Devolver valores
De forma aleatória.
parâmetro
source(series int/float) Série de origem。high(series int/float) Série altalow(series int/float) série inferiorlength(series int) comprimento (número de linhas K)
Veja também
ta.cog
ta.supertrend
O indicador de tendência é um indicador que segue uma tendência.
ta.supertrend(factor, atrPeriod)
Exemplo
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)
Devolver valores
Dois subgrupos de uma série de super-tendências: a linha de super-tendência e a direção da tendência. Os valores possíveis são 1 (na direção para baixo) e -1 (na direção para cima).
parâmetro
factor(series int/float) ATR será multiplicado por um múltiplo de。atrPeriod(simple int) comprimento de onda real médio
Veja também
ta.macd
ta.lowest
O valor mínimo de um dado número de linhas k passadas.
ta.lowest(source, length)
ta.lowest(length)
Devolver valores
O mínimo da série.
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
Nota:
Duas versões do args:sourceÉ uma série de livros.lengthé o número de linhas K retornadas.
Uma versão arg:lengthé o número de linhas K. O algoritmo usa low comosourceSérie
Veja também
ta.highest ta.lowestbars ta.highestbars ta.valuewhen ta.barssince
ta.lowestbars
O desvio mínimo de um dado número de passagens k.
ta.lowestbars(source, length)
ta.lowestbars(length)
Devolver valores
Desvio para a linha k mais baixa.
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) Retorna o número de linha K。
Nota:
Duas versões do args:sourceÉ uma série de livros.lengthé o número de linhas K retornadas.
Uma versão arg:lengthé o número de linhas K. O algoritmo usa low comosourceSérie
Veja também
ta.lowest ta.highest ta.highestbars ta.barssince ta.valuewhen
ta.valuewhen
Retorna o valor da série de valores de fonte de potássio da linha K em que a potássio condição é verdadeira na n-a ocorrência mais recente.
ta.valuewhen(condition, source, occurrence)
Exemplo
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) Condições para pesquisar.source(series int/float/bool/color) O valor a ser retornado a partir da linha K que satisfaz as condições.occurrenceA ocorrência da condição (simple int) ≠ 0 e retrocedendo no tempo, portanto <unk>0<unk> é a mais recente <unk>condition<unk>, <unk>1<unk> é a segunda mais recente, e assim por diante ≠ deve ser inteiro >= 0 ≠
Nota:
Esta função precisa ser executada em cada linha K. Não é recomendado usá-la em uma estrutura de ciclo for ou while, pois seu comportamento pode ser inesperado. Por favor, note que o uso desta função pode levar ao redesenho do indicador.
Veja também
ta.lowestbars ta.highestbars ta.barssince ta.highest ta.lowest
ta.vwap
Preço médio ponderado por volume de transação
ta.vwap(source)
Devolver valores
Média ponderada de transações
parâmetro
source(series int/float) Série de origem。
Veja também
ta.vwap
ta.vwma
Retorna a função vwmalengthA linha K.sourceA média móvel ponderada do volume de transações ≠ é igual a: sma (fonte * volume, comprimento) / sma (volume, comprimento) ≠
ta.vwma(source, length)
Exemplo
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))
Devolver valores
lengthA linha K retornasourceA média móvel ponderada do volume de transações.
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
Veja também
ta.sma ta.ema ta.rma ta.wma ta.swma ta.alma
ta.wpr
O indicador Williams %R. O indicador de oscilação mostra a relação entre o preço de fechamento atual e o preço alto/baixo de um período de tempo no passado.
ta.wpr(length)
Exemplo
pine
plot(ta.wpr(14), title="%R", color=color.new(#ff6d00, 0))
Devolver valores
Williams %R。
parâmetro
length(series int) Número de linhas K。
plot
plot
Desenhar um conjunto de dados em um gráfico.
plot(series, title, color, linewidth, style, trackprice, histbase, offset, join, editable, show_last, display)
Exemplo
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))
Devolver valores
Objetos de desenho que podem ser usados para preencher.
parâmetro
series(series int/float) A série de dados a ser traçada. Os parâmetros necessários.title(const string) Título do desenho。color(series color) A cor do desenho. Você pode usar constantes como 'color = red' ou 'color = #ff001a' e expressões complexas como 'color = close >= open ? green: red'. Parâmetros opcionais.linewidth(input int) A largura da linha de desenho. O valor padrão é 1 . Não se aplica a todos os estilos .style(plot_style) plot tipo 。 os valores possíveis são: plot.style_line、plot.style_stepline、plot.style_stepline_diamond、plot.style_histogram、plot.style_cross、plot.style_area、plot.style_columns、plot.style_circles、plot.style_linebr、plot.style_areabr。 o valor padrão é plot.style_line。trackprice(input bool) Se for true, a linha de preço horizontal será exibida no nível do último valor do indicador.histbase(input int/float) Usar o valor do nível de referência quando o gráfico é traçado no estilo plot.style_histogram, plot.style_columns ou plot.style_area. O valor padrão é 0.0offset(series int) Mover o desenho para a esquerda ou para a direita num determinado número de linhas k. O valor padrão é 0join(input bool) Se for true, o ponto de traçado será conectado à linha, apenas para os estilos plot.style_cross e plot.style_circles. O valor padrão é false.editable(const bool) Se for true, o estilo do desenho pode ser editado na caixa de diálogo de formato. O padrão é true.show_last(input int) Se definido, define o número de k linhas traçadas no gráfico ((de volta para o passado a partir da última k linhas) <unk>displayO controle (plot_display) mostra a localização do gráfico. Os valores possíveis são: display.none, display.all. O valor padrão é display.all.overlay(const bool) Um parâmetro da extensão da plataforma FMZ para definir a função atual, que é exibida no gráfico principal (set true) ou no gráfico secundário (set false) com o valor por defeito de false. Se não for especificado, o parâmetro é exibido de acordo comstrategyouindicatorEmoverlayConfiguração de parâmetrosstrategyouindicatorSem configuraçãooverlayOs parâmetros são tratados de acordo com os parâmetros padrão.
Veja também
plotshape plotchar bgcolor
plotshape
Desenhar uma forma visível no gráfico.
plotshape(series, title, style, location, color, offset, text, textcolor, editable, size, show_last, display)
Exemplo
pine
data = close >= open
plotshape(data, style=shape.xcross)
parâmetro
series(series bool) Uma série de dados traçados como uma forma. A série é considerada uma série de valores de bool para todos os valores de localização, exceto location.absolute.title(const string) Título do desenho。style(input string) Tipos de desenho. Os valores possíveis são: shape.xcross, shape.cross, shape.triangleup, shape.triangledown, shape.flag, shape.circle, shape.arrowup, shape.arrowdown, shape.labelup, shape.labeldown, shape.square, shape.diamond. O valor padrão é shape.xcross.location(input string) A forma é a localização no gráfico. Os valores possíveis são: localização.abovebar, localização.belowbar, localização.top, localização.bottom, localização.absolute. O valor padrão é localização.abovebarcolor(series color) A cor da forma . Você pode usar constantes como 'color = red' ou 'color = #ff001a' e expressões complexas como 'color = close >= open ? green: red'. Parâmetros opcionais .offset(series int) Mover a forma para a esquerda ou para a direita em um determinado número de linhas k. O valor padrão é 0text(const string) texto é mostrado em forma. Você pode usar várias linhas de texto, separando as linhas com '\n' sequência de tradução. Exemplo: 'line one\nline two'textcolor(series color) A cor do texto. Você pode usar constantes como 'textcolor=red' ou 'textcolor=#ff001a' e expressões complexas como 'textcolor = close >= open ? green: red'. Parâmetros opcionais.editable(const bool) Se for true, o estilo de plotshape pode ser editado na caixa de diálogo de formato. O padrão é true.show_last(input int) Se definido, define o número de formas traçadas no gráfico ((de volta para o passado a partir da última linha k))size(const string) O tamanho dos caracteres no gráfico. Os valores possíveis são: size.auto, size.tiny, size.small, size.normal, size.large, size.huge. O valor padrão é size.autodisplayO controle (plot_display) mostra a localização do gráfico. Os valores possíveis são: display.none, display.all. O valor padrão é display.all.overlay(const bool) Um parâmetro da extensão da plataforma FMZ para definir a função atual, que é exibida no gráfico principal (set true) ou no gráfico secundário (set false) com o valor por defeito de false. Se não for especificado, o parâmetro é exibido de acordo comstrategyouindicatorEmoverlayConfiguração de parâmetrosstrategyouindicatorSem configuraçãooverlayOs parâmetros são tratados de acordo com os parâmetros padrão.
Veja também
plot plotchar bgcolor
plotchar
Desenhe uma forma visível usando qualquer um dos caracteres Unicode fornecidos no gráfico.
plotchar(series, title, char, location, color, offset, text, textcolor, editable, size, show_last, display)
Exemplo
pine
data = close >= open
plotchar(data, char='❄')
parâmetro
series(series bool) Uma série de dados traçados como uma forma. A série é considerada uma série de valores de bool para todos os valores de localização, exceto location.absolute.title(const string) Título do desenho。char(input string) Caracteres usados como formas visuaislocation(input string) A forma é a localização no gráfico. Os valores possíveis são: localização.abovebar, localização.belowbar, localização.top, localização.bottom, localização.absolute. O valor padrão é localização.abovebarcolor(series color) A cor da forma . Você pode usar constantes como 'color = red' ou 'color = #ff001a' e expressões complexas como 'color = close >= open ? green: red'. Parâmetros opcionais .offset(series int) Mover a forma para a esquerda ou para a direita em um determinado número de linhas k. O valor padrão é 0text(const string) texto é mostrado em forma. Você pode usar várias linhas de texto, separando as linhas com '\n' sequência de tradução. Exemplo: 'line one\nline two'textcolor(series color) A cor do texto. Você pode usar constantes como 'textcolor=red' ou 'textcolor=#ff001a' e expressões complexas como 'textcolor = close >= open ? green: red'. Parâmetros opcionais.editable(const bool) Se for true, o estilo de plotchar pode ser editado na caixa de diálogo de formato. O padrão é true.show_last(input int) Se definido, define o número de gráficos a serem traçados na tabela ((de volta para o passado a partir da última linha k))size(const string) O tamanho dos caracteres no gráfico. Os valores possíveis são: size.auto,size.tiny,size.small,size.normal,size.large,size.huge. O valor padrão é size.auto.displayO controle (plot_display) mostra a localização do gráfico. Os valores possíveis são: display.none, display.all. O valor padrão é display.all.overlay(const bool) Um parâmetro da extensão da plataforma FMZ para definir a função atual, que é exibida no gráfico principal (set true) ou no gráfico secundário (set false) com o valor por defeito de false. Se não for especificado, o parâmetro é exibido de acordo comstrategyouindicatorEmoverlayConfiguração de parâmetrosstrategyouindicatorSem configuraçãooverlayOs parâmetros são tratados de acordo com os parâmetros padrão.
Veja também
plot plotshape bgcolor
plotcandle
Desenhe o eixo no gráfico.
plotcandle(open, high, low, close, title, color, wickcolor, editable, show_last, bordercolor, display)
Exemplo
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) A série de dados aberta é usada como o valor de abertura da coluna.high(series int/float) Data de série alta usada como coluna.low(series int/float) Os dados da série baixa são usados como valores baixos para a coluna. Parâmetros necessários.close(series int/float) fechar a série de dados como o valor da linha de fechamento k。 Parâmetros necessários。title(const string) título da plotcandle. Parâmetros selecionáveis.color(series color) A cor da matriz. Você pode usar constantes como 'color = red' ou 'color = #ff001a' e expressões complexas como 'color = close >= open ? green: red'. Parâmetros opcionais.wickcolor(series color) A cor do núcleo da lâmpada.editable(const bool) Se for true, o estilo de plotcandle pode ser editado na caixa de diálogo de formato. O padrão é true.show_last(input int) Se definido, define o número de colunas traçadas no gráfico ((de volta para o passado a partir da última linha k))bordercolor(series color) A cor da borda de uma coluna. Um parâmetro opcional.displayO controle (plot_display) mostra a localização do gráfico. Os valores possíveis são: display.none, display.all. O valor padrão é display.all.overlay(const bool) Um parâmetro da extensão da plataforma FMZ para definir a função atual, que é exibida no gráfico principal (set true) ou no gráfico secundário (set false) com o valor por defeito de false. Se não for especificado, o parâmetro é exibido de acordo comstrategyouindicatorEmoverlayConfiguração de parâmetrosstrategyouindicatorSem configuraçãooverlayOs parâmetros são tratados de acordo com os parâmetros padrão.
Nota:
Se o NaN for o máximo e o mínimo, então a linha K não precisa ser mostrada.
Os valores máximos de abertura, alta, baixa e fechamento serão definidos como um valor elevado ou baixo e os valores mínimos como um valor baixo ou baixo.
Veja também
plotbar
plotarrow
Desenhar as setas para cima e para baixo no gráfico: as setas para cima são desenhadas em cada indicador positivo, enquanto as setas para baixo são desenhadas em cada indicador negativo. Se o indicador retorna na, as setas não são desenhadas. As setas têm diferentes alturas, e quanto maior o valor absoluto do indicador, mais longa é a setas.
plotarrow(series, title, colorup, colordown, offset, minheight, maxheight, editable, show_last, display)
Exemplo
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 traçar uma série de dados em uma seta.title(const string) Título do desenho。colorup(series color) Cores das setas para cima.colordown(series color) A cor da seta para baixo.offset(series int) Movendo a seta para a esquerda ou para a direita em um determinado número de linhas K. O valor padrão é 0minheight(input int) A menor altura possível da seta em pixels. O valor padrão é 5maxheight(input int) A maior altura possível da seta em pixels. O valor padrão é 100editable(const bool) Se for true, o estilo de plotarrow pode ser editado na caixa de diálogo de formato. O padrão é true.show_last(input int) Se definido, define o número de setas desenhadas no gráfico ((de volta para o passado a partir da última linha k))displayO controle (plot_display) mostra a localização do gráfico. Os valores possíveis são: display.none, display.all. O valor padrão é display.all.overlay(const bool) Um parâmetro da extensão da plataforma FMZ para definir a função atual, que é exibida no gráfico principal (set true) ou no gráfico secundário (set false) com o valor por defeito de false. Se não for especificado, o parâmetro é exibido de acordo comstrategyouindicatorEmoverlayConfiguração de parâmetrosstrategyouindicatorSem configuraçãooverlayOs parâmetros são tratados de acordo com os parâmetros padrão.
Veja também
plot plotshape plotchar barcolor bgcolor
array
array.pop
A função elimina o último elemento da matriz e retorna seu valor.
array.pop(id)
Exemplo
pine
// array.pop example
a = array.new_float(5,high)
removedEl = array.pop(a)
plot(array.size(a))
plot(removedEl)
Devolver valores
Valor do elemento removido.
parâmetro
id(any array type) Objeto da matriz.
Veja também
array.new_float array.set array.push array.remove array.insert array.shift
array.shift
A função elimina o primeiro elemento da matriz e retorna o seu valor.
array.shift(id)
Exemplo
pine
// array.shift example
a = array.new_float(5,high)
removedEl = array.shift(a)
plot(array.size(a))
plot(removedEl)
Devolver valores
Valor do elemento removido.
parâmetro
id(any array type) Objeto da matriz.
Veja também
array.unshift array.set array.push array.remove array.includes
array.unshift
Esta função inserirá o valor na posição inicial da matriz.
array.unshift(id, value)
Exemplo
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) Objeto da matriz.value(series <type of the array's elements>) Para adicionar o valor da posição inicial da matriz.
Veja também
array.shift array.set array.insert array.remove array.indexof
array.size
A função retorna o número de elementos na matriz.
array.size(id)
Exemplo
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))
Devolver valores
Número de elementos na matriz.
parâmetro
id(any array type) Objeto da matriz.
Veja também
array.new_float array.sum array.slice array.sort
array.slice
Esta função cria um fragmento a partir de uma matriz existente. Se um objeto no fragmento for alterado, a alteração será aplicada simultaneamente à nova e à matriz original.
array.slice(id, index_from, index_to)
Exemplo
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)
Devolver valores
Uma cópia superficial da fragmentação da matriz.
parâmetro
id(any array type) Objeto da matriz.index_from(series int) Indice a partir de zero para começar a extrair.index_to(series int) O índice que começa a partir de zero é extraído antes de ser concluído. A função extrai os elementos anteriores a esse índice.
Veja também
array.new_float array.get array.sort
array.abs
Retorna uma matriz que contém os valores absolutos de cada elemento da matriz original.
array.abs(id)
parâmetro
id(int[]/float[Objetos da matriz.
Veja também
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.binary_search
A função retorna o índice do valor, e retorna -1, se este não for encontrado. A matriz a ser pesquisada deve ser ordenada em ordem ascendente.
array.binary_search(id, val)
Exemplo
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[Objetos da matriz.val(series int/float) Valor de pesquisa em uma matriz ≠
Nota:
A pesquisa binária aplica-se a uma matriz preordenada em ordem ascendente. Ela primeiro compara o elemento no meio da matriz com o valor alvo. Se o elemento for compatível com o valor alvo, ele retorna ao seu lugar na matriz. Se o valor do elemento for maior que o valor alvo, a pesquisa continua na parte inferior da matriz. Se o valor do elemento for menor que o valor alvo, a pesquisa continua na parte superior da matriz.
Veja também
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.binary_search_leftmost
Se um valor for encontrado, a função retornará o índice desse valor. Se um valor não for encontrado, a função retornará o índice do próximo menor elemento, se ele estiver na matriz, à esquerda da posição do valor. A matriz a ser pesquisada deve ser ordenada em ordem ascendente.
array.binary_search_leftmost(id, val)
Exemplo
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[Objetos da matriz.val(series int/float) Valor de pesquisa em uma matriz ≠
Nota:
A pesquisa binária aplica-se a uma matriz preordenada em ordem ascendente. Ela primeiro compara o elemento no meio da matriz com o valor alvo. Se o elemento for compatível com o valor alvo, ele retorna ao seu lugar na matriz. Se o valor do elemento for maior que o valor alvo, a pesquisa continua na parte inferior da matriz. Se o valor do elemento for menor que o valor alvo, a pesquisa continua na parte superior da matriz.
Veja também
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.binary_search_rightmost
Se o valor for encontrado, a função retornará o índice do valor. Quando o valor não for encontrado, a função retornará o índice do elemento à direita do lugar onde o valor está na matriz. A matriz deve ser ordenada em ordem ascendente.
array.binary_search_rightmost(id, val)
Exemplo
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[Objetos da matriz.val(series int/float) Valor de pesquisa em uma matriz ≠
Nota:
A pesquisa binária funciona em ordem ascendente em uma matriz ordenada. Primeiro, ela compara os elementos no meio da matriz com o valor alvo. Se os elementos correspondem ao valor alvo, eles retornam à sua posição na matriz. Se o valor do elemento é maior que o valor alvo, a pesquisa continua na parte inferior da matriz. Se o valor do elemento é menor que o valor alvo, a pesquisa continua na parte superior da matriz.
Veja também
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.sort
Esta função ordena os elementos da matriz.
array.sort(id, order)
Exemplo
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[Objetos da matriz.order(sort_order) Ordem de ordenação: order.ascending (default) ou order.descending。
Veja também
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.sort_indices
Retorna uma matriz de indexação que, quando usada para indexar a matriz original, acessa seus elementos na ordem em que foram ordenados. Não modifica a matriz original.
array.sort_indices(id, order)
Exemplo
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[Objetos da matriz.order(sort_order) Ordem de ordenação: order.ascending ou order.descending. opcional. O valor padrão é order.ascending.
Veja também
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.clear
A função elimina todos os elementos da matriz.
array.clear(id)
Exemplo
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) Objeto da matriz.
Veja também
array.new_float array.insert array.push array.remove array.pop
array.concat
Esta função é usada para combinar dois arrays. Ela empurra todos os elementos do segundo array para o primeiro array e retorna ao primeiro array.
array.concat(id1, id2)
Exemplo
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))
Devolver valores
A primeira matriz contém elementos combinados da segunda matriz.
parâmetro
id1(any array type) O primeiro objeto de uma matriz。id2(any array type) O segundo objeto da matriz ≠
Veja também
array.new_float array.insert array.slice
array.copy
Esta função cria uma cópia de uma matriz existente.
array.copy(id)
Exemplo
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)
Devolver valores
Cópia da matriz.
parâmetro
id(any array type) Objeto da matriz.
Veja também
array.new_float array.get array.slice array.sort
array.stdev
A função retorna a diferença padrão dos elementos da matriz.
array.stdev(id, biased)
Exemplo
pine
// array.stdev example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.stdev(a))
Devolver valores
Os elementos da matriz são padronizados de forma diferente.
parâmetro
id(int[]/float[Objetos da matriz.biased(series bool) Determine qual estimativa deve ser usada.
Nota:
SebiasedSe for true, a função será calculada usando uma estimativa parcial do conjunto, e se for false - uma estimativa não parcial da amostra.
Veja também
array.new_float array.max array.min array.avg
array.standardize
Esta função retorna um array de elementos padronizados.
array.standardize(id)
Exemplo
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))
Devolver valores
Arrays de elementos padronizados.
parâmetro
id(int[]/float[Objetos da matriz.
Veja também
array.max array.min array.mode array.avg array.variance array.stdev
array.variance
A função retorna a diferença entre os elementos da matriz.
array.variance(id, biased)
Exemplo
pine
// array.variance example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.variance(a))
Devolver valores
Diferença quadrada dos elementos da matriz.
parâmetro
id(int[]/float[Objetos da matriz.biased(series bool) Determine qual estimativa deve ser usada.
Nota:
SebiasedSe for true, a função será calculada usando uma estimativa parcial do conjunto, e se for false - uma estimativa não parcial da amostra.
Veja também
array.new_float array.stdev array.min array.avg array.covariance
array.covariance
Esta função retorna a coeficiente diferencial de duas matrizes.
array.covariance(id1, id2, biased)
Exemplo
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))
Devolver valores
A diferença de coeficientes entre as duas matrizes.
parâmetro
id1(int[]/float[Objetos da matriz.id2(int[]/float[Objetos da matriz.biased(series bool) Determine qual estimativa deve ser usada.
Nota:
SebiasedSe for true, a função será calculada usando uma estimativa parcial do conjunto, e se for false - uma estimativa não parcial da amostra.
Veja também
array.new_float array.max array.stdev array.avg array.variance
array.fill
Esta função define os elementos da matriz como valores individuais. Se o índice não for especificado, define todos os elementos. Se for fornecido apenas o índice inicial (default é 0), define os elementos que começam com esse índice. Se dois parâmetros de indexação forem usados simultaneamente, define os elementos que são indexados desde o início, mas não incluem o índice final (default é na).
array.fill(id, value, index_from, index_to)
Exemplo
pine
// array.fill example
a = array.new_float(10)
array.fill(a, close)
plot(array.sum(a))
parâmetro
id(any array type) Objeto da matriz.value(series <type of the array's elements>) para preencher a matriz.index_from(series int) Índice inicial, 0。 por padrãoindex_to(series int) Fim de índice, o padrão é na。 Deve ser maior que o índice do último elemento a ser definido。
Veja também
array.new_float array.set array.slice
array.includes
Se o valor for encontrado na matriz, a função retornará true, caso contrário retornará false.
array.includes(id, value)
Exemplo
pine
// array.includes example
a = array.new_float(5,high)
p = close
if array.includes(a, high)
p := open
plot(p)
Devolver valores
Se o valor for encontrado na matriz, então é true, caso contrário, é false.
parâmetro
id(any array type) Objeto da matriz.value(series <type of the array's elements>Os valores a serem pesquisados no array são:
Veja também
array.new_float array.indexof array.shift array.remove array.insert
array.insert
A função altera o conteúdo da matriz adicionando novos elementos no lugar apropriado.
array.insert(id, index, value)
Exemplo
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) Objeto da matriz.index(series int) Índice de inserção de valores.value(series <type of the array's elements>O valor a ser adicionado à matriz.
Veja também
array.new_float array.set array.push array.remove array.pop array.unshift
array.join
A função cria e retorna novas strings, separadas por uma separadora de caracteres especificada, conectando todos os elementos da matriz.
array.join(id, separator)
Exemplo
pine
// array.join example
a = array.new_float(5, 5)
runtime.log(array.join(a, ","))
parâmetro
id(int[]/float[]/string[Objetos da matriz.separator(series string) Uma sequência de caracteres usada para separar cada elemento de uma matriz.
Veja também
array.new_float array.set array.insert array.remove array.pop array.unshift
array.lastindexof
Esta função retorna o índice da última vez que o valor apareceu. Se não encontrar esse valor, retorna -1.
array.lastindexof(id, value)
Exemplo
pine
// array.lastindexof example
a = array.new_float(5,high)
index = array.lastindexof(a, high)
plot(index)
Devolver valores
Índice dos elementos
parâmetro
id(any array type) Objeto da matriz.value(series <type of the array's elements>Os valores a serem pesquisados no array são:
Veja também
array.new_float array.set array.push array.remove array.insert
array.max
A função retorna o valor máximo, ou o n° máximo, de uma dada matriz.
array.max(id, nth)
Exemplo
pine
// array.max
a = array.from(5, -2, 0, 9, 1)
secondHighest = array.max(a, 2) // 1
plot(secondHighest)
Devolver valores
O maior valor da matriz ou o n° maior valor.
parâmetro
id(int[]/float[Objetos da matriz.nth(series int) retorna o n-ésimo maior valor, sendo 0 o maior. Opcional. 0 é o padrão.
Veja também
array.new_float array.min array.sum
array.min
A função retorna o valor mínimo, ou o n° mínimo, de uma sequência dada.
array.min(id, nth)
Exemplo
pine
// array.min
a = array.from(5, -2, 0, 9, 1)
secondLowest = array.min(a, 1) // 0
plot(secondLowest)
Devolver valores
O menor valor da matriz, ou o n° menor valor.
parâmetro
id(int[]/float[Objetos da matriz.nth(series int) O n-ésimo mínimo a ser retornado, sendo 0 o mínimo. Opcional. 0 é o padrão.
Veja também
array.new_float array.max array.sum
array.median
Esta função retorna o número médio dos elementos da matriz.
array.median(id)
Exemplo
pine
// array.median example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.median(a))
Devolver valores
Número médio dos elementos da matriz.
parâmetro
id(int[]/float[Objetos da matriz.
Veja também
array.avg array.variance array.min
array.mode
Esta função retorna o padrão dos elementos da matriz. Se houver vários valores com a mesma frequência, retorna o valor mínimo.
array.mode(id)
Exemplo
pine
// array.mode example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.mode(a))
Devolver valores
Padrão dos elementos da matriz.
parâmetro
id(int[]/float[Objetos da matriz.
Veja também
array.new_float array.avg array.variance array.min
array.percentile_linear_interpolation
Retorna a porcentagem especificada do valor do array (o dígito percentual) menor ou igual ao seu valor, usando um intervalo linear.
array.percentile_linear_interpolation(id, percentage)
parâmetro
id(int[]/float[Objetos da matriz.percentage(series int/float) Deve ser igual ou menor que a porcentagem do valor que será retornado.
Nota:
Em estatística, a porcentagem é a porcentagem de itens da classificação que aparecem em uma determinada pontuação ou abaixo de uma determinada pontuação. Esta medida mostra a porcentagem de percentual na distribuição de frequência padrão em níveis percentuais inferiores ao que você mede. O intervalo linear estima o valor entre as duas classificações.
Veja também
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.percentile_nearest_rank
Retorna o valor de uma matriz de percentagem especificada (o dígito percentual) menor ou igual a seu valor usando o método de classificação mais recente.
array.percentile_nearest_rank(id, percentage)
parâmetro
id(int[]/float[Objetos da matriz.percentage(series int/float) Deve ser igual ou menor que a porcentagem do valor que será retornado.
Nota:
Na estatística, a porcentagem é a porcentagem de itens de classificação que aparecem em uma determinada pontuação ou abaixo de uma determinada pontuação. Esta medida mostra a porcentagem de centenas de pontos abaixo da distribuição de frequência padrão da classificação percentual que você está medindo.
Veja também
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.percentrank
Retorna a classificação percentual do valor médio da matriz.
array.percentrank(id, index)
parâmetro
id(int[]/float[Objetos da matriz.index(series int) Calcula o valor de sua classificação percentual.
Nota:
A classificação percentual é a porcentagem de quantos elementos na matriz são menores ou iguais ao valor de referência.
Veja também
array.new_float array.insert array.slice array.reverse order.ascending order.descending
array.range
Esta função retorna a diferença entre o valor mínimo e o valor máximo de uma dada matriz.
array.range(id)
Exemplo
pine
// array.range example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.range(a))
Devolver valores
Diferença entre o valor mínimo e o valor máximo da matriz.
parâmetro
id(int[]/float[Objetos da matriz.
Veja também
array.new_float array.min array.max array.sum
array.remove
A função altera o conteúdo da matriz, removendo elementos com o índice especificado.
array.remove(id, index)
Exemplo
pine
// array.remove example
a = array.new_float(5,high)
removedEl = array.remove(a, 0)
plot(array.size(a))
plot(removedEl)
Devolver valores
Valor do elemento removido.
parâmetro
id(any array type) Objeto da matriz.index(series int) Índice do elemento a ser removido.
Veja também
array.new_float array.set array.push array.insert array.pop array.shift
array.reverse
Esta função inverte a matriz. O primeiro elemento da matriz torna-se o último, e o último elemento da matriz torna-se o primeiro.
array.reverse(id)
Exemplo
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) Objeto da matriz.
Veja também
array.new_float array.sort array.push array.set array.avg
array.from
Esta função usa um número variável de parâmetros de um dos seguintes tipos: int, float, bool, string, line, color, linefill, e retorna um array do tipo correspondente.
array.from(arg0, arg1, ...)
Exemplo
pine
// array.from_example
arr = array.from("Hello", "World!") // arr (string[]) will contain 2 elements: {Hello}, {World!}.
plot(close)
Devolver valores
Valor de um elemento da matriz.
parâmetro
arg0, arg1, ...(series int/float/bool/color/string/line/linefill) Parâmetros de série。
array.new
A função cria um novo<type>Objeto de uma matriz de elementos.
array.new(size, initial_value)
Exemplo
pine
// array.new<string> example
a = array.new<string>(1, "Hello, World!")
runtime.log(array.get(a, 0))
Exemplo
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))
Exemplo
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")
Exemplo
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)
Devolver valores
IDs de objetos de arrays que podem ser usados com outras arrays.*Função ().
parâmetro
sizeO tamanho inicial da sequência (series int) é opcional. O valor padrão é 0initial_value(series <type>) é o valor inicial de todos os elementos da sequência。 opcional。 o valor padrão é <unk>na<unk>。
Nota:
O índice da matriz começa em 0 ≠ ∞.
Se você quiser inicializar uma matriz e especificar todos os seus elementos ao mesmo tempo, use a função array.from。
Veja também
array.from array.push array.get array.size array.remove array.shift array.sum
array.new_bool
Esta função cria um novo objeto de array composto por elementos do tipo bool。
array.new_bool(size, initial_value)
Exemplo
pine
// array.new_bool example
length = 5
a = array.new_bool(length, close > open)
plot(array.get(a, 0) ? close : open)
Devolver valores
IDs de objetos de arrays que podem ser usados com outras arrays.*Função ().
parâmetro
sizeO tamanho inicial da sequência (series int) é opcional. O valor padrão é 0initial_value(series bool) O valor inicial de todos os elementos da sequência. opcional. O valor padrão é <unk>na<unk>.
Nota:
O índice da matriz começa em 0 ≠ ∞.
Veja também
array.new_float array.get array.slice array.sort
array.new_float
Esta função cria um novo objeto de matriz de elementos de tipo ponto flutuante.
array.new_float(size, initial_value)
Exemplo
pine
// array.new_float example
length = 5
a = array.new_float(length, close)
plot(array.sum(a) / length)
Devolver valores
IDs de objetos de arrays que podem ser usados com outras arrays.*Função ().
parâmetro
sizeO tamanho inicial da sequência (series int) é opcional. O valor padrão é 0initial_value(series int/float) Valor inicial de todos os elementos da sequência。 opcional。 o valor padrão é <unk>na<unk>。
Nota:
O índice da matriz começa em 0 ≠ ∞.
Veja também
array.new_bool array.get array.slice array.sort
array.new_int
Esta função cria um novo objeto de array composto por elementos do tipo int。
array.new_int(size, initial_value)
Exemplo
pine
// array.new_int example
length = 5
a = array.new_int(length, int(close))
plot(array.sum(a) / length)
Devolver valores
IDs de objetos de arrays que podem ser usados com outras arrays.*Função ().
parâmetro
sizeO tamanho inicial da sequência (series int) é opcional. O valor padrão é 0initial_value(series int) Valor inicial de todos os elementos da série. opcional. O valor padrão é <unk>na<unk>.
Nota:
O índice da matriz começa em 0 ≠ ∞.
Veja também
array.new_float array.get array.slice array.sort
array.new_string
Esta função cria um novo objeto de array de um elemento de tipo string。
array.new_string(size, initial_value)
Exemplo
pine
// array.new_string example
length = 5
a = array.new_string(length, "text")
runtime.log(array.get(a, 0))
Devolver valores
IDs de objetos de arrays que podem ser usados com outras arrays.*Função ().
parâmetro
sizeO tamanho inicial da sequência (series int) é opcional. O valor padrão é 0initial_value(series string) O valor inicial de todos os elementos da seqüência。 é opcional。 o valor padrão é <unk>na<unk>。
Nota:
O índice da matriz começa em 0 ≠ ∞.
Veja também
array.new_float array.get array.slice
array.get
Esta função retorna o valor do elemento no índice especificado.
array.get(id, index)
Exemplo
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))
Devolver valores
Valor de um elemento da matriz.
parâmetro
id(any array type) Objeto da matriz.index(series int) O índice de um elemento para retornar o seu valor.
Veja também
array.new_float array.set array.slice array.sort
array.push
Esta função adiciona um valor à matriz <unk>.
array.push(id, value)
Exemplo
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) Objeto da matriz.value(series <type of the array's elements>) Adicione o valor do elemento no final da matriz.
Veja também
array.new_float array.set array.insert array.remove array.pop array.unshift
array.set
Esta função define o valor do elemento como o índice especificado.
array.set(id, index, value)
Exemplo
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) Objeto da matriz.index(series int) Modificar o índice do elemento.value(series <type of the array's elements>O novo valor a ser definido.
Veja também
array.new_float array.get array.slice
array.sum
A função retorna a soma dos elementos da matriz.
array.sum(id)
Exemplo
pine
// array.sum example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.sum(a))
Devolver valores
A soma dos elementos da matriz.
parâmetro
id(int[]/float[Objetos da matriz.
Veja também
array.new_float array.max array.min
array.avg
A função retorna a média dos elementos da matriz.
array.avg(id)
Exemplo
pine
// array.avg example
a = array.new_float(0)
for i = 0 to 9
array.push(a, close[i])
plot(array.avg(a))
Devolver valores
A média dos elementos da matriz.
parâmetro
id(int[]/float[Objetos da matriz.
Veja também
array.new_float array.max array.min array.stdev
array.indexof
Esta função retorna o índice de onde o valor apareceu pela primeira vez. Se este valor não for encontrado, retorna -1.
array.indexof(id, value)
Exemplo
pine
// array.indexof example
a = array.new_float(5,high)
index = array.indexof(a, high)
plot(index)
Devolver valores
Índice dos elementos
parâmetro
id(any array type) Objeto da matriz.value(series <type of the array's elements>Os valores a serem pesquisados no array são:
Veja também
array.lastindexof array.get array.lastindexof array.remove array.insert
strategy
existirstrategyEm funções embutidas relacionadas, o ponto de parada e o ponto de parada são definidos como o múltiplo de um salto de preço. Por exemplo:strategy.exitFunção deprofit、lossParâmetros em pontos para parar, parar, parâmetrosprofitConfiguração de 10 para um salto de preço multiplicado por 10 como um diferencial de parada de preço, um salto de preço como uma variável internasyminfo.mintick。
strategy
Esta função define várias propriedades de política:
Atenção, citações apenastitle,shorttitle,overlay,pyramiding,default_qty_type,default_qty_valueOs outros parâmetros podem ser configurados através dos parâmetros de interface da política da linguagem 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)
Exemplo
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) será o título do indicador que você verá no plugin indicador/estratégia.shorttitle(const string) O título curto do indicador que você verá no exemplo do gráfico. Os parâmetros são opcionais.overlay(const bool) Se for true, o indicador será adicionado como uma camada de sobreposição da série principal. Se for false - será adicionado em uma janela de gráfico separada. Falso por defeito.(const string) O tipo de valor possível para formatar o valor do indicador no eixo de preço é: format.inherit, format.price, format.volume. Default format.inherit。format(const int) o número de dígitos após o número de pontos flutuantes do valor indicador no eixo do preço. Deve ser um inteiro não negativo e não maior que 16. Se omitido, use o formato da série de pais. Se format for format.inherit e tiver este parâmetro definido, format será format.price.precision(scale_type) O indicador deve seguir a coordenada do preço. Os valores possíveis são: scale.right, scale.left, scale.none. O valor scale.none só pode ser usado em combinação com a configuração 'overlay=true' [2].scalepyramiding(const int) O máximo número de entradas permitidas na mesma direção. Se este valor for 0, apenas uma entrada será aberta na mesma direção e qualquer outra entrada será rejeitada. O valor padrão é 0。(const bool) Cálculo de ordens intrabar adicionais. Se o parâmetro for definido como true ou false, a estratégia recalculará (e não apenas quando a linha k for fechada) se a linha K estiver preenchida após a ordem. O valor padrão é false ou false.calc_on_order_fills(const bool) Calculação de estratégia de intrabar adicional. Se o parâmetro for true, a estratégia calcula cada segundo em tempo real, sem fechar a linha k. O parâmetro não afeta o cálculo da estratégia de dados históricos. O valor padrão é false.calc_on_every_tick(const int) O número máximo de algarismos que podem ser usados para a estratégia de referência histórica. Se o histórico de uma variável for citado no código do script, então é usado '[]' operador), então este parâmetro será aplicado a cada variável embutida ou variável de usuário no script. O tamanho do buffer variável em scripts Pine geralmente é detectado automaticamente. No entanto, em alguns casos, isso é impossível, e é por isso que o parâmetro permite ao usuário definir manualmente o limite inferior para esse valor.max_bars_back(const int) A hipótese de execução do limite de preço. O limite de preço só será negociado no intrabar quando o preço de mercado exceder o número de ticks especificado para o nível do limite de preço.backtest_fill_limits_assumptiondefault_qty_type(const string) definido paraqtyOs valores dos parâmetros são expressos na função estratégia. entrada ou estratégia. ordem. Os possíveis valores são: estratégia. fixado significa contrato / ações / número de horas, estratégia. dinheiro significa quantidade de dinheiro, ou estratégia. percentual_de_equidade representa a porcentagem de direitos e interesses disponíveis.default_qty_value(const int/float) Número de transações padrão de uma função strategy.entry ou strategy.order, cujas unidades são definidas por um parâmetro usado junto com o parâmetro 'default_qty_type' quando seu parâmetro 'qty' não é definido.(const string) A moeda de conta desta estratégia。 opcional。 o valor padrão é a moeda da mercadoria no gráfico。 valores possíveis: 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) O ponto de deslizamento com tick como unidade de oferta, será adicionado/subtraído do preço de transação do preço de compra/venda ou do preço de parada. Se mintick = 0.01 e o ponto de deslizamento = 5, o ponto de deslizamento total será de 5 * 0.01 = 0.05。slippage(const string) O tipo de comissão por ordem. Os valores permitidos são: strategy.commission.percent (percentagem da quantidade de dinheiro da ordem), strategy.commission.cash_per_contract (quantidade em moeda de conta por contrato), strategy.commission.cash_per_order (quantidade em moeda de conta por ordem).commission_type(const int/float) Valor da comissão do pedido. Dependendo do tipo escolhido (tipo de comissão), inclua porcentagem ou quantia.commission_value(const bool) quando configurado como um true colchão, gerará outras tentativas de executar ordens depois de selecionar o fechamento do gráfico e concluir o cálculo da estratégia. Se os pedidos forem pedidos de preço de mercado, o simulador de corretores os executará antes do início do próximo gráfico. Se os pedidos forem preços de limite, os pedidos serão executados somente quando as condições de preço forem atendidas.process_orders_on_close(const string) Determina a ordem em que as ordens são fechadas. Os valores permitidos são: 'FIFO' ou 'ANY'. FIFO (First-In, First-Out) significa que, quando várias transações são abertas, a primeira transação deve ser fechada.close_entries_rule(const int) Mostra o número de barras mais recentes. O valor padrão é 50, o valor máximo permitido é 500.max_lines_count(const int) Mostra o número de tags mais recentes. O valor padrão é 50, o valor máximo permitido é 500.max_labels_count(const int) O número de desenhos da última caixa exibida. O valor padrão é 50, o valor máximo permitido é 500.max_boxes_count(const int/float) Garantia de múltiplas posições é a porcentagem do preço de compra de um título que deve ser coberto por dinheiro ou garantia. Deve ser um número não negativo. Opcional. O valor padrão é 100.margin_long(const int/float) Garantia de cabeça vazia é a porcentagem do preço de compra do título em que a posição de cabeça vazia deve ser coberta com dinheiro ou garantia. Deve ser um número não negativo. Opcional. O valor padrão é 100margin_short(const bool) Especifica a ordem de representação dos indicadores, preenchimento e linha horizontal. Se for true, o gráfico será traçado de acordo com a ordem em que eles aparecem no código do indicador, e cada gráfico mais recente será traçado em cima do gráfico anterior.*() função, fill e hline. opcional. O valor padrão é false.explicit_plot_zorder(const int/float) A quantidade de fundos inicialmente disponível para a estratégia de negociação, representada pela moeda definida na barra de moeda. Opcional. O valor padrão é 1000000initial_capital(const int/float) Rendimento sem risco é a variação anual percentual do valor de um investimento com o menor risco ou zero, usada para calcular a proporção de Sharpe e Sortino. O valor padrão é 2risk_free_rate
Nota:
Cada script de estratégia deve ter uma chamada de estratégia.
O código PineScript com o parâmetro calc_on_every_tick = true permite diferentes cálculos para o registro histórico e para os dados em tempo real.
Quando você usa um tipo de gráfico não-padrão como base de sua estratégia, você precisa saber que os resultados podem ser diferentes. Os pedidos serão executados no preço do gráfico (por exemplo, para Heikin Ashi, o preço de Heikin Ashi será usado (a média) não é o preço de mercado real). Portanto, recomendamos fortemente que você use o tipo de gráfico padrão em sua estratégia.
Veja também
indicator
strategy.entry
Esta é uma ordem de entrada no mercado. Se uma ordem com o mesmo ID já estiver pendurada, a ordem pode ser modificada. Se não houver uma ordem com o ID especificado, uma nova ordem será emitida. Para desativar a instrução de entrada, use a ordem strategy.cancel ou strategy.cancel_all. Em comparação com a função strategy.order, a função strategy.entry é afetada pela pirâmide e pode inverter corretamente a posição do mercado.
strategy.entry(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)
Exemplo
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 necessários 。 Identificador de pedido 。 Pode cancelar ou modificar o pedido por referência ao seu identificador 。direction(strategy_direction) Um parâmetro necessário. Direção de posição do mercado: 'strategy.long' para o multi-cabeça, 'strategy.short' para o zero-cabeça.qty(series int/float) Parâmetros selecionáveis. Contratos/número de ações/horas/número de unidades negociadas. O valor predefinido é 'NaN'limit(series int/float) Parâmetros selecionáveis. Preço limite do pedido. Se especificado, o tipo de pedido é "limit" ou "stop-limit". Outros tipos de pedido são "NaN".stop(series int/float) Parâmetros opcionais ◦ Preço de stop-loss ◦ Tipo de ordem "stop" ou "stop-limit" se especificado ◦ Outros tipos de ordem "NaN" ◦(series string) Parâmetros opcionais ◦ O pedido pertence ao nome do grupo OCA ◦ Se o pedido não pertence a nenhum grupo OCA, deve haver um espaço ◦Nota: O FMZ não suporta este parâmetro.oca_name(input string) opcional. O tipo de grupo de ordens OCA. Os valores permitidos são: strategy.oca.none - o pedido não deve pertencer a nenhum grupo de OCA específico; strategy.oca.cancel - o pedido deve pertencer ao grupo de OCA, uma vez que o pedido é fechado, todos os outros pedidos do mesmo grupo serão cancelados; strategy.oca.reduce - o pedido deve pertencer ao grupo de OCA, se X número de contratos de pedidos foi colocado, o número de outros contratos de pedidos do mesmo grupo de OCA é reduzido por X.Nota: O FMZ não suporta este parâmetro.oca_typecomment(series string) Parâmetros selecionáveis。 Outras instruções da encomenda。when(series bool) um parâmetro selecionável. A condição da ordem. Se for "true", a ordem é colocada. Se for "false", nada acontece.alert_message(series string) Um parâmetro opcional quando o símbolo {{strategy.order.alert_message}} é usado no campo de mensagens de alerta da caixa de diálogo de criação de alerta.
strategy.close
Esta é uma ordem de saída com um ID designado. Se houver várias ordens de entrada com o mesmo ID, elas sairão ao mesmo tempo. Se não houver uma ordem de abertura com um ID designado ao acionar a ordem, a ordem não será executada.
strategy.close(id, when, comment, qty, qty_percent, alert_message)
Exemplo
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 necessários。 Identificador de ordem。 Pode ser fechado por referência a seu identificador。when(series bool) Parâmetros selecionáveis ◦ Condições do comando ◦qty(series int/float) Parâmetros selecionáveis. Contracto/número de ações/horário/unidade de saída. O valor padrão é 'NaN'.qty_percent(series int/float) define a percentagem de posição livre ((0-100) ≠ que tem uma prioridade inferior à prioridade do parâmetro 'qty' ≠ opcional ≠ o valor padrão é 100 ≠comment(series string) Parâmetros selecionáveis。 Outras instruções da encomenda。alert_message(series string) Um parâmetro opcional quando o símbolo {{strategy.order.alert_message}} é usado no campo de mensagens de alerta da caixa de diálogo de criação de alerta.
strategy.close_all
A saída da posição de mercado atual para a sua estabilização.
strategy.close_all(when, comment, alert_message)
Exemplo
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 selecionáveis ◦ Condições do comando ◦comment(series string) Parâmetros selecionáveis。 Outras instruções da encomenda。alert_message(series string) Um parâmetro opcional quando o símbolo {{strategy.order.alert_message}} é usado no campo de mensagens de alerta da caixa de diálogo de criação de alerta.
strategy.exit
Esta é uma ordem de saída de uma entrada ou de um status de mercado inteiro. Se uma ordem com o mesmo ID já estiver pendurada, a ordem pode ser modificada. Se uma ordem de entrada não for negociada, mas uma ordem de saída aparecer, a ordem de saída será suspensa até que uma ordem de saída possa ser colocada após a entrada. Para suspender uma ordem de saída, use o comando strategy.cancel ou strategy.cancel_all. Se a função strategy.exit for invocada uma vez, a saída será feita apenas uma 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)
Exemplo
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 necessários 。 Identificador de pedido 。 Pode cancelar ou modificar o pedido por referência ao seu identificador 。from_entry(series string) Parâmetros selecionáveis. Exit para especificar o identificador de instrução de entrada. Exit para todas as posições deve ser usado uma string em branco.qty(series int/float) Parâmetros selecionáveis. Contracto/número de ações/horário/unidade de saída. O valor padrão é 'NaN'.qty_percent(series int/float) define a percentagem de posição livre ((0-100) ≠ que tem uma prioridade inferior à prioridade do parâmetro 'qty' ≠ opcional ≠ o valor padrão é 100 ≠profit(series int/float) Parâmetros opcionais. Objetivo de lucro (indicado em pontos). Se especificado, sair da posição de mercado com uma ordem de limite quando atingir o lucro especificado (pontos).limit(series int/float) parâmetros selecionáveis. Objetivo de lucro (preço a ser especificado). Saída do mercado com o preço especificado (ou melhor) se especificado. Prioridade do parâmetro 'limit' acima da prioridade do parâmetro 'profit' (se o valor não for 'NaN', então 'limit' substituirá 'profit').loss(series int/float) parâmetros opcionais <unk> Stop loss ((expresso em pontos) <unk> Se especificado, quando atingido o valor de perda indicado ((pontos)), a posição de saída do mercado é retirada com um stop loss <unk> NaN<unk> <unk>stop(series int/float) parâmetros opcionais. Stop loss (preço a ser especificado). Se especificado, sairá da posição de mercado com o preço especificado (ou pior). O parâmetro 'stop loss' tem prioridade maior do que o parâmetro 'loss' (se o valor não for 'NaN', então 'stop loss' substituirá 'loss').trail_price(series int/float) Parâmetros opcionais ◦ nível de ativação do tracking stop loss (precisa especificar o preço) ◦ se especificado, o tracking stop loss será colocado quando o nível de preço especificado for atingido ◦ desvio especificado no parâmetro de coluna trail_offset para determinar o desvio do preço inicial do tracking stop loss ◦ medido em pontos: X pontos abaixo do nível de ativação para sair do multihead; X pontos acima do nível de ativação para sair do headless ◦ o valor padrão é ◦ NaN ◦trail_points(series int/float) Parâmetros opcionais: rastrear o nível de ativação do stop loss (indicado em pontos de lucro) se especificado, colocar um stop loss de rastreamento quando o nível de preço calculado (indicado em pontos de lucro) for atingido especificar o deslocamento do preço inicial do stop loss de rastreamento no parâmetro de coluna trail_offset (indicado em pontos de cálculo): X pontos abaixo do nível de ativação para sair de um multihead; X pontos acima do nível de ativação para sair de um zerohead o valor padrão é <unk>NaN<unk>trail_offset(series int/float) parâmetros opcionais. Tracking stop loss activation level ((expresso em pontos). O desvio em pontos é usado para determinar o preço inicial do tracking stop loss: X pontos abaixo do 'trail_price' ou 'trail_points' para sair do multi-cabeça; X pontos acima do 'trail_price' ou 'trail_points' para sair do cabeça vazia.(series string) Parâmetros selecionáveis. Nome do grupo OCA (oca_type = strategy.oca.reduce) Objetivo de ganho, stop loss / stop loss. Se o nome não for especificado, ele será gerado automaticamente.Nota: O FMZ não suporta este parâmetro.oca_namecomment(series string) Parâmetros selecionáveis。 Outras instruções da encomenda。when(series bool) um parâmetro selecionável. A condição da ordem. Se for "true", a ordem é colocada. Se for "false", nada acontece.alert_message(series string) Um parâmetro opcional quando o símbolo {{strategy.order.alert_message}} é usado no campo de mensagens de alerta da caixa de diálogo de criação de alerta.
strategy.cancel
Esta é uma ordem de cancelamento/desativação de todos os listados pré-encomendados com o nome de referência, gerada pelas funções: strategy.order, strategy.entry e strategy.exit。
strategy.cancel(id, when)
Exemplo
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âmetro obrigatório ◦ Identificação de pedido ◦ Localização do identificador para cancelar um pedido ◦when(series bool) opcional. Anula uma ordem de acordo com a ID. Se for "true", a ordem será cancelada. O valor padrão é "true".
strategy.cancel_all
Esta é uma função de cancelamento/desativação de todas as ordens de lista pré-estabelecidas, geradas pelas funções: strategy.order, strategy.entry e strategy.exit.
strategy.cancel_all(when)
Exemplo
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) opcional ≠ cancelar todas as condições das ordens ≠ cancelar todas as ordens ativas se a condição for verdadeira ≠ o valor padrão é <unk>true<unk>
strategy.order
Esta é a ordem da ordem seguinte. Se uma ordem com o mesmo ID já estiver pendurada, a ordem pode ser modificada. Se não houver uma ordem com o ID especificado, uma nova ordem será emitida. Para cancelar a ordem, deve-se usar a ordem strategy.cancel ou strategy.cancel_all. Em comparação com a função strategy.entry, a função strategy.order não é afetada pela forma de pirâmide. Se os parâmetros da barra de restrição e da barra de suspensão são ambos NaN<unk>, o tipo de ordem é uma ordem de mercado.
strategy.order(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)
Exemplo
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 necessários 。 Identificador de pedido 。 Pode cancelar ou modificar o pedido por referência ao seu identificador 。direction(strategy_direction) Um parâmetro necessário. Direção da ordem: 'strategy.long' para comprar, 'strategy.short' para vender qty(series int/float) Parâmetros selecionáveis. Contratos/número de ações/horas/número de unidades negociadas. O valor predefinido é 'NaN'limit(series int/float) Parâmetros selecionáveis. Preço limite do pedido. Se especificado, o tipo de pedido é "limit" ou "stop-limit". Outros tipos de pedido são "NaN".stop(series int/float) Parâmetros opcionais ◦ Preço de stop-loss ◦ Tipo de ordem "stop" ou "stop-limit" se especificado ◦ Outros tipos de ordem "NaN" ◦(series string) Parâmetros opcionais ◦ O pedido pertence ao nome do grupo OCA ◦ Se o pedido não pertence a nenhum grupo OCA, deve haver um espaço ◦Nota: O FMZ não suporta este parâmetro.oca_name(input string) opcional. O tipo de grupo de ordens OCA. Os valores permitidos são: strategy.oca.none - o pedido não deve pertencer a nenhum grupo de OCA específico; strategy.oca.cancel - o pedido deve pertencer ao grupo de OCA, uma vez que o pedido é fechado, todos os outros pedidos do mesmo grupo serão cancelados; strategy.oca.reduce - o pedido deve pertencer ao grupo de OCA, se X número de contratos de pedidos foi colocado, o número de outros contratos de pedidos do mesmo grupo de OCA é reduzido por X.Nota: O FMZ não suporta este parâmetro.oca_typecomment(series string) Parâmetros selecionáveis。 Outras instruções da encomenda。when(series bool) um parâmetro selecionável. A condição da ordem. Se for "true", a ordem é colocada. Se for "false", nada acontece.alert_message(series string) Um parâmetro opcional quando o símbolo {{strategy.order.alert_message}} é usado no campo de mensagens de alerta da caixa de diálogo de criação de alerta.
strategy.opentrades.entry_bar_index
Bar_index que retorna a entrada de uma posição não liquidada.
strategy.opentrades.entry_bar_index(trade_num)
Esperar 10 K e fechar a posição.
Exemplo
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 transação para transações sem equilíbrio. O número da primeira transação é zero.
Veja também
strategy.closedtrades.entry_bar_index strategy.closedtrades.exit_bar_index
strategy.opentrades.entry_id
ID de retorno de entrada em transações não liquidadas.
strategy.opentrades.entry_id(trade_num)
Exemplo
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))
Devolver valores
ID de retorno de entrada em transações não liquidadas.
parâmetro
trade_num(series int) Número de transação para transações sem equilíbrio. O número da primeira transação é zero.
Nota:
Se trade_num não estiver no intervalo, a função retorna na:0 para strategy.opentrades-1。
Veja também
strategy.opentrades.entry_bar_index strategy.opentrades.entry_time
strategy.opentrades.entry_price
Preço de entrada de retorno de uma transação não liquidada.
strategy.opentrades.entry_price(trade_num)
Exemplo
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")
Calcular o preço médio da posição não liquidada
Exemplo
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 transação para transações sem equilíbrio. O número da primeira transação é zero.
Veja também
strategy.closedtrades.exit_price
strategy.opentrades.entry_time
Regresso ao horário UNIX de entrada em negociação de posição não equilibrada.
strategy.opentrades.entry_time(trade_num)
Exemplo
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 transação para transações sem equilíbrio. O número da primeira transação é zero.
Veja também
strategy.closedtrades.entry_time strategy.closedtrades.exit_time
strategy.opentrades.profit
Perda de retorno de transações não liquidadas. A perda é representada como negativa.
strategy.opentrades.profit(trade_num)
Retorno do lucro da última posição aberta
Exemplo
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")
Calculando o lucro de todas as transações não liquidadas
Exemplo
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 transação para transações sem equilíbrio. O número da primeira transação é zero.
Veja também
strategy.closedtrades.profit strategy.openprofit strategy.netprofit strategy.grossprofit
strategy.opentrades.size
Retorna a direção de negociação e o número de contratos em negociação de posição não liquidada. Se o valor for > 0, a posição de mercado é a posição de mais de um. Se o valor for < 0, a posição de mercado é a posição de cabeça vazia.
strategy.opentrades.size(trade_num)
Exemplo
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")
Calculação da percentagem de lucro médio de transações não liquidadas
Exemplo
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 transação para transações sem equilíbrio. O número da primeira transação é zero.
Veja também
strategy.closedtrades.size strategy.position_size strategy.opentrades strategy.closedtrades
strategy.closedtrades.entry_bar_index
Retorna a entrada bar_index que foi liquidada.
strategy.closedtrades.entry_bar_index(trade_num)
Exemplo
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 transação que foi liquidado. O número da primeira transação é zero.
Veja também
strategy.closedtrades.exit_bar_index strategy.opentrades.entry_bar_index
strategy.closedtrades.exit_price
Retornar ao preço de saída de uma transação liquidada.
strategy.closedtrades.exit_price(trade_num)
Exemplo
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")
Calcular a percentagem de lucro médio de todas as transações liquidadas
Exemplo
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 transação que foi liquidado. O número da primeira transação é zero.
Veja também
strategy.closedtrades.entry_price
strategy.closedtrades.exit_bar_index
Retorna a bar_index que foi excluída da transação.
strategy.closedtrades.exit_bar_index(trade_num)
Exemplo
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")
Calcule o número médio de linhas K por transação.
Exemplo
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 transação que foi liquidado. O número da primeira transação é zero.
Veja também
bar_index
strategy.closedtrades.entry_id
A entrada de um retorno para uma transação em equilíbrio.
strategy.closedtrades.entry_id(trade_num)
Exemplo
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))
Devolver valores
A entrada de um retorno para uma transação em equilíbrio.
parâmetro
trade_num(series int) Número de transação que foi liquidado. O número da primeira transação é zero.
Nota:
Se trade_num não estiver no intervalo, a função retorna na:0 para strategy.closedtrades-1。
Veja também
strategy.closedtrades.entry_bar_index strategy.closedtrades.entry_time
strategy.closedtrades.entry_price
O preço de entrada de um retorno de uma transação equilibrada.
strategy.closedtrades.entry_price(trade_num)
Exemplo
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")
Calcular a percentagem de lucro médio de todas as transações liquidadas
Exemplo
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 transação que foi liquidado. O número da primeira transação é zero.
Veja também
strategy.closedtrades.exit_price strategy.closedtrades.size strategy.closedtrades
strategy.closedtrades.entry_time
Retornar ao horário de entrada do UNIX em que a transação foi liquidada.
strategy.closedtrades.entry_time(trade_num)
Exemplo
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 transação que foi liquidado. O número da primeira transação é zero.
Veja também
strategy.opentrades.entry_time strategy.closedtrades.exit_time time
strategy.closedtrades.profit
Perda de retorno de transações liquidadas. Perda expressa em negativo.
strategy.closedtrades.profit(trade_num)
Exemplo
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 transação que foi liquidado. O número da primeira transação é zero.
Veja também
strategy.opentrades.profit strategy.closedtrades.commission
strategy.closedtrades.size
Retorna a direção de negociação e o número de contratos em negociações em posição equilibrada. Se o valor for > 0, a posição de mercado é a posição de mercado. Se o valor for < 0, a posição de mercado é a posição de mercado.
strategy.closedtrades.size(trade_num)
Exemplo
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")
Calculação da percentagem de lucro médio de uma transação em posição de equilíbrio
Exemplo
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 transação que foi liquidado. O número da primeira transação é zero.
Veja também
strategy.opentrades.size strategy.position_size strategy.closedtrades strategy.opentrades
strategy.closedtrades.exit_time
Retornar a hora do UNIX de saída de uma transação equilibrada.
strategy.closedtrades.exit_time(trade_num)
Exemplo
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")
X segundos para reabrir transações em equilibrado
Exemplo
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 transação que foi liquidado. O número da primeira transação é zero.
Veja também
strategy.closedtrades.entry_time
strategy.risk.allow_entry_in
Esta função pode ser usada para especificar em que direção do mercado a estratégia. entrada é permitida.
strategy.risk.allow_entry_in(value)
Exemplo
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) Direção permitida. Valores possíveis:strategy.direction.all、strategy.direction.long、strategy.direction.short
strategy.risk.max_position_size
O objetivo desta regra é determinar o valor máximo de uma posição de mercado. A regra afeta as seguintes funções:strategy.entryO número de entradas de caixa pode ser reduzido (se necessário) para o número de contratos / ações / mãos / unidades, de modo que o valor total da posição não exceda o valor indicado em 'strategy.risk.max_position_size'. Se a quantidade mínima ainda violar a regra, a ordem não será colocada.
strategy.risk.max_position_size(contracts)
Exemplo
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 necessários. Número máximo de contratos/ações/manos/unidades da posição.
math
math.abs
Se...number >= 0,numberO valor absoluto é numberCaso contrário,number。
math.abs(number)
Devolver valores
numberValor absoluto de ≠
math.acos
A função acos retorna a inversão de um número ((expresso em arco), como cos ((acos ((y)) = y dentro de y.[-1, 1]。
math.acos(angle)
Devolver valores
Reversão de resonancia. Se y for fora do alcance[-1,1], o ângulo de retorno está em[0,Pi] ou na.
math.random
Retorna um valor pseudo-aleatório. Esta função irá gerar uma sequência de valores diferente para cada script executado. Usar o mesmo valor para o parâmetro seed selecionado irá gerar uma sequência repetível.
math.random(min, max, seed)
Devolver valores
Um valor aleatório.
parâmetro
min(series int/float) O limite inferior do intervalo de valores aleatórios. O valor não está incluído no intervalo. O valor padrão é 0max(series int/float) Limite superior de um intervalo de valores aleatórios. O valor não está incluído no intervalo. O valor padrão é 1seed(input int) opcional. Quando o mesmo seed é usado, é permitido que a função seja chamada de forma contínua para produzir um conjunto de valores repetíveis.
math.asin
A função asin retorna a antítese de um número ((expresso em arco), a antítese ((asin ((y)) = y dentro de y[-1, 1]。
math.asin(angle)
Devolver valores
O valor de antossíntese.[-1,1], o ângulo de retorno está em[-Pi / 2, Pi / 2] ou na escala de na.
math.atan
A função atan retorna o interseção inversa do número ((expresso em arco), tan (((atan ((y)) = qualquer y ∈ y.
math.atan(angle)
Devolver valores
Cancelamento inverso; ângulo de retorno em[-Pi / 2, Pi / 2] no âmbito de <unk>.
math.ceil
A função inteira ascendente retorna o menor número inteiro maior que ou igual ao valor de seu argumento (o mais próximo de infinito negativo).
math.ceil(number)
Devolver valores
Menor ou igual ao menor inteiro de um dado número
Veja também
math.floor math.round
math.cos
O ângulo de retorno da função cos é o ângulo de um triângulo.
math.cos(angle)
Devolver valores
A corda triangular do canto.
parâmetro
angle(series int/float) ângulo, em arco
math.exp
numberA função exp de e é de e.numberExtremo, onde e é o número de Euler.
math.exp(number)
Devolver valores
Um valor de e, que é <unk>.numberO que é isso?
Veja também
math.pow
math.floor
math.floor(number)
Devolver valores
Menor ou igual ao maior inteiro de um dado número.
Veja também
math.ceil math.round
math.log
Qualquer um.numberO natural de > 0 é o único y, de modo que e^y = number。
math.log(number)
Devolver valores
numberArgonímetros naturais de .
Veja também
math.log10
math.log10
numberO padrão comum (ou baseado em 10) é que você tem que elevar 10 para obter o número de pi.number。10^y = number。
math.log10(number)
Devolver valores
numberA base de 10 para o logarítmo ≠ 2.
Veja também
math.log
math.pow
Funções de matriz
math.pow(base, exponent)
Exemplo
pine
// math.pow
plot(math.pow(close, 2))
Devolver valores
baseAumentar paraexponentSebaseÉ uma série, calculada por elementos.
parâmetro
base(series int/float) Especifica a base a ser usada.exponent(series int/float) Indicar o índice.
Veja também
math.sqrt math.exp
math.sign
Se o número de algarismos for zero, o símbolo (signum) do número de algarismos é zero, se o número de algarismos for maior que 0, é 1,0, se o número de algarismos for menor que 0, é -1,0.
math.sign(number)
Devolver valores
Logotipo do parâmetro <unk>
math.sin
A função cosine retorna a cosine de um ângulo.
math.sin(angle)
Devolver valores
Sinônimos de triângulo angular.
parâmetro
angle(series int/float) ângulo, em arco
math.sqrt
Qualquer um.numberA raiz quadrada de >=0 é a única vez em que y >=0 faz y^2 = number。
math.sqrt(number)
Devolver valores
numberA raiz quadrada de .
Veja também
math.pow
math.tan
A função tan retorna o ângulo do triângulo perpendicular.
math.tan(angle)
Devolver valores
O triângulo dos cantos é perpendicular.
parâmetro
angle(series int/float) ângulo, em arco
math.round
Regressar.numberSe for usado o valor de um número inteiro, o quadrado é inserido no número inteiro mais próximo e inteiro para cima. Se for usado o valor de um número inteiro, o quadrado é inserido no número inteiro mais próximo e inteiro para cima.precisionO parâmetro retorna um valor de ponto flutuante de um quadrado de cinco dígitos menores.
math.round(number)
math.round(number, precision)
Devolver valores
numberO valor de um quadrado de cinco para o número inteiro mais próximo, ou de acordo com a precisão.
parâmetro
number(series int/float) Quadrar o valor de inserção de cinco pontos.precision(series int) Parâmetros selecionáveis。numberSerão quadrados os dígitos menores. Quando não for fornecido o parâmetro, será quadrado o número inteiro mais próximo.
Nota:
Observe que, para um valor 'na', a função retorna 'na' <unk>.
Veja também
math.ceil math.floor
math.max
Retorna o maior de vários valores.
math.max(number0, number1, ...)
Exemplo
pine
// math.max
plot(math.max(close, open))
plot(math.max(close, math.max(open, 42)))
Devolver valores
O maior de vários valores dados.
Veja também
math.min
math.min
Retorna o menor de vários valores.
math.min(number0, number1, ...)
Exemplo
pine
// math.min
plot(math.min(close, open))
plot(math.min(close, math.min(open, 42)))
Devolver valores
O menor de vários valores dados.
Veja também
math.max
math.avg
Calcule a média de todas as séries ((elementos correspondentes) }}.
math.avg(number0, number1, ...)
Devolver valores
Média
Veja também
math.sum ta.cum ta.sma
math.round_to_mintick
Retorna o valor do mintick que foi circunscrito à mercadoria, ou seja, pode ser dividido pelo valor mais próximo de siminfo.mintick, sem nenhum resto, e arredondado para cima.
math.round_to_mintick(number)
Devolver valores
number"Quatro rodadas e cinco entradas para a precisão do tick".
parâmetro
number(series int/float) Quadrar o valor de inserção de cinco pontos.
Veja também
math.ceil math.floor
math.sum
A função sum retorna o conjunto deslizante do último valor de y em x.
math.sum(source, length)
Devolver valores
lengthA linha K retornasourceResumo
parâmetro
source(series int/float) Valor da série a ser executado。length(series int) K número de linhas (longitude).
math.todegrees
De um ângulo em unidades de arco, retorne o ângulo de equivalência aproximada em unidades de medida.
math.todegrees(radians)
Devolver valores
O valor de ângulo é medido em unidades.
parâmetro
radians(series int/float) ângulo em arco.
math.toradians
De ângulo em unidades de medida, retorne o ângulo de aproximação equivalente em unidades de arco.
math.toradians(degrees)
Devolver valores
O valor do ângulo em unidades de arco.
parâmetro
degrees(series int/float) ângulo medido em unidades.
others
fixnan
Substitua o valor NaN pelo valor não-NaN anterior para a série dada.
fixnan(source)
Devolver valores
Uma série sem intervalos.
parâmetro
source(series int/float/bool/color)
nz
Substitua o valor de NaN por zero (ou um número especificado) na série.
nz(source, replacement)
nz(source)
Exemplo
pine
// nz
plot(nz(ta.sma(close, 100)))
Devolver valores
sourceO valor, se não fornaSesourceO valor denaEntão, se você usar 1, ele vai voltar para 0 e se você usar 1, ele vai voltar para 1.replacementParâmetros
parâmetro
source(series int/float/bool/color) Valor da série a ser executada。replacement(series int/float/bool/color) substitui o valor de todos os thresholds da série de thresholds da fonte de thresholds.
na
NaN é o valor de teste.
na(x)
Devolver valores
Se x não for um número válido, então é verdadeiro (x é NaN) ou é falso (false).
int
Converter na ou interromper o valor do float para int ≠
int(x)
Devolver valores
Converte o valor do parâmetro para int.
Veja também
float bool color string
float
Configure na como flutuante.
float(x)
Devolver valores
Converte para o valor do parâmetro float.
Veja também
int bool color string
alert
Alerta de eventos quando chamada durante a linha K em tempo real, e anteriormente criou alertas baseados em eventos da função de alerta como indicador ou estratégia por meio da caixa de diálogo de criação de alertas.
alert(message, freq)
Exemplo
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) Mensagem enviada quando o alerta é acionado.freq(input string) Frequência de ação。 os valores possíveis são: alert.freq_all (todas as funções chamam um alerta de ação), alert.freq_once_per_bar (a primeira função na linha K chama um alerta de ação), alert.freq_once_per_bar_close (a ação é acionada apenas quando ocorre uma ação na última versão do script da linha K em tempo real, e o alerta é acionado quando ela é desligada).
Nota:
O Centro de Ajuda explica como criar este tipo de alerta.
Ao contrário da alertcondition, a chamada de alert não serve como um mapa adicional.
As chamadas de funções podem ser globais ou locais.
A chamada de função não mostra nada no gráfico.
O parâmetro <unk>freq<unk> afeta apenas a frequência de acionamento em que esta função é chamada.
Veja também
alertcondition
alertcondition
Criação de condições de alerta, disponível na caixa de diálogo Criação de alertas. Observe que a alertcondition não cria alertas, mas apenas fornece mais opções na caixa de diálogo Criação de alertas. Além disso, o efeito alertcondition não é visível no gráfico.
alertcondition(condition, title, message)
Exemplo
pine
// alertcondition
alertcondition(close >= open, title='Alert on Green Bar', message='Green Bar!')
parâmetro
condition(series bool) A série de valores de bool para o alerta. True significa que o alerta foi acionado e false significa que não foi acionado.title(const string) Título da condição de alerta. Parâmetros opcionais.message(const string) Display de mensagem quando o alerta é acionado.
Nota:
Observe que, em Pine v4, a chamada de condição de alerta gera um gráfico adicional. Todas essas chamadas são levadas em consideração quando calculamos o número de séries de saída de cada script.
Veja também
alert
indicator
Para a compatibilidade.Trading ViewO código de estratégia não precisa ser chamado.
Veja também
strategy
time
A função time retorna o tempo UNIX da linha K atual do intervalo de tempo especificado e do tempo de transação, retornando NaN se o ponto de tempo não estiver no tempo de transação. Nota: FMZ não é suportadosessionParâmetros
time(timeframe, session, timezone)
time(timeframe, session)
time(timeframe)
Exemplo
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"))
Ao configurar uma sessão, você pode especificar não apenas a hora e o minuto, mas também o dia da semana.
Se não for especificada uma data, considere que o horário de negociação foi definido como sendo de domingo (1) a sábado (7), ou seja, R\( 1100-2000 é o mesmo que R\) 1100-1200:1234567.
Você pode alterá-lo especificando a data. Por exemplo, para mercadorias que são negociadas 7 dias por semana e 24 horas por dia, o seguinte script não será colorido para os sábados e domingos:
Exemplo
pine
// Time
t1 = time(timeframe.period, "0000-0000:23456")
bgcolor(t1 ? color.new(color.blue, 90) : na)
Um.sessionOs parâmetros podem conter vários períodos de negociação diferentes, separados por vírgulas. Por exemplo, o seguinte script irá destacar o gráfico de linha K de 10:00 a 11:00 e de 14:00 a 15:00 (apenas dias úteis):
Exemplo
pine
// Time
t1 = time(timeframe.period, "1000-1100,1400-1500:23456")
bgcolor(t1 ? color.new(color.blue, 90) : na)
Devolver valores
Tempo Unix.
parâmetro
timeframe(simple string) Período de tempo。 A string em branco é interpretada como o período de tempo atual do gráfico。(simple string) Especificação de tempo de transação。 Parâmetros opcionais, usando o tempo de transação de mercadorias de forma padrão。 Strings vazias são interpretadas como o tempo de transação de mercadorias。 FMZ não é suportado。sessiontimezone(simple string)sessionO parâmetro fuso horário ◦ só pode ser usado quando o fuso horário de uma sessão é especificado ◦ é opcional ◦ o valor padrão é syminfo.timezone ◦ pode ser especificado com a representação GMT ◦ (por exemplo, o fuso horário GMT-5) ou o nome do banco de dados de fuso horário da IANA ◦ (por exemplo, o fuso horário America/New_York) ◦
Nota:
O tempo UNIX é o número de milissegundos que se passou desde 1 de janeiro de 1970 UTC 00:00:00 .
year
year(time)
year(time, timezone)
Devolver valores
O ano em que o tempo do UNIX é fornecido (zona horária de troca) <unk>.
parâmetro
time(series int) Tempo de Unix em milissegundos.timezone(series string) Parâmetros opcionais ◦ fuso horário ◦
Nota:
O tempo UNIX é o número de milissegundos desde 1 de janeiro de 1970 UTC 00:00:00. Por padrão, o fuso horário é siminfo.timezone. Você pode usar o timestamp para verificar os possíveis valores.
Observe que esta função retorna o ano de acordo com o horário de abertura da linha K. Para o horário de negociação durante a noite (por exemplo, o horário de negociação do EURUSD na segunda-feira começa às 17h00 UTC-4 no domingo), o valor pode ser menor que o ano do dia de negociação.
Veja também
year time month dayofmonth dayofweek hour minute second
month
month(time)
month(time, timezone)
Devolver valores
Os meses que fornecem o tempo do UNIX ((zona horária de troca))
parâmetro
time(series int) Tempo de Unix em milissegundos.timezone(series string) Parâmetros opcionais ◦ fuso horário ◦
Nota:
O tempo UNIX é o número de milissegundos desde 1 de janeiro de 1970 UTC 00:00:00. Por padrão, o fuso horário é siminfo.timezone. Você pode usar o timestamp para verificar os possíveis valores.
Observe que esta função retorna o mês de acordo com o horário de abertura da linha K. Para o período de negociação noturno (por exemplo, o período de negociação do EURUSD na segunda-feira começa às 17:00 UTC-4 no domingo), o valor pode ser inferior a 1 do mês do dia de negociação.
Veja também
month time year dayofmonth dayofweek hour minute second
hour
hour(time)
hour(time, timezone)
Devolver valores
Hora de fornecimento do tempo UNIX ((fuso horário de troca) }}.
parâmetro
time(series int) Tempo de Unix em milissegundos.timezone(series string) Parâmetros opcionais ◦ fuso horário ◦
Nota:
O tempo UNIX é o número de milissegundos desde 1 de janeiro de 1970 UTC 00:00:00. Por padrão, o fuso horário é siminfo.timezone. Você pode usar o timestamp para verificar os possíveis valores.
Veja também
hour time year month dayofmonth dayofweek minute second
minute
minute(time)
minute(time, timezone)
Devolver valores
Minutos fornecidos no tempo UNIX ((zona horária de troca) }}.
parâmetro
time(series int) Tempo de Unix em milissegundos.timezone(series string) Parâmetros opcionais ◦ fuso horário ◦
Nota:
O tempo UNIX é o número de milissegundos desde 1 de janeiro de 1970 UTC 00:00:00. Por padrão, o fuso horário é siminfo.timezone. Você pode usar o timestamp para verificar os possíveis valores.
Veja também
minute time year month dayofmonth dayofweek hour second
second
second(time)
second(time, timezone)
Devolver valores
Aprovando o número de segundos do tempo do UNIX ((intercâmbio de fusos horários) }}.
parâmetro
time(series int) Tempo de Unix em milissegundos.timezone(series string) Parâmetros opcionais ◦ fuso horário ◦
Nota:
O tempo UNIX é o número de milissegundos desde 1 de janeiro de 1970 UTC 00:00:00. Por padrão, o fuso horário é siminfo.timezone. Você pode usar o timestamp para verificar os possíveis valores.
Veja também
second time year month dayofmonth dayofweek hour minute
weekofyear
weekofyear(time)
weekofyear(time, timezone)
Devolver valores
Aprovando o ciclo de tempo do UNIX ((intercâmbio de fusos horários) }}.
parâmetro
time(series int) Tempo de Unix em milissegundos.timezone(series string) Parâmetros opcionais ◦ fuso horário ◦
Nota:
O tempo UNIX é o número de milissegundos desde 1 de janeiro de 1970 UTC 00:00:00. Por padrão, o fuso horário é siminfo.timezone. Você pode usar o timestamp para verificar os possíveis valores.
Observe que a função retorna a semana de acordo com o horário de abertura da linha K. Para o horário de negociação durante a noite (por exemplo, EURUSD, cujo horário de negociação de segunda-feira começa às 17:00 de domingo), o valor pode ser menor do que o horário de negociação do dia.
Veja também
weekofyear time year month dayofmonth dayofweek hour minute second
dayofweek
dayofweek(time)
dayofweek(time, timezone)
Devolver valores
A data da semana que fornece o tempo do UNIX ((zona horária de troca) }}.
parâmetro
time(series int) Tempo de Unix em milissegundos.timezone(series string) Parâmetros opcionais ◦ fuso horário ◦
Nota:
Observe que esta função retorna a data de acordo com o horário de abertura da linha K. Para o horário de negociação da noite (por exemplo, o horário de negociação do EURUSD na segunda-feira começa às 17:00 de domingo), o valor pode ser menor do que a data do dia de negociação.
O tempo UNIX é o número de milissegundos desde 1 de janeiro de 1970 UTC 00:00:00. Por padrão, o fuso horário é siminfo.timezone. Você pode usar o timestamp para verificar os possíveis valores.
Veja também
time dayofmonth
dayofmonth
dayofmonth(time)
dayofmonth(time, timezone)
Devolver valores
A data do mês que fornece o tempo do UNIX ((zona horária de intercâmbio) }}.
parâmetro
time(series int) Tempo de Unix em milissegundos.timezone(series string) Parâmetros opcionais ◦ fuso horário ◦
Nota:
O tempo UNIX é o número de milissegundos desde 1 de janeiro de 1970 UTC 00:00:00. Por padrão, o fuso horário é siminfo.timezone. Você pode usar o timestamp para verificar os possíveis valores.
Observe que esta função retorna a data de acordo com o horário de abertura da linha K. Para o horário de negociação durante a noite (por exemplo, o horário de negociação do EURUSD na segunda-feira começa às 17:00 UTC-4 no domingo), este valor pode ser menor do que a data do dia de negociação.
timestamp
A função de barra de tempo retorna a data e hora especificadas para o tempo do UNIX.
timestamp(dateString)
timestamp(year, month, day, hour, minute, second)
timestamp(timezone, year, month, day, hour, minute, second)
Exemplo
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"))
Devolver valores
Tempo Unix.
parâmetro
timezone(series string) Fuso horário。 opcional。 o valor padrão é syminfo.timezone。 pode ser especificado com a representação GMT ((por exemplo, <unk>GMT-5<unk>) ou o nome do banco de dados de fuso horário IANA ((por exemplo, <unk>America/New_York<unk>)).year(series int) ano.month(series int) mês.day(series int) Diahour(series int) (parâmetros opcionais) horas. O valor padrão é 0minute(series int) (parâmetros opcionais) minutos. O valor padrão é 0second(series int) (parâmetros opcionais) Segundo. O valor padrão é 0dateString(const string) Uma sequência de caracteres que contém uma data e uma hora e um fuso horário opcionais. O formato da sequência de caracteres deve ser de acordo com a norma IETF RFC 2822 ou ISO 8601 ((<unk>DD MMM YYYY hh:mm:ss±hhmm<unk> ou<unk>YYYYY-MM-DDThh:mm:ss±hh:mm<unk>, portanto<unk>20 Feb 2020<unk> ou<unk>2020-02-20<unk>) . Se a hora não for fornecida, use<unk>00:00<unk>. Se nenhum fuso horário for fornecido, use GMT+0.
Nota:
O tempo UNIX é o número de milissegundos que se passou desde 1 de janeiro de 1970 UTC 00:00:00 .
Veja também
time timenow syminfo.timezone
fill
Use a cor fornecida para preencher o fundo entre dois desenhos ou hline.
fill(hline1, hline2, color, title, editable, fillgaps, display)
fill(plot1, plot2, color, title, editable, show_last, fillgaps, display)
Exemplo
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) O primeiro objeto de hline.hline2(hline) O segundo objeto da linha.plot1(plot) O primeiro objeto de desenho. Parâmetros necessários.plot2(plot) O segundo objeto de traçado 。 Parâmetros necessários 。color(series color) A cor do desenho. Você pode usar constantes como 'color = red' ou 'color = #ff001a' e expressões complexas como 'color = close >= open ? green: red'. Parâmetros opcionais.title(const string) criou um título para preencher o objeto.editable(const bool) Se for true, o padrão de preenchimento pode ser editado na caixa de diálogo de formato. O padrão é true.show_last(input int) Defina o número de linhas k que preenchem o gráfico ((de volta para o passado a partir da última linha k) [2].fillgaps(const bool) Controlar o preenchimento contínuo de lacunas, isto é, quando uma das chamadas da plot ((() retorna um valor na. Quando definido como verdadeiro, o preenchimento final continuará a preencher a lacuna.display(plot_display) Controla o local de exibição do preenchimento. Os valores possíveis são: display.none, display.all.
Veja também
plot barcolor bgcolor hline
hline
A linha horizontal é apresentada em um nível de preço fixo dado.
hline(price, title, color, linestyle, linewidth, editable, display)
Exemplo
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))
Devolver valores
Objetos hline que podem ser usados em fill ◦
parâmetro
price(input int/float) o valor que o objeto irá apresentar.titleTítulo do objeto (const string)color(input color) A cor da linha de renderização. Deve ser uma constante ((não expressivo)). Parâmetros opcionaislinestyle(hline_style) Estilo da linha de rendo. Os valores possíveis são: solid, dotted, dotted.linewidth(input int) A largura da linha de renderização. O valor padrão é 1.editable(const bool) Se for true, o estilo hline pode ser editado na caixa de diálogo de formatação. O padrão é true.display(plot_display) A posição de exibição da linha de controle. Os valores possíveis são: display.none, display.all. Default display.all.overlay(const bool) Um parâmetro da extensão da plataforma FMZ para definir a função atual, que é exibida no gráfico principal (set true) ou no gráfico secundário (set false) com o valor por defeito de false. Se não for especificado, o parâmetro é exibido de acordo comstrategyouindicatorEmoverlayConfiguração de parâmetrosstrategyouindicatorSem configuraçãooverlayOs parâmetros são tratados de acordo com os parâmetros padrão.
bgcolor
O fundo da linha K deve ser preenchido com a cor indicada.
bgcolor(color, offset, editable, show_last, title, display, overlay)
Exemplo
pine
// bgcolor example
bgcolor(close < open ? color.new(color.red,70) : color.new(color.green, 70))
parâmetro
color(series color) A cor do fundo. Você pode usar constantes como <unk>red<unk> ou <unk>#ff001a<unk>, bem como expressões complexas como 'close >= open ? green: red'.offset(series int) Movendo a série de cores para a esquerda ou para a direita em um determinado número de linhas k. O valor padrão é 0.editable(const bool) Se for true, o estilo bgcolor pode ser editado na caixa de diálogo de formato. O padrão é true.show_last(input int) Defina o número de linhas k que preenchem o gráfico ((de volta para o passado a partir da última linha k) [2].title(const string) bgcolor título ◦ Parâmetros selecionáveis ◦display(plot_display) Controla a posição de exibição do bgcolor. Os valores possíveis são: display.none, display.all.overlay(const bool) Um parâmetro da extensão da plataforma FMZ para definir a função atual, que é exibida no gráfico principal (set true) ou no gráfico secundário (set false) com o valor por defeito de false. Se não for especificado, o parâmetro é exibido de acordo comstrategyouindicatorEmoverlayConfiguração de parâmetrosstrategyouindicatorSem configuraçãooverlayOs parâmetros são tratados de acordo com os parâmetros padrão.
Veja também
plot
barcolor
Configure a cor da linha K.
barcolor(color, offset, editable, show_last, title, display)
Exemplo
pine
barcolor(close < open ? color.black : color.white)
parâmetro
color(series color) Cores de linha K。 Você pode usar constantes como <unk>red<unk> ou <unk>#ff001a<unk>, bem como expressões complexas como 'close >= open ? green: red‛。 Parâmetros necessários。offset(series int) Movendo a série de cores para a esquerda ou para a direita em um determinado número de linhas k. O valor padrão é 0.editable(const bool) Se for true, o estilo barcolor pode ser editado na caixa de diálogo de formatação. O padrão é true.show_last(input int) Defina o número de linhas k que preenchem o gráfico ((de volta para o passado a partir da última linha k) [2].title(const string) Barcolor title。 opcional para os parâmetros。display(plot_display) Controla a posição de exibição da cor da linha K. Os valores possíveis são: display.none, display.all.
error
A versão compatível com o PINE v4errorFunções eruntime.errorConcordância.
Variações embutidas
order
order.ascending
Determine a ordem de ordenação da matriz de menor a maior.
tipo
sort_order
Veja também
array.new_float array.sort
order.descending
Determine a ordem de ordenação da matriz de maior a menor.
tipo
sort_order
Veja também
array.new_float array.sort
timeframe
timeframe.isdaily
Retorna true se a resolução atual for a resolução diária, e false se for a resolução diária
tipo
simple bool
Veja também
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isweekly timeframe.ismonthly
timeframe.isdwm
Se a resolução atual for diária ou semanal ou mensal, retorne true, caso contrário retorne false.
tipo
simple bool
Veja também
timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.isweekly timeframe.ismonthly
timeframe.isintraday
Se o ciclo atual for um ciclo de dias (minutos ou segundos), retorna true, caso contrário retorna false。
tipo
simple bool
Veja também
timeframe.isminutes timeframe.isseconds timeframe.isdwm timeframe.isdaily timeframe.isweekly timeframe.ismonthly
timeframe.isminutes
Se o ciclo atual for um ciclo de minutos, retorne true, caso contrário retorne false.
tipo
simple bool
Veja também
timeframe.isdwm timeframe.isintraday timeframe.isseconds timeframe.isdaily timeframe.isweekly timeframe.ismonthly
timeframe.ismonthly
Se a resolução atual for a resolução mensal, retorne true, caso contrário retorne false.
tipo
simple bool
Veja também
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.isweekly
timeframe.isseconds
Se o ciclo atual for segundos, retorna true, caso contrário retorna false.
tipo
simple bool
Veja também
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isdaily timeframe.isweekly timeframe.ismonthly
timeframe.isweekly
Se a resolução atual for a resolução semanal, retorne true, caso contrário retorne false.
tipo
simple bool
Veja também
timeframe.isdwm timeframe.isintraday timeframe.isminutes timeframe.isseconds timeframe.isdaily timeframe.ismonthly
timeframe.multiplier
Os períodos de tempo são multiplicados por números, por exemplo, '60' - 60, 'D' - 1, '5D' - 5, '12M' - 12。
tipo
simple int
Veja também
syminfo.ticker syminfo.tickerid timeframe.period
timeframe.period
Período de tempo. Por exemplo, '60' - 60 minutos, 'D' - dia, 'W' - semana, 'M' - mês, '5D' - 5 dias, '12M' - 1 ano, '3M' - 1 trimestre.
tipo
simple string
Veja também
syminfo.ticker syminfo.tickerid timeframe.multiplier
display
display.none
Uma constante de nomeação, que especifica o local de exibição do desenho. Não exibido em nenhum lugar. Disponível em mensagens de modelo de alerta.
tipo
plot_display
Veja também
plot plotshape plotchar
display.all
Uma constante de nomeação que especifica o local onde o mapa deve ser exibido.
tipo
plot_display
Veja também
plot plotshape plotchar plotarrow plotbar plotcandle
shape
shape.xcross
Estilo de forma da função plotshape.
tipo
const string
Veja também
plotshape
shape.cross
Estilo de forma da função plotshape.
tipo
const string
Veja também
plotshape
shape.triangleup
Estilo de forma da função plotshape.
tipo
const string
Veja também
plotshape
shape.triangledown
Estilo de forma da função plotshape.
tipo
const string
Veja também
plotshape
shape.flag
Estilo de forma da função plotshape.
tipo
const string
Veja também
plotshape
shape.circle
Estilo de forma da função plotshape.
tipo
const string
Veja também
plotshape
shape.arrowup
Estilo de forma da função plotshape.
tipo
const string
Veja também
plotshape
shape.arrowdown
Estilo de forma da função plotshape.
tipo
const string
Veja também
plotshape
shape.labelup
Estilo de forma da função plotshape.
tipo
const string
Veja também
plotshape
shape.labeldown
Estilo de forma da função plotshape.
tipo
const string
Veja também
plotshape
shape.square
Estilo de forma da função plotshape.
tipo
const string
Veja também
plotshape
shape.diamond
Estilo de forma da função plotshape.
tipo
const string
Veja também
plotshape
color
color.aqua
é a constante de nomeação da cor #00BCD4
tipo
const color
color.black
é a constante de nomeação da cor #363A45
tipo
const color
color.blue
é a constante de nomeação da cor #2962ff。
tipo
const color
color.fuchsia
É a constante de nomeação da cor #E040FB.
tipo
const color
color.gray
É a constante de nomeação da cor #787B86.
tipo
const color
color.green
é a constante de nomeação da cor # 4CAF50 <unk>
tipo
const color
color.lime
é a constante de nomeação da cor #00E676
tipo
const color
color.maroon
Constante de nomeação da cor #880E4F.
tipo
const color
color.navy
é a constante de nomeação da cor # 311B92 .
tipo
const color
color.olive
É a constante de nomeação da cor #808000 <unk>.
tipo
const color
color.orange
É a constante de nomeação da cor #FF9800 <unk>.
tipo
const color
color.purple
é a constante de nomeação da cor # 9C27B0 <unk> .
tipo
const color
color.red
É a constante de nomeação da cor #FF5252.
tipo
const color
color.silver
A constante de nomeação da cor #B2B5BE.
tipo
const color
color.teal
color.teal
é a constante de nomeação da cor #00897B.
tipo
const color
color.white
É a constante de nomeação da cor #FFFFFF.
tipo
const color
color.yellow
É a constante de nomeação da cor #FFEB3B.
tipo
const color
plot
plot.style_line
Constantes de nomeação do estilo 'Line', usadas como função de plotstyleParâmetros de um parâmetro.
tipo
plot_style
Veja também
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
Constantes de nomeação do estilo 'Line With Breaks', usadas como função de plotstyleOs parâmetros dos parâmetros 。 são semelhantes aos do plot.style_line, exceto que os espaços em branco nos dados não são preenchidos 。
tipo
plot_style
Veja também
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 nomeação do estilo 'histogram', usadas na função plotstyleParâmetros de um parâmetro.
tipo
plot_style
Veja também
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
Constantes de nomeação do estilo 'Columns', usadas como constantes de nomeação da função plotstyleParâmetros de um parâmetro.
tipo
plot_style
Veja também
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
Constantes de nomeação do estilo 'Circles', usadas como constantes de nomeação da função plotstyleParâmetros de um parâmetro.
tipo
plot_style
Veja também
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 nomeação do tipo 'Area', usadas como função de plotstyleParâmetros de um parâmetro.
tipo
plot_style
Veja também
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 nomeação do estilo 'Area With Breaks', usadas como função de plotstyleOs parâmetros dos parâmetros 。 são semelhantes aos do plot.style_area, exceto que os espaços em branco nos dados não são preenchidos 。
tipo
plot_style
Veja também
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
Constantes de nomeação do estilo 'Cross', usadas como função de plotstyleParâmetros de um parâmetro.
tipo
plot_style
Veja também
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
Constantes de nomeação do estilo 'Step Line', usadas como função de plotstyleParâmetros de um parâmetro.
tipo
plot_style
Veja também
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
Constantes de nomeação do estilo 'Step Line With Diamonds', usadas como função de plotstyleOs parâmetros dos parâmetros 。 são semelhantes aos do plot.style_stepline, mas com a variação de dados também marcada por um ângulo 。
tipo
plot_style
Veja também
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, o valor de localização da função plotchar. A forma é traçada acima da linha da série principal k.
tipo
const string
Veja também
plotshape plotchar location.belowbar location.top location.bottom location.absolute
location.belowbar
Plotshape, o valor de localização da função plotchar. A forma é traçada abaixo da linha da série principal k.
tipo
const string
Veja também
plotshape plotchar location.abovebar location.top location.bottom location.absolute
location.top
Plotshape, o valor de localização da função plotchar. A forma é traçada perto da borda do gráfico superior.
tipo
const string
Veja também
plotshape plotchar location.abovebar location.belowbar location.bottom location.absolute
location.bottom
Plotshape, o valor de localização da função plotchar. A forma é desenhada na parte inferior do gráfico, perto da borda.
tipo
const string
Veja também
plotshape plotchar location.abovebar location.belowbar location.top location.absolute
location.absolute
Plotshape, o valor de localização da função plotchar. A forma é traçada no gráfico, usando o valor do indicador como coordenadas de preço.
tipo
const string
Veja também
plotshape plotchar location.abovebar location.belowbar location.top location.bottom
size
size.auto
size.auto
Plotshape, o valor de tamanho da função plotchar. O tamanho da forma adapta-se automaticamente ao tamanho da linha k.
tipo
const string
Veja também
plotshape plotchar size.tiny size.small size.normal size.large size.huge
size.tiny
Plotshape, o tamanho da função plotchar.
tipo
const string
Veja também
plotshape plotchar size.auto size.small size.normal size.large size.huge
size.small
O tamanho da função plotshape, plotchar.
tipo
const string
Veja também
plotshape plotchar size.auto size.tiny size.normal size.large size.huge
size.normal
Plotshape, o tamanho da função plotchar.
tipo
const string
Veja também
plotshape plotchar size.auto size.tiny size.small size.large size.huge
size.large
Plotshape, o tamanho da função plotchar.
tipo
const string
Veja também
plotshape plotchar size.auto size.tiny size.small size.normal size.huge
size.huge
Plotshape, o tamanho da função plotchar.
tipo
const string
Veja também
plotshape plotchar size.auto size.tiny size.small size.normal size.large
alert
alert.freq_once_per_bar
Constantes de nomeação usadas junto com o parâmetro 'freq' da função alert ().
A primeira chamada de função na linha K desencadeia o alarme.
tipo
const string
Veja também
alert
alert.freq_all
Constantes de nomeação usadas junto com o parâmetro 'freq' da função alert ().
Todas as chamadas de funções desencadeiam um alarme.
tipo
const string
Veja também
alert
alert.freq_once_per_bar_close
Constantes de nomeação usadas junto com o parâmetro 'freq' da função alert ().
Esta função é chamada apenas quando ocorre durante a última repetição de script de uma linha K em tempo real, e dispara um alerta ao ser desligada.
tipo
const string
Veja também
alert
format
format.inherit
é uma constante de nomeação.
tipo
const string
Veja também
format.price format.volume
format.price
é uma constante de nomeação.
tipo
const string
Nota:
Se format for format.price, defina o valor de precisão. Você pode usar o parâmetro de precisão da função indicador para alterar o valor de precisão.
Veja também
format.inherit format.volume
format.volume
é uma constante de nomeação.
tipo
const string
Veja também
format.inherit format.price
syminfo
syminfo.ticker
Código de mercadoria sem prefixo de câmbio, como 'MSFT'。
tipo
simple string
Veja também
syminfo.tickerid timeframe.period timeframe.multiplier
syminfo.tickerid
Código de mercadoria com prefixo de bolsa, por exemplo, <unk>BATS: <unk>MSFT, <unk>NASDAQ: <unk>MSFT.
tipo
simple string
Veja também
syminfo.ticker timeframe.period timeframe.multiplier
syminfo.basecurrency
Moeda de base do produto. Para o código do produto, coloque BTCUSD e retorne BTC.
tipo
simple string
Veja também
syminfo.currency syminfo.ticker
syminfo.currency
A moeda do produto atual. Código de moeda de retorno: <unk> USD <unk>, <unk> EUR <unk> etc.
tipo
simple string
Veja também
syminfo.basecurrency syminfo.ticker
syminfo.type
Os valores possíveis são: stock, futures, index, forex, crypto, fund, dr.
tipo
simple string
Veja também
syminfo.ticker
syminfo.mintick
O valor de medida mínimo para a variedade atual. Parâmetros do modelo no "Pine Language Exchange Classroom" na FMZ, na interface de disco rígido/retornoPrecisão da moeda de precificaçãoPode ser controlado.Precisão da moeda de precificaçãoConfiguração 2 significa que o preço é exato para o segundo lugar de um número menor quando o preço muda em menos de uma unidade de 0.01 ◦ siminfo.mintick é 0.01 ◦
tipo
simple float
Veja também
syminfo.pointvalue
syminfo.pointvalue
Valores pontuais de mercadorias atuais
tipo
simple float
Veja também
syminfo.mintick
syminfo.timezone
Os principais conjuntos de gráficos são os fusos horários de câmbio. Os valores possíveis são vistos no timestamp.
tipo
simple string
Veja também
timestamp
barstate
barstate.islastconfirmedhistory
Se o script for executado na última linha K do conjunto de dados no momento do fechamento do mercado, ou se o script estiver sendo executado na linha K anterior à linha K em tempo real, retorne true se o mercado estiver aberto.
tipo
series bool
Nota:
O código PineScript com esta variável permite diferentes cálculos para o histórico e para o real-time.
Por favor, note que o uso desta variável/função pode resultar em um redesenho do indicador.
Veja também
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew
barstate.isnew
Retorna true se o script está atualmente calculado na nova linha k, e false se não estiver.
tipo
series bool
Nota:
O código PineScript com esta variável permite diferentes cálculos para o histórico e para o real-time.
Por favor, note que o uso desta variável/função pode resultar em um redesenho do indicador.
Veja também
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isconfirmed barstate.islastconfirmedhistory
barstate.isfirst
Retorna true se a linha k atual for a primeira linha k do grupo de linhas k, e false se não for.
tipo
series bool
Nota:
O código PineScript com esta variável permite diferentes cálculos para o histórico e para o real-time.
Por favor, note que o uso desta variável/função pode resultar em um redesenho do indicador.
Veja também
barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory
barstate.islast
Retorna true se a corrente k for a última k de um grupo de k linhas, caso contrário retorna false。
tipo
series bool
Nota:
O código PineScript com esta variável permite diferentes cálculos para o histórico e para o real-time.
Por favor, note que o uso desta variável/função pode resultar em um redesenho do indicador.
Veja também
barstate.isfirst barstate.ishistory barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory
barstate.ishistory
Retorna true se a linha k atual for a linha k histórica, e false caso contrário.
tipo
series bool
Nota:
O código PineScript com esta variável permite diferentes cálculos para o histórico e para o real-time.
Por favor, note que o uso desta variável/função pode resultar em um redesenho do indicador.
Veja também
barstate.isfirst barstate.islast barstate.isrealtime barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory
barstate.isconfirmed
Se o script estiver calculando a última () atualização da linha k atual, retornará true. O próximo script será calculado com base nos dados da nova linha K.
tipo
series bool
Nota:
O código PineScript com esta variável permite diferentes cálculos para o histórico e para o real-time.
Não é recomendado usar barstate.isconfirmed na expressão request.security. O valor da solicitação do request.security é imprevisível.
Por favor, note que o uso desta variável/função pode resultar em um redesenho do indicador.
Veja também
barstate.isfirst barstate.islast barstate.ishistory barstate.isrealtime barstate.isnew barstate.islastconfirmedhistory
barstate.isrealtime
Retorna true se a corrente k for a real k, e false caso contrário.
tipo
series bool
Nota:
O código PineScript com esta variável permite diferentes cálculos para o histórico e para o real-time.
Por favor, note que o uso desta variável/função pode resultar em um redesenho do indicador.
Veja também
barstate.isfirst barstate.islast barstate.ishistory barstate.isnew barstate.isconfirmed barstate.islastconfirmedhistory
barstate.time
Não há.
ta
ta.accdist
Índice de acumulação/distribuição
tipo
series float
ta.iii
Índice de intensidade no disco.
tipo
series float
Exemplo
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
Índice de peso negativo.
tipo
series float
Exemplo
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
Índice de massa líquida.
tipo
series float
Exemplo
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 corrente de energia
tipo
series float
Exemplo
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 tendência de preços.
tipo
series float
Exemplo
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
William Dorsey, diretor de força aérea.
tipo
series float
Exemplo
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
Dispersão da variante William.
tipo
series float
Exemplo
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
É a constante de nomeação do número de Euler. É igual a 2,7182818284590452.
tipo
const float
Veja também
math.phi math.pi math.rphi
math.phi
É a constante nominal da divisão em ouro ≠ 1.6180339887498948.
tipo
const float
Veja também
math.e math.pi math.rphi
math.pi
É a constante de nome de um constante de Achimedes. É igual a 3,1415926535897932.
tipo
const float
Veja também
math.e math.phi math.rphi
math.rphi
É a constante nominal da divisão do ouro. É igual a 0,6180339887498948.
tipo
const float
Veja também
math.e math.pi math.phi
strategy
strategy.equity
Os interesses atuais (strategy.initial_capital + strategy.netprofit + strategy.openprofit)
tipo
series float
Veja também
strategy.netprofit strategy.openprofit strategy.position_size
strategy.position_size
A direção e o tamanho das posições atuais no mercado. Se o valor for > 0, a posição no mercado é maior. Se o valor for < 0, a posição no mercado é menor. O valor absoluto é o número de contratos / ações / mãos / unidades negociadas (o tamanho da posição).
tipo
series float
Veja também
strategy.position_avg_price
strategy.position_avg_price
A posição de mercado atual é o preço médio de entrada. Se a posição de mercado se suavizar, o NaN-<unk> retrocederá.
ilustrar
O preço médio do FMZ PINE Script é o preço que inclui a taxa de processamento. Por exemplo: o preço de encomenda é de 8000, a direção de venda, a quantidade é de 1 mão, o preço médio após a transação não é de 8000, é inferior a 8000 (o custo inclui a taxa de processamento).
tipo
series float
Veja também
strategy.position_size
strategy.long
Multidireção
tipo
strategy_direction
Veja também
strategy.entry strategy.exit
strategy.short
Direção de voo.
tipo
strategy_direction
Veja também
strategy.entry strategy.exit
strategy.closedtrades
Número de transações fechadas durante o intervalo de negociação.
tipo
series int
Veja também
strategy.position_size strategy.opentrades
strategy.opentrades
Número de transações que não foram fechadas ou que continuam sendo mantidas. Se não houver, 0 é exibido.
tipo
series int
Veja também
strategy.position_size
strategy.netprofit
Valor monetário total de todas as transações concluídas.
tipo
series float
Veja também
strategy.openprofit strategy.position_size strategy.grossprofit
strategy.grossprofit
Valor monetário total de todas as transações lucrativas concluídas.
tipo
series float
Veja também
strategy.netprofit
strategy.openprofit
Perdas não realizadas de posições não fechadas.
tipo
series float
Veja também
strategy.netprofit strategy.position_size
strategy.direction.long
A única estratégia é fazer mais.
tipo
const string
Veja também
strategy.risk.allow_entry_in
strategy.direction.short
Estratégias que só funcionam
tipo
const string
Veja também
strategy.risk.allow_entry_in
strategy.direction.all
Permitir estratégias de "fazer mais" e "fazer menos"
tipo
const string
Veja também
strategy.risk.allow_entry_in
dayofweek
dayofweek
A semana da linha k do horário atual do fuso horário de câmbio.
tipo
series int
Nota:
Observe que esta variável retorna o dia de acordo com o horário de abertura da linha K. Para o horário de negociação durante a noite (por exemplo, EURUSD, cujo horário de negociação de segunda-feira começa às 17:00 de domingo), o valor pode ser menor do que o dia do dia de negociação.
Você pode usar as variáveis dayofweek.sunday, dayofweek.monday, dayofweek.tuesday, dayofweek.wednesday, dayofweek.thursday, dayofweek.friday e dayofweek.saturday para comparar.
Veja também
time dayofmonth
dayofweek.sunday
É a constante de nomeação do valor da função dayofweek e do valor da variável dayofweek.
tipo
const int
Veja também
dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday
dayofweek.monday
É a constante de nomeação do valor da função dayofweek e do valor da variável dayofweek.
tipo
const int
Veja também
dayofweek.sunday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday
dayofweek.tuesday
É a constante de nomeação do valor da função dayofweek e do valor da variável dayofweek.
tipo
const int
Veja também
dayofweek.sunday dayofweek.monday dayofweek.wednesday dayofweek.thursday dayofweek.friday dayofweek.saturday
dayofweek.wednesday
É a constante de nomeação do valor da função dayofweek e do valor da variável dayofweek.
tipo
const int
Veja também
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.thursday dayofweek.friday dayofweek.saturday
dayofweek.thursday
É a constante de nomeação do valor da função dayofweek e do valor da variável dayofweek.
tipo
const int
Veja também
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.friday dayofweek.saturday
dayofweek.friday
É a constante de nomeação do valor da função dayofweek e do valor da variável dayofweek.
tipo
const int
Veja também
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.saturday
dayofweek.saturday
É a constante de nomeação do valor da função dayofweek e do valor da variável dayofweek.
tipo
const int
Veja também
dayofweek.sunday dayofweek.monday dayofweek.tuesday dayofweek.wednesday dayofweek.thursday dayofweek.friday
hline
hline.style_dashed
É a constante de nomeação da função Hline de traçado pontual.
tipo
hline_style
Veja também
hline.style_solid hline.style_dotted
hline.style_dotted
hline.style_dotted
É a constante de nomeação da função Hline.
tipo
hline_style
Veja também
hline.style_solid hline.style_dashed
hline.style_solid
É a constante de nomeação da função Hline de tipo linear-central.
tipo
hline_style
Veja também
hline.style_dotted hline.style_dashed
barmerge
barmerge.gaps_on
Fornecer uma estratégia de fusão de dados solicitada.
tipo
barmerge_gaps
Veja também
request.security barmerge.gaps_off
barmerge.gaps_off
A estratégia para a combinação dos dados solicitados. A combinação dos dados é contínua, e todas as lacunas são preenchidas com os valores existentes mais recentes anteriores.
tipo
barmerge_gaps
Veja também
request.security barmerge.gaps_on
barmerge.lookahead_on
Uma estratégia para a localização dos dados solicitados pela fusão. A barra solicitada é combinada com a barra atual de acordo com o tempo de abertura da linha k. Essa estratégia de fusão pode causar um impacto negativo no histórico de cálculo de dados obtidos da barra futura. Isso não é aceito na estratégia de teste de retrospecção, mas pode ser usado no indicador.
tipo
barmerge_lookahead
Veja também
request.security barmerge.lookahead_off
barmerge.lookahead_off
A estratégia para a localização dos dados solicitados pela fusão. A barra solicitada é combinada com a barra atual de acordo com o tempo de fechamento da linha k. Esta estratégia de fusão proíbe o impacto da história de cálculo de dados obtidos da barra futura.
tipo
barmerge_lookahead
Veja também
request.security barmerge.lookahead_on
others
hl2
é a chave rápida de [o preço mais alto + o preço mais baixo]/2
tipo
series float
Veja também
open high low close volume time hlc3 hlcc4 ohlc4
hlc3
é a chave rápida de [preço máximo + preço mínimo + preço de fechamento]/3
tipo
series float
Veja também
open high low close volume time hl2 hlcc4 ohlc4
hlcc4
É a tecla rápida de [High + Low + Close + Close]/4.
tipo
series float
Veja também
open high low close volume time hl2 hlc3 ohlc4
ohlc4
é a tecla rápida de [preço de abertura + preço máximo + preço mínimo + preço de fechamento]/4
tipo
series float
Veja também
open high low close volume time hl2 hlc3 hlcc4
na
Double.NaNvalor (não numérico) <unk>
tipo
simple na
Exemplo
pine
// na
plot(bar_index < 10 ? na : close) // CORRECT
plot(close == na ? close[1] : close) // INCORRECT!
plot(na(close) ? close[1] : close) // CORRECT
Nota:
Se você quiser verificar se um determinado valor é NaN, use a função embutida na.
Veja também
na
bar_index
O índice de barras de preços atual. Os números começam em zero, com o índice de 0 na primeira linha.
tipo
series int
Exemplo
pine
// bar_index
plot(bar_index)
plot(bar_index > 5000 ? close : 0)
Nota:
Observe que o bar_index substituiu a n variável na versão 4.
Observe que o índice K é 0 ≠ 0 a partir da primeira linha K histórica.
Por favor, note que o uso desta variável/função pode resultar em um redesenho do indicador.
Veja também
barstate.isfirst barstate.islast barstate.isrealtime
last_bar_index
O índice da última linha K do gráfico. O índice K começa com a primeira linha K zero.
tipo
series int
Exemplo
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)
Devolver valores
K histórico final de fechamento ou K real de abertura.
Nota:
Por favor, note que o uso desta variável pode resultar em um redesenho do indicador.
Veja também
bar_index last_bar_time barstate.ishistory barstate.isrealtime
time
O tempo atual do formato UNIX kline <unk> é o número de milissegundos desde 1 de janeiro de 1970 00:00:00 UTC <unk>.
timenow
O tempo atual no formato UNIX. É o número de milissegundos desde 01 de janeiro de 1970 00:00:00 UTC.
tipo
series int
Nota:
Por favor, note que o uso desta variável/função pode resultar em um redesenho do indicador.
Veja também
timestamp time dayofmonth dayofweek
tipo
series int
Nota:
Observe que esta variável retornará a coluna de tempo de acordo com o tempo de abertura da linha K. Assim, para o período de negociação da noite (por exemplo, EURUSD, cujo período de segunda-feira começa às 17:00 de domingo), esta variável pode retornar o tempo antes da data de nomeação do dia de negociação. Por exemplo, no EURUSD, a coluna dayofmonth (a coluna de tempo) pode ser menor que a data do dia de negociação 1, pois a linha K da data atual foi realmente aberta no dia anterior.
Veja também
time dayofmonth dayofweek
year
A linha k do ano atual do fuso horário de troca.
tipo
series int
Nota:
Observe que esta variável retorna o ano de acordo com o horário de abertura da linha K. Para o horário de negociação durante a noite (por exemplo, EURUSD, cujo horário de negociação de segunda-feira começa às 17:00 de domingo), o valor pode ser inferior ao ano do dia de negociação.
Veja também
year time month weekofyear dayofmonth dayofweek hour minute second
month
A linha lunar k atual do fuso horário da bolsa.
tipo
series int
Nota:
Observe que esta variável retorna o mês de acordo com o horário de abertura da linha K. Para o horário de negociação durante a noite (por exemplo, EURUSD, cujo horário de negociação de segunda-feira começa às 17:00 de domingo), o valor pode ser inferior a 1 do mês do dia de negociação.
Veja também
month time year weekofyear dayofmonth dayofweek hour minute second
hour
A linha k da hora atual do fuso horário da bolsa.
tipo
series int
Veja também
hour time year month weekofyear dayofmonth dayofweek minute second
minute
A linha k é o minuto atual do fuso horário da bolsa.
tipo
series int
Veja também
minute time year month weekofyear dayofmonth dayofweek hour second
second
A linha de segundos k atual do fuso horário da bolsa.
tipo
series int
Veja também
second time year month weekofyear dayofmonth dayofweek hour minute
open
Preço de abertura atual.
tipo
series float
Nota:
Pode usar o operador de parênteses quadrados[] para acessar o valor anterior, por exemplo: <unk> open[1],open[2]。
Veja também
high low close volume time hl2 hlc3 hlcc4 ohlc4
high
O preço mais alto de todos os dias.
tipo
series float
Nota:
Pode usar o operador de parênteses quadrados[] para acessar o valor anterior, por exemplo: high[1],high[2]。
Veja também
open low close volume time hl2 hlc3 hlcc4 ohlc4
low
Preços atuais mais baixos.
tipo
series float
Nota:
Pode usar o operador de parênteses quadrados[] para acessar valores anteriores, como ≠ low.[1],low[2]。
Veja também
open high close volume time hl2 hlc3 hlcc4 ohlc4
close
O preço de fechamento da linha K atual, ou o preço de transação final da linha K em tempo real que ainda não foi concluída.
tipo
series float
Nota:
Pode usar o operador de parênteses quadrados[] para acessar o valor anterior, por exemplo: <unk> close[1],close[2]。
Veja também
open high low volume time hl2 hlc3 hlcc4 ohlc4
volume
Número de passageiros em linha K.
tipo
series float
Nota:
Pode usar o operador de parênteses quadrados[] para acessar um valor anterior, como por exemplo: ◦ volume[1],volume[2]。
Veja também
open high low close time hl2 hlc3 hlcc4 ohlc4
weekofyear
O número de semanas no intervalo de tempo atual da linha k do fuso horário de troca.
tipo
series int
Nota:
Observe que esta variável retorna a semana de acordo com o horário de abertura da linha K. Para o horário de negociação noturno (por exemplo, EURUSD, cuja negociação de segunda-feira começa às 17:00 de domingo), o valor pode ser inferior ao horário de semana do dia de negociação.
Veja também
weekofyear time year month dayofmonth dayofweek hour minute second
dayofmonth
A data do horário atual da linha k do fuso horário de troca.
tipo
series int
Nota:
Observe que esta variável retorna o dia de acordo com o horário de abertura da linha K. Para o horário de negociação durante a noite (por exemplo, EURUSD, cujo horário de negociação de segunda-feira começa às 17:00 de domingo), o valor pode ser menor do que o dia do dia de negociação.
- 1





