随价格涨跌变色的线(指标编程教程第十一篇:修改物件的颜色属性)

提示

这是 2011 年写的一个系列教程。

前几篇写了几个编程基础:变量选择结构逻辑运算等,那么这一篇就把这些都用上,理论与实践结合,写个实例,帮助理解。

先列出需求,创建一条垂直线,价格涨时,颜色为白色,跌时为红色。这样这个实例里会包括创建一条线if 语句、顺带用一下颜色数据类型

新建一个自定义指标

名称:Indicators\bary-11
作者:Copyright 2012, bary.

OnCalculate() 函数第一次运行的时候,bary_last_price 的值为 0,所以物件的颜色一定是白色,然后会把 close[rates_total-1](当前价格)的值赋值给 bary_last_price,当下次运行 OnCalculate() 的时候,close[rates_total-1] 的值已经更新,但是 bary_last_price 还是前一次的值,所以可以比较出价格是在涨还是在跌。

bary_last_price 是一个全局变量,如果给它放到 OnCalculate() 里声明,那么每次运行 OnCalculate() 的时候都会声明一个,当函数返回的时候这个变量就被释放了,无法保留上一次的价格。前面讲过了。

  • 516

time[rates_total - 1]); // 垂直线的时间坐标为当前时间。 那是不是应该改成time[0]啊 这样才能看到垂直线。 之前不是表示最左边的k线上显示么?

白杉 回复 #1

你说得对,应该用 close[0],我当年写这篇的时候可能脑子抽了。感谢指正。

回复内容较长可以拖右下角↑
回到
顶部