custom candle +shift [domovenok].mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.