← К каталогу
Исходный код · ID 2902

tick's_profile_market.mq5

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный индикатор предназначен для платформы MetaTrader 5 и отображает профиль рынка на графике цены. Он анализирует динамику закрытия цен по барам, отслеживая восходящие и нисходящие изменения, и визуализирует их в виде трендовых линий и текстовых объектов на графике.

Индикатор создаёт красные трендовые линии при росте цены и синие — при снижении, с временным интервалом, определяемым параметром coaf. Также отображаются горизонтальные уровни и текстовые метки с информацией о суммарном количестве импульсов и их соотношении.

При деинициализации индикатор может удалить все созданные графические объекты, если включён соответствующий переключатель. Параметр LimitBar задаёт границу сброса счётчиков по количеству баров.

Настройки программы

НастройкаОписание
coaf Числовой коэффициент, определяющий временной интервал продления трендовых линий (60/coaf * период графика)
res Пороговое значение разницы уровней для отображения текстовой метки
LimitBar Максимальное количество баров, после которого сбрасываются счётчики и маркер сессии
WIDTH Толщина линий трендовых объектов на графике
cegl Размер шрифта текстовых объектов на графике
Shrift Название шрифта, используемого для текстовых меток на графике
delete Переключатель удаления всех созданных графических объектов при деинициализации индикатора
Получить полный код

Поиск по коду файла

#property indicator_chart_window
extern int coaf = 2;
extern int res = 45;
extern int LimitBar = 120;
extern int WIDTH = 3;
extern int cegl = 6;
extern string Shrift = "Arial Black";
extern bool delete = true;

datetime ctat_SB =0;
double old_price;
datetime max_SB=0,min_SB=0;
double max_price=0;
double count_plus=0,count_minus=0;
datetime time_21=0,time_22=0;
int max_ti=0, min_ti=0;

int init() {
      // код доступен только после оплаты
   }

int deinit() {
  if (delete == true) {
    GetDellName4(); 
  }
  ObjectsDeleteAll(0, OBJ_HLINE);
  ObjectsDeleteAll(0, OBJ_TREND);
  return(0);
}

int start() {
      // код доступен только после оплаты
   }
  double price;string name_1,name_2,name_3,name_44;
  int i=0;
  int limit; 
  double delta;  
  int counted_bars=IndicatorCounted();   
  if(counted_bars<0) return(-1);
  if(counted_bars>0) counted_bars--;
  limit=Bars-counted_bars;
  if(ctat_SB==0) ctat_SB=Time[0];

  if(limit>0) limit=0;

  for(i=limit; i>=0; i--) {
    if(old_price==0) old_price=Close[i];
    if(iBarShift(NULL,0,ctat_SB)-iBarShift(NULL,0,Time[i])>=LimitBar) {
      ctat_SB=Time[i];       
      max_SB=ctat_SB;
      min_SB=ctat_SB;
      max_price=0;
      count_plus=0;
      count_minus=0;
      max_ti=0; 
      min_ti=0;
    } 
    price = Close[i];
    if(price > max_price) max_price=price;
    delta = price - old_price;

    if(delta>=0) {
      count_plus++;

       name_1 = "TPM_ "+DoubleToStr(price,Digits)+TimeToStr(ctat_SB); 
        if (ObjectFind(name_1)<0) {
        time_21 = ctat_SB+(60/coaf)*Period();
        TrendLineGraff(name_1,ctat_SB,price,time_21,price,Red,0);
      } else {
        time_21 = ObjectGet(name_1,OBJPROP_TIME2)+(60/coaf)*Period();
        TrendLineGraff(name_1,ctat_SB,price,time_21,price,Red,0);         
      }
      if(time_21>max_SB) {         
        max_SB=time_21;
        TrendLineGraff("TPM_11 "+TimeToStr(ctat_SB),ctat_SB,price,max_SB,price,Tomato,3);
        if (count_plus > count_minus) {
       ObjectDelete("TPM_222 "+" "+TimeToStr(ctat_SB));
       ObjectDelete("TPM_111 "+" "+TimeToStr(ctat_SB));
       LineGraff("TPM_111 "+" "+TimeToStr(ctat_SB),max_SB,price,Tomato);
        }
        max_ti=(max_SB-ctat_SB)/60;            
        }}

    if(delta<0) {
      count_minus++;
       name_2 = "TPM_ 2 "+DoubleToStr(price,Digits)+TimeToStr(ctat_SB); 
        if (ObjectFind(name_2)<0) {
        time_22 = ctat_SB-(60/coaf)*Period();
        TrendLineGraff(name_2,ctat_SB,price,time_22,price,Blue,0);
      } else {
        time_22 = ObjectGet(name_2,OBJPROP_TIME2)-(60/coaf)*Period();
        TrendLineGraff(name_2,ctat_SB,price,time_22,price,Blue,0);
      }
      if(min_SB==0)min_SB=

Показано первые 50% кода (символов: 4206)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
420,60₽ ≈ $5.14