Por favor, mostre-me como escrever o preço mais alto e o preço mais baixo para calcular o preço histórico. Obrigado.

Autora:esperança, Criado: 2022-10-17 00:13:14, Atualizado: 2022-10-17 15:28:07

Por favor, mostre-me como escrever o preço mais alto e o preço mais baixo para calcular o preço histórico. Obrigado.

indicator("计算历史区间最高价、最低价", overlay=true)
//目的:想在开单时,找出开单前(输入历史长度)的最高价,或最低价,用于计算开单止损价。

varip ishistory_high_Price0 = array.new_float(0)                   //定义变量,初始化历史高价格为空的数组
varip ishistory_low_Price0 = array.new_float(0)                    //定义变量,初始化历史低价格为空的数组
var ishistory_length = input.int(15, minval=1, maxval=100, step=1) //定义变量,历史长度,输入为15,最小值1,最大值100,步长1
var ishistory_high_Price = na
var ishistory_low_Price  = na

if barstate.ishistory                                              //对历史K线执行计算(not barstate.ishistory当在实时abr时在执行)
    array.push(ishistory_high_Price0, nz(high[1], open))           //写入数组(变量ishistory_high_Price0的历史最高价元素,空值用开盘价)

    if array.size(ishistory_high_Price0) > ishistory_length        //当数组的长度大于变量长度的时候
        array.shift(ishistory_high_Price0)                         //删除数组(ishistory_high_Price0的第一个元素)
    [ishistory_high_Price0]

if barstate.ishistory                                              //对历史K线执行计算
    array.push(ishistory_low_Price0, nz(low[1], open))             //写入数组(变量ishistory_low_Price0的历史最低价元素,空值用开盘价)

    if array.size(ishistory_low_Price0) > ishistory_length         //当数组的长度大于变量长度的时候
        array.shift(ishistory_low_Price0)                          //删除数组(ishistory_low_Price0的第一个元素)
    [ishistory_low_Price0]

//需对历史高价格、历史低价格作出比较,并返回最大值(输入周期内的历史最高价、历史最低价)

//下面这个写法不正确!!!

ishistory_high_Price = array.max(ishistory_high_Price0, nz(high[1], open), ishistory_length)
ishistory_low_Price = array.min(ishistory_low_Price0, nz(low[1], open),ishistory_length)


plot(title = "数组ishistory_high_Price中的历史高价格:", ishistory_high_Price, color = color.blue)
plot(title = "数组ishistory_low_Price中的历史低价格:", ishistory_low_Price, color = color.red)

Apesar de ter aprendido o tutorial de introdução ao PINE, a soma das soma de uma matriz ou o tamanho dos elementos da matriz podem ser aplicados, mas não é possível reescrever a linha K em troca da história! Por favor, orientem a definição da variável e façam uma comparação com o preço histórico alto e o preço histórico baixo.


Mais.

esperançaNão há problema, depois de imprimir o gráfico e alterá-lo para o gráfico, o gráfico está funcionando.

esperançaMuito bem, obrigada, aqui está a mudança de código: " ' indicador (("Cálculo de preços mais altos, preços mais baixos em intervalos históricos") // Objetivo: quando você quer abrir um pedido, para descobrir o preço mais alto antes de abrir o pedido (inserir o comprimento do histórico), ou o preço mais baixo, para calcular o preço de parada única. var ishistory_length = input.int(15, title = "ishistory length", minval=1, maxval=100, step=1) // definição de variável, comprimento do histórico, entrada de 15, mínimo 1, máximo 100, passo 1 - Não. var float highest = na // o valor máximo de um dado número de k linhas passadas. var float lowest = na // o valor mínimo de um dado número de k linhas passadas. var float highestbars = na // desvio do valor máximo de um dado número da linha k anterior. var float lowestbars = na // desvio do valor mínimo de um dado número de linhas k passadas. highest := ta.highest ((high, ishistory_length) // Reapropriação do valor máximo para o comprimento da linha K da história de 15. plot ((highest, title = "Alto preço na linha histórica K:", color = color.blue, overlay=true) lowest := ta.lowest ((low, ishistory_length) // Redesigna o valor mínimo para o comprimento da linha K da história para 15. plot ((lowest, title = "Preço mais baixo na linha K histórica:", color = color.red, overlay=true) highest := ta.highest ((high[1], ishistory_length) // Reapropriação do valor máximo para o comprimento da linha K da história de 15. plot ((highest, title = "Alto preço na linha histórica K:", color = color.blue, overlay=true) lowest := ta.lowest ((low[1], ishistory_length) // Redesigna o valor mínimo para o comprimento da linha K da história em 15. plot ((lowest, title = "Preço mais baixo na linha K histórica:", color = color.red, overlay=true) A impressão de deslocamento abaixo mostra um pouco de problema e não sei como alterá-la. highestbars := ta.highestbars ((high, ishistory_length) // Reapropriação do desvio máximo de 15 para o comprimento da linha K da história. plot ((highestbars, title = "Alto desvio de preço na linha K histórica:", color = color.orange, overlay=true) lowestbars := ta.lowestbars ((low, ishistory_length) // desvio de valor mínimo de um dado número de k linhas passadas. plot ((lowestbars, title = "Desvio de preços baixos na linha K histórica:", color = color.white, overlay=true) " ' Há ainda três pequenas perguntas para aprender: 1, desde que a função embutida pine seja chamada, para obter o valor máximo ou mínimo da história, no código, como high, e high [1], eles têm o mesmo resultado, certo? Se eu precisar de chamar esses valores mais tarde na política, eu posso usar o valor mais alto ou o valor mais baixo diretamente na condição da política, certo? 3, a impressão de deslocamento acima mostra um pouco de problema e não sei como alterá-la.

Sonhos pequenosPara obter o valor máximo e mínimo de uma série de dados de uma determinada faixa, há funções embutidas para uso direto: Não sei. ta.highest ((source, length)) ta.lowest ((source, length)) Não sei. Por exemplo, o valor máximo do preço de fechamento no intervalo de 10 BARs da linha K atual é solicitado: Não sei. highest10 = ta.highest ((close, 10) Não sei.

Sonhos pequenosEstá bem.

Sonhos pequenos1, high, e high[1] Definitivamente não é o mesmo,[] é uma referência de operação histórica, que é uma referência a dados de snapshot no anterior BAR. 2, você pode calcular um valor e registrá-lo com uma variável. 3 Descreva um problema específico, o teste foi feito e não houve problema.