plotar média móvel de um tempo gráfica fixo em outro tempo gráfico

 

Olá, bom dia!

Queria fazer um indicador em teoria simples, mais na prática para mim esta difícil.

Por exemplo, quero que apareça uma media de 50 períodos do gráfico de 1 hora em um gráfico de 1 minuto.

Com a função IMA calculo o valor da média, minha dúvida é como  plotar no gráfico. 

Alguém tem alguma sugestão de como fazer?

At.

Daniel

 
Daniel Andrejczuk:

Olá, bom dia!

Queria fazer um indicador em teoria simples, mais na prática para mim esta difícil.

Por exemplo, quero que apareça uma media de 50 períodos do gráfico de 1 hora em um gráfico de 1 minuto.

Com a função IMA calculo o valor da média, minha dúvida é como  plotar no gráfico. 

Alguém tem alguma sugestão de como fazer?

At.

Daniel


Daniel,


Me lembro de ter visto alguns indicadores prontos e gratuitos na comunidade para isso.

Da uma olhada na biblioteca que vc deve achar. Bem interessante p que gosta de fractais...

abs

PH

 
Paulo Carvalho:


Daniel,


Me lembro de ter visto alguns indicadores prontos e gratuitos na comunidade para isso.

Da uma olhada na biblioteca que vc deve achar. Bem interessante p que gosta de fractais...

abs

PH


Ola Daniel !!!


Acho que vc ta comentando algo sobre isso  ? https://www.mql5.com/pt/code/180


Porem eu preferi eu mesmo fazer, ate pra exercitar e aprender mais sobre mql,... entao fiz 2 funcoes que chamo de qq tempo grafico ao calcular o preco atual...




double MediaTempoM1(datetime Referencia)

{


   MqlRates rates[]; 

   ArraySetAsSeries(rates,true); 

   double MA50=0.0;

   int copied=CopyRates(Symbol(),PERIOD_M1,Referencia,50,rates); 

   if(copied>0) 

     { 

      Print(Referencia+" Barres copiados: "+copied); 

      string format="open = %G, high = %G, low = %G, close = %G, volume = %d"; 

      string out; 

      int size=fmin(copied,50); 

      for(int i=0;i<size;i++) 

        { 

         out=i+":"+TimeToString(rates[i].time); 

         out=out+" "+StringFormat(format, 

                                  rates[i].open, 

                                  rates[i].high, 

                                  rates[i].low, 

                                  rates[i].close, 

                                  rates[i].tick_volume); 

         Print(out); 

         MA50=MA50+rates[i].close;

        } 

     } 

   else Print("Falha ao receber dados históricos para o símbolo ",Symbol()); 

   MA50=NormalizeDouble(MA50/50,2);

   return (MA50);

   }


void PlotaWing(datetime time,double price) 

  { 

//--- 

   string up_arrow="up_arrow"+price+time; 

//--- Se o preço foi obtido 

      ObjectDelete(0,"up_arrow"+price+time);

      ObjectCreate(0,up_arrow,OBJ_ARROW,0,0,0,0,0);          // Cria uma seta 

      ObjectSetInteger(0,up_arrow,OBJPROP_ARROWCODE,159);    // Define o código da seta 

       ObjectSetInteger(0,up_arrow,OBJPROP_COLOR,clrGreenYellow); 

      ObjectSetInteger(0,up_arrow,OBJPROP_TIME,time);        // Define hora 

      ObjectSetDouble(0,up_arrow,OBJPROP_PRICE,price);// Define preço 

  //    ChartRedraw(0);                                        // Desenha a seta agora 


  }




preco=MediaTempoM1(time_atual);

PlotaWing(time,preco);





Espero ter ajudado !!

Médias móveis de múltiplos tempos gráficos [v03]
Médias móveis de múltiplos tempos gráficos [v03]
  • votos: 30
  • 2014.01.14
  • ak20 ak20
  • www.mql5.com
Indicado Média Móvel que pode ser aplicado para qualquer tempo gráfico (maior ou menor que o período gráfico atual). Incluso: SMA, EMA, SMMA, LWMA, AMA, DEMA, TEMA, FRAMA, e VIDYA
 

Opa, perfeito!

Vou verificar a sua postagem. Ainda não resolvi essa questão!

Abraços

Daniel

 
Daniel Andrejczuk:

Opa, perfeito!

Vou verificar a sua postagem. Ainda não resolvi essa questão!

Abraços

Daniel


Basta procurar na Base de Códigos por "HTF", que significa "Higher TimeFrames".

https://www.mql5.com/pt/search#!keyword=HTF&module=mql5_module_codebase

Abraços,
Malacarne

 

Obrigado!

Razão: