zoukankan      html  css  js  c++  java
  • 量化投资_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/

  • 相关阅读:
    Angular相关UI框架的安装
    Visual Studio Code 编辑器常用插件
    Groovy特性
    Notification(Android)消息推送机制
    Sublime SVN插件使用方法 PS:翻出来的旧笔记,现在Sublime和svn用的都不多了
    Python基本语法练习笔记(一)
    首篇博文占坑
    apache2修改用户和组
    如何修改script.bin/script.fex
    perl的INC设置
  • 原文地址:https://www.cnblogs.com/noah0532/p/13688221.html
Copyright © 2011-2022 走看看