ソースコード完成例
各処理の説明
前半部分は、省略させていただきます。詳しく知りたい方は、「
オブジェクトで四角形を描いて装飾をする」を参考にしてみてください。
■初期化関数の設定
・通貨ペアの設定
①string pair = Symbol( );
②ObjectCreate( "symbol",OBJ_LABEL,0,0,0);
③ObjectSet("symbol",OBJPROP_XDISTANCE,40);
④ObjectSet("symbol",OBJPROP_YDISTANCE,90);
⑤ObjectSetText("symbol","通貨ペア:"+pair,20,"MS ゴシック",clrWhite);
①string pair = Symbol( );
string型の変数pairにSymbol()を利用して取得した値を代入します。
②ObjectCreate( "symbol",OBJ_LABEL,0,0,0);
オブジェクト名「symbol」、オブジェクトの種類「ラベル」、オブジェクトの位置を「0,0,0」に設定。
③ObjectSet("symbol",OBJPROP_XDISTANCE,40);
設定した原点からのX軸の画面中央に向かっての距離を「40」に指定。
④ObjectSet("symbol",OBJPROP_YDISTANCE,90);
設定した原点からのY軸の画面中央に向かっての距離を「90」に指定。
⑤ObjectSetText("symbol","通貨ペア:"+pair,20,"MS ゴシック",clrWhite);
オブジェクトの文字列を「通貨ペア」と上記で代入した変数「pair」にします。
また、文字のサイズを「20」、書式を「MS ゴシック」、カラーを「白」に設定。
・時間足の設定
①int time = Period( );
②string s_time = "";
③if(time >= 60)
{
s_time = "1h";
}
if(time >= 240)
{
s_time = "4h";
}
if(time >= 1440)
{
s_time = "D1";
}
if(time >= 10080)
{
s_time = "W1";
}
if(time >= 43200)
{
s_time = "MN";
}
④if(time < 60)
{
⑤ObjectCreate( "Period02",OBJ_LABEL,0,0,0);
⑥ObjectSet("Period02",OBJPROP_XDISTANCE,40);
⑦ObjectSet("Period02",OBJPROP_YDISTANCE,140);
⑧ObjectSetText("Period02","時間足:"+time,20,"MS ゴシック",clrWhite);
⑨}else{
⑩ObjectCreate( "Period02",OBJ_LABEL,0,0,0);
⑪ObjectSet("Period02",OBJPROP_XDISTANCE,40);
⑫ObjectSet("Period02",OBJPROP_YDISTANCE,140);
⑬ObjectSetText("Period02","時間足:"+s_time,20,"MS ゴシック",clrWhite);
}
①int time = Period( );
int型の変数timeにPeriod()を利用して取得した値を代入します。
②string s_time = "";
string型の変数s_timeに「""」を代入して初期化しておきます。
③if(time >= 60){ s_time = "1h";}
timeが60以上のとき、「1h」と表示されるように設定します。
同様に、240以上のときは、「4h」、1440以上のときは、「D1」、10080以上のときは、「W1」、43200以上のときは、「MN」と表示されるように設定します。
④if(time < 60){ }
timeが60未満のときの処理を追加します。
⑤ObjectCreate( "Period02",OBJ_LABEL,0,0,0);
オブジェクト名「Period02」、オブジェクトの種類「ラベル」、オブジェクトの位置を「0,0,0」に設定。
⑥ObjectSet("Period02",OBJPROP_XDISTANCE,40);
設定した原点からのX軸の画面中央に向かっての距離を「40」に指定。
⑦ObjectSet("Period02",OBJPROP_YDISTANCE,140);
設定した原点からのY軸の画面中央に向かっての距離を「140」に指定。
⑧ObjectSetText("Period02","時間足:"+time,20,"MS ゴシック",clrWhite);
オブジェクトの文字列を「時間足」と上記で代入した変数「time」にします。
また、文字のサイズを「20」、書式を「MS ゴシック」、カラーを「白」に設定。
⑨}else{
timeが60未満ではないときの処理を追加します。
⑩ObjectCreate( "Period02",OBJ_LABEL,0,0,0);
オブジェクト名「Period02」、オブジェクトの種類「ラベル」、オブジェクトの位置を「0,0,0」に設定。
⑥ObjectSet("Period02",OBJPROP_XDISTANCE,40);
設定した原点からのX軸の画面中央に向かっての距離を「40」に指定。
⑦ObjectSet("Period02",OBJPROP_YDISTANCE,140);
設定した原点からのY軸の画面中央に向かっての距離を「140」に指定。
⑬ObjectSetText("Period02","時間足:"+s_time,20,"MS ゴシック",clrWhite);
オブジェクトの文字列を「時間足」と上記で代入した変数「s_time」にします。
また、文字のサイズを「20」、書式を「MS ゴシック」、カラーを「白」に設定。
■指標計算関数の設定
・スプレッドの設定
int start()
{
①double spread = MarketInfo(Symbol(),MODE_SPREAD)*0.1;
②spread = NormalizeDouble(spread,1);
③ObjectCreate( "spread",OBJ_LABEL,0,0,0);
④ObjectSet("spread",OBJPROP_XDISTANCE,40);
⑤ObjectSet("spread",OBJPROP_YDISTANCE,40);
⑥ObjectSetText("spread","Spread:"+spread,20,"MS ゴシック",clrWhite);
return(INIT_SUCCEEDED);
}
①double spread = MarketInfo(Symbol(),MODE_SPREAD)*0.1;
double型の変数spreadにMarketInfoを利用して取得したスプレッドの値に0.1をかけた値を代入します。
②spread = NormalizeDouble(spread,1);
spreadにspreadを小数点以下第2位で四捨五入した値を代入します。
③ObjectCreate( "spread",OBJ_LABEL,0,0,0);
オブジェクト名「spread」、オブジェクトの種類「ラベル」、表示させるウインドウの番号を「0(チャートウインドウ)」、オブジェクトの位置を「0,0,0」に設定。
④ObjectSet("spread",OBJPROP_XDISTANCE,40);
設定した原点からのX軸の画面中央に向かっての距離を「40」に指定。
⑤ObjectSet("spread",OBJPROP_YDISTANCE,40);
設定した原点からのY軸の画面中央に向かっての距離を「40」に指定。
⑥ObjectSetText("spread","Spread:"+spread,20,"MS ゴシック",clrWhite);
オブジェクトの文字列を「Spread:」と上記で代入した変数「spread」にします。
また、書式を「MS ゴシック」、カラーを「白」に設定。