В процессе загрузки ресурсов... загрузка...

Пожалуйста, дайте мне указание, как правильно написать самые высокие цены и самые низкие цены в историческом диапазоне.

Автор:надежда, Создано: 2022-10-17 00:13:14, Обновлено: 2022-10-17 15:28:07

Пожалуйста, дайте мне указание на то, как правильно написать максимальную и минимальную цену в историческом диапазоне. Спасибо.

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)

Несмотря на то, что мы изучали вводные уроки языка PINE, сумма матриц или элементы в матрицах могут быть относительно большими, но за историю K-строки не будет переписано! Пожалуйста, дайте мне указание на определение переменных, чтобы сравнить их с историческими высокими ценами, историческими низкими ценами, историческими высокими ценами и историческими низкими ценами.


Больше

надеждаНикаких проблем, после того, как график был отпечатан и переведен в таблицу, тематика отображается нормально.

надеждаХорошо, спасибо, это измененный код: '' indicator (("Расчет максимальной цены в историческом диапазоне, минимальной цены") ") // Цель: выяснить максимальную цену перед открытием сделки (введите длину истории) или минимальную цену для расчета цены на однократный отказ от покупки. var ishistory_length = input.int ((15, title = "ishistory length", minval=1, maxval=100, step=1) // определение переменной, длина истории, ввод 15, минимальный 1, максимальный 100, длина шага 1 - Я не знаю. var float highest = na // самый высокий из числа, прошедшего через k строки. var float lowest = na // наименьшее значение заданного количества прошлых к строк. var float highestbars = na // отклонение наивысшего значения за данное число прошлых k строк. var float lowestbars = na // Минимальное значение отклонения заданного числа прошлых k строк. highest := ta.highest ((high, ishistory_length) // переназначить максимальное значение длины истории K-строки в 15. plot ((highest, title = "высокая цена в исторической K-линии:", color = color.blue, overlay=true) lowest := ta.lowest ((low, ishistory_length) // переназначить минимальное значение длины истории K-строки на 15. plot ((lowest, title = "Низкая цена в исторической K-линии:", color = color.red, overlay=true) highest:= ta.highest ((high[1], ishistory_length) // переназначение максимального значения длины K-строки истории 15. plot ((highest, title = "высокая цена в исторической K-линии:", color = color.blue, overlay=true) lowest := ta.lowest ((low[1], ishistory_length) // переназначение минимального значения длины истории K-строки на 15. plot ((lowest, title = "Низкая цена в исторической K-линии:", color = color.red, overlay=true) Ниже изображены сдвиги, которые показывают некоторые проблемы, и я не знаю, как их изменить. highestbars := ta.highestbars ((high, ishistory_length) // переназначение максимального значения отклонения длины истории K-строки на 15. plot ((highestbars, title = "Высокие ценовые отклонения в исторической K-линии:", color = color.orange, overlay=true) lowestbars := ta.lowestbars ((low, ishistory_length) // Минимальное значение отклонения заданного числа в прошедшем k-строке. plot ((lowestbars, title = "Низкие ценовые отклонения в исторической K-линии:", color = color.white, overlay=true) '' У меня есть еще три маленьких вопроса: 1, если вызывать встроенную функцию pine и искать историю максимума или минимума, то в коде, например, high, и high[1], они получают одинаковые результаты, верно? Если я захочу вызвать эти значения позже в стратегии, я могу использовать прямо в условиях стратегии "высочайший" или "низкий" кнопки, верно? 3, печать с отклонениями выше показывает небольшую проблему, и я не знаю, как ее изменить.

Изобретатели количественного измерения - мечтыМаксимальные и минимальные значения ряда данных в определенном диапазоне, имеющие встроенные функции для прямого использования: ` ` ta.highest ((source, length)) ta.lowest ((source, length)) ` ` Например, требуется максимальная цена закрытия в диапазоне 10 текущих K-линий BAR: ` ` highest10 = ta.highest ((close, 10)) ` `

Изобретатели количественного измерения - мечтыХорошо.

Изобретатели количественного измерения - мечты1, high, и high[1] определенно не то же самое, [] является исторической операционной ссылкой, которая ссылается на данные заголовков на предыдущей BAR. 2, вы можете вычислить значение и записать его с помощью переменных. 3, Опишите конкретную проблему, тест прошел, нет проблем.