Por favor, guíame a escribir correctamente el precio más alto y el precio más bajo para calcular el precio histórico. Gracias.

El autor:la esperanza, Creado: 2022-10-17 00:13:14, Actualizado: 2022-10-17 15:28:07

Por favor, guíame en cómo escribir correctamente el precio más alto y el precio más bajo para calcular el precio histórico. Gracias.

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)

A pesar de haber aprendido el tutorial de introducción del lenguaje PINE, la suma de las sumas de las matrices o el tamaño de los elementos de las matrices puede aplicarse, ¡pero no se puede cambiar la historia de K! Por favor, guíame en la definición de las variables, para hacer una comparación con el precio histórico alto, el precio histórico bajo, el precio histórico alto y el precio histórico bajo, gracias.


Más.

la esperanzaNo hay problemas, después de imprimir el gráfico y cambiarlo a un gráfico de complemento, el tema se muestra normal.

la esperanzaBien, gracias, este es el cambio de código: ¿Qué es eso? indicador (("Cálculo de los precios más altos y más bajos en el intervalo histórico") // Propósito: cuando se quiere abrir una orden, se busca el precio más alto antes de abrirla (ingrese la longitud del historial), o el precio más bajo, para calcular el precio de cierre y parada de pérdida. var ishistory_length = input.int(15, title = "ishistory length", minval=1, maxval=100, step=1) // define la variable, la longitud de la historia, la entrada es 15, el mínimo es 1, el máximo es 100, el paso es 1 - ¿Qué quieres? var float highest = na // el valor más alto de un número dado de k líneas pasadas. var float lowest = na // el valor mínimo de un número dado de k líneas pasadas. var float highestbars = na // Desviación del valor máximo de un número dado de k líneas pasadas. var float lowestbars = na // Desviación de los valores mínimos de un número dado de k líneas pasadas. highest := ta.highest ((high, ishistory_length) // Reasigna el valor máximo de la historia K con una longitud de línea de 15. plot ((highest, title = "El precio más alto en la línea K histórica:", color = color.blue, overlay=true) lowest := ta.lowest ((low, ishistory_length) // Reasigna el valor mínimo de la longitud de la línea K de la historia a 15. plot ((lowest, title = "Precio bajo en la línea K histórica:", color = color.red, overlay=true) highest:= ta.highest ((high[1], ishistory_length) // Reasigna el valor máximo de la historia K con una longitud de línea de 15. plot ((highest, title = "El precio más alto en la línea K histórica:", color = color.blue, overlay=true) lowest:= ta.lowest ((low[1], ishistory_length) // Reasigna el valor mínimo de la longitud de la línea K de la historia a 15. plot ((lowest, title = "Precio bajo en la línea K histórica:", color = color.red, overlay=true) La impresión de desplazamiento que aparece a continuación muestra un pequeño problema y no sé cómo cambiarlo. highestbars := ta.highestbars ((high, ishistory_length) // Reasigna el desvío máximo de la longitud de la línea K de la historia a 15. plot ((highestbars, title = "desviación del precio más alto en la línea K histórica:", color = color.orange, overlay=true) lowestbars := ta.lowestbars ((low, ishistory_length) // Desviación del valor mínimo de un número dado de k líneas pasadas. plot ((lowestbars, title = "Desviación de precios bajos en la línea K histórica:", color = color.white, overlay=true) ¿Qué es eso? Hay otras tres preguntas que me gustaría que aprendieras: 1, siempre que se llame a la función pine, la máxima o la mínima de la historia, en el código, como high, y high [1], tienen el mismo resultado, ¿verdad? 2, si necesito llamar a estos valores más adelante en la política, puedo usar el valor más alto o el valor más bajo directamente en las condiciones de la política, ¿verdad? 3, la impresión de desplazamiento de arriba muestra un pequeño problema y no sé cómo cambiarlo.

Un sueño pequeño.Para obtener el valor máximo y mínimo de una serie de datos de un determinado rango, hay funciones integradas que se utilizan directamente: ¿Qué quieres decir? ta.highest ((source, length) ) ) ta.lowest ((source, length) ), el nombre de la página en inglés de la página en cuestión. ¿Qué quieres decir? Por ejemplo, se requiere el valor máximo del precio de cierre en el rango de los 10 BAR de la línea K actuales: ¿Qué quieres decir? más alto 10 = ta.más alto ((close, 10) ¿Qué quieres decir?

Un sueño pequeño.Está bien.

Un sueño pequeño.1, high, y high[1] Definitivamente no es lo mismo,[] es una referencia a la operación histórica, es una referencia a los datos del snapshot en el anterior BAR. 2, puedes calcular un valor y registrarlo con una variable. 3. Describa el problema específico, el test se ejecuta y no hay problemas.