Top Page

現在ローソク足の始値から終値までの数値を表示する |
ローソク足の状態を画面表示します。 「円換算」と「ドル換算」を振り分ける処理は1つ前のプログラムと同じなので説明は省略します。 ・「円換算」の場合 画面左上に[↓ 1.0pips]の表示 チャート挿入時のパラメーターの設定は"1" |
・「ドル換算」の場合 画面左上に[↓ 6.9pips]の表示 チャート挿入時のパラメーターの設定は"0" |
◎解説 [1]パラメーターの設定 前回の設定と同じです。 [2]メイン処理 パラメーターの値によって振り分けられる処理の違いは、小数点の桁合わせ処理です。 ドル換算の場合は、始値と終値から算出したピップ数の小数点の位置を4桁ずらします。 円換算の場合は、始値と終値から算出したピップ数の小数点の位置を2桁ずらします。 ◎以下、プログラム //+----------------------------------------------------------------------------+ //| インジ 1-3 現在ローソク足の始値から終値までの数値を表示する | //+----------------------------------------------------------------------------+ //---------------- //プロパティの設定 //---------------- //インジケーターをチャートウィンドウに表示する #property indicator_chart_window //---------------- //パラメーターの設定 //---------------- extern int FLG_DOL0_YEN1 = 1; //ドル換算か円換算か 【0:ドル】【1:円】 //---------------- //定数の定義 //---------------- #define OBJ_DISP_01 "OBJ_DISP_01" //オブジェクト名 #define STR_LAVEL_FONT "MS ゴシック" //ラベルのフォント //+----------------------------------------------------------------------------+ //| 初期処理関数 | //+----------------------------------------------------------------------------+ //プログラム起動時に1回だけ呼び出される関数 //今回は特に処理なし int init() { return(0); } //+----------------------------------------------------------------------------+ //| 終了処理関数 | //+----------------------------------------------------------------------------+ //プログラム終了時に呼び出される関数 int deinit() { //オブジェクト削除 ObjectDelete(OBJ_DISP_01); return(0); } //+----------------------------------------------------------------------------+ //| メイン処理関数 | //+----------------------------------------------------------------------------+ //価格が更新される度に呼び出される関数 int start() { string WK_STR_MSG1=""; //作業用 メッセージ double WK_DBL_PIPS=0; //作業用 ピップ数 //オブジェクト削除 ObjectDelete(OBJ_DISP_01); //現在ローソク足の状態表示 ObjectCreate(OBJ_DISP_01,OBJ_LABEL,0,0,0); ObjectSet(OBJ_DISP_01,OBJPROP_XDISTANCE,10); ObjectSet(OBJ_DISP_01,OBJPROP_YDISTANCE,10); WK_STR_MSG1 = "[ "; if(FLG_DOL0_YEN1 == 0) //ドル換算の場合、小数点を4桁ずらして処理する { //ローソク足が陽線の場合(始値と終値が同値を含む) if(Close[0] >= Open[0]) { WK_STR_MSG1 = WK_STR_MSG1 + "↑ "; WK_DBL_PIPS = (Close[0] - Open[0])*10000; WK_STR_MSG1 = WK_STR_MSG1 + DoubleToStr(WK_DBL_PIPS,1); } //ローソク足が陰線の場合 else { WK_STR_MSG1 = WK_STR_MSG1 + "↓ "; WK_DBL_PIPS = (Open[0] - Close[0])*10000; WK_STR_MSG1 = WK_STR_MSG1 + DoubleToStr(WK_DBL_PIPS,1); } } //フラグ"0"以外の場合円換算の処理。 //ここでは、パラメーターの設定処理に慣れることが目的のため、 //フラグの設定値が異常の場合の処理はあえて行いません。 //よってフラグが"0"以外の場合は、円換算の処理とするロジックにします。 else //円換算の場合、小数点を2桁ずらして処理する { //ローソク足が陽線の場合(始値と終値が同値を含む) if(Close[0] >= Open[0]) { WK_STR_MSG1 = WK_STR_MSG1 + "↑ "; WK_DBL_PIPS = (Close[0] - Open[0])*100; WK_STR_MSG1 = WK_STR_MSG1 + DoubleToStr(WK_DBL_PIPS,1); } //ローソク足が陰線の場合 else { WK_STR_MSG1 = WK_STR_MSG1 + "↓ "; WK_DBL_PIPS = (Open[0] - Close[0])*100; WK_STR_MSG1 = WK_STR_MSG1 + DoubleToStr(WK_DBL_PIPS,1); } } WK_STR_MSG1 = WK_STR_MSG1 + "pips]"; ObjectSetText(OBJ_DISP_01,WK_STR_MSG1,18,STR_LAVEL_FONT,Yellow); return(0); } //+----------------------------------------------------------------------------+ |