MQL код:
#property copyright "OrazTM supply and demand"
#property link "http://"

//(usd кошелёк)Z 830997322111
//(rub кошелёк)R 569035272087

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red // zig zag color

// •————————————————————————————————————————————————— —————————————————————————————————————————————•
// | INPUTS |
// •————————————————————————————————————————————————— —————————————————————————————————————————————•

extern bool draw_zones = true; // should be set to FALSE if the idicator is called from an expert advisor
extern int BackLimit = 1000; //количество баров с истории котировок для поиска

extern string ZIGZAG_INPUTS = "—————————————————————————";

extern int
ExtDepth = 12,
ExtDeviation = 5 ,
ExtBackstep = 3 ;

extern bool
show_ZigZag = true;

extern string INDICATOR_INPUTS = "—————————————————————————";

extern int
show_breached_zones = 1,
false_breach = 0; // if nonzero, tail-breaches less than this are ignored, 0 — only Close[] price counts
// this value is also used to move the base of the zone
extern double
price_out = 1.0; // 1, 2, 3 соотношение для нахождения зон. Например локальная свеча (потенциальный источник)
// равен 20 пунктов при price_out = 2 зона находится и наносится после ухда цены на расстояние 40 пунктов
extern int
space_zone = 0, // В пунктах. Нанесение зон с отступом в пунктах (там где Stop Loss должен быть)
extend_zone = 0, // расширение зон в процентах. Если "0" отклёчено
max_extend = 0, // максимально допустимое расширение в пунктах.
min_width = 10, // если “0” то выключено. Минимальная ширина зоны в пунктах, если больше “0” (например 10 пунктов свеча локальная) то наносить зону по Default width
default_width = 20, // ширина зоны по умолчанию в пунктах. Работает, если Min width больше “0”
max_width = 50, // если “0” то выключено. Максимальная ширина зоны в пунктах. Если больше “0” то переходим
// ступенчато на ТФ ниже текущего для нахождение зон (Если switch_to_lower_tf =1).
// Если зону удовлетворяющую нас не была найдена на меньшем ТФ то зона ссужается в % от размера свечи того самого меньшего ТФ (max_width_percentage)

switch_to_lower_tf = 1,// Переключатель для поиска зон на меньших ТФ. Если "1" то широкие зоны ссужаются на текущем графике в % от размера той самой широкой свечи (max_width_percentage=50)
max_width_percentage = 50; // (в процентах). Если switch_to_lower_tf =0 то поиск и сужение широких зон происходит на текущем ТФ в % от ширины свечи

extern string NOTIFICATIONS = "—————————————————————————";

extern bool show_alert = false ;
extern bool play_sound = false ;
extern bool send_mail = false;

extern string APPEARANCE = "—————————————————————————";

extern bool show_zone_info = false ; // demand or supply, tf, number of breaches
extern int text_size = 9;
extern color text_color = Black;
extern bool show_price_labels = false; // показывать ценовые метки зон
extern int price_label_size = 1;

extern color
virgin_demand_color = C'84 ,141,212', // Light Blue
virgin_supply_color = C'255,121,121', // Light Red
demand_color = C'0 ,112,192', // Blue
supply_color = C'255, 0, 0', // Red
breached_color = C'113,113,113'; // Gray