Доброго всем вреени суток, как создать индикатор в новом окне, точнее как прописать там уровни допустим от 1-9 и центер должен быть на 5-ке! Я почитал инфо но что так и непонял к эи уровни задавать!
- [ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда.
- Не работает вкладка (уровни)
- Не могу посчитать индикаторы?
вот функция которую можно использовать как в блоке инициализации, так и в блоке старт..
void SetLevelValues(color iColor,double iLevel1,double iLevel2,double iLevel3,double iLevel4,double iLevel5,double iLevel6) { SetLevelStyle(EMPTY,EMPTY,iColor); if (iLevel1!=0) SetLevelValue(0,iLevel1); if (iLevel2!=0) SetLevelValue(1,iLevel2); if (iLevel3!=0) SetLevelValue(2,iLevel3); if (iLevel4!=0) SetLevelValue(3,iLevel4); if (iLevel5!=0) SetLevelValue(4,iLevel5); if (iLevel6!=0) SetLevelValue(5,iLevel6); return; }
// Функция расчёта и создания горизонтальных линий разметки. void MakingHorizontalSectoring (bool AutoStep, // Переключатель true/fals = автоматическое/ручное распределение уровней. color Color, // Цвет уровней. color Color0, // Цвет нулевого уровня. double ScaleMAX, // Максимальное значение шкалы. double ScaleMIN, // Минимальное значение шкалы. double StepH, // При AutoStp = true/false - количество линий/растояние между линиями. int Limiter, // Ограничение десятичных разрядов в вычислениях порядка амплитуды. int Style, // Стиль уровней. int Width, // Толщина уровней. int Window, // Номер подокна для создания нулевой линий. string Name) // Имя для индивидуального имени нулевой горизонтальной линии. { double LN_Step; int Exp; int i, j, n; int LowLevel; int Step; int UpLevel; //---- if (1000000 * StepH != 0) { if (AutoStep == true) // Автоматическая установка горизонтальных линий по заданному количеству линий по вертикали. { LN_Step = (ScaleMAX - ScaleMIN) / StepH; // Считаем шаг в виде числа двойной точности. // Вычисление порядка исходного десятичного числа. if (LN_Step * MathPow (10, Limiter) != 0) // Если число меньше единицы. Проверяем на равенство первому разряду. { if (LN_Step < 1) { for (Exp = 0; Exp <= Limiter; Exp++) { i = LN_Step * MathPow (10, Exp); if (i >= 1) break; } } if (1 <= LN_Step && LN_Step < 10) Exp = 0; // Если число между единицей и десятью. Возвращаем нулевой порядок. if (LN_Step >= 10) // Если число больше или равно единицы. Проверяем на равенство первому разряду. { for (Exp = 0; Exp >= -Limiter; Exp--) { i = LN_Step * MathPow (10, Exp); if (i <= 9) break; } } } else Exp = 0; // Если число с заданной точностью равно нулю. Step = MathRound (LN_Step * MathPow (10, Exp)); // Преобразум шаг в целое число и окруляем его. switch (Step) // Приводим к стандартному шагу. { case 1: Step = 2; break; case 2: Step = 2; break; case 3: Step = 2; break; case 4: Step = 5; break; case 5: Step = 5; break; case 6: Step = 5; break; default: Step = 10; } LN_Step = Step * MathPow (10, -Exp); UpLevel = (ScaleMAX - MathMod (ScaleMAX, LN_Step)) / LN_Step + 1; // Верхняя граница шкалы для отсчёта шага. LowLevel = (ScaleMIN - MathMod (ScaleMIN, LN_Step)) / LN_Step - 1; // Нижняя граница шкалы для отсчёта шага. for (j = UpLevel; j >= LowLevel && 1000000 * LN_Step > 0; j--, i++) if (j != 0) SetLevelValue (i, j * LN_Step); i++; for (n = i; n <= 31; n++) SetLevelValue (n, (j + 1) * LN_Step); // Собираем оставшиеся уровни на последней координате, чтобы не мешались. } else // Ручная установка горизонтальных линий по заданному шагу по вертикали. { UpLevel = (ScaleMAX - MathMod (ScaleMAX, StepH)) / StepH + 1; // Верхняя граница шкалы для отсчёта шага. LowLevel = (ScaleMIN - MathMod (ScaleMIN, StepH)) / StepH - 1; // Нижняя граница шкалы для отсчёта шага. for (j = UpLevel; j >= LowLevel && 1000000 * StepH > 0; j--, i++) if (j != 0) SetLevelValue (i, j * StepH); i++; for (n = i; n <= 31; n++) SetLevelValue (n, (j + 1) * LN_Step); // Собираем оставшиеся уровни на последней коордиеате, чтобы не мешались. } } SetLevelStyle (Style, Width, Color); // Удаляем горизонтальную нулевую линию. ObjectDelete (Name + " HLINE 0"); // Создаём объект "ZN_AIASM HLINE 0". Этот объект создаётся всегда. Горизонтальные уровни. ObjectCreate (Name + " HLINE 0", OBJ_HLINE, Window, 0, 0); ObjectSet (Name + " HLINE 0", OBJPROP_COLOR, Color0); ObjectSet (Name + " HLINE 0", OBJPROP_STYLE, Style); ObjectSet (Name + " HLINE 0", OBJPROP_WIDTH, Width); }Только, эта функция из библиотеки не работает. Не позаботились об этом Метаквоты. :-(
Всем Большое спасибо!
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь