計算値をデータウィンドウ、チャートに表示させない
インジケーターによっては内部計算用バッファを使いたくなるケースがあります。
内部計算用バッファとは、チャートに表示しても意味がない途中計算の値のことです。
何も考えずにインジケーターを作成すると、チャートとデータウィンドウに内部計算用バッファの計算値がそのまま表示されてしまいます。
ですので、それらをチャートとデータウィンドウに表示させないようにしましょう。
OnInit関数で設定するだけです。
//+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { SetIndexBuffer(0, draw); SetIndexStyle(0, DRAW_LINE, DRAW_LINE, 1, clrYellow); SetIndexLabel(0, "draw"); SetIndexBuffer(1, drawNone); SetIndexStyle(1, DRAW_NONE, DRAW_LINE, 1, clrNONE); // チャートに表示しない SetIndexLabel(1, NULL); // データウィンドウに表示しない return(INIT_SUCCEEDED); }
drawが本来表示すべきインジケーターのバッファ、drawNoneが内部計算用バッファと仮定しています。
SetIndexStyle関数でDRAW_NONEを設定することで、チャートに表示されなくなります。
そして、SetIndexLabel関数でNULLを設定することで、データウィンドウにも表示されなくなります。
使いやすさ、分かりやすさはこうした細かい配慮の積み重ねの上に成り立ちます。
ぜひご活用ください。