HTF: Plotar a média do OHLC diário em 1M

 

Olá, 

Fiz um indicador que calcula a média da amplitude das barras.




Eu quero que esse valor das linhas sejam plotados no Intradiário (M1 por ex) em forma de pontos de pivô...

O problema é que tentei criar um indicador derivado desse para plotar o pivô e só funciona no gráfico diário.

//+------------------------------------------------------------------+
//|                                              Amplitude Média.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 12
#property indicator_plots   6
//--- plot Amplitude
#property indicator_label1  "Amplitude Maxima Alta"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrBlue
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1

#property indicator_label2  "Amplitude Minima Alta"
#property indicator_type2   DRAW_LINE
#property indicator_color2  clrDarkBlue
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1

#property indicator_label3  "Amplitude Fechamento Alta"
#property indicator_type3   DRAW_LINE
#property indicator_color3  clrAqua
#property indicator_style3  STYLE_SOLID
#property indicator_width3  1

#property indicator_label4  "Amplitude Maxima Baixa"
#property indicator_type4   DRAW_LINE
#property indicator_color4  clrMaroon
#property indicator_style4  STYLE_SOLID
#property indicator_width4  1

#property indicator_label5  "Amplitude Minima Baixa"
#property indicator_type5   DRAW_LINE
#property indicator_color5  clrRed
#property indicator_style5  STYLE_SOLID
#property indicator_width5  1

#property indicator_label6  "Amplitude Fechamento Baixa"
#property indicator_type6   DRAW_LINE
#property indicator_color6  clrCrimson
#property indicator_style6  STYLE_SOLID
#property indicator_width6  1

//--- input parameters
input int      Periodo=280;
//--- indicator buffers
double         Amplitude_Maxima_Alta_Media[];
double         Amplitude_Minima_Alta_Media[];
double         Amplitude_Fechamento_Alta_Media[];

double         Amplitude_Maxima_Baixa_Media[];
double         Amplitude_Minima_Baixa_Media[];
double         Amplitude_Fechamento_Baixa_Media[];

double R1[],R2[],R3[],S1[],S2[],S3[];

int amplitude;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,R3,INDICATOR_DATA);
   SetIndexBuffer(1,R2,INDICATOR_DATA);
   SetIndexBuffer(2,R1,INDICATOR_DATA);
   SetIndexBuffer(3,S1,INDICATOR_DATA);
   SetIndexBuffer(4,S2,INDICATOR_DATA);
   SetIndexBuffer(5,S3,INDICATOR_DATA);
   
   SetIndexBuffer(6,Amplitude_Maxima_Alta_Media,INDICATOR_CALCULATIONS);
   SetIndexBuffer(7,Amplitude_Minima_Alta_Media,INDICATOR_CALCULATIONS);
   SetIndexBuffer(8,Amplitude_Fechamento_Alta_Media,INDICATOR_CALCULATIONS);
   SetIndexBuffer(9,Amplitude_Maxima_Baixa_Media,INDICATOR_CALCULATIONS);
   SetIndexBuffer(10,Amplitude_Minima_Baixa_Media,INDICATOR_CALCULATIONS);
   SetIndexBuffer(11,Amplitude_Fechamento_Baixa_Media,INDICATOR_CALCULATIONS);
   
   amplitude=iCustom(_Symbol,PERIOD_D1,"Amplitude Média Subjanela",Periodo);
//---
   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[])
  {
//---
   int inicio = prev_calculated==0 ? Periodo : prev_calculated-Periodo;
   int barras = prev_calculated==0 ? rates_total :Periodo;   
   
   CopyBuffer(amplitude,0,0,barras,Amplitude_Maxima_Alta_Media);
   CopyBuffer(amplitude,1,0,barras,Amplitude_Minima_Alta_Media);
   CopyBuffer(amplitude,2,0,barras,Amplitude_Fechamento_Alta_Media);
   CopyBuffer(amplitude,3,0,barras,Amplitude_Maxima_Baixa_Media);
   CopyBuffer(amplitude,4,0,barras,Amplitude_Minima_Baixa_Media);
   CopyBuffer(amplitude,5,0,barras,Amplitude_Fechamento_Baixa_Media);
   
   for(int i=inicio;i<rates_total;i++)
   {
      R3[i]=Amplitude_Maxima_Alta_Media[i]!=0 ? Amplitude_Maxima_Alta_Media[i] : 0;
      R2[i]=Amplitude_Fechamento_Alta_Media[i]!=0 ? Amplitude_Fechamento_Alta_Media[i] : 0;
      R1[i]=Amplitude_Minima_Alta_Media[i]!=0 ? Amplitude_Minima_Alta_Media[i] : 0;
      
      S1[i]=Amplitude_Maxima_Baixa_Media[i]!=0 ? Amplitude_Maxima_Baixa_Media[i] : 0;
      S2[i]=Amplitude_Fechamento_Baixa_Media[i]!=0 ? Amplitude_Fechamento_Baixa_Media[i] : 0;
      S3[i]=Amplitude_Minima_Baixa_Media[i]!=0 ? Amplitude_Minima_Baixa_Media[i] : 0;
   }
   
     
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Sidnei Da Silva Santos Junior:

Olá, 

Fiz um indicador que calcula a média da amplitude das barras.




Eu quero que esse valor das linhas sejam plotados no Intradiário (M1 por ex) em forma de pontos de pivô...

O problema é que tentei criar um indicador derivado desse para plotar o pivô e só funciona no gráfico diário.

Boa noite Sidnei!


Você já viu os exemplos no CodeBase? Esses dois estão funcionando . . . Veja se ajudam: . . .

Download livre do indicador 'RSI HTF' por 'GODZILLA' para MetaTrader 5 no CodeBase MQL5, 2014.01.15

Download livre do indicador 'PriceChanel_HTF' por 'GODZILLA' para MetaTrader 5 no CodeBase MQL5, 2014.01.14


Razão: