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

4 period 7 ma fibo relational s.r indicator

4 period 7 ma fibo relational s.r indicator.mq5
Вы автор или правообладатель?

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

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

О программе

Индикатор отображает семь скользящих средних с длинами, основанными на числах Фибоначчи (13, 21, 34, 55, 89, 144, 233), на графике ценового окна MetaTrader. Каждая линия рассчитывается методом iMA для выбранного таймфрейма и может быть скрыта или показана отдельной настройкой. Индикатор также строит динамические уровни поддержки и сопротивления на основе пространства между крайними значениями скользящих, отображая их в виде стрелок и трендовых линий.

Поддерживается работа на разных таймфреймах: при выборе периода, отличного от текущего графика, линии рассчитываются для указанного таймфрейма и отображаются как горизонтальные уровни. Значения каждой скользящей средней выводятся текстовыми метками рядом с линиями, а цвет метки меняется в зависимости от соотношения цены Bid/Ask и значения MA.

Визуализация включает цветные прямоугольники, обозначающие ценовые зоны Bid и Ask, а также набор трендовых линий с подписями для каждого уровня поддержки/сопротивления. При смене таймфрейма или отключении отображения MA старые графические объекты удаляются для предотвращения наложения.

Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 7
#property indicator_color1 Yellow
#property indicator_color2 Gold
#property indicator_color3 Orange
#property indicator_color4 DarkOrange
#property indicator_color5 Goldenrod
#property indicator_color6 DarkGoldenrod
#property indicator_color7 Sienna

extern int  Time.Frame=1;
extern bool Show.Ma?=false; 
extern int ma.applied.price=1;
extern int L1.Length=13;
extern int L1.Method=0;
extern int L2.Length=21;
extern int L2.Method=0;
extern int L3.Length=34;
extern int L3.Method=0;
extern int L4.Length=55;
extern int L4.Method=0;
extern int L5.Length=89;
extern int L5.Method=0;
extern int L6.Length=144;
extern int L6.Method=0;
extern int L7.Length=233;
extern int L7.Method=0;

double L1.Buffer[];
double L2.Buffer[];
double L3.Buffer[];
double L4.Buffer[];
double L5.Buffer[];
double L6.Buffer[];
double L7.Buffer[];
string L1,L2,L3,L4,L5,L6,L7;

int init()  {
      // код доступен только после оплаты
   }//end init
int deinit()   {
   ObjectsDeleteAll(0,OBJ_TEXT);ObjectsDeleteAll(0,OBJ_RECTANGLE);
   ObjectsDeleteAll(0,OBJ_ARROW);ObjectsDeleteAll(0,OBJ_TREND);   }//end deinit
int start() {
      // код доступен только после оплаты
   }
   if(Time.Frame==Period())   {ObjectsDeleteAll();}
   int limit;
   int counted_bars=IndicatorCounted();

   if(counted_bars<0) return(-1);

   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;

   if(Time.Frame==Period() && Show.Ma?==true)   {
   for(int i=0; i<limit; i++) {

      L1.Buffer[i]=iMA(Symbol(),Time.Frame,L1.Length,0,L1.Method,ma.applied.price,i);
      L2.Buffer[i]=iMA(Symbol(),Time.Frame,L2.Length,0,L2.Method,ma.applied.price,i);
      L3.Buffer[i]=iMA(Symbol(),Time.Frame,L3.Length,0,L3.Method,ma.applied.price,i);
      L4.Buffer[i]=iMA(Symbol(),Time.Frame,L4.Length,0,L4.Method,ma.applied.price,i);
      L5.Buffer[i]=iMA(Symbol(),Time.Frame,L5.Length,0,L5.Method,ma.applied.price,i);
      L6.Buffer[i]=iMA(Symbol(),Time.Frame,L6.Length,0,L6.Method,ma.applied.price,i);
      L7.Buffer[i]=iMA(Symbol(),Time.Frame,L7.Length,0,L7.Method,ma.applied.price,i);  }}

   if(Time.Frame!=Period() || Show.Ma?==false)   {
      L1.Buffer[0]=iMA(Symbol(),Time.Frame,L1.Length,0,L1.Method,ma.applied.price,0);
      L2.Buffer[0]=iMA(Symbol(),Time.Frame,L2.Length,0,L2.Method,ma.applied.price,0);
      L3.Buffer[0]=iMA(Symbol(),Time.Frame,L3.Length,0,L3.Method,ma.applied.price,0);
      L4.Buffer[0]=iMA(Symbol(),Time.Frame,L4.Length,0,L4.Method,ma.applied.price,0);
      L5.Buffer[0]=iMA(Symbol(),Time.Frame,L5.Length,0,L5.Method,ma.applied.price,0);
      L6.Buffer[0]=iMA(Symbol(),Time.Frame,L6.Length,0,L6.Method,ma.applied.price,0);
      L7.Buffer[0]=iMA(Symbol(),Time.Frame,L7.Length,0,L7.Method,ma.applied.price,0);}

   L1="L1"+" "+Time.Frame+"m";
   L2="L2"+" "+Time.Frame+"m";
   L3="L3"+" "+Time.Frame+"m";
   L4="L4"+" "+Time.Frame+"m";
   L5="L5"+" "+Time.Frame+"m";
   L6="L6"+" "+Time.Frame+"m";
   L7="L7"+" "+Time.Frame+"m";

   double zoom.multiplier;int bpw=BarsPerWindow();
   if(bpw<25)              {zoom.multiplier=0.05;}
   if(bpw>25 && bpw<50)    {zoom.multiplier=0.07;}
   if(bpw>50 && bpw<175)   {zoom.multiplier=0.12;}   
   if(bpw>175 && bpw<375)  {zoom.multiplier=0.25;}
   if(bpw>375 && bpw<750)  {zoom.multiplier=0.5;}
   if(bpw>750)   {zoom.multiplier=1;}
   double time.frame.multiplier;
   if(Period()==1)   {time.frame.multiplier=0.65;}
   if(Period()==5)   {time.frame.multiplier=3.25;}
   if(Period()==15)  {time.frame.multiplier=9.75;}
   if(Period()==60)  {time.frame.multiplier=39;}
   if(Time.Frame==1)   {
      datetime m1.1=Time[0]+(1000*time.frame.multiplier*zoom.multiplier);
      datetime m1.2=Time[0]+(3000*time.frame.multiplier*zoom.multiplier);}
   if(Time.Frame==5)   {
      m1.1=Time[0]+(5000*time.frame.multiplier*zoom.multiplier);
      m1.2=Time[0]+(7000*time.frame.multiplier*zoom.multiplier);}
   if(Time.Frame==15)  {
      m1.1=Time[0]+(9000*time.frame.multiplier*zoom.multiplier);
      m1.2=Time[0]+(11000*time.frame.multiplier*zoom.multiplier);}
   if(Time.Frame==60)   {
      m1.1=Time[0]+(13000*time.frame.multiplier*zoom.multiplier);
      m1.2=Time[0]+(16000*time.frame.multiplier*zoom.multiplier);}

   double lo.ma,hi.ma; i=0;
   lo.ma=L1.Buffer[i];
   if(L2.Buffer[i]<lo.ma)  {lo.ma=L2.Buffer[i];}
   if(L3.Buffer[i]<lo.ma)  {lo.ma=L3.Buffer[i];}
   if(L4.Buffer[i]<lo.ma)  {lo.ma=L4.Buffer[i];}
   if(L5.Buffer[i]<lo.ma)  {lo.ma=L5.Buffer[i];}
   if(L6.Buffer[i]<lo.ma)  {lo.ma=L6.Buffer[i];}
   if(L7.Buffer[i]<lo.ma)  {lo.ma=L7.Buffer[i];}
   lo.ma=NormalizeDouble(lo.ma+(8*Point),Digits);//AliceBlue

   hi.ma=L7.Buffer[i];
   if(L6.Buffer[i]>hi.ma)  {hi.ma=L6.Buffer[i];}
   if(L5.Buffer[i]>hi.ma)  {hi.ma=L5.Buffer[i];}
   if(L4.Buffer[i]>hi.ma)  {hi.ma=L4.Buffer[i];}
   if(L3.Buffer[i]>hi.ma)  {hi.ma=L3.Buffer[i];}
   if(L2.Buffer[i]>hi.ma)  {hi.ma=L2.Buffer[i];}
   if(L1.Buffer[i]>hi.ma)  {hi.ma=L1.Buffer[i];}
   hi.ma=NormalizeDouble(hi.ma-(8*Point),Digits);//AliceBlue

   double lo.ma.1,lo.ma.2,lo.ma.3,lo.ma.4,lo.ma.5,lo.ma.6;
   lo.ma.1=lo.ma+(8*Point);
   lo.ma.2=lo.ma.1+(11*Point);
   lo.ma.3=lo.ma.2+(16*Point);
   lo.ma.4=lo.ma.3+(27*Point);
   lo.ma.5=lo.ma.4+(43*Point);
   lo.ma.6=lo.ma.5+(90*Point);

   double hi.ma.1,hi.ma.2,hi.ma.3,hi.ma.4,hi.ma.5,hi.ma.6;
   hi.ma.1=hi.ma-(8*Point);//LightBlue
   hi.ma.2=hi.ma.1-(11*Point);//DodgerBlue
   hi.ma.3=hi.ma.2-(16*Point);//RoyalBlue
   hi.ma.4=hi.ma.3-(27*Point);//MediumBlue
   hi.ma.5=hi.ma.4-(43*Point);//Blue
   hi.ma.6=hi.ma.5-(90*Point);//DarkBlue

   if(Time.Frame==Period())   {
      if(lo.ma-hi.ma>Ask-Bid)   {
      ObjectCreate("lo.ma",OBJ_ARROW,0,Time[i],lo.ma);
      ObjectSet("lo.ma",14,4);
      ObjectSet("lo.ma",OBJPROP_COLOR,AliceBlue);
      ObjectCreate("hi.ma",OBJ_ARROW,0,Time[i],hi.ma);
      ObjectSet("hi.ma",14,4);
      ObjectSet("hi.ma",OBJPROP_COLOR,AliceBlue);}

      if(lo.ma.1-hi.ma.1>Ask-Bid)   {
      ObjectCreate("lo.1",OBJ_ARROW,0,Time[i],lo.ma.1);
      ObjectSet("lo.1",14,4);
      ObjectSet("lo.1",OBJPROP_COLOR,LightBlue);
      ObjectCreate("hi.1",OBJ_ARROW,0,Time[i],hi.ma.1);
      ObjectSet("hi.1",14,4);
      ObjectSet("hi.1",OBJPROP_COLOR,LightBlue);}      

      if(lo.ma.2-hi.ma.2>Ask-Bid)   {
      ObjectCreate("lo.2",OBJ_ARROW,0,Time[i],lo.ma.2);
      ObjectSet("lo.2",14,4);
      ObjectSet("lo.2",OBJPROP_COLOR,DodgerBlue);
      ObjectCreate("hi.2",OBJ_ARROW,0,Time[i],hi.ma.2);
      ObjectSet("hi.2",14,4);
      ObjectSet("hi.2",OBJPROP_COLOR,DodgerBlue);}

      if(lo.ma.3-hi.ma.3>Ask-Bid)   {
      ObjectCreate("lo.3",OBJ_ARROW,0,Time[i],lo.ma.3);
      ObjectSet("lo.3",14,4);
      ObjectSet("lo.3",OBJPROP_COLOR,RoyalBlue);
      ObjectCreate("hi.3",OBJ_ARROW,0,Time[i],hi.ma.3);
      ObjectSet("hi.3",14,4);
      ObjectSet("hi.3",OBJPROP_COLOR,RoyalBlue);}

      if(lo.ma.4-hi.ma.4>1*Point)   {
      ObjectCreate("lo.4",OBJ_ARROW,0,Time[i],lo.ma.4);
      ObjectSet("lo.4",14,4);
      ObjectSet("lo.4",OBJPROP_COLOR,MediumBlue);
      ObjectCreate("hi.4",OBJ_ARROW,0,Time[i],hi.ma.4);
      ObjectSet("hi.4",14,4);
      ObjectSet("hi.4",OBJPROP_COLOR,MediumBlue);}

      if(lo.ma.5-hi.ma.5>Ask-Bid)   {
      ObjectCreate("lo.5",OBJ_ARROW,0,Time[i],lo.ma.5);
      ObjectSet("lo.5",14,4);
      ObjectSet("lo.5",OBJPROP_COLOR,Blue);
      ObjectCreate("hi.5",OBJ_ARROW,0,Time[i],hi.ma.5);
      ObjectSet("hi.5",14,4);
      ObjectSet("hi.5",OBJPROP_COLOR,Blue);}

      if(lo.ma.6-hi.ma.6>Ask-Bid)   {
      ObjectCreate("lo.6",OBJ_ARROW,0,Time[i],lo.ma.6);
      ObjectSet("lo.6",14,4);
      ObjectSet("lo.6",OBJPROP_COLOR,DarkBlue);
      ObjectCreate("hi.6",OBJ_ARROW,0,Time[i],hi.ma.6);
      ObjectSet("hi.6",14,4);
      ObjectSet("hi.6",OBJPROP_COLOR,DarkBlue);}   }

   if(lo.ma-hi.ma>Ask-Bid)   {
      ObjectCreate(Time.Frame+"lo.ma",OBJ_TREND,0,m1.1, lo.ma, m1.2, lo.ma);
      ObjectSet(Time.Frame+"lo.ma",OBJPROP_STYLE,STYLE_SOLID);
      ObjectSet(Time.Frame+"lo.ma",OBJPROP_WIDTH,2);
      ObjectSet(Time.Frame+"lo.ma",OBJPROP_RAY,false);
      ObjectSet(Time.Frame+"lo.ma",OBJPROP_COLOR,AliceBlue);
      ObjectSetText(Time.Frame+"lo.ma",DoubleToStr(lo.ma,Digits),7,"Arial",AliceBlue);
      ObjectCreate(Time.Frame+"hi.ma",OBJ_TREND,0,m1.1, hi.ma, m1.2, hi.ma);
      ObjectSet(Time.Fr

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

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

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

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

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

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

Стоимость полного кода
1 616,10₽ ≈ $19.75