Abordamos o tema de automatização de estratégias em NTSL, MQL5 e NinjaScript!
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;
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!