量化投资_EasyLanguage/PowerLanguage教学课程__【第一篇基础】__【第八章色彩】

第八章:色彩

第一节:色彩设定

  后面会用几个章节讲与画图相关的内容,画图是金融分析和程序化设计中非常重要的环节,把计算的结果显示在图表上面也是非常好的。

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 指标。当指标由 550 时,渐变色由品红
渐变为白色:
Variable:ADXValue(0);
ADXValue=ADX(14);
Plot1(ADXValue,"ADXValue");
SetPlotColor(1,GradientColor (ADXValue,5,50,Magenta,White));

 【小结】:渐变色的最小值和最大值,就好比调整渐变色的进度条,可以设置渐变颜色的范围。

=================================================

之前的文章感谢大家的转载,希望转载时请注明出处,本人转自其它网站的图表一并感谢,谢谢~!

https://www.cnblogs.com/noah0532/

原文地址:https://www.cnblogs.com/noah0532/p/13688221.html