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

custom candle +shift [domovenok].mq5

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

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

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

О программе

Индикатор для MetaTrader 4, отображающий свечи пользовательского таймфрейма в виде графических объектов на графике цены. Формирует прямоугольные свечи и теневые линии верхней и нижней тени, обновляя их при обнаружении нового бара расчётного таймфрейма. Цвет свечей определяется направлением цены: бычьи, медвежьи или доджи.

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

НастройкаОписание
TimeFrame Таймфрейм — Пользовательский таймфрейм для группировки баров в целые свечи, указывается в минутах.
shift Сдвиг — Временной сдвиг в минутах, применяемый при определении начала нового бара.
UpCandle Цвет бычьей свечи — Цвет свечи, когда цена закрытия выше цены открытия.
DnCandle Цвет медвежьей свечи — Цвет свечи, когда цена закрытия ниже цены открытия.
DojiColor Цвет доджи — Цвет свечи, когда цена открытия равна цене закрытия.
Width Ширина — Толщина линий свечей и теней в пунктах.
BGCandle Фоновый режим свечи — Переключатель отображения свечей на переднем или заднем плане графика.
Получить полный код

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

#property indicator_chart_window

extern int   TimeFrame=480;
extern int   shift=60;

extern color UpCandle=Lime;
extern color DnCandle=Red;
extern color DojiColor=Blue;
extern int   Width=1;
extern bool  BGCandle=false;

int      Nbar,OpenBar,timer,i,timerTF,name,MidBar,x;
double   HighPrevBar,LowPrevBar,ClosePrevBar;
double   OpenNewBar,HighNewBar,LowNewBar,CloseNewBar;
double   HighCurBar,LowCurBar,CloseCurBar;
double   priceNewSH,priceNewSL,pricePrevSH,pricePrevSL,priceCurSH,priceCurSL;
string   nameNewCandle,namePrevCandle;
string   nameNewShadowH,nameNewShadowL,namePrevShadowH,namePrevShadowL;
string   NameBar,NameHigh,NameLow;
datetime TimeOpenNewBar,TimeCloseNewBar,TimeClosePrevBar;
datetime timeNewShadow,timePrevShadow;
bool     NewBar;

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

int deinit()
  {
   for(int DelOBJ=1; DelOBJ<=name; DelOBJ++)
     {
      ObjectDelete(NameBar+DelOBJ);
      ObjectDelete(NameHigh+DelOBJ);
      ObjectDelete(NameLow+DelOBJ);
     }
   Comment("");
   return(0);
  }

void start()
  {
      // код доступен только после оплаты
   }
   if(TimeFrame>1440)
     {Comment("\n"," TimeFrame ??????? D1 ?? ??????????????!!!");}
   if(Period()>240)
     {Comment("\n"," Period ??????? H4 ?? ??????????????!!!");}
   if(TimeFrame<=Period() || MathMod(TimeFrame,Period())!=0)
     {Comment("\n"," ????????? TimeFrame ??????? ? ??????? M",Period());}
   i=Bars-IndicatorCounted();
   if(IndicatorCounted()==0) i--;
   while(i>0)
     {
      i--;
      while(i>=0) if(Time[i]==TimeOpenNewBar || BarNew(i,TimeFrame)==false)i--;
      else{NewBar=true; name++; break;}
      if(i<0) i=0;
      if(NewBar==true)
        {

         OpenBar=iBarShift(NULL,0,TimeOpenNewBar,false);
         TimeClosePrevBar=Time[i+1];
         ClosePrevBar=Close[i+1];
         HighPrevBar=High[Highest(NULL,0,MODE_HIGH,OpenBar-i,i+1)];
         LowPrevBar=Low[Lowest(NULL,0,MODE_LOW,OpenBar-i,i+1)];
         namePrevCandle=NameBar+(name-1);
         MidBar=OpenBar-MathRound((OpenBar-i)/2);
         timePrevShadow=Time[MidBar];
         pricePrevSH=PriceShadow(OpenNewBar,ClosePrevBar,0);
         pricePrevSL=PriceShadow(OpenNewBar,ClosePrevBar,1);
         namePrevShadowH=NameHigh+(name-1);
         namePrevShadowL=NameLow+(name-1);

         if(ObjectFind(namePrevCandle)==0)
           {
            ObjectMove(namePrevCandle,1,TimeClosePrevBar,ClosePrevBar);
            PropBar(OpenNewBar,ClosePrevBar,namePrevCandle);
            if(OpenBar==i+1) ObjectSet(namePrevCandle,OBJPROP_WIDTH,Width*3);
           }
         if(ObjectFind(namePrevShadowH)==0)
           {
            if(pricePrevSH==HighPrevBar) ObjectDelete(namePrevShadowH);
            else
              {
               ObjectMove(namePrevShadowH,0,timePrevShadow,pricePrevSH);
               ObjectMove(namePrevShadowH,1,timePrevShadow,HighPrevBar);
               ColorShadow(OpenNewBar,ClosePrevBar,namePrevShadowH);
               ObjectSetText(namePrevShadowH,"High="+DoubleToStr(HighPrevBar,Digits),7,"Tahoma");
              }
           }
         if(ObjectFind(namePrevShadowL)==0)
           {
            if(pricePrevSL==LowPrevBar) ObjectDelete(namePrevShadowL);
            else
              {
               ObjectMove(namePrevShadowL,0,timePrevShadow,pricePrevSL);
               ObjectMove(namePrevShadowL,1,timePrevShadow,LowPrevBar);
               ColorShadow(OpenNewBar,ClosePrevBar,namePrevShadowL);
               ObjectSetText(namePrevShadowL,"Low="+DoubleToStr(LowPrevBar,Digits),7,"Tahoma");
              }
           }

         OpenNewBar=Open[i];
         TimeOpenNewBar=Time[i];
         HighNewBar=High[i];
         LowNewBar=Low[i];
         CloseNewBar=Close[i];
         TimeCloseNewBar=Time[i]+timerTF-timer;
       

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

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

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

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

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

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

Стоимость полного кода
638,10₽ ≈ $7.80