第八章:色彩
第一节:色彩设定
后面会用几个章节讲与画图相关的内容,画图是金融分析和程序化设计中非常重要的环节,把计算的结果显示在图表上面也是非常好的。
1.1 LegacyColorValue指定EL中颜色所采用的色码表示方式
正如其他语言对颜色的代码描述一样,颜色会有不同的色彩编码表示方式,如纯色、RGB颜色等等。这个功能会指定MC当中对于色彩的表示方式是采用哪种编码。当然你也可以不进行设定,MC默认的是传统的色码,用英文单词来表示。
# 语法:
语法 [LegacyColorValue = LogicalValue] 参数 LogicalValue——true/false 值,true 启用传统色码,false 禁用传统色码。 如果属性设定为 false,或者代码中没有设定,则PowerLanguage 颜色采用 RGB 色码表示。 如果[LegacyColorValue = true],则使用传统的 16 位色码。
# 说明:这个功能的开始时需要在整个代码的顶部用方括号来显示,后面很多诸如bar内交易的设定等等。其在MC中的代码编辑中,很多设定的编码都是采用这种方式的安排。
# 示例:其实大多数的情况下,这个设定并不需要
启用传统色码 [LegacyColorValue = True]; 使用传统色码画绿色线 [LegacyColorValue = True]; Plot1(Open); SetPlotColor(1,4); 使用 RGB 色码画绿色线 [LegacyColorValue = True]; Plot1(Open); SetPlotColor (1,65280); 将绿色的传统色码值赋值给 变量 Value1(Value1 得到的值为 4) [LegacyColorValue = True]; Value1=Green; 将绿色的 RGB 色码值赋值给 变量 Value1(Value1 得到的值为 65280) [LegacyColorValue = False]; Value1=Green;
第二节:传统色码或RGB色码
EL提供了两种代码的书写程序代码的方式,一种是传统色码,一种是RGB色码,另外,我们还可以用颜色的英文表示方式来对色彩进行表示,下面是他们对应的表。另外,我们还可以通过设定RGB的色码表示方式,显示除这个表之外,更加丰富的色彩,后面会提到。
常用色码对照表:
2.1 RGB颜色
RGB颜色是有三色进行表示,分别是蓝色、绿色、红色,分别对应Blue,Green,Red。RGB色彩有16进制表示方式,且有24位( RGB 888 3个字节)和16位的色彩(RGB 565 2个字节)表示,也可以用三色值表示,每个RGB中的三种颜色分别取值范围0~255。关于RGB的表示可以参照有关的资料。上图的RGB颜色表示方式为16为的色彩表示方式,但是这种表示方式其实在并不是太好。
网址:https://www.sioe.cn/yingyong/yanse-rgb-16/
上面提供一个网址,可以方便的对RGB颜色进行查阅,另外还可以通过打卡PhotoShop的颜色管理器取值。
RGB
# 语法:
语法 RGB (Red,Green,Blue) 参数 Red——数值表达式,指定 RGB 色码中的红原色,取值介于 0~255 之间。 Green——数值表达式,指定 RGB 色码中的绿原色,取值介于 0~255 之间。 Blue——数值表达式,指定 RGB 色码中的蓝原色,取值介于 0~255 之间。
# 说明:
可以通过设定RGB颜色,对画图的显示颜色进行设定
# 示例:
用 RGB 色码组成新画一条橙色线: Plot1(Open); SetPlotColor(1,RGB(224,160,32));
2.2 RGBToLegacyColor
# 语法:
语法 RGBToLegacyColor(RGBColorValue) 参数 RGBColorValue——RGB 色码,取值范围(0~16777215)
# 说明:
将指定的RGB色码值转换成传统色码值。取值范围0~16
# 示例:
将 RGB 色码 65280 对应最近匹配的传统色码(green)赋值给 Value1,则 Value1=4: Value1=RGBToLegacyColor(65280);
2.3 LegacyColorToRGB
# 语法:
语法 LegacyColorToRGB(LegacyColorValue) 参数 LegacyColorValue——传统色码,取值范围(0~16)。
# 说明:
将制定的传统色码转换成RGB色码值。RGB色码取值范围为0~16777215
# 示例:
将传统色码 4(绿色)所对应的 RGB 色码赋值给 Value1,则 Value1=65280: Value1 = LegacyColorToRGB(4);
2.4 GetBValue、GetGValue、GetRValue
# 语法:
语法 GetBValue(BigRGBValue) 参数 BigRGBValue——RGB 色码,取值 0~16777215。 语法 GetGValue(BigRGBValue) 参数 BigRGBValue——RGB 色码,取值 0~16777215。 语法 GetRValue(BigRGBValue) 参数 BigRGBValue——RGB 色码,取值 0~16777215。
# 说明:
取得 RGB 色码的蓝色元素值,范围为 0~255。 取得 RGB 色码的绿色元素值,范围为 0~255。 取得 RGB 色码的红色元素值,范围是 0~255
# 示例:
将 RGB 色码为 2138336(橙色)的蓝色元素值赋值给 Value1, Value1 的值变为 32: Value1=GetBValue(2138336); 将 RGB 色码为 2138336(橙色)的绿色元素值赋值给 Value1, Value1 的值变为 160: Value1=GetGValue(2138336); 将 RGB 色码为 2138336(橙色)的红色元素值赋值给 Value1, Value1 的值变为 224: Value1=GetRValue(2138336);
【小结】:其实这里面的一些方法实际用途不大,记住RGB的设定即可,这个在有些应用还是较多,其中在EL中RGB的设定采用16位的方式,这种非常不常用,大多都是采用14位或者最常用的16进制表示方式
第三节:渐变色
我们看到很多的画图生成过程,会生成一些非常漂亮的渐变显示颜色。可以通过GradientColor进行渐变色的设定。
3.1 GradientColor渐变色设定
# 语法:
语法 GradientColor(参考值,最小值,最大值,下限颜色,上限颜色)
参数
参考值——数值表达式,要计算色彩的参考数值。
最小值——数值表达式,数值范围的最小值,小于等于此值
都是对应到下限色彩。
最大值——数值表达式,数值范围的最大值,大于等于此值
都是对应到上限色彩。
下限颜色——数值表达式,设定色彩范围的开始值。
上限颜色——数值表达式,设定色彩范围的结束值。
# 说明:
根据定义的色彩范围,返回对应的渐变色RGB色码。渐变色对应的RGB色码是由使用者定义的参考值、最大值、最小值和参考色彩范围决定的。
例如:色彩范围指定为白色到黑色,最小值为0,最大值为2,当数值等于0时,GradientColor会返回白色,当数值为1时,GradientColor会返回灰色,当数值大于2时,GradientColor会返回黑色。
# 示例:
用渐变色画出 ADX 指标。当指标由 5 到 50 时,渐变色由品红 渐变为白色: Variable:ADXValue(0); ADXValue=ADX(14); Plot1(ADXValue,"ADXValue"); SetPlotColor(1,GradientColor (ADXValue,5,50,Magenta,White));
【小结】:渐变色的最小值和最大值,就好比调整渐变色的进度条,可以设置渐变颜色的范围。
=================================================
之前的文章感谢大家的转载,希望转载时请注明出处,本人转自其它网站的图表一并感谢,谢谢~!
https://www.cnblogs.com/noah0532/