Indicadores: Chama

 

Chama:

O indicador mostra o método de desenho de áreas semitransparentes gradientes com taxa de atualização independente.

MetaTrader 5 Flame Indicator

Autor: Renat Fatkhullin

 

Li, estudei, procurei, surgiram algumas perguntas para as quais não encontrei resposta (talvez eu não estivesse procurando bem), bem como um pequeno desejo em termos de ChartRedraw(ExtChartID) em OnDeinit.

  double g=0,b=0,dg=1.5,db=0.63;
//---
   for(uint a,i=0;i<256;i++)
     {
      //--- os primeiros 32 valores de chama são completamente transparentes
      a=uchar(i<32?0:i-32);
      //--- forma a cor para o valor da chama i
      ExtPal[i]=(a<<24)|(uint(255)<<16)|(uint(g+0.5)<<8)|uint(b+0.5);
      //--- incrementar componentes de cor
      //--- o vermelho é graduado devido à transparência da cor
      if(i>80)  g+=dg;
      if(i>160) b+=db;
     }

1) Durante muito tempo, não consegui entender como a cor era coletada (eu não sabia o que eram operações bit a bit, em nenhum lugar da ajuda esse formato de aquisição de cores é descrito, e o principal é que a ajuda diz:

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

Está certo que o primeiro byte é responsável pela transparência e é levado em conta ( (a<<24))????

2) Por que, ao alternar o TF, a chama é reacendida a partir do meio da largura da janela (às vezes isso não acontece a partir do meio) ?????

3) Por que, ao anexar vários indicadores em diferentes pares de moedas, o trabalho deles interfere um no outro (oscilação constante) ????? E se for na mesma moeda, mas com TFs diferentes - quase nada.

4) Onde posso ver a correlação entre o código de geração de eventos e o ID int do evento gerado , por que eles são diferentes?

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

ALXIMIKS: 

4) Onde posso ver a correlação entre o código de geração de eventos e o int id do evento gerado , por que eles são diferentes?

const int id em OnChartEvent é obtido como a soma de (int) CHARTEVENT_CUSTOM e seu identificador de evento personalizado em EventChartCustom:

int id = (int) CHARTEVENT_CUSTOM + 1302;
// (int) CHARTEVENT_CUSTOM = 1000;
Confira o exemplo no link abaixo.
 

A cor, em um sentido geral, não leva em conta os bytes de transparência quando usada em objetos gráficos.

Mas está disponível junto com sinalizadores de transparência especiais ao usar a tela.