Итак, выкладываю пробную версию индикатора коробки Ганна
Настройки и возможности:
extern string A1 = "размер коробки ";
extern int Price = 288; // Если равен 0 - импользуются три следующие масштаба
extern string A2 = "Если Price == 0, то ... ";
extern int PriceM4 = 144; ..
extern int PriceH1 = 415;
extern int PriceD1 = 1440;
// В индикаторе предусмотрен автоматическая подстройка по кол-во знаков после запятой
extern int Times = 144;
extern string A3 = "рисуем от цены?";
extern bool Cena = true; // если false - отрисовывает от кончика стрелочки, где бы этот кончик не находился)
extern string A4 = "Торговые или Календарные"; // при включении Календарных дней (false) те линии, что попадают на выходные - не отрисовывает. Также пока не рисует при Календарных днях диагональные линии.
extern string A5 = "true - TD, false - KD";
extern bool TKD = true;
extern string A6 = "строим ВНИЗ или ВВЕРХ "; // Вертим-крутим коробку, как нам больше нравится)
extern string A7 = "true - ВНИЗ, false - ВВЕРХ ";
extern bool HL = false;
extern string A8 = "ВПРАВО или ВЛЕВО";
extern bool Pravo = true;
extern bool Levo = false;
extern string A9 = "СТИЛЬ и ТОЛЩИНА линий"; // Здесь задаем стиль и толщину линий в коробке
extern int tip = 0; // стиль линий
extern int w = 1; // толщина линий
extern int tf = NULL; // период отображения линий
/*все периоды - 0
М1 - 1
М5 - 2
М15 - 4
М30 - 8
Н1 - 16
Н4 - 32
D1 - 64
W1 - 128
MN - 256*/
extern string A10 = "цвет основной коробки";
extern color col_BOX = Red;
extern string A11 = "деления по ЦЕНЕ"; // делит коробку на 4, 8, 3, 6 частей
.................................................
extern string A12 = "деление по ВРЕМЕНИ"; // делит коробку на 4, 8, 3, 6 частей
.................................................
extern string A13 = "УГЛЫ"; // рисует углы. Для углов от 1/2 и 2/1 до 1/4 и 4/1 рисует еще и внутренние малые диагонали, как в Ганналисте. Углы 1/16 и 16/1 пока не рисует. Не смог понять их необходимость...
................................................
extern string A14 = "ПОДПИСИ "; // цвет и размер шрифта для подписи вертикальных и горизонтальных линий коробки (углы пока решил не подписывать)
extern color txt = Black;
extern int razmTXT = 10;
extern string A15 = "префикс имен объектов индикатора "; // если надо нарисовать еще одну коробку, то пишем "gBOX_
1", надо еще - пишем "gBOX_
2" и т.д.
extern string prefix = "gBOX_"; // Префикс имен объектов индикатора
extern string A16 = "оставлять коробку при удалении индикатора; ";
extern string A17 = "нет (false) или да (true) ";
extern bool BoxDelete = false; // Оставлять построенные углы при удалении индикатора нет (false) или да (true)
и еще одна, надеюсь, приятная опция:
extern string A18 = "настройка окна настроек";
extern int VisibleRows = 25; // максимальное число видимых строк с параметрами
extern double WidthRatio = 1.3; // коэффициент масштабирования ширины стобцов
// (т.е. для увеличения ширины он должен быть более 1).
// Если открытое окно относится к тестерному эксперту, то масштабируется только первый столбец,
// т.к. для остальных стобцов менять ширину нет необходимости.
extern int IterationPause = 50; // пауза (в мс) между итерациями цикла (т.к. советник зацикленный).
// Чем ниже значение, тем быстрее он будет реагировать на появление искомого окна.
Прошу всех желающих потестировать и сообщить о возникших глюках, а также о возможных дополнительных опциях!