VizionAI-Trading-EA/LabelUtils.mqh

70 行
2 KiB
MQL5

#ifndef LABEL_UTILS_MQH
#define LABEL_UTILS_MQH
color VZ_ColorFromPhase(const string phase)
{
string p = phase;
StringToUpper(p);
if(p == "A") return clrCyan;
if(p == "M") return clrOrange;
if(p == "D") return clrGold;
return clrSilver;
}
color VZ_ColorFromDirection(const int direction)
{
if(direction > 0) return clrLime;
if(direction < 0) return clrRed;
return clrSilver;
}
color VZ_ColorFromGate(const bool allowed, const bool blocked, const bool reduced)
{
if(blocked) return clrRed;
if(reduced) return clrOrange;
if(allowed) return clrLime;
return clrSilver;
}
color VZ_ColorFromConfidence(const double confidence)
{
if(confidence >= 90.0) return clrGold;
if(confidence >= 70.0) return clrLime;
if(confidence >= 50.0) return clrCyan;
return clrOrange;
}
color VZ_ColorFromHeadroom(const double headroom_pct, const double min_safe_pct)
{
if(headroom_pct >= min_safe_pct * 1.5) return clrLime;
if(headroom_pct >= min_safe_pct) return clrCyan;
if(headroom_pct >= min_safe_pct * 0.75) return clrOrange;
return clrRed;
}
color VZ_ColorFromSpread(const double spread_points, const double max_spread_points)
{
if(max_spread_points <= 0.0) return clrSilver;
if(spread_points <= max_spread_points * 0.60) return clrLime;
if(spread_points <= max_spread_points * 0.85) return clrCyan;
if(spread_points <= max_spread_points) return clrOrange;
return clrRed;
}
void VZ_DrawLabel(const string name,
const int row,
const string text,
const color col,
const int font_size = 9)
{
if(ObjectFind(0, name) < 0)
ObjectCreate(0, name, OBJ_LABEL, 0, 0, 0);
ObjectSetInteger(0, name, OBJPROP_CORNER, CORNER_LEFT_UPPER);
ObjectSetInteger(0, name, OBJPROP_XDISTANCE, 10);
ObjectSetInteger(0, name, OBJPROP_YDISTANCE, 12 + (row * 16));
ObjectSetInteger(0, name, OBJPROP_COLOR, col);
ObjectSetInteger(0, name, OBJPROP_FONTSIZE, font_size);
ObjectSetString(0, name, OBJPROP_TEXT, text);
}
#endif