chartnavigate

Author: Copyright � 2011, MetaQuotes Software Corp.
0 Views
0 Downloads
0 Favorites
chartnavigate
//+------------------------------------------------------------------+
//|                                                ChartNavigate.mq5 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- get handle of the current chart
   long handle=ChartID();
   string comm="";
   if(handle>0) // if successful, configure it
     {
      //--- disable autoscroll
      ChartSetInteger(handle,CHART_AUTOSCROLL,false);
      //--- set chart shift
      ChartSetInteger(handle,CHART_SHIFT,true);
      //--- show as candles
      ChartSetInteger(handle,CHART_MODE,CHART_CANDLES);
      //--- show tick volumes
      ChartSetInteger(handle,CHART_SHOW_VOLUMES,CHART_VOLUME_TICK);

      //--- prepare text for Comment()
      comm="Let's scroll the chart 10 bars right from the beggining of the history)";
      //--- print comment
      Comment(comm);
      //--- scroll 10 bars right
      ChartNavigate(handle,CHART_BEGIN,10);
      //--- get first bar index (indexing as timeseries)
      long first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
      //--- add CR/LF
      comm=comm+"\r\n";
      //--- add to comment
      comm=comm+"First bar has index "+IntegerToString(first_bar)+"\r\n";
      //--- print comment
      Comment(comm);
      //--- wait 5 seconds to see how ChartNavigate works
      Sleep(5000);

      //--- add to comment
      comm=comm+"\r\n"+"Scroll 10 bars left (from the right border of the chart)";
      Comment(comm);
      //--- scroll 10 bars left
      ChartNavigate(handle,CHART_END,-10);
      //--- get first bar index (indexing as timeseries)
      first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
      comm=comm+"\r\n";
      comm=comm+"First bar has index "+IntegerToString(first_bar)+"\r\n";
      Comment(comm);
      //--- wait 5 seconds to see how ChartNavigate works
      Sleep(5000);

      //--- new scrolling
      comm=comm+"\r\n"+"Scroll 1000 bars right from the beggining of the history";
      Comment(comm);
      //--- scroll 1000 bars right
      ChartNavigate(handle,CHART_BEGIN,1000);
      first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
      comm=comm+"\r\n";
      comm=comm+"First bar has index "+IntegerToString(first_bar)+"\r\n";
      Comment(comm);
      //--- wait 5 seconds to see how ChartNavigate works
      Sleep(5000);

      //--- new demo
      comm=comm+"\r\n"+"Scroll 1000 bars left from the right border of the chart";
      Comment(comm);
      //--- scroll -100 bars left from the right border of the chart
      ChartNavigate(handle,CHART_END,-1000);
      first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
      comm=comm+"\r\n";
      comm=comm+"First bar has index "+IntegerToString(first_bar)+"\r\n";
      Comment(comm);
     }
  }
//+------------------------------------------------------------------+

Comments