Deslocamento eixo x usando PLOT_SHIFT

MQL5 Indicadores Experts

Termos de Referência

Estou com uma base de indicador, programado pelo evandro teixeira. Precisava de ter o controle do deslocamento do eixo X do indicador, atualmente ele esta configurado para se deslocar a cada tick movimentado pelo sistema, e precisava de ter o controle se algo pré programado por mim ocorrer o deslocamento apenas uma vez. e assim sucessivamente.

Observação: Preciso do código fonte depois.



/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#property copyright                    "Copyright © 2021"
#property description                  "Rafael Deslocamento do Eixo X"
#property link                         "rafael.com"
#property version                      "1.0"

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots   2

#property indicator_label1  "Buyer"
#property indicator_type1   DRAW_LINE
#property indicator_color1  White
#property indicator_style1  STYLE_SOLID
#property indicator_width1  3

#property indicator_label2  "Seller"
#property indicator_type2   DRAW_LINE
#property indicator_color2  FireBrick
#property indicator_style2  STYLE_SOLID
#property indicator_width2  3


//--- indicator buffers
double         Ext1Buffer[];
double         Ext2Buffer[];

//--- Variaveis Globais
int shift;
static int contador=0;

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                         |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,Ext1Buffer,INDICATOR_DATA);
   SetIndexBuffer(1,Ext2Buffer,INDICATOR_DATA);
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0);
   PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0);      
//---
   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[])
  {
   

   //Valores utilizados apenas para exemplo.
   ArraySetAsSeries(open,true);
   ArraySetAsSeries(close,true);
   ArraySetAsSeries(high,true);
   ArraySetAsSeries(low,true);

   
   
   if(contador==0)
     {
      ArrayInitialize(Ext1Buffer,0);
      ArrayInitialize(Ext2Buffer,0);      
     }
       

       //OBJETIVO:condição que deveria ocorrer o deslocamento do indicador apenas uma vez. mas esta ocorrendo cada tick a tick.
       if(close[0]>open[0])
       {
        shift=rates_total-1-contador;   
        contador++;
        }
       
       //OBJETIVO:condição que deveria ocorrer o deslocamento do indicador apenas uma vez. mas esta ocorrendo cada tick a tick.
       if(close[0]<open[0])
       {
        shift=rates_total-1-contador;   
        contador++;
        }
        


   
   
   Ext1Buffer[contador]=high[0];     
   Ext2Buffer[contador]=low[0];    
   PlotIndexSetInteger(0,PLOT_SHIFT,shift);
   PlotIndexSetInteger(1,PLOT_SHIFT,shift);
   
       
   Print("Rates Total=",rates_total," Shift=",shift," Contador=",contador);
      
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//-----------------------------------------++



/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Respondido

1
Desenvolvedor 1
Classificação
(4)
Projetos
6
0%
Arbitragem
4
25% / 75%
Expirado
0
Livre
2
Desenvolvedor 2
Classificação
(140)
Projetos
194
76%
Arbitragem
4
50% / 25%
Expirado
18
9%
Trabalhando
3
Desenvolvedor 3
Classificação
(564)
Projetos
933
47%
Arbitragem
303
59% / 25%
Expirado
125
13%
Trabalhando
Pedidos semelhantes
PRECISO QUE COLOCA MAIS ALGUM INDICADOR DE TENDENCIA JUNTO COM ESSE SUPER TREND PARA DAR CONFRUENCIA COM SINAL POSSIVEL COM UMA SETA DE ENTRADA. POSSIVEL 2 INDICADOR DE TENDENCIA PRA CONFIRMA ENTRADA COM SUPER TREND

Informações sobre o projeto

Orçamento
30 - 40 USD
Desenvolvedor
27 - 36 USD
Prazo
para 10 dias