551 lines
No EOL
35 KiB
Text
551 lines
No EOL
35 KiB
Text
// EAの状態を表示アレンジ
|
|
|
|
// EAの状態を表示
|
|
bool Pass = true;
|
|
int CT = 0;
|
|
int ChartWarning; // この変数は、チャート表示やチャートコメント表示と連動
|
|
|
|
// OnInit()内
|
|
if (IsTesting() == false)
|
|
{
|
|
EA_test();
|
|
EventSetTimer(60);
|
|
}
|
|
|
|
// OnDeinit()内
|
|
EventKillTimer();
|
|
ObjectDelete("EA_label");
|
|
|
|
// OnTick()内
|
|
if (IsTesting() == false)
|
|
{
|
|
CT++;
|
|
EA_test();
|
|
}
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| EAの状態を表示(英語表記) |
|
|
//+------------------------------------------------------------------+
|
|
void OnTimer()
|
|
{
|
|
if (VisualMode)
|
|
{
|
|
EA_test();
|
|
|
|
if (CT == 0)
|
|
{
|
|
EA_label ("Updating...", clrYellow);
|
|
ChartWarning = 1; // この変数は、チャート表示やチャートコメント表示と連動
|
|
ChartSet2();
|
|
CT = 0;
|
|
}
|
|
}
|
|
}
|
|
void EA_test()
|
|
{
|
|
string label1 = "EA is running";
|
|
string label2 = "Authentication Failed";
|
|
string label3 = "No trade allowed";
|
|
string label4 = "Network Errors";
|
|
|
|
string labelx = label1;
|
|
if (Pass == false) labelx = label2;
|
|
else if (IsTradeAllowed() == false) labelx = label3;
|
|
else if (IsConnected() == false) labelx = label4;
|
|
|
|
|
|
if (Pass == false)
|
|
{
|
|
EA_label (label2, clrOrangeRed);
|
|
ChartWarning = 2;
|
|
ChartSet2();
|
|
}
|
|
else if (IsTradeAllowed() == false)
|
|
{
|
|
EA_label (label3, clrOrangeRed);
|
|
ChartWarning = 3;
|
|
ChartSet2();
|
|
}
|
|
else if (IsConnected() == false)
|
|
{
|
|
EA_label (label4, clrOrangeRed);
|
|
ChartWarning = 4;
|
|
ChartSet2();
|
|
}
|
|
else
|
|
{
|
|
EA_label (label1, clrLime);
|
|
ChartWarning = 0;
|
|
ChartSet2();
|
|
}
|
|
|
|
}
|
|
void EA_label(string text, color clr)
|
|
{
|
|
int x = (int)NormalizeDouble(26 * DPIAdjust, 0); // 別途DPI換算コードで調整
|
|
int y = (int)NormalizeDouble(18 * DPIAdjust, 0); // 別途DPI換算コードで調整
|
|
|
|
ObjectCreate(0, "EA_label", OBJ_LABEL, 0, 0, 0);
|
|
ObjectSetString(0, "EA_label", OBJPROP_TEXT, text);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_COLOR, clr);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_XDISTANCE, x);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_YDISTANCE, y);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_FONTSIZE, 10);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_SELECTABLE, false);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_HIDDEN, true);
|
|
ObjectSetString(0, "EA_label", OBJPROP_FONT, "Segoe UI");
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_CORNER, CORNER_RIGHT_UPPER);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_ANCHOR, ANCHOR_RIGHT_UPPER);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_BACK, false);
|
|
}
|
|
// 状態によるチャート配色変更
|
|
void ChartSet2()
|
|
{
|
|
color ChartWar1 = ChartWarning >= 2? clrDarkGray : clrWhite;
|
|
color ChartWar2 = ChartWarning >= 2? clrDimGray : clrOlive;
|
|
color ChartWar3 = ChartWarning >= 2? clrSilver : clrBeige;
|
|
|
|
if (!IsTesting())
|
|
{
|
|
ChartSetInteger(0, CHART_COLOR_BACKGROUND, clrBlack);
|
|
ChartSetInteger(0, CHART_COLOR_FOREGROUND, ChartWar1);
|
|
ChartSetInteger(0, CHART_COLOR_GRID, clrLightSlateGray);
|
|
ChartSetInteger(0, CHART_COLOR_CHART_UP, ChartWar2);
|
|
ChartSetInteger(0, CHART_COLOR_CHART_DOWN, ChartWar2);
|
|
ChartSetInteger(0, CHART_COLOR_CANDLE_BULL, clrBlack);
|
|
ChartSetInteger(0, CHART_COLOR_CANDLE_BEAR, ChartWar3);
|
|
ChartSetInteger(0, CHART_COLOR_CHART_LINE, ChartWar2);
|
|
ChartSetInteger(0, CHART_COLOR_VOLUME, ChartWar2);
|
|
ChartSetInteger(0, CHART_COLOR_ASK, clrRed);
|
|
ChartSetInteger(0, CHART_COLOR_STOP_LEVEL, clrRed);
|
|
|
|
}
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| EAの状態を表示 右上・チャートやチャートコメントと連動 |
|
|
//+------------------------------------------------------------------+
|
|
void OnTimer()
|
|
{
|
|
EA_test();
|
|
|
|
if (CT == 0)
|
|
EA_label ("更新待機中", clrYellow);
|
|
ChartWarning = 1; // この変数は、チャート表示やチャートコメント表示と連動
|
|
ChartSet2();
|
|
CT = 0;
|
|
}
|
|
void EA_test()
|
|
{
|
|
string label1 = "EA稼働中";
|
|
string label2 = "口座認証失敗";
|
|
string label3 = "トレード不許可";
|
|
string label4 = "通信エラー";
|
|
|
|
string labelx = label1;
|
|
if (Pass == false) labelx = label2;
|
|
else if (IsTradeAllowed() == false) labelx = label3;
|
|
else if (IsConnected() == false) labelx = label4;
|
|
|
|
|
|
if (Pass == false)
|
|
{
|
|
EA_label (label2, clrOrangeRed);
|
|
ChartWarning = 2;
|
|
ChartSet2();
|
|
}
|
|
else if (IsTradeAllowed() == false)
|
|
{
|
|
EA_label (label3, clrOrangeRed);
|
|
ChartWarning = 3;
|
|
ChartSet2();
|
|
}
|
|
else if (IsConnected() == false)
|
|
{
|
|
EA_label (label4, clrOrangeRed);
|
|
ChartWarning = 4;
|
|
ChartSet2();
|
|
}
|
|
else
|
|
{
|
|
EA_label (label1, clrLime);
|
|
ChartWarning = 0;
|
|
ChartSet2();
|
|
}
|
|
|
|
}
|
|
void EA_label(string text, color clr)
|
|
{
|
|
ObjectCreate(0, "EA_label", OBJ_LABEL, 0, 0, 0);
|
|
ObjectSetString(0, "EA_label", OBJPROP_TEXT, text);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_COLOR, clr);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_XDISTANCE, 6);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_YDISTANCE, 24);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_FONTSIZE, 8);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_SELECTABLE, false);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_HIDDEN, true);
|
|
ObjectSetString(0, "EA_label", OBJPROP_FONT, "Segoe UI");
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_CORNER, CORNER_RIGHT_UPPER);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_ANCHOR, ANCHOR_RIGHT_UPPER);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_BACK, false);
|
|
}
|
|
// 状態によるチャート配色変更
|
|
void ChartSet2()
|
|
{
|
|
color ChartWar1 = ChartWarning >= 2? clrDarkGray : clrWhite;
|
|
color ChartWar2 = ChartWarning >= 2? clrDimGray : clrOlive;
|
|
color ChartWar3 = ChartWarning >= 2? clrSilver : clrBeige;
|
|
|
|
if (!IsTesting())
|
|
{
|
|
ChartSetInteger(0, CHART_COLOR_BACKGROUND, clrBlack);
|
|
ChartSetInteger(0, CHART_COLOR_FOREGROUND, ChartWar1);
|
|
ChartSetInteger(0, CHART_COLOR_GRID, clrLightSlateGray);
|
|
ChartSetInteger(0, CHART_COLOR_CHART_UP, ChartWar2);
|
|
ChartSetInteger(0, CHART_COLOR_CHART_DOWN, ChartWar2);
|
|
ChartSetInteger(0, CHART_COLOR_CANDLE_BULL, clrBlack);
|
|
ChartSetInteger(0, CHART_COLOR_CANDLE_BEAR, ChartWar3);
|
|
ChartSetInteger(0, CHART_COLOR_CHART_LINE, ChartWar2);
|
|
ChartSetInteger(0, CHART_COLOR_VOLUME, ChartWar2);
|
|
ChartSetInteger(0, CHART_COLOR_ASK, clrRed);
|
|
ChartSetInteger(0, CHART_COLOR_STOP_LEVEL, clrRed);
|
|
ChartSetInteger(0, CHART_SHIFT, true);
|
|
//ChartSetDouble(0, CHART_SHIFT_SIZE, ShiftPer);
|
|
ChartSetInteger(0, CHART_AUTOSCROLL, true);
|
|
//ChartSetInteger(0, CHART_SHOW_DATE_SCALE, true); // これを入れるとなぜか表示範囲が狭くなる
|
|
//ChartSetInteger(0, CHART_SHOW_PRICE_SCALE, true); // これを入れるとなぜか表示範囲が狭くなる
|
|
ChartSetInteger(0, CHART_FOREGROUND, false);
|
|
ChartSetInteger(0, CHART_SHOW_GRID, false);
|
|
ChartSetInteger(0, CHART_SHOW_ONE_CLICK, false);
|
|
ChartSetInteger(0, CHART_SHOW_OHLC, false);
|
|
ChartSetInteger(0, CHART_SHOW_PERIOD_SEP, true);
|
|
ChartSetInteger(0, CHART_SHOW_ASK_LINE, true);
|
|
ChartSetInteger(0, CHART_SCALE, 3);
|
|
}
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
|
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| EAの状態を表示 右上シンプルバージョン |
|
|
//+------------------------------------------------------------------+
|
|
void OnTimer()
|
|
{
|
|
EA_test();
|
|
|
|
if (CT == 0)
|
|
EA_label ("更新待機中", clrYellow);
|
|
CT = 0;
|
|
}
|
|
void EA_test()
|
|
{
|
|
string label1 = "EA稼働中";
|
|
string label2 = "口座認証失敗";
|
|
string label3 = "トレード不許可";
|
|
string label4 = "通信エラー";
|
|
|
|
string labelx = label1;
|
|
if (Pass == false) labelx = label2;
|
|
else if (IsTradeAllowed() == false) labelx = label3;
|
|
else if (IsConnected() == false) labelx = label4;
|
|
|
|
EA_label (label1, clrLime);
|
|
|
|
if (Pass == false)
|
|
EA_label (label2, clrOrangeRed);
|
|
|
|
else if (IsTradeAllowed() == false)
|
|
EA_label (label3, clrOrangeRed);
|
|
|
|
else if (IsConnected() == false)
|
|
EA_label (label4, clrOrangeRed);
|
|
|
|
}
|
|
void EA_label(string text, color clr)
|
|
{
|
|
ObjectCreate(0, "EA_label", OBJ_LABEL, 0, 0, 0);
|
|
ObjectSetString(0, "EA_label", OBJPROP_TEXT, text);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_COLOR, clr);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_XDISTANCE, 6);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_YDISTANCE, 24);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_FONTSIZE, 8);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_SELECTABLE, false);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_HIDDEN, true);
|
|
ObjectSetString(0, "EA_label", OBJPROP_FONT, "Segoe UI");
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_CORNER, CORNER_RIGHT_UPPER);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_ANCHOR, ANCHOR_RIGHT_UPPER);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_BACK, false);
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//+------------------------------------------------------------------+
|
|
//| EAの状態を表示(右上Ver) ※EA_name()とセットで使用 |
|
|
//+------------------------------------------------------------------+
|
|
void OnTimer()
|
|
{
|
|
EA_test();
|
|
|
|
if (CT == 0)
|
|
EA_label ("更新待機中 " + WindowExpertName(), clrYellow, 26);
|
|
CT = 0;
|
|
}
|
|
void EA_test()
|
|
{
|
|
string label1 = "自動売買中 " + WindowExpertName();
|
|
string label2 = "口座認証エラー " + WindowExpertName();
|
|
string label3 = "自動売買エラー " + WindowExpertName();
|
|
string label4 = "サーバー通信エラー " + WindowExpertName();
|
|
//string label5 = "資金不足 " + WindowExpertName();
|
|
|
|
string labelx = label1;
|
|
if (Pass == false) labelx = label2;
|
|
else if (IsTradeAllowed() == false) labelx = label3;
|
|
else if (IsConnected() == false) labelx = label4;
|
|
//else if ((AccountBalance() + AccountCredit()) <= 0) labelx = label5;
|
|
|
|
EA_label (label1, clrAqua, 26);
|
|
|
|
if (Pass == false)
|
|
EA_label (label2, clrRed, 26);
|
|
|
|
else if (IsTradeAllowed() == false)
|
|
EA_label (label3, clrRed, 26);
|
|
|
|
else if (IsConnected() == false)
|
|
EA_label (label4, clrRed, 26);
|
|
|
|
//else if ((AccountBalance() + AccountCredit()) <= 0)
|
|
//EA_label (label5, clrRed, x);
|
|
}
|
|
void EA_label(string text, color clr, int pos_x)
|
|
{
|
|
ObjectCreate(0, "EA_label", OBJ_LABEL, 0, 0, 0);
|
|
ObjectSetString(0, "EA_label", OBJPROP_TEXT, text);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_COLOR, clr);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_XDISTANCE, pos_x);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_YDISTANCE, 2);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_FONTSIZE, 8);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_SELECTABLE, false);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_HIDDEN, true);
|
|
ObjectSetString(0, "EA_label", OBJPROP_FONT, "Segoe UI");
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_CORNER, CORNER_RIGHT_UPPER);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_ANCHOR, ANCHOR_RIGHT_UPPER);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_BACK, false);
|
|
}
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| EAの状態を表示(センターVer) |
|
|
//+------------------------------------------------------------------+
|
|
void OnTimer()
|
|
{
|
|
EA_test();
|
|
int chartWidth = (int)ChartGetInteger(0, CHART_WIDTH_IN_PIXELS), textWidth = 0, po_x = 0;
|
|
|
|
if (CT == 0)
|
|
chartWidth = (int)ChartGetInteger(0, CHART_WIDTH_IN_PIXELS);
|
|
textWidth = StringLen(WindowExpertName() + " 更新待機中") * 8 / 2; // テキストの幅の計算
|
|
po_x = (chartWidth - textWidth) / 2 + (textWidth) / 2;
|
|
EA_label (WindowExpertName() + " 更新待機中", clrYellow, po_x); // " Is Connecting..."
|
|
CT = 0;
|
|
}
|
|
void EA_test()
|
|
{
|
|
string label1 = WindowExpertName() + " 自動売買中"; // " Is up and running.";
|
|
string label2 = WindowExpertName() + " 口座認証エラー"; // " Not allowed account!";
|
|
string label3 = WindowExpertName() + " 自動売買エラー"; // " Is not Trade Allowed!";
|
|
string label4 = WindowExpertName() + " サーバー通信エラー"; // " Network Error!";
|
|
//string label5 = WindowExpertName() + " 資金不足";
|
|
|
|
string labelx = label1;
|
|
if (Pass == false) labelx = label2;
|
|
else if (IsTradeAllowed() == false) labelx = label3;
|
|
else if (IsConnected() == false) labelx = label4;
|
|
//else if ((AccountBalance() + AccountCredit()) <= 0) labelx = label5;
|
|
|
|
int FontSize = 8;
|
|
int chartWidth = (int)ChartGetInteger(0, CHART_WIDTH_IN_PIXELS);
|
|
int textWidth = StringLen(labelx) * FontSize / 2; // テキストの幅の計算
|
|
|
|
// テキストの中心からの座標を計算
|
|
int x = (chartWidth - textWidth) / 2 + (textWidth) / 2;
|
|
|
|
|
|
EA_label (label1, clrAqua, x);
|
|
|
|
if (Pass == false)
|
|
EA_label (label2, clrRed, x);
|
|
|
|
else if (IsTradeAllowed() == false)
|
|
EA_label (label3, clrRed, x);
|
|
|
|
else if (IsConnected() == false)
|
|
EA_label (label4, clrRed, x);
|
|
|
|
//else if ((AccountBalance() + AccountCredit()) <= 0)
|
|
//EA_label (label5, clrRed, x);
|
|
|
|
}
|
|
void EA_label(string text, color clr, int pos_x)
|
|
{
|
|
ObjectCreate(0, "EA_label", OBJ_LABEL, 0, 0, 0);
|
|
ObjectSetString(0, "EA_label", OBJPROP_TEXT, text);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_COLOR, clr);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_XDISTANCE, pos_x);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_YDISTANCE, 12);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_FONTSIZE, 8);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_SELECTABLE, false);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_HIDDEN, true);
|
|
ObjectSetString(0, "EA_label", OBJPROP_FONT, "Segoe UI");
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_ANCHOR, ANCHOR_CENTER);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_BACK, false);
|
|
}
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| EAの状態を表示 (センター・コメントバリエーション) |
|
|
//+------------------------------------------------------------------+
|
|
void OnTimer()
|
|
{
|
|
EA_test();
|
|
int chartWidth = (int)ChartGetInteger(0, CHART_WIDTH_IN_PIXELS), textWidth = 0, po_x = 0;
|
|
|
|
if (CT == 0)
|
|
chartWidth = (int)ChartGetInteger(0, CHART_WIDTH_IN_PIXELS);
|
|
textWidth = StringLen("システム スキャンモード(更新待機中)") * 8 / 2; // テキストの幅の計算
|
|
po_x = (chartWidth - textWidth) / 2 + (textWidth) / 2;
|
|
EA_label ("システム スキャンモード(更新待機中)", clrYellow, po_x);
|
|
CT = 0;
|
|
}
|
|
void EA_test()
|
|
{
|
|
string label1 = "メインシステム 戦闘モード起動(EA稼働中)";
|
|
string label2 = "パイロットデータの認証ができません(口座認証失敗)";
|
|
string label3 = "お前への援助は打ち切る。(トレード不許可)";
|
|
string label4 = "AMSから、光が逆流する…!(通信エラー)";
|
|
//string label5 = WindowExpertName() + " 資金不足";
|
|
|
|
string labelx = label1;
|
|
if (Pass == false) labelx = label2;
|
|
else if (IsTradeAllowed() == false) labelx = label3;
|
|
else if (IsConnected() == false) labelx = label4;
|
|
//else if ((AccountBalance() + AccountCredit()) <= 0) labelx = label5;
|
|
|
|
int FontSize = 8;
|
|
int chartWidth = (int)ChartGetInteger(0, CHART_WIDTH_IN_PIXELS);
|
|
int textWidth = StringLen(labelx) * FontSize / 2; // テキストの幅の計算
|
|
|
|
// テキストの中心からの座標を計算
|
|
int x = (chartWidth - textWidth) / 2 + (textWidth) / 2;
|
|
|
|
|
|
EA_label (label1, clrLime, x);
|
|
|
|
if (Pass == false)
|
|
EA_label (label2, clrOrangeRed, x);
|
|
|
|
else if (IsTradeAllowed() == false)
|
|
EA_label (label3, clrOrangeRed, x);
|
|
|
|
else if (IsConnected() == false)
|
|
EA_label (label4, clrOrangeRed, x);
|
|
|
|
//else if ((AccountBalance() + AccountCredit()) <= 0)
|
|
//EA_label (label5, clrRed, x);
|
|
|
|
}
|
|
void EA_label(string text, color clr, int pos_x)
|
|
{
|
|
ObjectCreate(0, "EA_label", OBJ_LABEL, 0, 0, 0);
|
|
ObjectSetString(0, "EA_label", OBJPROP_TEXT, text);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_COLOR, clr);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_XDISTANCE, pos_x);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_YDISTANCE, 12);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_FONTSIZE, 8);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_SELECTABLE, false);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_HIDDEN, true);
|
|
ObjectSetString(0, "EA_label", OBJPROP_FONT, "Segoe UI");
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_ANCHOR, ANCHOR_CENTER);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_BACK, false);
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
|
|
|
|
|
|
|
//Eaの状態を表示するコード(原本)
|
|
bool Pass = true;
|
|
int CT = 0;
|
|
int OnInit()
|
|
{
|
|
if(IsTesting() == false)
|
|
{
|
|
EA_test();
|
|
EventSetTimer(60);
|
|
}
|
|
return(INIT_SUCCEEDED);
|
|
}
|
|
|
|
void OnDeinit(const int reason)
|
|
{
|
|
EventKillTimer();
|
|
ObjectDelete("EA_label");
|
|
}
|
|
|
|
void OnTick()
|
|
{
|
|
if(IsTesting() == false)
|
|
{
|
|
CT++;
|
|
EA_test();
|
|
}
|
|
}
|
|
|
|
void OnTimer()
|
|
{
|
|
EA_test();
|
|
if(CT == 0)
|
|
EA_label("更新待機中", clrYellow);
|
|
CT = 0;
|
|
}
|
|
void EA_test()
|
|
{
|
|
EA_label("自動売買中", clrAqua);
|
|
if(Pass == false)
|
|
EA_label("口座認証エラー", clrRed);
|
|
else
|
|
if(IsTradeAllowed() == false)
|
|
EA_label("自動売買エラー", clrRed);
|
|
else
|
|
if(IsConnected() == false)
|
|
EA_label("サーバー通信エラー", clrRed);
|
|
}
|
|
void EA_label(string text, color clr)
|
|
{
|
|
ObjectCreate(0, "EA_label", OBJ_LABEL, 0, 0, 0);
|
|
ObjectSetString(0, "EA_label", OBJPROP_TEXT, text);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_COLOR, clr);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_SELECTABLE, false);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_HIDDEN, true);
|
|
ObjectSetString(0, "EA_label", OBJPROP_FONT, "MS 明朝");
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_FONTSIZE, 7);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_CORNER, 1);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_ANCHOR, ANCHOR_RIGHT_UPPER);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_XDISTANCE, 2);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_YDISTANCE, 16);
|
|
ObjectSetInteger(0, "EA_label", OBJPROP_BACK, false);
|
|
} |