Neo traderBot

Neo traderBot

Você sabia?

Abordamos o tema de automatização de estratégias em NTSL, MQL5 e NinjaScript!

leaf leftleaf right
Notifications
Clear all

Up Down Volume: Indicador de Volume de Compra e Venda

2 Posts
2 Usuários
1 Reactions
374 Visualizações
Credson
(@m4tr1xbr)
Membro Moderator
Registrou: 2 anos atrás
Posts: 45
Iniciador do tópico  

Esse indicador plota o volume de compra acima de zero e o volume de venda abaixa de zero, dentro de uma mesma barra.
Você pode utilizar o código a votante e/ou modificá-lo desde que concorde com os termos da Mozilla Public License 2.0, disponível em:// https://mozilla.org/MPL/2.0/  

O indicador também estará disponível, com código fonte aberto, através da loja de indicadores da Neológica com o nome: "Up Down Volume Indicator".

 

// PARAMETROS ==========================================================================
input

  pMediaUp(9);
  pMediaDwn(9);
  pPlotMedia(false);

// VARIÁVEIS ==========================================================================
var

  fClose      :float;
  fOpen       :float;
  fRange      :float;
  fVolume     :float;
  fUpVolume   :float;
  fDwnVolume     :float;
  fBuyVolume  :float;
  fSellVolume :float; 
  iUpColor    :integer;
  iDwnColor   :integer;
  fMediaUp    :float;
  fMediaDwn   :float;

// INÍCIO DO CÓDIGO ==========================================================================
begin

  fClose   :=Close[0];
  fOpen    :=Open[0];
  fRange   :=(High[0]-Low[0]);         //cálcula o range da barra
  fVolume  :=Volume[0];                //Atribui o valor do volume a variável fVolume
  iUpColor :=RGB(38,166,154);   //Cor do volume de Compra
  iDwnColor:=RGB(255,82,0);    //Cor do volume de venda
  
 	 if (fClose > fOpen) then
			      fUpVolume:=(fRange/(2*fRange+fOpen-fClose))*fVolume
			
			else if (fClose < fOpen) then
      fUpVolume:=((fRange+fClose-fOpen)/(2*fRange+fClose-fOpen))*fVolume
			
   else if (fClose=fOpen) then	
      fUpVolume:=fVolume/2;
		   
   fDwnVolume:= fVolume - fUpVolume;

   fBuyVolume[0]:=fUpVolume;
   fSellVolume[0]:=Neg(fDwnVolume);

   fMediaUp :=MediaExp(9,fBuyVolume);
   fMediaDwn:=MediaExp(9,fSellVolume);

// PLOTS ==========================================================================       
  plot (Abs(fBuyVolume));
    SetPlotType(1,1);
    SetPlotColor(1,iUpColor);
    
  Plot2 (fSellVolume);
    SetPlotType(2,1);
    SetPlotColor(2,iDwnColor);

  if (pPlotMedia=true) then
      begin
        Plot3 (fMediaUp);
        SetPlotStyle(3,0);
        SetPlotWidth(3,1);
        SetPlotColor(3, clgreen);
  
        Plot4 (fMediaDwn);
        SetPlotStyle(4,0);
        SetPlotWidth(4,1);
        SetPlotColor(4, clred);
     end;

end;

 

 

 

This topic was modified 2 anos atrás 2 times by Credson

   
Citar
(@admin)
Membro Admin
Registrou: 2 anos atrás
Posts: 216
 

Bacana, @m4tr1xbr! Ficou bem legal!

Você pensou em colocar uma média no volume de compra e de venda, configurada via parâmetro e colorir o gráfico apenas se o volume for maior do que a média? Talvez melhore o poder de análise do indicador.

Grande abs e Parabéns!


   
cezarsp123 reacted
ReplyCitar