ChartNavigate

Desplaza el gráfico especificado a una cantidad de barras especificada respecto a la posición del gráfico indicada.

bool  ChartNavigate(
   long                  chart_id,     // identificador del gráfico
   ENUM_CHART_POSITION   position,     // posición
   int                   shift=0       // valor del desplazamiento
   );

Parámetros

chart_id

[in]  Identificador del gráfico. 0 significa el gráfico actual.

position

[in]  Posición del gráfico respecto a la que va a realizarse el desplazamiento. Su valor puede ser uno de los valores de la enumeración ENUM_CHART_POSITION.

shift=0

[in]  Número de barras al que hay que mover el gráfico. El valor positivo supone el desplazamiento a la derecha (al final del gráfico), el valor negativo significa el desplazamiento a la izquierda (al principio del gráfico). El desplazamiento cero tiene sentido cuando navegamos al principio o al final del gráfico.

Valor devuelto

Devuelve true en caso de éxito, de lo contrario devuelve false.

Ejemplo:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- obtenemos el manejador (handle) del gráfico actual
   long handle=ChartID();
   string comm="";
   if(handle>0) // si ha salido bien, realizaremos ajustes adicionales
     {
      //--- desactivaremos el desplazamiento automático
      ChartSetInteger(handle,CHART_AUTOSCROLL,false);
      //--- establecemos la sangría del borde derecho del gráfico
      ChartSetInteger(handle,CHART_SHIFT,true);
      //--- mostramos en forma de velas
      ChartSetInteger(handle,CHART_MODE,CHART_CANDLES);
      //--- establecemos el modo de visualización de los volúmenes de ticks
      ChartSetInteger(handle,CHART_SHOW_VOLUMES,CHART_VOLUME_TICK);
 
      //--- preparamos el texto para mostrar en Comment()
      comm="Desplazamos a 10 barras a la derecha desde el inicio del historial";
      //--- mostramos el comentario
      Comment(comm);
      //--- desplazamos a 10 barras a la derecha desde el inicio del historial
      ChartNavigate(handle,CHART_BEGIN,10);
      //--- obtenemos el número de la primera barra visible en el gráfico (numeración como en una serie temporal)
      long first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
      //--- añadimos el carácter de nueva línea
      comm=comm+"\r\n";
      //--- añadimos comentario
      comm=comm+"La primera barra en el gráfico tiene el número "+IntegerToString(first_bar)+"\r\n";
      //--- mostramos el comentario
      Comment(comm);
      //--- esperaremos 5 segundos para que nos de tiempo a ver cómo se desplaza el gráfico
      Sleep(5000);
 
      //--- completaremos el texto del comentario
      comm=comm+"\r\n"+"Desplazamos a 10 barras a la izquierda desde el borde derecho del gráfico";
      Comment(comm);
      //--- desplazamos a 10 barras a la izquierda desde el borde derecho del gráfico
      ChartNavigate(handle,CHART_END,-10);
      //--- obtenemos el número de la primera barra visible en el gráfico (numeración como en una serie temporal)
      first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
      comm=comm+"\r\n";
      comm=comm+"La primera barra en el gráfico tiene el número "+IntegerToString(first_bar)+"\r\n";
      Comment(comm);
      //--- esperaremos 5 segundos para que nos de tiempo a ver cómo se desplaza el gráfico
      Sleep(5000);
 
      //--- nuevo bloque del desplazamiento del gráfico
      comm=comm+"\r\n"+"Desplazamos a 300 barras a la derecha desde el inicio del historial";
      Comment(comm);
      //--- desplazamos a 300 barras a la derecha desde el inicio del historial
      ChartNavigate(handle,CHART_BEGIN,300);
      first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
      comm=comm+"\r\n";
      comm=comm+"La primera barra en el gráfico tiene el número "+IntegerToString(first_bar)+"\r\n";
      Comment(comm);
      //--- esperaremos 5 segundos para que nos de tiempo a ver cómo se desplaza el gráfico
      Sleep(5000);
 
      //--- nuevo bloque del desplazamiento del gráfico
      comm=comm+"\r\n"+"Desplazamos a 300 barras a la izquierda desde el borde derecho del gráfico";
      Comment(comm);
      //--- desplazamos a 300 barras a la izquierda desde el borde derecho del gráfico
      ChartNavigate(handle,CHART_END,-300);
      first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
      comm=comm+"\r\n";
      comm=comm+"La primera barra en el gráfico tiene el número "+IntegerToString(first_bar)+"\r\n";
      Comment(comm);
     }
  }