Novo indicador de volume para mini ínidce da B3

 

Não estou conseguindo colocar estes dois indicadores na CODEBASE, o que devo fazer ?

https://www.mql5.com/pt/code/26421/


indicador 1:

//+------------------------------------------------------------------+
//|                                      VolumeLevelM1M5winfutV2.mq5 |
//|            by kuramaua Copyright 2018, MetaQuotes Software Corp. |
//|                                                 https://mql5.com |
//+------------------------------------------------------------------+
// Nível de volume para BMF mini índice timeframes M1 ou M5 recomendado.
// Função: Detector de Big Player no mini índice da B3 
#property copyright "by kuramaua Copyright 2018, MetaQuotes Software Corp."
#property link      "https://mql5.com"
#property version   "1.00"
#property description "Volume Level WinFut indicator"
#property indicator_separate_window
#property indicator_buffers 10
#property indicator_plots   10
//15
#property indicator_type1   DRAW_HISTOGRAM 
#property indicator_color1  clrWhite  
#property indicator_style1  STYLE_SOLID
#property indicator_width1  2
//high 15
#property indicator_type2   DRAW_HISTOGRAM
#property indicator_color2  clrBlue 
#property indicator_style2  STYLE_SOLID
#property indicator_width2  2
#property indicator_type3   DRAW_HISTOGRAM 
#property indicator_color3  clrRed 
#property indicator_style3  STYLE_SOLID
#property indicator_width3  2
//low 14
#property indicator_type4   DRAW_HISTOGRAM 
#property indicator_color4  clrBlue
#property indicator_style4  STYLE_SOLID
#property indicator_width4  2
#property indicator_type5   DRAW_HISTOGRAM 
#property indicator_color5  clrRed
#property indicator_style5  STYLE_SOLID
#property indicator_width5  2
//13
#property indicator_type6   DRAW_HISTOGRAM 
#property indicator_color6  clrWhite  
#property indicator_style6  STYLE_SOLID
#property indicator_width6  2
//
#property indicator_type7   DRAW_HISTOGRAM
#property indicator_color7  clrRed 
#property indicator_style7  STYLE_SOLID
#property indicator_width7  2
#property indicator_type8   DRAW_HISTOGRAM 
#property indicator_color8  clrBlue 
#property indicator_style8  STYLE_SOLID
#property indicator_width8  2
#property indicator_type9   DRAW_HISTOGRAM 
#property indicator_color9  clrOrange
#property indicator_style9  STYLE_SOLID
#property indicator_width9  2
#property indicator_type10   DRAW_HISTOGRAM 
#property indicator_color10  clrGreen
#property indicator_style10  STYLE_SOLID
#property indicator_width10  2
#property indicator_level1     1
#property indicator_level2     2
#property indicator_level3     3
#property indicator_level4     4
#property indicator_level5     5
#property indicator_level6     6
#property indicator_level7     7
#property indicator_level8     8
#property indicator_level9     9
#property indicator_level10     10
#property indicator_level11     11
#property indicator_level12     12
#property indicator_level13     13
#property indicator_level14     14
#property indicator_levelcolor clrBlack
#property indicator_levelstyle STYLE_SOLID
//--- indicator buffers
double      whiteUp[]; //15
double         BufferHH[];
double         BufferHL[];
double         BufferLH[];
double         BufferLL[];
double      whiteDw[]; //13
double         BufferH1[];
double         BufferH2[];
double         BufferH3[];
double         BufferH4[];

bool emAlta;
int volumeLevel[12];
enum eNível {
   Nível_1, Nível_2,Nível_3,Nível_4,Nível_5,Nível_6,Nível_7,Nível_8,Nível_9,Nível_10,Nível_11,Nível_12
};

input eNível Nível_Superior=9; //Nível superior de atuação.
input eNível Nível_Inferior=7; //Nível inferior de atuação.

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,whiteUp,INDICATOR_DATA);
   SetIndexBuffer(1,BufferHH,INDICATOR_DATA);
   SetIndexBuffer(2,BufferHL,INDICATOR_DATA);
   SetIndexBuffer(3,BufferLH,INDICATOR_DATA);
   SetIndexBuffer(4,BufferLL,INDICATOR_DATA);
   SetIndexBuffer(5,whiteDw,INDICATOR_DATA);
   SetIndexBuffer(6,BufferH1,INDICATOR_DATA);
   SetIndexBuffer(7,BufferH2,INDICATOR_DATA);
   SetIndexBuffer(8,BufferH3,INDICATOR_DATA);
   SetIndexBuffer(9,BufferH4,INDICATOR_DATA);
//--- setting indicator parameters
   IndicatorSetString(INDICATOR_SHORTNAME,".");
   IndicatorSetInteger(INDICATOR_DIGITS,0); //Digits());
//--- setting buffer arrays as timeseries
   ArraySetAsSeries(whiteUp,true);
   ArraySetAsSeries(BufferHH,true);
   ArraySetAsSeries(BufferHL,true);
   ArraySetAsSeries(BufferLH,true);
   ArraySetAsSeries(BufferLL,true);
   ArraySetAsSeries(whiteDw,true);
   ArraySetAsSeries(BufferH1,true);
   ArraySetAsSeries(BufferH2,true);
   ArraySetAsSeries(BufferH3,true);
   ArraySetAsSeries(BufferH4,true);
//---
   volumeLevel[0]=1000;
   volumeLevel[1]=2000;
   volumeLevel[2]=3000;
   volumeLevel[3]=4000;
   volumeLevel[4]=8000;
   volumeLevel[5]=12000;
   volumeLevel[6]=16000;
   volumeLevel[7]=32000;
   volumeLevel[8]=48000;
   volumeLevel[9]=64000;
   volumeLevel[10]=128000;
   volumeLevel[11]=192000;
   
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   long v;
//---
   ArraySetAsSeries(open,true);
   ArraySetAsSeries(high,true);
   ArraySetAsSeries(low,true);
   ArraySetAsSeries(close,true);
   ArraySetAsSeries(volume,true);
//---
   if(rates_total<4) return 0;
//---
   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-1;
      ArrayInitialize(whiteUp,15);
      ArrayInitialize(BufferHH,EMPTY_VALUE);
      ArrayInitialize(BufferHL,EMPTY_VALUE);
      ArrayInitialize(BufferLH,EMPTY_VALUE);
      ArrayInitialize(BufferLL,EMPTY_VALUE);
      ArrayInitialize(whiteDw,13);
      ArrayInitialize(BufferH1,EMPTY_VALUE);
      ArrayInitialize(BufferH2,EMPTY_VALUE);
      ArrayInitialize(BufferH3,EMPTY_VALUE);
      ArrayInitialize(BufferH4,EMPTY_VALUE);
     }

//---
   for(int i=limit; i>=0 && !IsStopped(); i--)
     {
      whiteUp[i]=15;
      whiteDw[i]=13;
      
      if(close[i]>=open[i])
         emAlta=true;
      else
         emAlta=false;
         
      v=volume[i];
      if(v<= volumeLevel[Nível_1])  { //1000
         BufferH4[i]=0;
         BufferH3[i]=0;
         BufferH2[i]=0;
         BufferH1[i]=0;
         sinalizarDireção(Nível_1,i);
      } else if(v<= volumeLevel[Nível_2]) { //2000
         BufferH4[i]=1;
         BufferH3[i]=0;
         BufferH2[i]=0;
         BufferH1[i]=0;
         sinalizarDireção(Nível_2,i);
      } else if(v<= volumeLevel[Nível_3]) { //3000
         BufferH4[i]=2;
         BufferH3[i]=0;
         BufferH2[i]=0;
         BufferH1[i]=0;
         sinalizarDireção(Nível_3,i);
      } else if(v<= volumeLevel[Nível_4]) { //4000
         BufferH4[i]=3;
         BufferH3[i]=0;
         BufferH2[i]=0;
         BufferH1[i]=0;
         sinalizarDireção(Nível_4,i);
      } else if(v<= volumeLevel[Nível_5]) { //8000
         BufferH4[i]=3;
         BufferH3[i]=4;
         BufferH2[i]=0;
         BufferH1[i]=0;
         sinalizarDireção(Nível_5,i);
      } else if(v<= volumeLevel[Nível_6]) { //12000
         BufferH4[i]=3;
         BufferH3[i]=5;
         BufferH2[i]=0;
         BufferH1[i]=0;
         sinalizarDireção(Nível_6,i);
      } else if(v<= volumeLevel[Nível_7]) { //16000
         BufferH4[i]=3;
         BufferH3[i]=6;
         BufferH2[i]=0;
         BufferH1[i]=0;
         sinalizarDireção(Nível_7,i);
      } else if(v<= volumeLevel[Nível_8]) { //32000
         BufferH4[i]=3;
         BufferH3[i]=6;
         BufferH2[i]=7;
         BufferH1[i]=0;
         sinalizarDireção(Nível_8,i);
      } else if(v<= volumeLevel[Nível_9]) { //48000
         BufferH4[i]=3;
         BufferH3[i]=6;
         BufferH2[i]=8;
         BufferH1[i]=0;
         sinalizarDireção(Nível_9,i);
      } else if(v<= volumeLevel[Nível_10]) { //64000
         BufferH4[i]=3;
         BufferH3[i]=6;
         BufferH2[i]=9;
         BufferH1[i]=0;
         sinalizarDireção(Nível_10,i);
      } else if(v<= volumeLevel[Nível_11]) { //128000
         BufferH4[i]=3;
         BufferH3[i]=6;
         BufferH2[i]=9;
         BufferH1[i]=10;
         sinalizarDireção(Nível_11,i);
      } else if(v<= volumeLevel[Nível_12]) { //192000
         BufferH4[i]=3;
         BufferH3[i]=6;
         BufferH2[i]=9;
         BufferH1[i]=11;
         sinalizarDireção(Nível_12,i);
      } else {
         BufferH4[i]=3;
         BufferH3[i]=6;
         BufferH2[i]=9;
         BufferH1[i]=12;
         sinalizarDireção(Nível_12,i);
      }
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
void sinalizarDireção(int n, int i)
{
   if(Nível_Inferior<=n) {
      if(emAlta) {
         BufferLH[i]=14;
         BufferLL[i]=0;
      }
      else {
         BufferLH[i]=0;
         BufferLL[i]=14;
      }
   }
   else {
      BufferLH[i]=0;
      BufferLL[i]=0;
   }
   if(Nível_Superior<=n) {
      if(emAlta) {
         BufferHH[i]=15;
         BufferHL[i]=0;
      }
      else {
         BufferHH[i]=0;
         BufferHL[i]=15;
      }
   }
   else {
      BufferHH[i]=0;
      BufferHL[i]=0;
   }
}

indicador 2: Intra Volume para decisões rápidas.

//+------------------------------------------------------------------+
//|                                                IntraVolumeM1.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                                 https://mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://mql5.com"
#property version   "1.00"
#property description "Intra Volume indicator"
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_plots   5
#property indicator_type1   DRAW_HISTOGRAM 
#property indicator_color1  clrWhite  
#property indicator_style1  STYLE_SOLID
#property indicator_width1  2
#property indicator_type2   DRAW_HISTOGRAM 
#property indicator_color2  clrRed 
#property indicator_style2  STYLE_SOLID
#property indicator_width2  2
#property indicator_type3   DRAW_HISTOGRAM 
#property indicator_color3  clrBlue 
#property indicator_style3  STYLE_SOLID
#property indicator_width3  2
#property indicator_type4   DRAW_HISTOGRAM 
#property indicator_color4  clrOrange
#property indicator_style4  STYLE_SOLID
#property indicator_width4  2
#property indicator_type5   DRAW_HISTOGRAM 
#property indicator_color5  clrGreen
#property indicator_style5  STYLE_SOLID
#property indicator_width5  2
#property indicator_level1     1
#property indicator_level2     2
#property indicator_level3     3
#property indicator_level4     4
#property indicator_level5     5
#property indicator_level6     6
#property indicator_level7     7
#property indicator_level8     8
#property indicator_level9     9
#property indicator_level10     10
#property indicator_level11     11
#property indicator_level12     12
#property indicator_levelcolor clrBlack
#property indicator_levelstyle STYLE_SOLID
//--- indicator buffers
double         BufferH1[];
double         BufferH2[];
double         BufferH3[];
double         BufferH4[];
double         BufferH5[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,BufferH1,INDICATOR_DATA);
   SetIndexBuffer(1,BufferH2,INDICATOR_DATA);
   SetIndexBuffer(2,BufferH3,INDICATOR_DATA);
   SetIndexBuffer(3,BufferH4,INDICATOR_DATA);
   SetIndexBuffer(4,BufferH5,INDICATOR_DATA);
//--- setting indicator parameters
   IndicatorSetString(INDICATOR_SHORTNAME,".");
   IndicatorSetInteger(INDICATOR_DIGITS,0); //Digits());
//--- setting buffer arrays as timeseries
   ArraySetAsSeries(BufferH1,true);
   ArraySetAsSeries(BufferH2,true);
   ArraySetAsSeries(BufferH3,true);
   ArraySetAsSeries(BufferH4,true);
   ArraySetAsSeries(BufferH5,true);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   static int barraAnterior=99;
   long v;
   int barraAtual;
   int i;
   MqlTick lasttick;       // Para receber os últimos dados do tick
   if(prev_calculated<1) {
      ArrayInitialize(BufferH1,13);
      ArrayInitialize(BufferH2,0);
      ArrayInitialize(BufferH3,0);
      ArrayInitialize(BufferH4,0);
      ArrayInitialize(BufferH5,0);
   }
   if(SymbolInfoTick(_Symbol,lasttick)==false) return 0;
   barraAtual =int(int(lasttick.time%60)/2);
//---
   if(ArrayGetAsSeries(volume)==false) {
      ArraySetAsSeries(volume,true);
   }
//---
   if(rates_total<35) return 0;
//---
   if(barraAtual<barraAnterior) {
      for(i=0;i<33;i++) {
         BufferH5[i]=0;
         BufferH4[i]=0;
         BufferH3[i]=0;
         BufferH2[i]=0;
         barraAnterior=-1;
      }
      BufferH1[0]=13;
   }
   barraAnterior= barraAtual;
//---
      i=29-barraAtual;
      BufferH1[i]=13;
      v=volume[0];
      if(v<=1000)  {
         BufferH5[i]=0;
         BufferH4[i]=0;
         BufferH3[i]=0;
         BufferH2[i]=0;
      } else if(v<=2000) {
         BufferH5[i]=1;
         BufferH4[i]=0;
         BufferH3[i]=0;
         BufferH2[i]=0;
      } else if(v<=3000) {
         BufferH5[i]=2;
         BufferH4[i]=0;
         BufferH3[i]=0;
         BufferH2[i]=0;
      } else if(v<=4000) {
         BufferH5[i]=3;
         BufferH4[i]=0;
         BufferH3[i]=0;
         BufferH2[i]=0;
      } else if(v<=8000) {
         BufferH5[i]=3;
         BufferH4[i]=4;
         BufferH3[i]=0;
         BufferH2[i]=0;
      } else if(v<=12000) {
         BufferH5[i]=3;
         BufferH4[i]=5;
         BufferH3[i]=0;
         BufferH2[i]=0;
      } else if(v<=16000) {
         BufferH5[i]=3;
         BufferH4[i]=6;
         BufferH3[i]=0;
         BufferH2[i]=0;
      } else if(v<=32000) {
         BufferH5[i]=3;
         BufferH4[i]=6;
         BufferH3[i]=7;
         BufferH2[i]=0;
      } else if(v<=48000) {
         BufferH5[i]=3;
         BufferH4[i]=6;
         BufferH3[i]=8;
         BufferH2[i]=0;
      } else if(v<=64000) {
         BufferH5[i]=3;
         BufferH4[i]=6;
         BufferH3[i]=9;
         BufferH2[i]=0;
      } else if(v<=128000) {
         BufferH5[i]=3;
         BufferH4[i]=6;
         BufferH3[i]=9;
         BufferH2[i]=10;
      } else if(v<=192000) {
         BufferH5[i]=3;
         BufferH4[i]=6;
         BufferH3[i]=9;
         BufferH2[i]=11;
      } else {
         BufferH5[i]=3;
         BufferH4[i]=6;
         BufferH3[i]=9;
         BufferH2[i]=12;
      }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

timeframe M1 Timeframe M5

Download livre do indicador 'Volume Level Grande Player Dectector Mini Índice B3 Brasil' por 'kuramaua2' para MetaTrader 5 no CodeBase MQL5
Download livre do indicador 'Volume Level Grande Player Dectector Mini Índice B3 Brasil' por 'kuramaua2' para MetaTrader 5 no CodeBase MQL5
  • www.mql5.com
O código foi removido. No entanto, à sua disposição está um enorme banco de dados de códigos, entre os quais você certamente encontrará o código adequado.
 

Não consegui editar o título da postagem:

Novo indicador de volume para mini índice da B3

 

Descrição do indicador:

Saudações, queridos brasileiros e brasileiras do Brasil, e amantes da B3.

Apresento a vocês dois indicadores do tipo "Detector de Grande Player por volume", feitos para aqueles que operam o mini índice da B3.

O indicador  IntraVolumeM1winfut é utilizado apenas no timeframe  M1, ele nos mostra a entrada de grande fluxo de volume dentro da barra de 1 minuto e nos permite tomar rápidas decisões antes mesmo da barra em andamento fechar.

O indicador  VolumeLevelM1M5winfut é utilizado nos timeframes  M1 M5, mas pode ser utilizados em outros timeframes com alguma modificação no código-fonte. Este indicador nos mostra as regiões onde os Grandes Players estão atuando, e as regiões de baixo volume onde não há atuações. Também, olhando para uma única barra, é possível perceber se o Grande Player está atuando na compra ou na venda dependendo se o Candle é de alta ou de baixa.

  • Barras verdes: Níveis 1, 2 e 3 representam o volume total de 1000, 2000 e 3000 naquela barra, respectivamente. Sinaliza baixo volume e ausência de atuação de Grandes Players.
  • Barras amarelas: Níveis 4, 5 e 6 representam o volume total 4000, 8000 e 12000 naquela barra. Sinaliza baixo volume.
  • Barras azuis: Níveis 7, 8 e 9 representam o volume total de 16000, 32000 e 48000 naquela barra. Aqui conseguimos ver a atuação dos Grandes Players no timeframe M1 e podemos perceber se a atuação é na compra ou na venda, se o Candle é de alta ou de baixa.
  • Barras vermelhas: Níveis 10, 11 e 12 é o volume acima de 64000 naquela barra. Está sinaliza uma imensa atuação dos Grandes Players.
Razão: