ChartNavigate

チャート内の指定された位置を基準にして、指定されたバー数だけ指定されたチャートのシフトを実行します。このコマンドはチャートメッセージキューに追加され、以前のすべてのコマンドが処理された後にのみ実行されます。

bool  ChartNavigate(
   long  chart_id,     // Chart ID
   int   position,     // Position
   int   shift=0       // Shift value
   );

パラメーター

chart_id

[in]チャートID。0は現在のチャートを意味します。

ポジション

[in]シフトを実行するチャートの位置。ENUM_CHART_POSITION値のいずれかになります。

shift = 0

[in]チャートをシフトするバーの数。正の値は右シフト(チャートの終わりへ)を意味し、負の値は左シフト(チャートの先頭へ)を意味します。ゼロシフトを使用して、チャートの最初または最後に移動できます。

戻り値

成功した場合はtrueを返し、そうでない場合はfalseを返します。

例:

//+——————————————————————+
//| Script program start function                                    |
//+——————————————————————+
void OnStart()
  {
//— get handle of the current chart
   long handle=ChartID();
   string comm=“”;
   if(handle>0) // if successful, additionally set up the chart
     {
      //— disable auto scroll
      ChartSetInteger(handle,CHART_AUTOSCROLL,false);
      //— set a shift from the right chart border
      ChartSetInteger(handle,CHART_SHIFT,true);
      //— draw candlesticks
      ChartSetInteger(handle,CHART_MODE,CHART_CANDLES);
      //— set the display mode for tick volumes
      ChartSetInteger(handle,CHART_SHOW_VOLUMES,CHART_VOLUME_TICK);
 
      //— prepare a text to output in Comment()
      comm=“Scroll 10 bars to the right of the history start”;
      //— show comment
      Comment(comm);
      //— scroll 10 bars to the right of the history start
      ChartNavigate(handle,CHART_BEGIN,10);
      //— get the number of the first bar visible on the chart (numeration like in timeseries)
      long first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
      //— add line feed character
      comm=comm+“\r\n”;
      //— add to comment
      comm=comm+“The first bar on the chart is number “+IntegerToString(first_bar)+“\r\n”;
      //— show comment
      Comment(comm);
      //— wait 5 seconds to see how the chart moves
      Sleep(5000);
 
      //— add to the comment text
      comm=comm+“\r\n”+“Scroll 10 bars to the left of the right chart border”;
      Comment(comm);
      //— scroll 10 bars to the left of the right chart border
      ChartNavigate(handle,CHART_END,-10);
      //— get the number of the first bar visible on the chart (numeration like in timeseries)
      first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
      comm=comm+“\r\n”;
      comm=comm+“The first bar on the chart is number “+IntegerToString(first_bar)+“\r\n”;
      Comment(comm);
      //— wait 5 seconds to see how the chart moves
      Sleep(5000);
 
      //— new block of chart scrolling
      comm=comm+“\r\n”+“Scroll 300 bars to the right of the history start”;
      Comment(comm);
      //— scroll 300 bars to the right of the history start
      ChartNavigate(handle,CHART_BEGIN,300);
      first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
      comm=comm+“\r\n”;
      comm=comm+“The first bar on the chart is number “+IntegerToString(first_bar)+“\r\n”;
      Comment(comm);
      //— wait 5 seconds to see how the chart moves
      Sleep(5000);
 
      //— new block of chart scrolling
      comm=comm+“\r\n”+“Scroll 300 bars to the left of the right chart border”;
      Comment(comm);
      //— scroll 300 bars to the left of the right chart border
      ChartNavigate(handle,CHART_END,-300);
      first_bar=ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
      comm=comm+“\r\n”;
      comm=comm+“The first bar on the chart is number “+IntegerToString(first_bar)+“\r\n”;
      Comment(comm);
     }
  }

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">