nugroho_v3.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «nugroho_v3.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 5, предназначенный для анализа ценовых данных и технических показателей. Он рассчитывает три скользящие средние и отслеживает точки их совпадения, при обнаружении которых рисует на графике линии поддержки и сопротивления.
Индикатор также определяет основные торговые сессии (Токио, Лондон, Нью-Йорк) по заданным временным интервалам, вычисляет диапазоны ценовых колебаний в каждой из них и отображает информацию в виде прямоугольных зон на графике. Для каждой сессии строятся уровни Фибоначчи.
На графике выводятся информационные метки с количеством пунктов (pips) по каждой сессии, средним значением, а также часы и минуты до начала следующей свечи. Визуальные параметры линий и текстовых элементов настраиваются пользователем.
Настройки программы
| Настройка | Описание |
|---|---|
| BarShift | Сдвиг бара — Задаёт начальную глубину от текущей свечи, с которой индикатор начинает расчёты и построение объектов на графике. |
| ViewLine | Отображение линий — Управляет отображением линий поддержки и сопротивления при совпадении значений скользящих средних. |
| txt_c | Цвет текста — Определяет цвет текстовых меток и подписей, отображаемых на графике. |
| timeshift | Сдвиг времени — Задаёт смещение в часах для границ времени торговых сессий (Токио, Лондон, Нью-Йорк). |
Поиск по коду файла
#property indicator_chart_window
extern int BarShift=233;
extern bool ViewLine=false;
extern color txt_c=Black;
extern int timeshift=0;
int deinit() {
ObjectsDeleteAll(0,EMPTY);
return(0);
}
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
double x;
int h,m,s,k;
m=Time[0]+Period()*60-CurTime();
x=m/60.0;
s=m%60;
m=(m-m%60)/60;
h=x/60;
k=m-(h*60);
for (int i=BarShift;i>=0;i--)
{
double ma340 = NormalizeDouble(iMA(Symbol(),0,34,0,3,6,i),Digits);
double ma550 = NormalizeDouble(iMA(Symbol(),0,55,0,3,6,i),Digits);
double ma890 = NormalizeDouble(iMA(Symbol(),0,89,0,3,6,i),Digits);
if (MathAbs(ma340-ma890)==0)
{ datetime w1 = iTime(Symbol(),0,i);
double H = iHigh(Symbol(),0,iBarShift(Symbol(),0,w1));
double L = iLow(Symbol(),0,iBarShift(Symbol(),0,w1));
string wstr = TimeToStr(w1,TIME_DATE|TIME_MINUTES);
if (ViewLine)
{
ObjectCreate(wstr+" - Resistance3489 | "+i,OBJ_TREND,0,w1,H,TimeCurrent(),H);
ObjectSet(wstr+" - Resistance3489 | "+i,OBJPROP_COLOR,Red);
ObjectSet(wstr+" - Resistance3489 | "+i,OBJPROP_STYLE,STYLE_DOT);
ObjectSet(wstr+" - Resistance3489 | "+i,OBJPROP_RAY,false);
ObjectSet(wstr+" - Resistance3489 | "+i,OBJPROP_WIDTH,1);
ObjectCreate(wstr+" - Support3489 | "+i,OBJ_TREND,0,w1,L,TimeCurrent(),L);
ObjectSet(wstr+" - Support3489 | "+i,OBJPROP_COLOR,Blue);
ObjectSet(wstr+" - Support3489 | "+i,OBJPROP_STYLE,STYLE_DOT);
ObjectSet(wstr+" - Support3489 | "+i,OBJPROP_RAY,false);
ObjectSet(wstr+" - Support3489 | "+i,OBJPROP_WIDTH,1);
}
}
if (MathAbs(ma550-ma890)==0)
{ w1 = iTime(Symbol(),0,i);
H = iHigh(Symbol(),0,iBarShift(Symbol(),0,w1));
L = iLow(Symbol(),0,iBarShift(Symbol(),0,w1));
wstr = TimeToStr(w1,TIME_DATE|TIME_MINUTES);
if (ViewLine)
{
ObjectCreate(wstr+" - Resistance5589 | "+i,OBJ_TREND,0,w1,H,TimeCurrent(),H);
ObjectSet(wstr+" - Resistance5589 | "+i,OBJPROP_COLOR,Red);
ObjectSet(wstr+" - Resistance5589 | "+i,OBJPROP_STYLE,STYLE_SOLID);
ObjectSet(wstr+" - Resistance5589 | "+i,OBJPROP_WIDTH,1);
ObjectSet(wstr+" - Resistance5589 | "+i,OBJPROP_RAY,false);
ObjectCreate(wstr+" - Support5589 | "+i,OBJ_TREND,0,w1,L,TimeCurrent(),L);
ObjectSet(wstr+" - Support5589 | "+i,OBJPROP_COLOR,Blue);
ObjectSet(wstr+" - Support5589 | "+i,OBJPROP_STYLE,STYLE_SOLID);
ObjectSet(wstr+" - Support5589 | "+i,OBJPROP_WIDTH,1);
ObjectSet(wstr+" - Support5589 | "+i,OBJPROP_RAY,false);
}
}
datetime TokyoStart=StrToTime(TimeToStr(iTime(Symbol(),PERIOD_D1,i),TIME_DATE)+" 01:00");
TokyoStart=StrToTime(TimeToStr(TokyoStart,TIME_DATE)+" "+(TimeHour(TokyoStart)+timeshift));
datetime TokyoEnd=StrToTime(TimeToStr(iTime(Symbol(),PERIOD_D1,i),TIME_DATE)+" 09:00");
TokyoEnd=StrToTime(TimeToStr(TokyoEnd,TIME_DATE)+" "+(TimeHour(TokyoEnd)+timeshift));
int tokyo_bs=iBarShift(Symbol(),0,TokyoStart);
int tokyo_be=iBarShift(Symbol(),0,TokyoEnd);
int ibl_tokyo = iLowest(Symbol(),0,MODE_LOW,tokyo_bs-tokyo_be,tokyo_be);
int ibh_tokyo = iHighest(Symbol(),0,MODE_HIGH,tokyo_bs-tokyo_be,tokyo_be);
double vHigh_tokyo =High[ibh_tokyo];
double vLow_tokyo =Low[ibl_tokyo];
double vMid_tokyo =(vHigh_tokyo+vLow_tokyo)/2;
double sum_tokyo=(vHigh_tokyo-vLow_tokyo)/Point;
if (TimeHour(TimeCurrent())>1)
{
ObjectCreate ("sumtokyopips :",OBJ_LABEL,0,0,0);
ObjectSet("sumtokyopips :", OBJPROP_CORNER, 1);
ObjectSet("sumtokyopips :", OBJPROP_BACK, false);
ObjectSet("sumtokyopips :", OBJPROP_XDISTANCE, 60);
ObjectSet("sumtokyopips :", OBJPROP_YDISTANCE, 10);
ObjectSetText("sumtokyopips :",DoubleToStr(sum_tokyo,0)+" pips", 9, "Arial", txt_c);
}
ObjectCreate ("sumtokyo :",OBJ_LABEL,0,0,0);
ObjectSet("sumtokyo :", OBJPROP_CORNER, 1);
ObjectSet("sumtokyo :", OBJPROP_BACK, false);
ObjectSet("sumtokyo :", OBJPROP_XDISTANCE, 130);
ObjectSet("sumtokyo :", OBJPROP_YDISTANCE, 10);
ObjectSetText("sumtokyo :","Tokyo :", 9, "Arial", txt_c);
ObjectCreate ("tokyo1"+i,OBJ_RECTANGLE,0,TokyoStart,vHigh_tokyo,TokyoEnd,vLow_tokyo);
ObjectSet("tokyo1"+i,OBJPROP_WIDTH,2);ObjectSet("tokyo1"+i,OBJPROP_STYLE,STYLE_SOLID);ObjectSet("tokyo1"+i,OBJPROP_BACK,false);
ObjectSet("tokyo1"+i,OBJPROP_COLOR,Yellow);
double fibo_0= vHigh_tokyo;double fibo_100=vLow_tokyo;
string objname = "FIBO Tokyo"+i;
ObjectCreate(objname,OBJ_FIBO,0,TokyoEnd,vHigh_tokyo,TokyoEnd+2000,vLow_tokyo);
ObjectSet(objname,OBJPROP_COLOR,White);
ObjectSet(objname,OBJPROP_RAY,false);
ObjectSet(objname,OBJPROP_LEVELCOLOR,Yellow);
ObjectSet(objname,OBJPROP_FIBOLEVELS,21);
ObjectSet(objname,OBJPROP_LEVELSTYLE,STYLE_DOT);
ObjectSet(objname,OBJPROP_FIRSTLEVEL,0);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+1,0.382);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+2,0.5);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+3,0.618);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+4,1);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+5,1.236);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+6,1.618);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+7,2);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+8,2.618);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+10,3.236);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+9,3.618);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+11,-0.382);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+12,-0.5);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+13,-0.618);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+14,-1);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+15,-1.236);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+16,-1.618);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+17,-2);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+18,-2.618);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+19,-3.236);
ObjectSet(objname,OBJPROP_FIRSTLEVEL+20,-3.618);
ObjectSetFiboDescription(objname,0,"0%");
ObjectSetFiboDescription(objname,1,"38.2%");
ObjectSetFiboDescription(objname,2,"50%");
ObjectSetFiboDescription(objname,3,"61.8%");
ObjectSetFiboDescription(objname,4,"100%");
ObjectSetFiboDescription(objname,5,"123.6%");
ObjectSetFiboDescription(objname,6,"S W E E T S P O T ");
ObjectSetFiboDescription(objname,7,"200%");
ObjectSetFiboDescription(objname,8,"261.8%");
ObjectSetFiboDescription(objname,9,"E 323.6%");
ObjectSetFiboDescription(objname,10,"E 361.8%");
ObjectSetFiboDescription(objname,11,"E 38.2%");
ObjectSetFiboDescription(objname,12,"E 50%");
ObjectSetFiboDescription(objname,13,"E 61.8%");
ObjectSetFiboDescription(objname,14,"E 100%");
ObjectSetFiboDescription(objname,15,"E 123.6%");
ObjectSetFiboDescription(objname,16,"E 161.8%");
ObjectSetFiboDescription(objname,17,"E 200%");
ObjectSetFiboDescription(objname,18,"E 261.8%");
ObjectSetFiboDescription(objname,19,"E 323.6%");
ObjectSetFiboDescription(objname,20,"E 361.8%");
datetime LondonStart=StrToTime(TimeToStr(iTime(Symbol(),PERIOD_D1,i),TIME_DATE)+" 09:00");
LondonStart=StrToTime(TimeToStr(LondonStart,TIME_DATE)+" "+(TimeHour(LondonStart)+timeshift));
datetime LondonEnd=StrToTime(TimeToStr(iTime(Symbol(),PERIOD_D1,i),TIME_DATE)+" 14:00");
LondonEnd=StrToTime(TimeToStr(LondonEnd,TIME_DATE)+" "+(TimeHour(LondonEnd)+timeshift));
int London_bs=iBarShift(Symbol(),0,LondonStart);
int London_be=iBarShift(Symbol(),0,LondonEnd);
int ibl_London = iLowest(Symbol(),0,MODE_LOW,London_bs-London_be,London_be);
int ibh_London = iHighest(Symbol(),0,MODE_HIGH,London_bs-London_be,London_be);
double vHigh_London =High[ibh_London];
double vLow_London =Low[ibl_London];
double sum_london=(vHigh_London-vLow_London)/Point;
if (TimeHour(TimeCurrent())>9)
{
ObjectCreate ("sumlondonpips :",OBJ_LABEL,0,0,0);
ObjectSet("sumlondonpips :", OBJPROP_CORNER, 1);
ObjectSet("sumlondonpips :", OBJPROP_BACK, false);
ObjectSet("sumlondonpips :", OBJPROP_XDISTANCE, 60);
ObjectSet("sumlondonpips :", OBJPROP_YDISTANCE, 28);
ObjectSetText("sumlondonpips :",DoubleToStr(sum_london,0)+" pips", 9, "Arial", txt_c);
}
ObjectCreate ("sumlondon :",OBJ_LABEL,0,0,0);
ObjectSet("sumlondon :", OBJPROP_CORNER, 1);
ObjectSet("sumlondon :", OBJPROP_BACK, false);
ObjectSet("sumlondon :", OBJPROP_XDISTANCE, 130);
Показано первые 50% кода (символов: 14874)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.