Алексей Боровков – 10 роботов для автоматической торговли на Форекс (страница 23)
ObjectCreate(0, prefix+"X_A", OBJ_TREND, 0, pattern.timeX, pattern.X, pattern.timeA, pattern.A);
ObjectSetInteger(0, prefix+"X_A", OBJPROP_COLOR, PatternColor);
ObjectSetInteger(0, prefix+"X_A", OBJPROP_WIDTH, 2);
ObjectSetInteger(0, prefix+"X_A", OBJPROP_RAY, false);
ObjectCreate(0, prefix+"A_B", OBJ_TREND, 0, pattern.timeA, pattern.A, pattern.timeB, pattern.B);
ObjectSetInteger(0, prefix+"A_B", OBJPROP_COLOR, PatternColor);
ObjectSetInteger(0, prefix+"A_B", OBJPROP_WIDTH, 2);
ObjectSetInteger(0, prefix+"A_B", OBJPROP_RAY, false);
ObjectCreate(0, prefix+"B_C", OBJ_TREND, 0, pattern.timeB, pattern.B, pattern.timeC, pattern.C);
ObjectSetInteger(0, prefix+"B_C", OBJPROP_COLOR, PatternColor);
ObjectSetInteger(0, prefix+"B_C", OBJPROP_WIDTH, 2);
ObjectSetInteger(0, prefix+"B_C", OBJPROP_RAY, false);
ObjectCreate(0, prefix+"C_D", OBJ_TREND, 0, pattern.timeC, pattern.C, pattern.timeD, pattern.D);
ObjectSetInteger(0, prefix+"C_D", OBJPROP_COLOR, PatternColor);
ObjectSetInteger(0, prefix+"C_D", OBJPROP_WIDTH, 2);
ObjectSetInteger(0, prefix+"C_D", OBJPROP_RAY, false);
// Добавляем точки
CreatePoint(prefix+"X", pattern.timeX, pattern.X, 218);
CreatePoint(prefix+"A", pattern.timeA, pattern.A, 218);
CreatePoint(prefix+"B", pattern.timeB, pattern.B, 218);
CreatePoint(prefix+"C", pattern.timeC, pattern.C, 218);
CreatePoint(prefix+"D", pattern.timeD, pattern.D, 218);
// Добавляем метки
CreateLabel(prefix+"Label_X", "X", pattern.timeX, pattern.X);
CreateLabel(prefix+"Label_A", "A", pattern.timeA, pattern.A);
CreateLabel(prefix+"Label_B", "B", pattern.timeB, pattern.B);
CreateLabel(prefix+"Label_C", "C", pattern.timeC, pattern.C);
CreateLabel(prefix+"Label_D", "D", pattern.timeD, pattern.D);
// Добавляем название паттерна
string patternName = GetPatternName(pattern.type);
CreateLabel(prefix+"PatternName", patternName + " " + ((pattern.direction == 1) ? "Bullish" : "Bearish"),
pattern.timeD, pattern.D, 12, clrRed);
}
//+–+
//| Создание точки на графике |
//+–+
void CreatePoint(string name, datetime time, double price, int code)
{
ObjectCreate(0, name, OBJ_ARROW, 0, time, price);
ObjectSetInteger(0, name, OBJPROP_ARROWCODE, code);
ObjectSetInteger(0, name, OBJPROP_COLOR, PatternColor);
ObjectSetInteger(0, name, OBJPROP_WIDTH, 3);
}
//+–+
//| Создание метки на графике |
//+–+
void CreateLabel(string name, string text, datetime time, double price, int fontSize = 8, color clr = clrBlack)
{
ObjectCreate(0, name, OBJ_TEXT, 0, time, price);
ObjectSetString(0, name, OBJPROP_TEXT, text);
ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
ObjectSetInteger(0, name, OBJPROP_FONTSIZE, fontSize);
ObjectSetInteger(0, name, OBJPROP_ANCHOR, ANCHOR_UPPER);
}
//+–+
//| Удаление линий паттерна |
//+–+
void DeletePatternLines()
{
string prefix = "HP_"+IntegerToString(MagicNumber)+"_";
for(int i = ObjectsTotal(0)-1; i >= 0; i–)
{
string name = ObjectName(0, i);
if(StringFind(name, prefix) == 0)
{