
Yahooニュースで、あなたへのおすすめニュースに「竹内&三吉、松嶋&反町、トシちゃん・・・芸能人「高級車デート」現場が出てくることに、全く共感できないセレブパンダだお。(芸能人に興味ないのでニュースはほぼみないのですが・・・)
今日は、かなり長い間、解決できずに困ったことについて説明します。
MQL4のオブジェクトにOBJ_EVENT(イベント)というオブジェクトがあります。

何が困ったかというと、このオブジェクトを表示状態にするとMT4が固まりました。
再現性は100%です。
この解決方法を書きます。
こんな方におすすめ
- MT4が固まる原因を探している人(ひょっとして同じ現象かも)
MT4がフリーズコード
int OnInit() {
string event = "test" + TimeToStr(iTime(NULL,0,3), TIME_DATE | TIME_MINUTES);
ObjectCreate(0, event, OBJ_EVENT, 0, iTime(NULL,0,3), 0);
ObjectSetInteger(0, event, OBJPROP_COLOR, clrAqua);
ObjectSetInteger(0, event, OBJPROP_BACK, true);
ObjectSetInteger(0, event, OBJPROP_SELECTED, true);
return(0);
}即時にMT4がフリーズはしません。数時間経過すると、フリーズします。
ログにも残らないので、本当にやっかいです。
チャートが動いている時でないとフリーズしません。土日でチャートが動いていない時間帯は、発生しません。
MT4がフリーズしないコード
int OnInit() {
string event = "test" + TimeToStr(iTime(NULL,0,3), TIME_DATE | TIME_MINUTES);
ObjectCreate(0, event, OBJ_EVENT, 0, iTime(NULL,0,3), 0);
ObjectSetInteger(0, event, OBJPROP_COLOR, clrAqua);
ObjectSetInteger(0, event, OBJPROP_BACK, true);
return(0);
}原因は、選択状態にするプロパティ「OBJPROP_SELECTED」をTrueに設定したのが原因でした。
何故かは、いまだに不明ですが、これをやると固まります。
OBJ_EVENT(イベント) を消すもしくは、非表示にすれば発生しません。
もう、謎すぎます。
推測では、MQL4のバグかなと。
メジャーなオブジェクトではないので、バグ報告もあがらないし、開発者も気づいていない可能性がありますね。
当然、MT4は最新を使っております。

まとめ
- OBJ_EVENTオブジェクトでは、「OBJPROP_SELECTED」プロパティを設定しない方が安全。
では、まただお。