Color Day インジケーターは、上昇日と下降日を色分けして表示する便利なツールです。
日足の終値が始値を上回ると、設定でカスタマイズ可能な青色で表示されます。
input color UP = Blue; // 上昇日の色
逆に、日足の終値が始値を下回ると、赤色で表示されます(こちらも設定でカスタマイズ可能です)。
input color DN = Red; // 下降日の色
指定した日数Daysに対して、始値、終値、開場時間をコピーします:
CopyTime(NULL,PERIOD_D1,0,Days+1,tm); CopyOpen(NULL,PERIOD_D1,0,Days+1,op); CopyClose(NULL,PERIOD_D1,0,Days+1,cl);
これを対応する配列に格納します:
datetime tm[]; double op[]; double cl[];
インジケーターをチャートにインストールする前に、配列のサイズを設定します:
int OnInit() { //--- インジケーターバッファのマッピング Comment(""); ArrayResize(tm,Days); ArrayResize(op,Days); ArrayResize(cl,Days); //--- return(INIT_SUCCEEDED); }
配列の値を変数に割り当て、日々の終値の時刻time1を決定します:
datetime time0=tm[i]; datetime time1=time0+3600*24; double dopen=op[i]; double dclose=cl[i];
PutRect() 関数を使って、日ごとの四角形を描画します:
void PutRect(string name,datetime t1,double p1,datetime t2,double p2,color clr) { ObjectDelete(0,name); //--- 指定された座標で四角形を作成 ObjectCreate(0,name,OBJ_RECTANGLE,0,t1,p1,t2,p2); //--- 四角形の色を設定 ObjectSetInteger(0,name,OBJPROP_COLOR,clr); //--- 四角形の塗りつぶしモードを有効化(true)または無効化(false) ObjectSetInteger(0,name,OBJPROP_FILL,true); }
価格の動きに応じて色を付けます:
if(dclose<dopen) PutRect("Rect"+(string)dopen,time0,dopen,time1,dclose,DN); if(dclose>dopen) PutRect("Rect"+(string)dopen,time0,dopen,time1,dclose,UP);
指定したDaysのすべての日をループで処理します:
for(int i=0;i<=Days;i++) { CopyTime(NULL,PERIOD_D1,0,Days+1,tm); CopyOpen(NULL,PERIOD_D1,0,Days+1,op); CopyClose(NULL,PERIOD_D1,0,Days+1,cl); datetime time0=tm[i]; datetime time1=time0+3600*24; double dopen=op[i]; double dclose=cl[i]; if(dclose<dopen) PutRect("Rect"+(string)dopen,time0,dopen,time1,dclose,DN); if(dclose>dopen) PutRect("Rect"+(string)dopen,time0,dopen,time1,dclose,UP);
チャートからインジケーターを削除する際には、DeleteObjects() 関数を使用します:
void DeleteObjects() { for(int i=ObjectsTotal(0,0,OBJ_RECTANGLE)-1;i>=0;i--) { string name=ObjectName(0,i,0,OBJ_RECTANGLE); if(StringFind(name,"Rect",0)>=0) ObjectDelete(0,name); } }
作成したオブジェクトをチャートから削除します:
void OnDeinit(const int reason) { Comment(""); DeleteObjects(); }
設定:
input int Days = 11; // 計算に使用する日数 input color UP = Blue; // 上昇日の色 input color DN = Red; // 下降日の色

Fig. 1. チャート上のインジケーター
ヒント:
- Color Day インジケーターは、視覚的トレーディングアシスタントです。
コメント 0