#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