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

TRO_RAT_ZONE

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

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

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

О программе

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

Индикатор вычисляет уровни сопротивления и поддержки по данным HIGH/LOW за настраиваемое количество дней, а затем строит линии долгосрочных и краткосрочных триггеров с учётом заданного порога в пунктах. При достижении цены триггерных уровней возможен звуковой сигнал.

Дополнительно индикатор анализирует свечные паттерны (дожи различных видов), определяет направление смещения на часовом, дневном и недельном таймфреймах и отображает эту информацию в виде шкалы-виджета и легенды. Режимы TrainingWheels и IdiotMode управляют отображением вспомогательных сообщений и предупреждений.

Визуальные элементы индикатора включают пять буферов-стрелок, горизонтальные линии-триггеры, цветные зоны затенения, прямоугольники уровней и текстовые метки. Все графические объекты создаются и обновляются в обработчике тайка, а при деинициализации удаляются.

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

НастройкаОписание
TURN_OFF Отключить индикатор — Полностью отключает работу индикатора при активации.
TrainingWheels Обучающий режим — Включает отображение вспомогательных обучающих сообщений на графике.
IdiotMode Режим IdiotMode — Включает или отключает режим отображения предупреждающих сообщений при пробое уровней сопротивления или поддержки.
myIdiotFontSize Размер шрифта предупреждений — Размер шрифта для предупреждающих сообщений в режиме IdiotMode.
Show_Legend Показывать легенду — Включает или отключает отображение легенды с уровнями триггеров и смещениями.
Show_Gauge Показывать виджет — Включает или отключает отображение информационной панели-виджета с данными о диапазоне и смещении.
Show_Target Показывать целевой уровень — Включает или отключает отображение целевого уровня пробоя.
Show_Shade Показывать зоны затенения — Включает или отключает отрисовку цветных зон затенения между уровнями поддержки и сопротивления.
myChartX Горизонтальное смещение — Горизонтальное смещение графических объектов на графике.
myChartY Вертикальное смещение — Вертикальное смещение графических объектов на графике.
myLegendY Вертикальное смещение легенды — Вертикальное смещение легенды на графике.
myCorner Угол размещения — Угол графика для размещения графических объектов (0-3).
myFont Шрифт меток — Шрифт для текстовых меток на графике.
myFontSize Размер шрифта меток — Размер шрифта для текстовых меток на графике.
Sound_Alert Звуковое оповещение — Включает или отключает звуковое оповещение при достижении цены триггерных уровней.
Trigger_Lines Линии триггеров — Включает или отключает отрисовку горизонтальных линий-триггеров на графике.
Plot_Triggers Отрисовка триггеров — Включает или отключает отрисовку линий долгосрочного и краткосрочного триггеров.
bDrawBoxes Отрисовка меток уровней — Включает или отключает отрисовку стрелок-меток уровней сопротивления и поддержки.
bResetOnNewDay Сброс при новом дне — Переключатель сброса при начале нового торгового дня.
max_bars Макс. количество баров — Максимальное количество баров, обрабатываемых при расчёте уровней.
iPeriods Количество периодов — Количество периодов (дней) для расчёта динамических уровней сопротивления и поддержки.
iThreshold Пороговый уровень — Пороговое значение в пунктах для корректировки уровней триггеров.
iPipsTrigger Пункты смещения триггеров — Количество пунктов для расчёта смещения линий триггеров от уровней сопротивления и поддержки.
iBreakOutPips Пункты пробоя — Количество пунктов для расчёта целевого уровня пробоя.
colorHead Цвет заголовков панели — Цвет заголовков текстовых меток на панели.
iColorRes Цвет сопротивления — Цвет уровня сопротивления.
iColorSup Цвет поддержки — Цвет уровня поддержки.
iColorBuy Цвет долгого триггера — Цвет для долгосрочного триггера.
iColorShort Цвет короткого триггера — Цвет для краткосрочного триггера.
colorUp Цвет восходящего направления — Цвет для восходящего направления.
colorEq Цвет бокового направления — Цвет для бокового направления.
colorDn Цвет нисходящего направления — Цвет для нисходящего направления.
MintCream (colorBuyShade) Цвет зоны долгого триггера — Цвет зоны затенения для долгосрочного триггера.
colorShortShade Цвет зоны короткого триггера — Цвет зоны затенения для краткосрочного триггера.
iAlertLineStyle Стиль линий триггеров — Стиль линий горизонтальных триггеров.
myBoxWidth Толщина линий меток — Толщина линий стрелок-меток уровней.
myWingDing Код символа стрелок — Код символа WingDings для отрисовки стрелок-стрелков индикатора.
MinLengthOfUpTail Мин. длина верхнего хвоста (Doji) — Минимальная длина верхнего хвоста свечи для распознавания обычного паттерна Doji.
MinLengthOfLoTail Мин. длина нижнего хвоста (Doji) — Минимальная длина нижнего хвоста свечи для распознавания обычного паттерна Doji.
MaxLengthOfUpTail1 Макс. длина верхнего хвоста (Dragonfly Doji) — Максимальная длина верхнего хвоста свечи для распознавания паттерна Dragonfly Doji.
MinLengthOfLoTail1 Мин. длина нижнего хвоста (Dragonfly Doji) — Минимальная длина нижнего хвоста свечи для распознавания паттерна Dragonfly Doji.
MinLengthOfUpTail2 Мин. длина верхнего хвоста (Gravestone Doji) — Минимальная длина верхнего хвоста свечи для распознавания паттерна Gravestone Doji.
MaxLengthOfLoTail2 Макс. длина нижнего хвоста (Gravestone Doji) — Максимальная длина нижнего хвоста свечи для распознавания паттерна Gravestone Doji.
Получить полный код

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

#property indicator_chart_window 
#property indicator_buffers 5 
#property indicator_color1 Red 
#property indicator_color2 Blue 
#property indicator_color3 Indigo
#property indicator_color4 Magenta 
#property indicator_color5 Orange

extern bool   TURN_OFF        = false ;
extern bool   TrainingWheels  = true ;
extern bool   IdiotMode       = false ;
extern int    myIdiotFontSize = 50 ;

extern bool   Show_Legend  = true ;
extern bool   Show_Gauge   = true ;
extern bool   Show_Target  = true ;
extern bool   Show_Shade   = true ;

extern int myChartX   = 10 ;
extern int myChartY   = 80 ;  

extern int myLegendY   = 50 ;   

extern int    myCorner   = 1 ;
extern string myFont     = "Courier New" ;
extern int    myFontSize = 12 ;

extern bool Sound_Alert         = false ;
extern bool Trigger_Lines       = false ;

extern bool Plot_Triggers       = true; 
extern bool bDrawBoxes          = true;
extern bool bResetOnNewDay      = false; 

extern int  max_bars        = 300; 
extern int  iPeriods        = 5; 
extern int  iThreshold      = 0; 
extern int  iPipsTrigger    = 20;
extern int  iBreakOutPips   = 20;

extern color colorHead    = SteelBlue ;
extern color iColorRes    = Red ;
extern color iColorSup    = Blue ;
extern color iColorBuy    = Indigo ;
extern color iColorShort  = Magenta ;
extern color colorUp      = Green ;
extern color colorEq      = Gold ;
extern color colorDn      = Red ;

extern color colorBuyShade     = DarkSeaGreen ;//MintCream
extern color colorShortShade   = MistyRose ;

extern int   iAlertLineStyle  = STYLE_DOT ;
extern int   myBoxWidth       = 3;
extern int   myWingDing       = 119 ;

extern int       MinLengthOfUpTail=3;
extern int       MinLengthOfLoTail=3;

extern int       MaxLengthOfUpTail1=0;
extern int       MinLengthOfLoTail1=3;

extern int       MinLengthOfUpTail2=3;
extern int       MaxLengthOfLoTail2=0;

double DynR[]; 
double DynS[]; 
double LgTrig[]; 
double ShTrig[]; 
double BOTarget[]; 

double xLgTrig; 
double xShTrig; 

string tTrigger = "TRigger" ;
string tRes0 = "Res_0" ;
string tSup0 = "Sup_0" ;
string tLgTrig = "LgTrig_0" ;
string tShTrig = "ShTrig_0" ;

string tAlertBuy   = "Buy_sr"  ; 
string tAlertShort = "Short_sr"; 

datetime Trigger, STARTOFDAY ;

double    iAlertBuy, iAlertShort, xThreshold ; 

string symbol, tChartPeriod, shortName, ShortName ;  

int    digits2, digits, period, win ; 

string lbl[15], lbl2[15];

string TAG = "dfsr" ;
string   ObjG001,ObjG002,ObjG003,ObjG004,ObjG005,ObjG006,ObjG007,ObjG008,ObjG009 ;  

int FillAmt = 11 , x001, x002, x003, x004, x005, x006, x007 ;  
int n, j, h, l ;

double close, open, diff, value, point ;
color pColor = Blue, colorTradeInfo = Blue, ColorW1Bias = Blue , ColorH1Bias = Blue , ColorD1Bias = Blue ,ColorBias = Blue; 

bool GreenCandle,RedCandle, OKtoShort, OKtoLong, HorizontalRes, HorizontalSup, BreakOutRes, BreakOutSup ;

double  PipsTrigger    = 5, BreakOutTarget, BreakOutPips , BodySize, WickSize, TailSize, Top, Bottom, D1Diff, H1Diff, W1Diff;

string mTradeInfo, W1Bias, H1Bias, D1Bias,tRangeMsg  ;

string ArrowHeadRt =  "?" ; // 216 up arrow head
string ArrowHeadUp =  "?" ; // 217 up arrow head
string ArrowHeadDn =  "?" ; // 218 up arrow head 

string ArrowN  = "?"; // NORTH
string ArrowNE = "?";  // NORTHEAST
string ArrowE  = "?";  // EAST
string ArrowSE = "?";  // SOUTHEAST
string ArrowS  = "?";  // SOUTH

string theArrow, D1Arrow, H1Arrow, W1Arrow ; 
color  colorArrow ; 

bool StrongLWP , WeakLWP ;
string tLWP, tValue, tDoji, tIdiotMsg ;
color  colorLWP ;

double H=0.0, L=0.0, C=0.0, O=0.0;

int indexL, indexH ,BARNUM ;

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

void ObDeleteObjectsByPrefix(string Prefix)
  {
   int LL = StringLen(Prefix);
   int i = 0; 
   while(i < ObjectsTotal())
     {
       string ObjName = ObjectName(i);
       if(StringSubstr(ObjName, 0, LL) != Prefix) 
         { 
           i++; 
           continue;
         }
       ObjectDelete(ObjName);
     }
  }

int deinit()
  {
   ObjectDelete(tTrigger); 
   ObjectDelete(tRes0); 
   ObjectDelete(tSup0); 
   ObjectDelete(tLgTrig);    
   ObjectDelete(tShTrig);
   ObjectDelete(tAlertBuy); 
   ObjectDelete(tAlertShort); 

   ObDeleteObjectsByPrefix(TAG);  

      TRO() ;

   return(0);
  }

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

void DoDrawBoxes()   
{

  if (ObjectFind(tRes0) != 0)
      {
          ObjectCreate(tRes0,OBJ_ARROW,0,Time[0],DynR[0]);
          ObjectSet(tRes0,OBJPROP_ARROWCODE,SYMBOL_RIGHTPRICE);
          ObjectSet(tRes0,OBJPROP_COLOR,Red);  
          ObjectSet(tRes0,OBJPROP_WIDTH,myBoxWidth);             
      } 
      else
      {
         ObjectMove(tRes0,0,Time[0],DynR[0]);
      }

  if (ObjectFind(tSup0) != 0)
      {
          ObjectCreate(tSup0,OBJ_ARROW,0,Time[0],DynS[0]);
          ObjectSet(tSup0,OBJPROP_ARROWCODE,SYMBOL_RIGHTPRICE);
          ObjectSet(tSup0,OBJPROP_COLOR,Blue);  
          ObjectSet(tSup0,OBJPROP_WIDTH,myBoxWidth);           
      } 
      else
      {
         ObjectMove(tSup0,0,Time[0],DynS[0]);
      }

   ObjectDelete(tLgTrig);    

  if (ObjectFind(tLgTrig) != 0)
      {
          ObjectCreate(tLgTrig,OBJ_ARROW,0,Time[0],iAlertBuy);
          ObjectSet(tLgTrig,OBJPROP_ARROWCODE,SYMBOL_RIGHTPRICE);
          ObjectSet(tLgTrig,OBJPROP_COLOR,iColorBuy); 
          ObjectSet(tLgTrig,OBJPROP_WIDTH,myBoxWidth);             
      } 
      else
      {
         ObjectMove(tLgTrig,0,Time[0],iAlertBuy);
      }

  if (ObjectFind(tShTrig) != 0)
      {
          ObjectCreate(tShTrig,OBJ_ARROW,0,Time[0],iAlertShort);
          ObjectSet(tShTrig,OBJPROP_ARROWCODE,SYMBOL_RIGHTPRICE);
          ObjectSet(tShTrig,OBJPROP_COLOR,iColorShort);  
          ObjectSet(tShTrig,OBJPROP_WIDTH,myBoxWidth);            
      } 
      else
      {
         ObjectMove(tShTrig,0,Time[0],iAlertShort);
      }     

   ObjectDelete(tTrigger);  

  if (ObjectFind(tTrigger) != 0)
      {
          ObjectCreate(tTrigger,OBJ_ARROW,0,Time[0],BOTarget[0]);
          ObjectSet(tTrigger,OBJPROP_ARROWCODE,SYMBOL_RIGHTPRICE);
          ObjectSet(tTrigger,OBJPROP_COLOR,Orange);  
          ObjectSet(tTrigger,OBJPROP_WIDTH,myBoxWidth);             
      } 
      else
      {
         ObjectMove(tTrigger,0,Time[0],BOTarget[0]);
      }  

} 

void DoShowGauge()
{
n       = 10;
j       = 0 ;

close   = iClose(symbol,period,0) ;
open    = iOpen(symbol,period,0) ;
diff    = close - open ;

tValue  = tChartPeriod + " RAT ZONE"  ;

lbl[j]  = ShortName+j;
lbl2[j] = fFill(tValue  , FillAmt) ;

j       = j + 1;
lbl[j]  = ShortName+j;
value   = DynR[0] ;
diff    = (close - value) / point ;
DoColor(diff, 0) ;
lbl2[j] = fFill("D1 High "  , FillAmt) ;

j       = j + 1;
lbl[j]  = ShortName+j;
value   = DynS[0] ;
diff    = (close - value) / point ;
DoColor(diff, 0) ;
lbl2[j] = fFill("D1 Low  "  , FillAmt) ;

j       = j + 1;
lbl[j]  = ShortName+j;
value   = (DynR[0] - DynS[0]

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

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

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

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

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

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

Стоимость полного кода
1 759,20₽ ≈ $21.50