#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link "https://www.mql5.com"
#property version "1.00"
#define OBJ_NAME "TestObjectSetString" // オブジェクト名
//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数 |
//+------------------------------------------------------------------+
void OnStart()
{
//--- 現在のチャートIDとシンボル、オブジェクト説明表示フラグ
long chart_id= ChartID();
string symbol = ChartSymbol(chart_id);
bool descript= ChartGetInteger(chart_id, CHART_SHOW_OBJECT_DESCR);
//--- チャート上のオブジェクト説明表示を設定する
ChartSetInteger(chart_id, CHART_SHOW_OBJECT_DESCR, true);
//--- 現在のBid値を取得する
double bid=0;;
ResetLastError();
if(!SymbolInfoDouble(symbol, SYMBOL_BID, bid))
{
Print("SymbolInfoDouble() failed. Error ", GetLastError());
return;
}
//--- 現在のBid価格に「水平線」グラフィックオブジェクトを作成する
if(!ObjectCreate(chart_id, OBJ_NAME, OBJ_HLINE, 0, 0, bid))
{
Print("ObjectCreate() failed. Error ", GetLastError());
return;
}
//--- オブジェクト説明にオブジェクト名+「Description」を入力する
if(!ObjectSetString(chart_id, OBJ_NAME, OBJPROP_TEXT, "Bid: "+DoubleToString(bid, (int)SymbolInfoInteger(symbol, SYMBOL_DIGITS))))
{
Print("ObjectSetString() failed. Error ", GetLastError());
return;
}
//--- チャートを即座に更新して変更を表示する
ChartRedraw(chart_id);
//--- オブジェクトの説明を取得する
string string_var="";
if(!ObjectGetString(chart_id, OBJ_NAME, OBJPROP_TEXT, 0, string_var))
{
Print("ObjectGetInteger() failed. Error ", GetLastError());
return;
}
//--- オブジェクト名を取得する
string obj_name=ObjectGetString(chart_id, OBJ_NAME, OBJPROP_NAME);
//--- オブジェクトの型を取得する
ENUM_OBJECT object_type=(ENUM_OBJECT)ObjectGetInteger(chart_id, OBJ_NAME, OBJPROP_TYPE);
//--- オブジェクトの型、名前、説明を操作ログに表示する
PrintFormat("The %s object named \"%s\" has the description \"%s\"",EnumToString(object_type), obj_name, string_var);
//--- 2秒待ってから、作成されたオブジェクトを削除する
Sleep(2000);
ObjectDelete(chart_id, OBJ_NAME);
//--- チャート上のオブジェクト説明表示の初期フラグを返す
ChartSetInteger(chart_id, CHART_SHOW_OBJECT_DESCR, descript);
ChartRedraw(chart_id);
/*
結果:
The OBJ_HLINE object named "TestObjectSetString" has the description "Bid: 0.62096"
*/
}
|