CustomCandle_TRO_MODIFIED_VERSION
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «candlestick - customcandle_tro_modified_version.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор CustomCandle_TRO_MODIFIED_VERSION отображает на графике MetaTrader 4 свечные паттерны, рассчитанные по пользовательскому таймфрейму. При обнаружении новой свечи заданного периода он создаёт графические объекты (прямоугольники для тел свечей и трендовые линии для теней) и обновляет их по мере движения цены в рамках текущей свечи.
Для ежедневного таймфрейма (1440) индикатор поддерживает пользовательское время открытия сессии, задаваемое строковым параметром, с автоматической корректировкой на выходные дни. Для остальных таймфреймов новая свеча определяется по стандартному смене бара.
Цвета тел и теней свечей, толщина объектов и режим отображения настраиваются через параметры. Индикатор не использует торговые API и не совершает сделок. Он работает только в окне графика и ограничивает использование таймфреймов, превышающих D1, и периодов, превышающих H4.
Настройки программы
| Настройка | Описание |
|---|---|
| noteTimeNY | noteTimeNY — Строковый информационный параметр с примечанием о времени сессии NY. |
| noteTimeAU | noteTimeAU — Строковый информационный параметр с примечанием о времени сессии AU. |
| 05:00 am pst = 14:00 server time (myOpenHHMM) | myOpenHHMM — Строковый параметр пользовательского времени открытия сессии в формате ЧЧ:ММ серверного времени (например, 14:00). |
| TimeFrame | TimeFrame — Целочисленный таймфрейм в минутах, по которому определяются пользовательские свечи (по умолчанию 60). |
| UpCandle | UpCandle — Цвет бычьих (растущих) свечных тел. |
| DnCandle | DnCandle — Цвет медвежьих (нисходящих) свечных тел. |
| DojiColor | DojiColor — Цвет свечных тел при совпадении цены открытия и закрытия (дожи). |
| Width | Width — Толщина графических объектов свечей и теней в пикселях. |
| BGCandle | BGCandle — Переключатель отрисовки фона свечных тел (true/false). |
Поиск по коду файла
#property indicator_chart_window
extern string noteTimeNY = " 14:00 server time = 05:00 am pst" ;
extern string noteTimeAU = " 23:00 server time = 14:00 am pst" ;
extern string myOpenHHMM = "14:00"; // 05:00 am pst = 14:00 server time
extern int TimeFrame=60;
extern color UpCandle=DarkGreen;
extern color DnCandle=MistyRose;
extern color DojiColor=Blue;
extern int Width=1;
extern bool BGCandle=True;
int Nbar,OpenBar,timer,i,timerTF,name,MidBar;
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;
string yymmddms ;
int cd ;
datetime r ;
int init()
{
// код доступен только после оплаты
}
int deinit(){
for(int DelOBJ=1; DelOBJ<=name; DelOBJ++){
ObjectDelete(NameBar+DelOBJ);
ObjectDelete(NameHigh+DelOBJ);
ObjectDelete(NameLow+DelOBJ);}
return(0);}
int start()
{
// код доступен только после оплаты
}
if(TimeFrame>1440)
{Comment("\n"," TimeFrame more than D1 is not supporting!!!");return(0);}
if(Period()>240)
{Comment("\n"," Period more than H4 is not supporting!!!");return(0);}
if(TimeFrame<=Period()||MathMod(TimeFrame,Period())!=0)
{Comment("\n"," TimeFrame should be more or divisible by M",Period());return(0);}
i=Bars-IndicatorCounted();
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(0,0,TimeOpenNewBar,false);
TimeClosePrevBar=Time[i+1];
ClosePrevBar=Close[i+1];
HighPrevBar=High[Highest(0,0,MODE_HIGH,OpenBar-i,i+1)];
LowPrevBar=Low[Lowest(0,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,Показано первые 50% кода (символов: 7263)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.