Silahkan tunjukkan cara penulisan harga tertinggi dan harga terendah untuk menghitung harga tertinggi dan harga terendah dalam periode sejarah. Terima kasih.

Penulis:harapan, Dibuat: 2022-10-17 00:13:14, Diperbarui: 2022-10-17 15:28:07

Mohon bimbingan untuk menghitung harga tertinggi dan harga terendah dalam periode sejarah, terima kasih.

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)

Meskipun telah mempelajari tutorial pengantar bahasa PINE, Anda dapat menggunakan jumlah bilangan bulat atau ukuran elemen dalam suatu array, tetapi tidak akan mengubahnya dengan mengubah K-string sejarah! Mohon petunjuk tentang definisi variabel, perbandingan dengan harga tinggi historis, harga rendah historis, harga tinggi historis dan harga rendah historis, terima kasih.


Lebih banyak

harapanTidak ada masalah lagi, setelah mencetak grafik dan mengubahnya menjadi gambar tambahan, tema akan terlihat normal.

harapanBaiklah, terima kasih banyak, ini adalah perubahan kode: '' indicator (("menghitung harga tertinggi, harga terendah dalam rentang historis") // Tujuan: Untuk mencari harga tertinggi sebelum membuka order (masukkan panjang sejarah), atau harga terendah, untuk menghitung harga stop loss tunggal. var ishistory_length = input.int(15, title = "ishistory length", minval=1, maxval=100, step=1) // mendefinisikan variabel, panjang sejarah, input 15, minimal 1, maksimum 100, panjang langkah 1 / Tidak. var float highest = na // nilai tertinggi dari jumlah yang diberikan pada k baris sebelumnya. var float lowest = na // nilai terendah dari jumlah yang diberikan pada k baris sebelumnya. var float highestbars = na // pergeseran nilai tertinggi dari jumlah yang diberikan pada k baris sebelumnya. var float lowestbars = na // pergeseran nilai minimum dari jumlah yang diberikan pada k baris sebelumnya. highest := ta.highest ((high, ishistory_length) // Mendefinisikan ulang nilai tertinggi dari panjang K-line sejarah menjadi 15. plot ((highest, title = "Highest price in historical K line:", color = color.blue, overlay=true) lowest := ta.lowest ((low, ishistory_length) // Mendefinisikan ulang panjang baris K sejarah menjadi 15 sebagai minimum. plot ((lowest, title = "harga terendah dalam garis K sejarah:", color = color.red, overlay=true) highest := ta.highest ((high[1], ishistory_length) // Mendefinisikan ulang nilai tertinggi dari panjang K-line sejarah menjadi 15. plot ((highest, title = "Highest price in historical K line:", color = color.blue, overlay=true) lowest := ta.lowest ((low[1], ishistory_length) // Mendefinisikan ulang panjang baris K sejarah menjadi 15 sebagai minimum. plot ((lowest, title = "harga terendah dalam garis K sejarah:", color = color.red, overlay=true) Gambar di bawah ini menunjukkan sedikit masalah dengan cetakan bias, dan saya tidak tahu bagaimana mengubahnya. highestbars := ta.highestbars ((high, ishistory_length) // Mendefinisikan ulang deviasi maksimum dari panjang K-line sejarah menjadi 15. plot ((highestbars, title = "pergeseran harga tertinggi dalam garis K sejarah:", color = color.orange, overlay=true) lowestbars := ta.lowestbars ((low, ishistory_length) // pergeseran nilai minimum dari jumlah yang diberikan pada k baris sebelumnya. plot ((lowestbars, title = "pergeseran harga terendah dalam garis K sejarah:", color = color.white, overlay=true) '' Ada tiga pertanyaan kecil lagi yang ingin Anda pelajari: 1, selama fungsi built-in pine yang dipanggil, mencari nilai tertinggi atau minimum sejarah, dalam kode, seperti tinggi, dan tinggi [1], mereka semua menghasilkan hasil yang sama, kan? Jika saya ingin memanggil nilai-nilai ini di kemudian hari dalam strategi, saya bisa langsung menggunakan tanda tertinggi atau tanda terendah dalam kondisi strategi, kan? 3, cetakan pergeseran di atas menunjukkan sedikit masalah, tidak tahu bagaimana mengubahnya.

Mimpi kecilFungsi built-in yang dapat digunakan secara langsung untuk menentukan nilai maksimum dan minimum dari rangkaian data dalam jangkauan tertentu: `` ta.highest ((source, length)) ta.lowest ((source, length)) `` Misalnya, Anda memerlukan nilai maksimum dari harga penutupan dalam kisaran 10 garis K BAR saat ini: `` highest10 = ta.highest ((close, 10)) ``

Mimpi kecilBaiklah.

Mimpi kecil1, high, dan high[1] tentu berbeda,[] adalah referensi operasi sejarah, yang mengacu pada data snapshot pada BAR sebelumnya. 2, Anda menghitung suatu nilai dan mencatatnya dengan variabel. 3, Jelaskan masalah spesifik, uji coba berjalan, tidak ada masalah.