Deslocamento eixo x usando PLOT_SHIFT

MQL5 Indicateurs Experts

Spécifications

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);
  }
//-----------------------------------------++



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

Répondu

1
Développeur 1
Évaluation
(4)
Projets
6
0%
Arbitrage
4
25% / 75%
En retard
0
Gratuit
2
Développeur 2
Évaluation
(140)
Projets
194
76%
Arbitrage
4
50% / 25%
En retard
18
9%
Travail
3
Développeur 3
Évaluation
(564)
Projets
933
47%
Arbitrage
303
59% / 25%
En retard
125
13%
Travail
Commandes similaires
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

Informations sur le projet

Budget
30 - 40 USD
Pour le développeur
27 - 36 USD
Délais
à 10 jour(s)