S'il vous plaît aidez-moi à écrire correctement le prix le plus élevé et le prix le plus bas dans la période historique. Merci.

Auteur:l'espoir, Créé: 2022-10-17 00:13:14, mis à jour: 2022-10-17 15:28:07

S'il vous plaît aidez-moi à écrire correctement le prix le plus élevé et le prix le plus bas dans la période historique. Merci.

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)

Bien que vous ayez appris le tutoriel d'introduction de la langue PINE, vous pouvez utiliser la somme des nombres ou la taille des éléments d'une matrice, mais cela ne changera rien à l'historique de la ligne K! Veuillez nous guider dans la définition des variables, pour une comparaison avec les prix historiques élevés et bas historiques, pour des prix historiques élevés et bas historiques, merci.


Plus de

l'espoirIl n'y a pas de problème, le thème s'affiche normalement après avoir imprimé le graphique et l'avoir remplacé par un graphique supplémentaire.

l'espoirBon, merci beaucoup, c'est le code qui a été modifié: Je ne sais pas. indicateur ((" calculer le prix le plus élevé, le prix le plus bas dans la période historique ") // Objectif: Pour obtenir le prix le plus élevé avant l'ouverture (l'entrée de la longueur de l'historique), ou le prix le plus bas, pour calculer le prix d'ouverture à perte unique. var ishistory_length = input.int ((15, title = "ishistory length", minval=1, maxval=100, step=1) // définir une variable, la longueur de l'histoire, une entrée de 15, une valeur minimale de 1, une valeur maximale de 100, une longueur de pas de 1 Je suis désolé. var float highest = na // la valeur la plus élevée d'un nombre donné de lignes k passées. var float lowest = na // la valeur la plus basse d'un nombre donné de lignes k passées. var float highestbars = na // déviation de la valeur la plus élevée d'un nombre donné de lignes k passées. var float lowestbars = na // déviation de la valeur la plus basse d'un nombre donné de lignes k passées. highest := ta.highest ((high, ishistory_length) // réaffiche la valeur maximale de la longueur de la ligne K de l'histoire à 15. plot ((highest, title = "Le prix le plus élevé dans la ligne K historique:", color = color.blue, overlay=true) lowest := ta.lowest ((low, ishistory_length) // réattribue une valeur minimale de 15 à la longueur de la ligne K de l'histoire. plot ((lowest, title = "Prix le plus bas dans la ligne K historique:", color = color.red, overlay = true) highest := ta.highest ((high[1], ishistory_length) // réattribue la valeur maximale de la longueur de la ligne K de l'histoire à 15. plot ((highest, title = "Le prix le plus élevé dans la ligne K historique:", color = color.blue, overlay=true) lowest := ta.lowest ((low[1], ishistory_length) // réattribue une valeur minimale de 15 à la longueur de la ligne K de l'histoire. plot ((lowest, title = "Prix le plus bas dans la ligne K historique:", color = color.red, overlay = true) L'impression de décalage ci-dessous montre un problème et je ne sais pas comment le modifier. highestbars := ta.highestbars ((high, ishistory_length) // réattribue le maximum de déviation de la longueur de la ligne K historique à 15. plot ((highestbars, title = "Le décalage des prix les plus élevés dans la ligne K historique:", color = color.orange, overlay=true) lowestbars := ta.lowestbars ((low, ishistory_length) // déviation de la valeur minimale d'un nombre donné de lignes k dans le passé. plot ((lowestbars, title = "L'écart de prix le plus bas de la ligne K historique:", color = color.white, overlay=true) Je ne sais pas. Il y a aussi trois petites questions à se poser: 1, tant que la fonction intégrée pine est appelée et que la valeur maximale ou minimale de l'historique est demandée, dans le code, comme high, et high[1], ils obtiennent le même résultat, non? Deuxièmement, si je dois appeler ces valeurs plus tard dans la stratégie, je peux utiliser directement la barre la plus haute ou la barre la plus basse dans la condition de la stratégie, n'est-ce pas? 3° L'impression de décalage ci-dessus montre un petit problème et je ne sais pas comment le modifier.

Le petit rêveLes valeurs maximales et minimales d'une série de données dans une certaine plage sont des fonctions intégrées qui peuvent être utilisées directement: Je ne sais pas. ta.highest (source, longueur) ta.lowest (source, longueur) Je ne sais pas. Par exemple, la valeur maximale de la clôture demandée dans la plage des 10 BAR de la ligne K actuelle: Je ne sais pas. highest10 = ta.highest ((close, 10)) Je ne sais pas.

Le petit rêveÇa va.

Le petit rêve1, high, et high[1] ne sont certainement pas les mêmes, [] sont des références d'opérations historiques, qui sont des références de données de snapshot sur le précédent BAR. 2° Vous pouvez calculer une valeur et l'enregistrer en utilisant des variables. 3° Décrivez le problème spécifique, le test s'est déroulé sans aucun problème.