Sila tunjukkan cara penulisan harga tertinggi dan harga terendah dalam tempoh sejarah.

Penulis:harapan, Dicipta: 2022-10-17 00:13:14, Dikemas kini: 2022-10-17 15:28:07

Sila tunjukkan cara penulisan harga tertinggi dan harga terendah dalam jangka masa 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)

Walaupun telah mempelajari tutorial pengenalan bahasa PINE, jumlah jumlah atau saiz elemen dalam array boleh digunakan, tetapi tidak akan ditulis semula untuk menukar K-string sejarah! Sila beri panduan mengenai definisi pembolehubah, perbandingan dengan harga tinggi sejarah, harga rendah sejarah, harga tinggi sejarah dan harga rendah sejarah, terima kasih.


Lebih lanjut

harapanTidak ada masalah lagi, selepas cetak grafik dan menukarnya kepada gambar tambahan, gambar utama akan muncul dengan baik.

harapanBaiklah, terima kasih, ini adalah kod yang telah diubah: '' indicator (("mengira harga tertinggi, harga terendah dalam tempoh sejarah") // Tujuan: Untuk mencari harga tertinggi sebelum memulakan pesanan (masukkan panjang sejarah) atau harga minimum untuk mengira harga berhenti rugi tunggal. var ishistory_length = input.int(15, title = "ishistory length", minval=1, maxval=100, step=1) // menentukan pembolehubah, panjang sejarah, input adalah 15, minimum 1, maksimum 100, panjang langkah 1 - Tidak. var float highest = na // nilai tertinggi bagi nombor yang diberikan pada k baris yang lalu. var float lowest = na // nilai terendah bagi nombor yang diberikan pada k baris yang lalu. var float highestbars = na // penyesuaian nilai tertinggi pada bilangan yang diberikan pada baris k yang lalu. var float lowestbars = na // perpindahan nilai terendah pada nombor yang diberikan pada baris k yang lalu. highest := ta.highest ((high, ishistory_length) // Mendefinisikan semula nilai tertinggi untuk panjang K baris sejarah 15. plot ((highest, title = "Highest price in historical K line:", color = color.blue, overlay=true) lowest := ta.lowest ((low, ishistory_length) // Mengubah semula nilai minimum untuk panjang K-string sejarah menjadi 15. plot ((lowest, title = "harga terendah dalam garisan K sejarah:", color = color.red, overlay=true) highest := ta.highest ((high[1], ishistory_length) // Mengubah semula nilai tertinggi untuk panjang baris K 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 semula nilai minimum sepanjang K baris sejarah kepada 15. plot ((lowest, title = "harga terendah dalam garisan K sejarah:", color = color.red, overlay=true) Gambar di bawah menunjukkan sedikit masalah dengan cetakan bias dan tidak tahu bagaimana untuk mengubahnya. highestbars := ta.highestbars ((high, ishistory_length) // Mendefinisikan semula deviasi maksimum sepanjang K-line sejarah sebagai 15. plot ((highestbars, title = "pergeseran harga tertinggi dalam garisan K sejarah:", color = color.orange, overlay=true) lowestbars := ta.lowestbars ((low, ishistory_length) // perpindahan nilai minimum pada nombor tertentu pada k baris yang lalu. plot ((lowestbars, title = "pergeseran harga rendah dalam garisan K sejarah:", color = color.white, overlay=true) '' Ada tiga soalan kecil lagi yang perlu anda pelajari: 1, selagi fungsi terbina dalam pine yang dipanggil, mencari nilai tertinggi atau minimum sejarah, dalam kod, seperti tinggi, dan tinggi [1], mereka mendapat hasil yang sama, kan? 2. jika saya perlu memanggil nilai-nilai ini di kemudian hari dalam strategi, saya boleh menggunakan nilai tertinggi atau terendah secara langsung dalam syarat-syarat strategi, kan? 3, pencetakan bias di atas menunjukkan sedikit masalah, tidak tahu bagaimana untuk mengubahnya.

Mimpi kecilFungsi terbina dalam yang boleh digunakan secara langsung untuk mendapatkan nilai maksimum dan minimum siri data dalam jangkauan tertentu: `` ta.highest ((source, length)) ta.lowest ((source, length)) `` Sebagai contoh, nilai maksimum harga penutupan dalam julat 10 garis K semasa diperlukan: `` tertinggi10 = ta.highest ((close, 10) ``

Mimpi kecilBaiklah.

Mimpi kecil1, tinggi, dan tinggi[1] pasti berbeza,[] adalah rujukan operasi sejarah, yang merujuk kepada data snapshot pada BAR sebelumnya. 2, anda boleh mengira nilai dan mencatatnya dengan pembolehubah. 3. Jelaskan masalah tertentu, ujiannya berjalan, tiada masalah.