描画スタイル

カスタム指標の作成時には、ENUM_DRAW_TYPE列挙体で指定されている(メインチャートウィンドウまたはグラフのサブウィンドウに表示される)18 種類のグラフィックプロットのいずれかを指定することが出来ます。

1 つのカスタム指標でどの指標作成・描画タイプを選ぶことも出来ます各構造タイプは、描画に必要なデータを格納するための1〜5 グローバル配列 の仕様を必要とします。これらのデータ配列は、SetIndexBuffer() 関数を使用して指標バッファと結合する必要があります。各バッファに ENUM_INDEXBUFFER_TYPE からのデータの種類を指定する必要があります。

描画スタイルに応じて、1〜4 の値バッファが必要な場合があります(INDICATOR_DATAとしてマーク)。スタイルが動的な色の塗り替えを含む場合は(指標型 INDICATOR_COLOR_INDEX )もう 1 つのバッファが必要になります(全てのスタイルの名称には COLOR が含まれいます)。色のバッファは、常にスタイルに対応するバッファの後に結合されています。

ENUM_DRAW_TYPE

ID

説明

データバッファ

色バッファ

DRAW_NONE

描かれません。

1

0

DRAW_LINE

線。

1

0

DRAW_SECTION

セクション。

1

0

DRAW_HISTOGRAM

ゼロラインからのヒストグラム。

1

0

DRAW_HISTOGRAM2

2 つの指標バッファのヒストグラム。

2

0

DRAW_ARROW

矢印の描画。

1

0

DRAW_ZIGZAG

ジグザグスタイルは、バーの垂直断面を可能にします。

2

0

DRAW_FILLING

2 レベル間の色の塗りつぶし。

2

0

DRAW_BARS

バーの列として表示。

4

0

DRAW_CANDLES

ローソク足の列として表示。

4

0

DRAW_COLOR_LINE

多色のライン。

1

1

DRAW_COLOR_SECTION

多色のセクション。

1

1

DRAW_COLOR_HISTOGRAM

ゼロラインからの多色ヒストグラム。

1

1

DRAW_COLOR_HISTOGRAM2

2 つの指標バッファの多色ヒストグラム。

2

1

DRAW_COLOR_ARROW

多色の矢印を描画。

1

1

DRAW_COLOR_ZIGZAG

多色のジグザグ。

2

1

DRAW_COLOR_BARS

多色バー。

4

1

DRAW_COLOR_CANDLES

多色ローソク足。

4

1

 

選択された描画の型の表示を改良するために、ENUM_PLOT_PROPERTY に記載されている識別子が使用されます。

PlotIndexSetInteger() 及び PlotIndexGetInteger() 関数には

ENUM_PLOT_PROPERTY_INTEGER

ID

説明

プロパティ型

PLOT_ARROW

DRAW_ARROW スタイルの矢印コード。

uchar

PLOT_ARROW_SHIFT

DRAW_ARROW スタイルの矢印の垂直シフト。

int

PLOT_DRAW_BEGIN

データウィンドウでの描画前の初期のバーの数や値。

int

PLOT_DRAW_TYPE

グラフィック構成のタイプ。

ENUM_DRAW_TYPE

PLOT_SHOW_DATA

データウィンドウでの建設値の表示のサイン。

bool

PLOT_SHIFT

バーでの時間軸に沿っての指標のプロットシフト。

int

PLOT_LINE_STYLE

線の描画スタイル。

ENUM_LINE_STYLE

PLOT_LINE_WIDTH

描画線の太さ。

int

PLOT_COLOR_INDEXES

色の数。

int

PLOT_LINE_COLOR

描画の色を含むバッファのインデックス。

color       modifier = index number of colors

 

PlotIndexSetDouble() 関数

ENUM_PLOT_PROPERTY_DOUBLE

ID

説明

プロパティ型

PLOT_EMPTY_VALUE

プロットに使用される空の値で、何も描画しません。

double

PlotIndexSetString() 関数

ENUM_PLOT_PROPERTY_STRING

ID

説明

プロパティ型

PLOT_LABEL

データウィンドウに表示する指標グラフィカルシリーズの名称。表示のためにいくつかの指標バッファを必要とする複雑なグラフィカルなスタイルで作業する場合、各バッファの名称は「 ; 」セパレータを使用して指定することが出来ます。サンプルコードは DRAW_CANDLESにあります。

string

カスタム指標の線を描画するために 5 つのスタイルを使用することが出来ます。これらは線の太さが 0 または 1 の時のみ有効です。

ENUM_LINE_STYLE

ID

説明

STYLE_SOLID

実線。

STYLE_DASH

途切れ線。

STYLE_DOT

点線。

STYLE_DASHDOT

一点鎖線。

STYLE_DASHDOTDOT

二点鎖線。

 

線の描画スタイルと図面の種類を設定するには PlotIndexSetInteger() 関数が使用されます。フィボナッチの拡張機能では、レベルの厚さと描画スタイルは、ObjectSetInteger() 関数を使用して示すことが出来ます。

例:

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
//--- 指標バッファ
double         MABuffer[];
//+------------------------------------------------------------------+
//| カスタム指標を初期化する関数                                            |
//+------------------------------------------------------------------+
void OnInit()
 {
//--- 配列をインデックス0で指標バッファと結合する
  SetIndexBuffer(0,MABuffer,INDICATOR_DATA);
//--- 線の描画を設定
  PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
//--- 線のスタイルを設定
  PlotIndexSetInteger(0,PLOT_LINE_STYLE,STYLE_DOT);
//--- 線の色を設定
  PlotIndexSetInteger(0,PLOT_LINE_COLOR,clrRed);
//--- 線の太さを設定
  PlotIndexSetInteger(0,PLOT_LINE_WIDTH,1);
//--- 線のラベルを設定
  PlotIndexSetString(0,PLOT_LABEL,"Moving Average");
//---
 }
//+------------------------------------------------------------------+
//| カスタム指標の反復関数                                                |
//+------------------------------------------------------------------+
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[])
 {
//---
  for(int i=prev_calculated;i<rates_total;i++)
    {
     MABuffer[i]=close[i];
    }
//--- 次の呼び出しのために prev_calculated の値を返す
  return(rates_total);
 }