Top Page



画面左上にBid と Ask の中間の値を表示する(ドル円専用)
画面左上にAsk と Bid の中間の値を表示するプログラムです。
円換算の通貨ペアとドル換算の通貨ペアで小数点の位置合わせが異なる処理になるので、今回は円換算の処理のみとします。
チャートに挿入すると次の画像のようになります。
左上に「90.037」数値が表示されています。
ここのプログラムです。
◎解説

[1]終了処理関数
  終了処理関数にオブジェクトを消す処理を入れました。
  プログラム終了時に左上の価格表示を消します。

[2]メイン処理関数
  メイン処理では、既に描画されているオブジェクトを消去して、新しくオブジェクトを表示するという処理を行っています。


◎以下、プログラム
//+----------------------------------------------------------------------------+
//| インジ 1-1 画面左上にBIDとASKの中間値を表示する(ドル円専用) |
//+----------------------------------------------------------------------------+
//----------------
//プロパティの設定
//----------------
//インジケーターをチャートウィンドウに表示する
#property indicator_chart_window

//----------------
//定数の定義
//----------------
#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()
{
double WK_DBL_PRICE=0; //作業用 価格

//オブジェクト削除
ObjectDelete(OBJ_DISP_01);
// 価格表示
WK_DBL_PRICE = ((Ask+Bid)/2);
ObjectCreate(OBJ_DISP_01,OBJ_LABEL,0,0,0);
ObjectSet(OBJ_DISP_01,OBJPROP_XDISTANCE,10);
ObjectSet(OBJ_DISP_01,OBJPROP_YDISTANCE,10);
ObjectSetText(OBJ_DISP_01,DoubleToStr(WK_DBL_PRICE,3),28,STR_LAVEL_FONT,MediumSlateBlue);

return(0);
}

//+----------------------------------------------------------------------------+