指标: 火焰(Flame)

 

火焰(Flame):

本指标演示了使用独立刷新率和渐进色半透明绘制区域的方法.

作者: MetaQuotes Software Corp.

 

我阅读、研究、查找,发现了一些问题,但我没有找到答案(也许是我找得不够好),还有一个关于 OnDeinit 中ChartRedraw(ExtChartID) 的小愿望。

  double g=0,b=0,dg=1.5,db=0.63;
//---
   for(uint a,i=0;i<256;i++)
     {
      //--- 前 32 个火焰值完全透明
      a=uchar(i<32?0:i-32);
      //--- 形成火焰值 i 的颜色
      ExtPal[i]=(a<<24)|(uint(255)<<16)|(uint(g+0.5)<<8)|uint(b+0.5);
      //--- 增加颜色成分
      //--- 由于颜色的透明度,红色被分级
      if(i>80)  g+=dg;
      if(i>160) b+=db;
     }

1)很长时间以来,我都不明白颜色是如何采集的(我不知道什么是位操作,帮助中也没有描述这种颜色采集格式,最主要的是帮助中说:"我不知道什么是位操作,帮助 中也没有描述这种颜色采集格式,最主要的是帮助中说:"我不知道什么是位操作,帮助中 也没有描述这种颜色采集格式:

Тип color предназначен для хранения информации о цвете и занимает в памяти 4 байта. Первый байт не учитывается, остальные 3 байта содержат RGB-составляющие.

第一个字节负责透明度 并将其考虑在内(a<<24))????),这是否正确?

2) 为什么在切换 TF 时,火焰会从窗口宽度的中间重新燃起(有时不是从中间) ?????

3) 为何在不同货币对上附加多个指标时,它们的工作会相互干扰(不断闪烁) ?????如果是同一货币但不同的 TF,则几乎完全不会。

4) 我在哪里可以看到事件生成代码和 生成 事件的 int id 之间的相关性,为什么它们不一样?

EventChartCustom(ExtChartID,1302,0,0,NULL);
void OnChartEvent(const int id,const long &lp,const double &dp,const string &sp) // id=2302
 

ALXIMIKS: 

4) 我在哪里可以看到事件生成代码和 生成 事件 int id 之间的相关性,为什么它们不一样?

OnChartEvent 中的const int id (int) CHARTEVENT_CUSTOMEventChartCustom 中的自定义事件标识符之和:

int id = (int) CHARTEVENT_CUSTOM + 1302;
// (int) CHARTEVENT_CUSTOM = 1000;
请查看下面 链接中的示例。
 

在图形对象中使用颜色时,一般不考虑透明度字节。

但在使用画布时,它可以与特殊的透明度标志一起使用。