FXのMT4を使う際にエキスパードアドバイザのビジュアルモードでの検証に時間と曜日を表示する簡単なインジケータが欲しいのですがMQL4の知識がありません。日時と時間は上手く表示させれるのですが、曜日は上手く表示させることが出来ません。
具体的には DayOfWeek によって返された 0~6 の整数値に switch - case 文 を使ってそれぞれの曜日を当てはめているのですが、インジケータをチャートにセットしたタイミングの値しか返されず、日をまたいでも値は更新されません。
OnTimer 関数を使うと良いとご教授を頂いたりしたのですが、どう書けば良いのでしょう?
又、より軽い処理で行う書き方等あれば、教えていただけると助かります。
初歩的な質問かも知れませんが分かる人いればよろしくお願いします。
実現したいこと
MT4のエキスパードアドバイザのビジュアルモードで時間と曜日を表示
該当のソースコード
#property copyright "Copyright"
#property link "http://"
#property indicator_chart_window
extern color BrokerTimeColor=Red;
extern int DistanceFromTopLeft=10;
extern double ZoomLevel=1;
extern color BrokerTimeColor_2=Red;
extern int DistanceFromTopLeft_2=260;
extern double ZoomLevel_2=1;
string WeekName = "";
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
ObjectCreate("Label_bt", OBJ_LABEL, 0, 0, 0); // Creating obj.
ObjectSet("Label_bt", OBJPROP_CORNER, 0); // Reference corner
ObjectSet("Label_bt", OBJPROP_XDISTANCE, DistanceFromTopLeftZoomLevel);// X coordinate
ObjectSet("Label_bt", OBJPROP_YDISTANCE, 30ZoomLevel);// Y coordinate
ObjectCreate("Label_bt_2", OBJ_LABEL, 0, 0, 0); // Creating obj.
ObjectSet("Label_bt_2", OBJPROP_CORNER, 0); // Reference corner
ObjectSet("Label_bt_2", OBJPROP_XDISTANCE, DistanceFromTopLeft_2ZoomLevel_2);// X coordinate
ObjectSet("Label_bt_2", OBJPROP_YDISTANCE, 30ZoomLevel_2);// Y coordinate
switch( DayOfWeek()){
case 0: WeekName = "Sunday"; break;
case 1: WeekName = "Monday"; break;
case 2: WeekName = "Tuesday"; break;
case 3: WeekName = "Wednesday"; break;
case 4: WeekName = "Thursday"; break;
case 5: WeekName = "Fryday"; break;
case 6: WeekName = "Saturday"; break;
default: WeekName = "";
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//----
ObjectSetText("Label_bt",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS),20ZoomLevel,"Arial",BrokerTimeColor);
ObjectSetText("Label_bt_2",WeekName,20ZoomLevel_2,"Arial",BrokerTimeColor_2);
//----
return(0);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete("Label_bt");
ObjectDelete("Label_bt_2");
//----
return(0);
}
//+------------------------------------------------------------------+

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/04/09 18:13