关于CurrentBar实时取值

老师,您好!下面一段代码是求历史最高价与历史最低价,并Plot显示,在非实盘情况下,一切正常,但在实盘时,最后一个hisHigh及hisLow就不正确,导致线形扭曲。不知何故?怎样才能解决这个问题?顺便说一句,用系统提供的Highest与Lowest求值,更不正确。

Numeric hisHigh; // 用以储存历史最高价

Numeric hisLow; // 用以储存历史最低价

// 赋初值

hisHigh = High[CurrentBar];

hisLow = Low{CurrentBar];

// 循环求值

For i = CurrentBar Downto 0

{

   If(High[i] >= hisHigh) hisHigh = High[i]; // 历史最高价

   If(Low[i] <= hisLow) hisLow = Low[i]; // 历史最低价

}

// 可视化

PlotNumeric("plt_hisHigh",  hisHigh);

PlotNumeric("plt_hisLow",  hisLow);


知道CurrentBar后,取值问题
关于引用取值
关于使用变量取值
关于实时资金曲线
关于定义变量无法取值
编写取值问题
成交记录取值
关于通过API调用实时数据
开仓K实时开仓,并同K实时止损
帮忙看下CloseD(1) 取值为0的情况

你这个算法的运算效率太低了.....你有计算过你的运算量吗?

如果你样本数有1000,第一根循环1次,第二根循环2次,以此类推,第1000根循环1000次,总共50050次计算

明明只用1000次计算就能达到效果

series<Numeric> hisHigh; // 用以储存历史最高价
series<Numeric> hisLow; // 用以储存历史最低价

hisHigh = max(hisHigh,high);
hisLow = min(hisLow,low);
PlotNumeric("plt_hisHigh",  hisHigh);

PlotNumeric("plt_hisLow",  hisLow);


您说的对!👍,不过,我说的那个问题不知是否能解决了,我来试下。

掉一把铜斧头到水里 捞起来一把金斧头 嘿嘿

完美解决,还是老师厉害,代码效率高太多了!顺便提一下,hisLow需要赋一个很大的初值,否则结果会是0。谢谢!

确实如此,这比喻形象。👍